Fred
3.1.15
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Refactored. Fred no longer patches framework files. New GUI.
Installs on framework 3.3.
Added display of git branch name, if any.
Some bugfixes with for draggable Fred and JSLint.
Integrated ShowSystemNameInHeader module into fred by popular request.
Fred has now 90% opacity by default (can be configured). Also some issues with the new drag feature have been resolved.
Fred can now be dragged around and will remember his position. Also, he now has a fixed positioning so he doesn't get scrolled out of sight.
Added new short notation K::O for Kernel::Output in SQL-Log.
Build version with improved SQL log, thanks to Martin Gruner!
Added "Templates"-Param to the output filter config to be compatible with OTRS 3.2.
Released version with support for OTRS 3.2.x.
Added framework support for upcoming OTRS 3.2.x.
Fixed uninitialized value bug.
Decreased the default width of the Fred window back to 50%. This can be configured in sysconfig.
Improved Fred to no longer patch the DBObject. Instead, it registers a DBListener module to capture the data.
A tool to support the developer by his development.
Ein Entwicklertool welches dem Entwickler zur Laufzeit bei der Entwicklung unterstützen soll.
3.1.x
3.2.x
3.3.x
<br/>
Welcome! <br/>
<br/>
What can Fred do?<br/>
<br/>
To date, Fred has the following features: <br/>
<ul>
<li> HTMLCheck: <br/>
performs different HTML quality checks in JavaScript </li>
<li> JSLint: <br/>
performs different JavaScript quality checks in JavaScript </li>
<li> STDERRLog: <br/>
every entry contained in STDERR is displayed </li>
<li> TranslationDebug: <br/>
displays all translation attempts of the current request which failed. </li>
<li> SQLLog: <br/>
lists all SQL statements of the current request </li>
<li> ConfigLog: <br/>
lists all ConfigGet requests, indicating their frequency </li>
<li> SessionDump: <br/>
show the current content of the serverside session </li>
<li> EnvDump: <br/>
show info about the environment of the layout object </li>
</ul>
<br/>
*Caution* : Please have a look at the possible config settings, which are easily accessible by clicking on "setting". <br/>
<br/>
<br/>
What is Fred's current status?<br/>
<br/>
<ul>
<li> modular design: <br/>
anybody can add a new module at any time </li>
<li> the modules' output is not yet sophisticated <br/>
ideas for improving the output or sensible configurations will be very welcome </li>
<li> please extend Fred, if you have good ideas <br/>
<li> if you have no time to implement your ideas yourselves, please enter them in dev mailinglist </li>
</ul>
<br/>
2014-03-04 09:10:59
opms.otrs.com
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KPCFET0NUWVBFIGJvb2sgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjQvL0VOIgogICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC40L2RvY2Jvb2t4LmR0ZCI+Cgo8Ym9vayBsYW5nPSdlbic+Cgo8Ym9va2luZm8+Cjx0aXRsZT5GcmVkPC90aXRsZT4KPGVkaXRpb24+QSB0b29sIHRvICBzdXBwb3J0IHRoZSBkZXZlbG9wZXIgYnkgaGlzIGRldmVsb3BtZW50LiBWZXJzaW9uIDMuMS4xNTwvZWRpdGlvbj4KCjxjb3B5cmlnaHQ+Cjx5ZWFyPjIwMTQ8L3llYXI+Cjxob2xkZXI+T1RSUyBBRywgaHR0cDovL290cnMub3JnLzwvaG9sZGVyPgo8L2NvcHlyaWdodD4KCjxkYXRlPjIwMTQtMDMtMDQ8L2RhdGU+Cgo8bGVnYWxub3RpY2U+CiAgICA8cGFyYT5HTlUgQUZGRVJPIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UgVmVyc2lvbiAzLCBOb3ZlbWJlciAyMDA3PC9wYXJhPgogICAgPHBhcmE+VGhpcyB3b3JrIGlzIGNvcHlyaWdodGVkIGJ5IE9UUlMgQUcsIE5vcnNrLURhdGEtU3RyLiAxLCA2MTM1MiBCYWQgSG9tYnVyZywgR2VybWFueS48L3BhcmE+CiAgICA8cGFyYT5CdWlsZCBEYXRlOiAyMDE0LTAzLTA0PC9wYXJhPgo8L2xlZ2Fsbm90aWNlPgoKPC9ib29raW5mbz4KCjxwcmVmYWNlIGlkPSJwcmVmYWNlIiA+CiAgICA8dGl0bGU+UHJlZmFjZTwvdGl0bGU+CiAgICA8cGFyYT5BIG1vZHVsZSBmb3IgaGVscGluZyB3aXRoIGRldmVsb3Bpbmcgd2ViIGFwcGxpY3Rpb25zLjwvcGFyYT4KPC9wcmVmYWNlPgoKPGNoYXB0ZXI+CiAgICA8dGl0bGU+RmVhdHVyZSBMaXN0PC90aXRsZT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+SFRNTENoZWNrPC90aXRsZT4KICAgICAgICA8cGFyYT5QZXJmb3JtcyBkaWZmZXJlbnQgYmFkL2Jlc3QgcHJhY3RpY2UgY2hlY2tzIG9uIHRoZSBnZW5lcmF0ZWQgcGFnZXMgdmlhIEphdmFTY3JpcHQuPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+SlNMaW50PC90aXRsZT4KICAgICAgICA8cGFyYT4KICAgICAgICAgICAgRXhhbWluZXMgdGhlIGNvZGUgcXVhbGl0eSBvZiBhbGwgSmF2YVNjcmlwdCBjb2RlIHRoYXQgaXMgdXNlZAogICAgICAgICAgICBvbiB0aGUgcGFnZSBvbiB0aGUgZmx5IChhbHNvIHZpYSBKYXZhU2NyaXB0KSwgdXNpbmcgdGhlIGdyZWF0IHRvb2wgSlNMaW50LgogICAgICAgIDwvcGFyYT4KICAgIDwvc2VjdDE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPlNUREVSUkxvZzwvdGl0bGU+CiAgICAgICAgPHBhcmE+ZXZlcnkgZW50cnkgY29udGFpbmVkIGluIFNUREVSUiBpcyBkaXNwbGF5ZWQgPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+VHJhbnNsYXRpb25EZWJ1ZzwvdGl0bGU+CiAgICAgICAgPHBhcmE+ZGlzcGxheXMgYWxsIHRyYW5zbGF0aW9uIGF0dGVtcHRzIG9mIHRoZSBjdXJyZW50IHJlcXVlc3Qgd2hpY2ggZmFpbGVkLiA8L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5TUUxMb2c8L3RpdGxlPgogICAgICAgIDxwYXJhPmxpc3RzIGFsbCBTUUwgc3RhdGVtZW50cyBvZiB0aGUgY3VycmVudCByZXF1ZXN0IDwvcGFyYT4KICAgIDwvc2VjdDE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPkNvbmZpZ0xvZzwvdGl0bGU+CiAgICAgICAgPHBhcmE+bGlzdHMgYWxsIENvbmZpZ0dldCByZXF1ZXN0cywgaW5kaWNhdGluZyB0aGVpciBmcmVxdWVuY3kgPC9wYXJhPgogICAgPC9zZWN0MT4KICAgIDxzZWN0MT4KICAgICAgICA8dGl0bGU+U2Vzc2lvbkR1bXA8L3RpdGxlPgogICAgICAgIDxwYXJhPnNob3cgdGhlIGN1cnJlbnQgY29udGVudCBvZiB0aGUgc2VydmVyc2lkZSBzZXNzaW9uIDwvcGFyYT4KICAgIDwvc2VjdDE+CiAgICA8c2VjdDE+CiAgICAgICAgPHRpdGxlPkVudkR1bXA8L3RpdGxlPgogICAgICAgIDxwYXJhPnNob3cgaW5mbyBhYm91dCB0aGUgZW52aXJvbm1lbnQgb2YgdGhlIGxheW91dCBvYmplY3QgPC9wYXJhPgogICAgPC9zZWN0MT4KPC9jaGFwdGVyPgoKPGNoYXB0ZXI+CiAgICA8dGl0bGU+SW5zdGFsbGF0aW9uPC90aXRsZT4KICAgIDxwYXJhPlRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zIGV4cGxhaW4gaG93IHRvIGluc3RhbGwgdGhlIHBhY2thZ2UuPC9wYXJhPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5BZG1pbiBJbnRlcmZhY2U8L3RpdGxlPgogICAgICAgIDxwYXJhPgpQbGVhc2UgdXNlIHRoZSBmb2xsb3dpbmcgVVJMIHRvIGluc3RhbGwgdGhlIHBhY2thZ2UgdXRpbGl6aW5nIHRoZSBhZG1pbgppbnRlcmZhY2UgKHBsZWFzZSBub3RlIHRoYXQgeW91IG5lZWQgdG8gYmUgaW4gdGhlIGFkbWluIGdyb3VwKS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+Cjx1bGluayB1cmw9Imh0dHA6Ly9sb2NhbGhvc3Qvb3Rycy9pbmRleC5wbD9BY3Rpb249QWRtaW5QYWNrYWdlTWFuYWdlciI+aHR0cDovL2xvY2FsaG9zdC9vdHJzL2luZGV4LnBsP0FjdGlvbj1BZG1pblBhY2thZ2VNYW5hZ2VyPC91bGluaz4KICAgICAgICA8L3BhcmE+CiAgICA8L3NlY3QxPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5Db21tYW5kIExpbmU8L3RpdGxlPgogICAgICAgIDxwYXJhPgpJZiB5b3UgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIEFkbWluIEludGVyZmFjZSwgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZwpPUE0gY29tbWFuZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHdpdGggImJpbi9vcG0ucGwiLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICA8c2NyZWVuPgpzaGVsbD4gYmluL29wbS5wbCAtYSBpbnN0YWxsIC1wIC9wYXRoL3RvL0ZyZWQtMy4xLjE1Lm9wbQogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDwvcGFyYT4KICAgIDwvc2VjdDE+CjwvY2hhcHRlcj4KCjxjaGFwdGVyPgogICAgPHRpdGxlPkNvbmZpZ3VyYXRpb248L3RpdGxlPgogICAgPHBhcmE+VGhlIGZvbGxvd2luZyBjb25maWcgb3B0aW9ucyBjYW4gb3IgbmVlZCB0byBiZSBjaGFuZ2VkIHZpYSBTeXNDb25maWcuPC9wYXJhPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5GcmVkOjpDb25maWdMb2cjIyNPcmRlckJ5PC90aXRsZT4KICAgICAgICA8cGFyYT5XaGljaCBvcmRlciBzaG91bGQgdGhlIGNvbmZpZyBsb2cgZGF0YSBoYXZlPzwvcGFyYT4KICAgIDwvc2VjdDE+CjwvY2hhcHRlcj4KCjxjaGFwdGVyPgogICAgPHRpdGxlPk1hbmlmZXN0PC90aXRsZT4KICAgIDxwYXJhPlRoZSBtYW5pZmVzdCBsaXN0cyBhbGwgaW5jbHVkZWQgZmlsZXMgYW5kIHRoZSByZWZlcnJpbmcgcGVybWlzc2lvbnMuPC9wYXJhPgogICAgPHNlY3QxPgogICAgICAgIDx0aXRsZT5GaWxlbGlzdDwvdGl0bGU+CiAgICAgICAgPHBhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgZG9jL2VuL0ZyZWQueG1sPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9Db25maWcvRmlsZXMvQUFBRnJlZC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvQ29uZmlnL0ZpbGVzL0ZyZWQueG1sPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9Nb2R1bGVzL0RldmVsRnJlZC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZENvbmZpZ0xvZy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvRnJlZENvbnNvbGUucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWRFbnZEdW1wLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkSFRNTENoZWNrLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkSlNMaW50LnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU2Vzc2lvbkR1bXAucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWRTVERFUlJMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWRTUUxMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML0ZyZWRUcmFuc2xhdGlvbkRlYnVnLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXRGcmVkLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9PdXRwdXRGaWx0ZXJGcmVkLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9PdXRwdXRGaWx0ZXJQb3N0U2hvd1N5c3RlbU5hbWVJbkhlYWRlci5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkQ29uZmlnTG9nLmR0bDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvT3V0cHV0L0hUTUwvU3RhbmRhcmQvRGV2ZWxGcmVkQ29uc29sZS5kdGw8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZENvbnRhaW5lci5kdGw8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZEVudkR1bXAuZHRsPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRIVE1MQ2hlY2suZHRsPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRKU0xpbnQuZHRsPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRTZXNzaW9uRHVtcC5kdGw8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL091dHB1dC9IVE1ML1N0YW5kYXJkL0RldmVsRnJlZFNldHRpbmcuZHRsPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRTUUxMb2cuZHRsPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRTVERFUlJMb2cuZHRsPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9PdXRwdXQvSFRNTC9TdGFuZGFyZC9EZXZlbEZyZWRUcmFuc2xhdGlvbkRlYnVnLmR0bDwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0RCTGlzdGVuZXIvRnJlZFNRTExvZy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL0NvbmZpZ0xvZy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvQ29uc29sZS5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvRW52RHVtcC5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvSFRNTENoZWNrLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9KU0xpbnQucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL1Nlc3Npb25EdW1wLnBtPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIEtlcm5lbC9TeXN0ZW0vRnJlZC9TUUxMb2cucG08L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgS2VybmVsL1N5c3RlbS9GcmVkL1NUREVSUkxvZy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSBLZXJuZWwvU3lzdGVtL0ZyZWQvVHJhbnNsYXRpb25EZWJ1Zy5wbTwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSB2YXIvaHR0cGQvaHRkb2NzL2pzL0NvcmUuRnJlZC5qczwvcGFyYT48L2xpc3RpdGVtPjxsaXN0aXRlbT48cGFyYT4oNjQ0KSB2YXIvaHR0cGQvaHRkb2NzL2pzL0NvcmUuRnJlZC5IVE1MQ2hlY2suanM8L3BhcmE+PC9saXN0aXRlbT48bGlzdGl0ZW0+PHBhcmE+KDY0NCkgdmFyL2h0dHBkL2h0ZG9jcy9qcy9Db3JlLkZyZWQuSlNMaW50LmpzPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIHZhci9odHRwZC9odGRvY3MvanMvdGhpcmRwYXJ0eS9qc2xpbnQvanNsaW50LmpzPC9wYXJhPjwvbGlzdGl0ZW0+PGxpc3RpdGVtPjxwYXJhPig2NDQpIHZhci9odHRwZC9odGRvY3Mvc2tpbnMvQWdlbnQvZGVmYXVsdC9jc3MvQ29yZS5GcmVkLmNzczwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0PgoKICAgICAgICA8L3BhcmE+CiAgICA8L3NlY3QxPgo8L2NoYXB0ZXI+Cgo8Y2hhcHRlcj4KICAgIDx0aXRsZT5DaGFuZ2VMb2c8L3RpdGxlPgogICAgPHBhcmE+CiAgICA8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjEuMTUgLyAyMDE0LTAzLTA0IDA5OjEwOjU1PC90aXRsZT48bGlzdGl0ZW0+PHBhcmE+UmVmYWN0b3JlZC4gRnJlZCBubyBsb25nZXIgcGF0Y2hlcyBmcmFtZXdvcmsgZmlsZXMuIE5ldyBHVUkuPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CjxpdGVtaXplZGxpc3Q+PHRpdGxlPjMuMS4xNCAvIDIwMTMtMDQtMDUgMTc6MTA6NTI8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5JbnN0YWxscyBvbiBmcmFtZXdvcmsgMy4zLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjEuMTMgLyAyMDEzLTAzLTExIDEzOjI3OjA2PC90aXRsZT48bGlzdGl0ZW0+PHBhcmE+QWRkZWQgZGlzcGxheSBvZiBnaXQgYnJhbmNoIG5hbWUsIGlmIGFueS48L3BhcmE+PC9saXN0aXRlbT48L2l0ZW1pemVkbGlzdD4KPGl0ZW1pemVkbGlzdD48dGl0bGU+My4xLjEyIC8gMjAxMi0xMS0wNyAxMTowMzo0ODwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPlNvbWUgYnVnZml4ZXMgd2l0aCBmb3IgZHJhZ2dhYmxlIEZyZWQgYW5kIEpTTGludC48L3BhcmE+PC9saXN0aXRlbT48L2l0ZW1pemVkbGlzdD4KPGl0ZW1pemVkbGlzdD48dGl0bGU+My4xLjExIC8gMjAxMi0xMC0yNSAxODo1NDoyODwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPkludGVncmF0ZWQgU2hvd1N5c3RlbU5hbWVJbkhlYWRlciBtb2R1bGUgaW50byBmcmVkIGJ5IHBvcHVsYXIgcmVxdWVzdC48L3BhcmE+PC9saXN0aXRlbT48L2l0ZW1pemVkbGlzdD4KPGl0ZW1pemVkbGlzdD48dGl0bGU+My4xLjEwIC8gMjAxMi0xMC0yNSAxMDozMDoyMTwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPkZyZWQgaGFzIG5vdyA5MCUgb3BhY2l0eSBieSBkZWZhdWx0IChjYW4gYmUgY29uZmlndXJlZCkuIEFsc28gc29tZSBpc3N1ZXMgd2l0aCB0aGUgbmV3IGRyYWcgZmVhdHVyZSBoYXZlIGJlZW4gcmVzb2x2ZWQuPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CjxpdGVtaXplZGxpc3Q+PHRpdGxlPjMuMS45IC8gMjAxMi0xMC0yNCAxMzo1MzoxMDwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPkZyZWQgY2FuIG5vdyBiZSBkcmFnZ2VkIGFyb3VuZCBhbmQgd2lsbCByZW1lbWJlciBoaXMgcG9zaXRpb24uIEFsc28sIGhlIG5vdyBoYXMgYSBmaXhlZCBwb3NpdGlvbmluZyBzbyBoZSBkb2Vzbid0IGdldCBzY3JvbGxlZCBvdXQgb2Ygc2lnaHQuPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CjxpdGVtaXplZGxpc3Q+PHRpdGxlPjMuMS44IC8gMjAxMi0wNi0zMCAxMDozOToyODwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPkFkZGVkIG5ldyBzaG9ydCBub3RhdGlvbiBLOjpPIGZvciBLZXJuZWw6Ok91dHB1dCBpbiBTUUwtTG9nLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjEuNyAvIDIwMTItMDYtMjAgMTg6MTI6NTM8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5CdWlsZCB2ZXJzaW9uIHdpdGggaW1wcm92ZWQgU1FMIGxvZywgdGhhbmtzIHRvIE1hcnRpbiBHcnVuZXIhPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CjxpdGVtaXplZGxpc3Q+PHRpdGxlPjMuMS42IC8gMjAxMi0wNS0yNSAwMjo1MDowNzwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPkFkZGVkICZxdW90O1RlbXBsYXRlcyZxdW90Oy1QYXJhbSB0byB0aGUgb3V0cHV0IGZpbHRlciBjb25maWcgdG8gYmUgY29tcGF0aWJsZSB3aXRoIE9UUlMgMy4yLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjEuNSAvIDIwMTItMDUtMDggMTU6Mjk6MDA8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5SZWxlYXNlZCB2ZXJzaW9uIHdpdGggc3VwcG9ydCBmb3IgT1RSUyAzLjIueC48L3BhcmE+PC9saXN0aXRlbT48L2l0ZW1pemVkbGlzdD4KPGl0ZW1pemVkbGlzdD48dGl0bGU+My4xLjQgLyAyMDEyLTA1LTA4IDEyOjM1OjAzPC90aXRsZT48bGlzdGl0ZW0+PHBhcmE+QWRkZWQgZnJhbWV3b3JrIHN1cHBvcnQgZm9yIHVwY29taW5nIE9UUlMgMy4yLnguPC9wYXJhPjwvbGlzdGl0ZW0+PC9pdGVtaXplZGxpc3Q+CjxpdGVtaXplZGxpc3Q+PHRpdGxlPjMuMS4zIC8gMjAxMi0wMy0yMyAxNzozMDoxNDwvdGl0bGU+PGxpc3RpdGVtPjxwYXJhPkZpeGVkIHVuaW5pdGlhbGl6ZWQgdmFsdWUgYnVnLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0Pgo8aXRlbWl6ZWRsaXN0Pjx0aXRsZT4zLjEuMiAvIDIwMTEtMTEtMjkgMTY6MzQ6MjA8L3RpdGxlPjxsaXN0aXRlbT48cGFyYT5EZWNyZWFzZWQgdGhlIGRlZmF1bHQgd2lkdGggb2YgdGhlIEZyZWQgd2luZG93IGJhY2sgdG8gNTAlLiBUaGlzIGNhbiBiZSBjb25maWd1cmVkIGluIHN5c2NvbmZpZy48L3BhcmE+PC9saXN0aXRlbT48L2l0ZW1pemVkbGlzdD4KPGl0ZW1pemVkbGlzdD48dGl0bGU+My4xLjEgLyAyMDExLTExLTI4IDE1OjI5OjIzPC90aXRsZT48bGlzdGl0ZW0+PHBhcmE+SW1wcm92ZWQgRnJlZCB0byBubyBsb25nZXIgcGF0Y2ggdGhlIERCT2JqZWN0LiBJbnN0ZWFkLCBpdCByZWdpc3RlcnMgYSBEQkxpc3RlbmVyIG1vZHVsZSB0byBjYXB0dXJlIHRoZSBkYXRhLjwvcGFyYT48L2xpc3RpdGVtPjwvaXRlbWl6ZWRsaXN0PgoKICAgIDwvcGFyYT4KPC9jaGFwdGVyPgoKPC9ib29rPgo=
IyAtLQojIEFBQUZyZWQucG0gLSB0aGUgY29uZmlnIHRvIGJpbmQgU1RERVJSIHRvIGFuIGxvZyBmaWxlIHVzYWJsZSBmb3IgZnJlZAojIENvcHlyaWdodCAoQykgMjAwMS0yMDA5IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLm9yZy8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KCRTZWxmKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM7CnVzZSBLZXJuZWw6Okxhbmd1YWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpUcmFuc2xhdGlvbkRlYnVnOwoKaWYgKCAkRU5We0hUVFBfVVNFUl9BR0VOVH0gKSB7CgogICAgIyBjaGVjayBpZiB0aGUgbmVlZGVkIHBhdGggaXMgYXZhaWxhYmxlCiAgICBteSAkUGF0aCA9ICRTZWxmLT57SG9tZX0gLiAnL3Zhci9mcmVkJzsKICAgIGlmICggIS1lICRQYXRoICkgewogICAgICAgIG1rZGlyICRQYXRoOwogICAgfQoKICAgIG15ICRGaWxlID0gJFNlbGYtPntIb21lfSAuICcvdmFyL2ZyZWQvU1RERVJSLmxvZyc7CgogICAgIyBjaGVjayBsb2cgZmlsZSBzaXplCiAgICBpZiAoIC1zICRGaWxlID4gMjAgKiAxMDI0ICogMTAyNCApIHsKICAgICAgICB1bmxpbmsgJEZpbGU7CiAgICB9CgogICAgIyBtb3ZlIFNURE9VVCB0byB0bXAgZmlsZQogICAgaWYgKCAhb3BlbiBTVERFUlIsICc+PicsICRGaWxlICkgeyAjIyBubyBjcml0aWMKICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SOiBDYW4ndCB3cml0ZSAkRmlsZSEiOwogICAgfQp9CgojIGRpc2FibGUgcmVkZWZpbmUgd2FybmluZ3MgaW4gdGhpcyBzY29wZQp7CiAgICBubyB3YXJuaW5ncyAncmVkZWZpbmUnOwoKICAgICMgT3ZlcnJpZGUgS2VybmVsOjpMYW5ndWFnZTo6R2V0KCkgbWV0aG9kIHRvIGludGVyY2VwdCBtaXNzaW5nIHRyYW5zbGF0aW9ucwogICAgaWYgKCBLZXJuZWw6Okxhbmd1YWdlLT5jYW4oJ0dldCcpICYmICFLZXJuZWw6Okxhbmd1YWdlLT5jYW4oJ0dldE9yaWdpbmFsJykgKSB7CiAgICAgICAgKktlcm5lbDo6TGFuZ3VhZ2U6OkdldE9yaWdpbmFsID0gXCZLZXJuZWw6Okxhbmd1YWdlOjpHZXQ7CiAgICAgICAgKktlcm5lbDo6TGFuZ3VhZ2U6OkdldCA9IHN1YiB7CiAgICAgICAgICAgIG15ICgkU2VsZiwgJFdoYXQpID0gQF87CgogICAgICAgICAgICByZXR1cm4gaWYgIWRlZmluZWQgJFdoYXQ7CiAgICAgICAgICAgIHJldHVybiAnJyBpZiAkV2hhdCBlcSAnJzsKCiAgICAgICAgICAgIG15ICRSZXN1bHQgPSAkU2VsZi0+R2V0T3JpZ2luYWwoJFdoYXQpOwoKICAgICAgICAgICAgaWYgKCAkV2hhdCAmJiAkV2hhdCA9fiAvXiguKz8pIixcc3swLDF9IiguKj8pJC8gKSB7CiAgICAgICAgICAgICAgICAkV2hhdCA9ICQxOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoISRTZWxmLT57VHJhbnNsYXRpb259LT57JFdoYXR9KSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RyYW5zbGF0aW9uRGVidWdPYmplY3R9IHx8PSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6VHJhbnNsYXRpb25EZWJ1Zy0+bmV3KCAleyRTZWxmfSApOwogICAgICAgICAgICAgICAgJFNlbGYtPntUcmFuc2xhdGlvbkRlYnVnT2JqZWN0fS0+SW5zZXJ0V29yZChXaGF0ID0+ICRXaGF0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICAgICAgfTsKICAgIH0KCiAgICAjIE92ZXJyaWRlIEtlcm5lbDo6Q29uZmlnOjpHZXQoKSBtZXRob2QgdG8gaW50ZXJjZXB0IGNvbmZpZyBzdHJpbmdzCiAgICBpZiAoIEtlcm5lbDo6Q29uZmlnOjpEZWZhdWx0cy0+Y2FuKCdHZXQnKSAmJiAhS2VybmVsOjpDb25maWc6OkRlZmF1bHRzLT5jYW4oJ0dldE9yaWdpbmFsJykgKSB7CiAgICAgICAgKktlcm5lbDo6Q29uZmlnOjpEZWZhdWx0czo6R2V0T3JpZ2luYWwgPSBcJktlcm5lbDo6Q29uZmlnOjpEZWZhdWx0czo6R2V0OwogICAgICAgICpLZXJuZWw6OkNvbmZpZzo6RGVmYXVsdHM6OkdldCA9IHN1YiB7CiAgICAgICAgICAgIG15ICggJFNlbGYsICRXaGF0ICkgPSBAXzsKCiAgICAgICAgICAgICRTZWxmLT57Q29uZmlnTG9nT2JqZWN0fSB8fD0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbmZpZ0xvZy0+bmV3KAogICAgICAgICAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRTZWxmLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkQ2FsbGVyID0gY2FsbGVyKCk7CiAgICAgICAgICAgIGlmICgkU2VsZi0+eyRXaGF0fSkgewogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdMb2dPYmplY3R9LT5JbnNlcnRXb3JkKFdoYXQgPT4gIiRXaGF0O1RydWU7JENhbGxlcjsiLCBIb21lID0+ICRTZWxmLT57SG9tZX0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFNlbGYtPntDb25maWdMb2dPYmplY3R9LT5JbnNlcnRXb3JkKFdoYXQgPT4gIiRXaGF0O0ZhbHNlOyRDYWxsZXI7IiwgSG9tZSA9PiAkU2VsZi0+e0hvbWV9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5HZXRPcmlnaW5hbCgkV2hhdCk7CiAgICAgICB9OwogICAgfQp9CgoxOwo=
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJzaW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpPdXRwdXQ6OkZpbHRlckNvbnRlbnQjIyNGcmVkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlN1YnNjcmliZSB0aGUgb3V0cHV0IGZpbHRlciBhdCB0aGUgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok91dHB1dEZpbHRlckZyZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlYnVnIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUZW1wbGF0ZXMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFMTCI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJMb2FkZXI6OkFnZW50OjpDb21tb25KUyMjIzAwMC1GcmVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgSlMgZmlsZXMgdG8gYWx3YXlzIGJlIGxvYWRlZCBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6V2ViPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+dGhpcmRwYXJ0eS9qc2xpbnQvanNsaW50LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLmpzPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLkpTTGludC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5IVE1MQ2hlY2suanM8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iTG9hZGVyOjpDdXN0b21lcjo6Q29tbW9uSlMjIyMwMDAtRnJlZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIEpTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBjdXN0b21lciBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OldlYjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPnRoaXJkcGFydHkvanNsaW50L2pzbGludC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5qczwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5KU0xpbnQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkZyZWQuSFRNTENoZWNrLmpzPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkxvYWRlcjo6QWdlbnQ6OkNvbW1vbkNTUyMjIzAwMC1GcmVkIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxpc3Qgb2YgQ1NTIGZpbGVzIHRvIGFsd2F5cyBiZSBsb2FkZWQgZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJhbWV3b3JrPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6V2ViPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5GcmVkLmNzczwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJMb2FkZXI6OkN1c3RvbWVyOjpDb21tb25DU1MjIyMwMDAtRnJlZCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5MaXN0IG9mIENTUyBmaWxlcyB0byBhbHdheXMgYmUgbG9hZGVkIGZvciB0aGUgY3VzdG9tZXIgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyYW1ld29yazwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU6OldlYjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuRnJlZC5jc3M8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uc29sZVdpZHRoIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBGcmVkIGNvbnNvbGUgaW4gcGVyY2VudC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+NTAlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6Q29uc29sZU9wYWNpdHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgb3BhY2l0eSBvZiB0aGUgRnJlZCBjb25zb2xlLCBlLmcuIDAuOSBmb3IgMTAlIHRyYW5zcGFyZW5jeS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MC45PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjQ29uc29sZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgZnJlZCBjb25zb2xlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MTwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1NRTExvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IGFuIHJlYWx0aW1lIFNRTCBzdGF0ZW1lbnQgbG9nIGZ1bmN0aW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlNob3dzIGEgbGlzdCBvZiBhbGwgU1FMIHN0YXRlbWVudHMgZXhlY3V0ZWQgaW4gdGhpcyBjYWxsLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0hUTUxDaGVjayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IGFuIHJlYWx0aW1lIEhUTUwtY2hlY2tlci48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5WYWxpZGF0ZXMgdGhlIEhUTUwgaW4gdGhpcyBjYWxsLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0pTTGludCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IGEgSmF2YVNjcmlwdCBjb2RlIHF1YWxpdHkgY2hlY2tlci4gT25seSB3b3JrcyBpbiBDVlMgSGVhZCAvIE9UUlMgMyB3aXRoIGpRdWVyeS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5WYWxpZGF0ZXMgdGhlIEpTIGluIHRoaXMgY2FsbCBhbmQgc2hvd3MgZXJyb3JzIGFuZCBub3RpY2VzLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1RyYW5zbGF0aW9uRGVidWciIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0aGUgdHJhbnNsYXRpb24gZGVidWdnZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkNvcmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQWN0aXZlIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+U2hvd3MgYSBsaXN0IG9mIHVudHJhbnNsYXRlZCBzdHJpbmdzLiBQbGVhc2Ugbm90ZSB0aGF0IHN0cmluZ3MgZnJvbSBmcmFtZXdvcmsgQU5EIGN1c3RvbSBtb2R1bGVzIHdpbGwgYmUgc2hvd24uPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6TW9kdWxlIyMjQ29uZmlnTG9nIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlR1cm4gb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBjb25maWcgbG9nIG1lY2hhbmlzbS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5MaXN0cyBhbGwgY29uZmlndXJhdGlvbiBpdGVtcyB3aGljaCB3ZXJlIHVzZWQgaW4gdGhpcyBjYWxsIChhbmQgaG93IG9mdGVuIHRoZXkgd2VyZSBjYWxsZWQpLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI1NUREVSUkxvZyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgU1RERVJSTG9nLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkxpc3RzIGVudHJpZXMgZnJvbSB0aGUgU1RERVJSIGxvZy48L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcmVkOjpNb2R1bGUjIyNTZXNzaW9uRHVtcCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UdXJuIG9uIGlmIHlvdSB3YW50IHRvIHNlZSB0aGUgZGF0YSBpbiB0aGUgc2VydmVyc2lkZSBzZXNzaW9uIG9iamVjdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJBY3RpdmUiPjA8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5EdW1wcyBvdXQgYWxsIHNlc3Npb24gdmFyaWFibGVzLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6Ok1vZHVsZSMjI0VudkR1bXAiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+VHVybiBvbiBpZiB5b3Ugd2FudCB0byBzZWUgdGhlIGRhdGEgaW4gdGhlIGVudmlyb25tZW50IG9mIHRoZSBsYXlvdXQgb2JqZWN0LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkFjdGl2ZSI+MDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPkR1bXBzIG91dCBhbGwgZW52aXJvbm1lbnQgdmFyaWFibGVzLjwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNEZXZlbEZyZWQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGRldmVsIGZyZWQgb2JqZWN0IGluIHRoZSBhZG1pbiBhcmVhLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxGcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbj5BZG1pbjwvRGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8VGl0bGU+RnJlZC1EZXZlbG9wZXJ0b29sczwvVGl0bGU+CiAgICAgICAgICAgICAgICA8TmF2QmFyTmFtZT5BZG1pbjwvTmF2QmFyTmFtZT4KICAgICAgICAgICAgPC9Gcm9udGVuZE1vZHVsZVJlZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJDdXN0b21lckZyb250ZW5kOjpNb2R1bGUjIyNEZXZlbEZyZWQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGN1c3RvbWVyIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkN1c3RvbWVyOjpNb2R1bGVSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8RnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb24+QWRtaW48L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgICAgPFRpdGxlPkZyZWQtRGV2ZWxvcGVydG9vbHM8L1RpdGxlPgogICAgICAgICAgICAgICAgPE5hdkJhck5hbWU+QWRtaW48L05hdkJhck5hbWU+CiAgICAgICAgICAgIDwvRnJvbnRlbmRNb2R1bGVSZWc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iUHVibGljRnJvbnRlbmQ6Ok1vZHVsZSMjI0RldmVsRnJlZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgcHVibGljIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OlB1YmxpYzo6TW9kdWxlUmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEZyb250ZW5kTW9kdWxlUmVnPgogICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uPkFkbWluPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDxUaXRsZT5GcmVkLURldmVsb3BlcnRvb2xzPC9UaXRsZT4KICAgICAgICAgICAgICAgIDxOYXZCYXJOYW1lPkFkbWluPC9OYXZCYXJOYW1lPgogICAgICAgICAgICA8L0Zyb250ZW5kTW9kdWxlUmVnPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkZyZWQ6OkNvbmZpZ0xvZyMjI09yZGVyQnkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+V2hpY2ggb3JkZXIgc2hvdWxkIHRoZSBjb25maWcgbG9nIGRhdGEgaGF2ZT88L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29uZmlnTG9nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIzIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMyI+Q2FsbHM8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPkNvbmZpZzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMiI+UGFja2FnZTwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iREI6OkRCTGlzdGVuZXIjIyMwMDAtRnJlZFNRTExvZyIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db21tYW5kIGZvciBnZW5lcmF0aW5nIGEgSFRNTCB2aWV3LjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPkZyZWQ8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik9iamVjdCI+S2VybmVsOjpTeXN0ZW06OkRCTGlzdGVuZXI6OkZyZWRTUUxMb2c8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJGcm9udGVuZDo6T3V0cHV0OjpGaWx0ZXJFbGVtZW50UG9zdCMjI091dHB1dEZpbHRlclBvc3RTaG93U3lzdGVtTmFtZUluSGVhZGVyIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPk91dHB1dCBmaWx0ZXIgdG8gc2hvdyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBzeXN0ZW0gaW4gdGhlIHN5c3RlbSBoZWFkZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+RnJlZDwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPk91dHB1dEZpbHRlcjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6T3V0cHV0OjpIVE1MOjpPdXRwdXRGaWx0ZXJQb3N0U2hvd1N5c3RlbU5hbWVJbkhlYWRlcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGVtcGxhdGVzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJIZWFkZXIiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6U3lzdGVtTmFtZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5DdXN0b21pemFibGUgc3lzdGVtIG5hbWUuIElmIGVtcHR5LCBjb25maWcgaXRlbSAnSG9tZScgaXMgYmVpbmcgdXNlZCBmb3IgZGlzcGxheS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRnJlZDo6QmFja2dyb3VuZENvbG9yIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlRoaXMgb3B0aW9uIGRlZmluZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzeXRlbSBuYW1lIGJveC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5GcmVkPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+I0Q2MzUzNTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIEtlcm5lbC9Nb2R1bGVzL0RldmVsRnJlZC5wbSAtIGEgc3BlY2lhbCBkZXZlbG9wZXIgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkRldmVsRnJlZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpTeXNDb25maWc7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIE9iamVjdHMKICAgIE9CSkVDVDoKICAgIGZvciBteSAkT2JqZWN0ICgKICAgICAgICBxdygKICAgICAgICBQYXJhbU9iamVjdCBEQk9iamVjdCAgICAgTG9nT2JqZWN0IENvbmZpZ09iamVjdAogICAgICAgIE1haW5PYmplY3QgIExheW91dE9iamVjdCBUaW1lT2JqZWN0IEVuY29kZU9iamVjdAogICAgICAgICkKICAgICAgICApCiAgICB7CiAgICAgICAgaWYgKCAkUGFyYW17JE9iamVjdH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH07CiAgICAgICAgICAgIG5leHQgT0JKRUNUOwogICAgICAgIH0KICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZhdGFsRXJyb3IoIE1lc3NhZ2UgPT4gIkdvdCBubyAkT2JqZWN0ISIgKTsKICAgIH0KCiAgICAkU2VsZi0+e1N5c0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnLT5uZXcoICV7JFNlbGZ9ICk7CgogICAgJFNlbGYtPntGcmVkT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1N1YmFjdGlvbn0gPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2hvdyB0aGUgb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAhJFNlbGYtPntTdWJhY3Rpb259ICkgewogICAgICAgIG15ICRWZXJzaW9uID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1ZlcnNpb24nKTsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKAogICAgICAgICAgICBNZXNzYWdlID0+ICdTb3JyeSwgdGhpcyBwYWdlIGlzIGN1cnJlbnRseSB1bmRlciBkZXZlbG9wbWVudCEnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZmFzdCBoYW5kbGUgZm9yIGZyZWQgc2V0dGluZ3MKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnU2V0dGluZycgKSB7CgogICAgICAgICMgZ2V0IGhhc2hyZWYgd2l0aCBhbGwgRnJlZC1wbHVnaW5zCiAgICAgICAgbXkgJE1vZHVsZUZvclJlZiA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpNb2R1bGUnKTsKCiAgICAgICAgIyBUaGUgQ29uc29sZSBjYW4ndCBiZSBkZWFjdGl2YXRlZAogICAgICAgIGRlbGV0ZSAkTW9kdWxlRm9yUmVmLT57Q29uc29sZX07CgogICAgICAgICMgbG9vcCBvdmVyIE1vZHVsZXMgd2hpY2ggY2FuIGJlIGFjdGl2YXRlZCBhbmQgZGVhY3RpdmF0ZWQKICAgICAgICBmb3IgbXkgJE1vZHVsZSAoIHNvcnQga2V5cyAleyRNb2R1bGVGb3JSZWZ9ICkgewogICAgICAgICAgICBteSAkQ2hlY2tlZCA9ICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gPyAnY2hlY2tlZD0iY2hlY2tlZCInIDogJyc7CiAgICAgICAgICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdGcmVkTW9kdWxlJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEZyZWRNb2R1bGUgID0+ICRNb2R1bGUsCiAgICAgICAgICAgICAgICAgICAgQ2hlY2tlZCAgICAgPT4gJENoZWNrZWQsCiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gPT4gJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57RGVzY3JpcHRpb259IHx8ICcnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgUHJvdmlkZSBhIGxpbmsgdG8gdGhlIFN5c0NvbmZpZyBvbmx5IGZvciBwbHVnaW5zIHRoYXQgaGF2ZSBjb25maWcgb3B0aW9ucwogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCJGcmVkOjokTW9kdWxlIikgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0NvbmZpZycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1vZHVsZU5hbWUgPT4gJE1vZHVsZSwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBidWlsZCBvdXRwdXQKICAgICAgICBteSAkT3V0cHV0ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+ICdGcmVkLVNldHRpbmcnLAogICAgICAgICAgICBUeXBlICA9PiAnU21hbGwnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IHslUGFyYW19LAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNldHRpbmcnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPkZvb3RlcigKICAgICAgICAgICAgVHlwZSA9PiAnU21hbGwnLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGZhc3QgaGFuZGxlIGZvciBmcmVkIHNldHRpbmdzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1NldHRpbmdBY3Rpb24nICkgewogICAgICAgIG15ICRNb2R1bGVGb3JSZWYgICAgICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpOwogICAgICAgIG15IEBTZWxlY3RlZEZyZWRNb2R1bGVzID0gJFNlbGYtPntQYXJhbU9iamVjdH0tPkdldEFycmF5KCBQYXJhbSA9PiAnRnJlZE1vZHVsZScgKTsKICAgICAgICBteSAlU2VsZWN0ZWRNb2R1bGVzICAgICA9IG1hcCB7ICRfID0+IDE7IH0gQFNlbGVjdGVkRnJlZE1vZHVsZXM7CiAgICAgICAgbXkgJFVwZGF0ZUZsYWc7CiAgICAgICAgZGVsZXRlICRNb2R1bGVGb3JSZWYtPntDb25zb2xlfTsKCiAgICAgICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXskTW9kdWxlRm9yUmVmfSApIHsKCiAgICAgICAgICAgICMgdXBkYXRlIHRoZSBzeXNjb25maWcgc2V0dGluZ3MKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJE1vZHVsZUZvclJlZi0+eyRNb2R1bGV9LT57QWN0aXZlfSAmJiAhJFNlbGVjdGVkTW9kdWxlc3skTW9kdWxlfQogICAgICAgICAgICAgICAgfHwKICAgICAgICAgICAgICAgICEkTW9kdWxlRm9yUmVmLT57JE1vZHVsZX0tPntBY3RpdmV9ICYmICRTZWxlY3RlZE1vZHVsZXN7JE1vZHVsZX0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIyB1cGRhdGUgY2VydGFpbiB2YWx1ZXMKICAgICAgICAgICAgICAgICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gPSAkU2VsZWN0ZWRNb2R1bGVzeyRNb2R1bGV9IHx8IDA7CgogICAgICAgICAgICAgICAgJFNlbGYtPntTeXNDb25maWdPYmplY3R9LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgPT4gIkZyZWQ6Ok1vZHVsZSMjIyRNb2R1bGUiLAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkVXBkYXRlRmxhZyA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkU2VsZi0+e0xheW91dE9iamVjdH0tPlBvcHVwQ2xvc2UoCiAgICAgICAgICAgIFJlbG9hZCA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkQ29uZmlnTG9nLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZENvbmZpZ0xvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBjb25maWcgbG9nIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkQ29uZmlnTG9nLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgdHJhbnNsYXRpb25kZWJ1Z2dpbmcgbG9nCgogICAgJExheW91dE9iamVjdC0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICBNb2R1bGVzUmVmID0+ICRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVSZWZ9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVSZWYhJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAkSFRNTExpbmVzID0gJyc7CiAgICBmb3IgbXkgJExpbmUgKCBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CgogICAgICAgIGZvciBteSAkVEQgKCBAeyRMaW5lfSApIHsKICAgICAgICAgICAgJFREID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5Bc2NpaTJIdG1sKCBUZXh0ID0+ICRURCApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkTGluZS0+WzFdIGVxICdUcnVlJyApIHsKICAgICAgICAgICAgJExpbmUtPlsxXSA9ICcnOwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRDb3VudCAoIDAgLi4gMyApIHsKICAgICAgICAgICAgJExpbmUtPlskQ291bnRdIHx8PSAnJzsKICAgICAgICB9CgogICAgICAgICRIVE1MTGluZXMgLj0gIiAgICAgICAgPHRyPlxuIgogICAgICAgICAgICAuICIgICAgICAgICAgPHRkIGFsaWduPVwicmlnaHRcIj4kTGluZS0+WzNdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICAgIDx0ZD4kTGluZS0+WzBdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICAgIDx0ZD4kTGluZS0+WzFdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICAgIDx0ZD4kTGluZS0+WzJdPC90ZD5cbiIKICAgICAgICAgICAgLiAiICAgICAgICA8L3RyPiI7CiAgICB9CgogICAgcmV0dXJuIGlmICEkSFRNTExpbmVzOwoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkQ29uZmlnTG9nJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkQ29uc29sZS5wbSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRDb25zb2xlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHZhcnMgcXcoQElTQSAkVkVSU0lPTik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRDb25zb2xlIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIGNvbnNvbGUgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRDb25zb2xlLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgU1RERVJSIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGNvbnNvbGUgdGFibGUKICAgIG15ICRDb25zb2xlCiAgICAgICAgPSAnQWN0aXZhdGVkIG1vZHVsZXM6IDxzdHJvbmc+JwogICAgICAgIC4gKCBqb2luICcgLSAnLCBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKQogICAgICAgIC4gJzwvc3Ryb25nPic7CgogICAgcmV0dXJuIDEgaWYgISRQYXJhbXtNb2R1bGVSZWZ9LT57U3RhdHVzfTsKCiAgICBpZiAoICRQYXJhbXtNb2R1bGVSZWZ9LT57U2V0dGluZ30gKSB7CiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2V0dGluZycsCiAgICAgICAgKTsKICAgIH0KCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZENvbnNvbGUnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIFRleHQgICAgPT4gJENvbnNvbGUsCiAgICAgICAgICAgIE1vZFBlcmwgPT4gX01vZFBlcmwoKSwKICAgICAgICAgICAgUGVybCAgICA9PiBzcHJpbnRmKCAiJXZkIiwgJF5WICksCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCnN1YiBfTW9kUGVybCB7CgogICAgIyBmaW5kIG91dCwgaWYgbW9kcGVybCBpcyB1c2VkCiAgICBteSAkTW9kUGVybCA9ICdpcyBub3QgYWN0aXZhdGVkJzsKCiAgICAjIyBubyBjcml0aWMKICAgIGlmICggZXhpc3RzICRFTlZ7TU9EX1BFUkx9ICYmIGRlZmluZWQgJG1vZF9wZXJsOjpWRVJTSU9OICkgewogICAgICAgICRNb2RQZXJsID0gJG1vZF9wZXJsOjpWRVJTSU9OOwogICAgfQogICAgIyMgdXNlIGNyaXRpYwoKICAgIHJldHVybiAkTW9kUGVybDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkRW52RHVtcC5wbSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRFbnZEdW1wOwojIyBub2ZpbHRlcihUaWR5QWxsOjpQbHVnaW46Ok9UUlM6OlBlcmw6OkR1bXBlcikKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBEYXRhOjpEdW1wZXI7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRFbnZEdW1wIC0gc2hvdyBkdW1wIG9mIHRoZSBlbnZpcm9ubWVudCByZWYsIGRhdGEgZm9yICRFbnYgaW4gZHRsCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBsYXlvdXQgZW52IGR1bXAgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRFbnZEdW1wLT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpHZXQgdGhlIHNlc3Npb24gZGF0YSBhbmQgY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHNlc3Npb24gZHVtcAoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcDo6RGF0YUdldCgpIGlzIG5vdCB1c2VkLAogICAgIyBhcyB0aGUgZGF0YSBvZiBpbnRlcmVzdCBpcyBub3QgZWFzaWx5IGF2YWlsYWJsZSB0aGVyZS4KICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICV7ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0VudlJlZn0gfSApIHsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRW52RGF0YVJvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJEtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0VudlJlZn0tPnskS2V5fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgb3V0cHV0IHRoZSBodG1sCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZEVudkR1bXAnLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkSFRNTENoZWNrLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZEhUTUxDaGVjazsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSFRNTENoZWNrIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIEhUTUwgY2hlY2sgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTVERFUlJMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCBMYXlvdXRPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBTVERFUlIgbG9nCgogICAgJExheW91dE9iamVjdC0+Q3JlYXRlRnJlZE91dHB1dCgKICAgICAgICBNb2R1bGVzUmVmID0+ICRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEhUTUxMaW5lcyA9ICcnOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRIVE1MQ2hlY2snLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIEhUTUxMaW5lcyA9PiAkSFRNTExpbmVzLAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkSlNMaW50LnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZEpTTGludDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50IC0gRnJlZCBtb2R1bGUgZm9yIEpTTGludCBjaGVja3MKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGxheW91dCBmdW5jdGlvbnMgb2YgSlNMaW50IG9iamVjdAoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkSlNMaW50LT5uZXcoCiAgICAgICAgJVBhcmFtLAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTGF5b3V0T2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ3JlYXRlRnJlZE91dHB1dCgpCgpjcmVhdGUgdGhlIG91dHB1dCBvZiB0aGUgSlNMaW50IG1vZHVsZQoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRKU0xpbnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7fSwKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU2Vzc2lvbkR1bXAucG0gLSBsYXlvdXQgYmFja2VuZCBtb2R1bGUKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkU2Vzc2lvbkR1bXA7CiMjIG5vZmlsdGVyKFRpZHlBbGw6OlBsdWdpbjo6T1RSUzo6UGVybDo6RHVtcGVyKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIERhdGE6OkR1bXBlcjsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNlc3Npb25EdW1wIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRoZSBzZXNzaW9uIGR1bXAgb2JqZWN0Cgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTZXNzaW9uRHVtcC0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IExheW91dE9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKR2V0IHRoZSBzZXNzaW9uIGRhdGEgYW5kIGNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBzZXNzaW9uIGR1bXAKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgRGF0YSBpcyBnZW5lcmF0ZWQgaGVyZSwgYXMgaXQgaXMgbm90IGF2YWlsYWJsZSBpbiBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U2Vzc2lvbkR1bXAKICAgIG15ICRTZXNzaW9uSUQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPntFbnZSZWZ9LT57U2Vzc2lvbklEfTsKICAgIG15ICVTZXNzaW9uRGF0YTsKICAgIGlmICgkU2Vzc2lvbklEKSB7CiAgICAgICAgJVNlc3Npb25EYXRhCiAgICAgICAgICAgID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT57U2Vzc2lvbk9iamVjdH0tPkdldFNlc3Npb25JRERhdGEoIFNlc3Npb25JRCA9PiAkU2Vzc2lvbklEICk7CiAgICB9CgogICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVNlc3Npb25EYXRhICkgewoKICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdTZXNzaW9uRGF0YVJvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJEtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRTZXNzaW9uRGF0YXskS2V5fSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICMgb3V0cHV0IHRoZSBodG1sCiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e091dHB1dH0gPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZFNlc3Npb25EdW1wJywKICAgICk7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU1RERVJSTG9nLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZyAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgbGF5b3V0IGZ1bmN0aW9ucyBvZiBTVERFUlIgbG9nIG9iamVjdHMKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgJEJhY2tlbmRPYmplY3QgPSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNUREVSUkxvZy0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IExheW91dE9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIFNUREVSUiBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHJldHVybiBpZiAhJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfTsKICAgIHJldHVybiBpZiByZWYgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSBuZSAnQVJSQVknOwoKICAgICMgY3JlYXRlIGh0bWwgc3RyaW5nCiAgICBteSAkSFRNTExpbmVzOwogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSBAeyAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9IH0gKSB7CiAgICAgICAgJEhUTUxMaW5lcyAuPSAkTGluZTsKICAgIH0KCiAgICByZXR1cm4gaWYgISRIVE1MTGluZXM7CgogICAgIyBvdXRwdXQgdGhlIGh0bWwKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57T3V0cHV0fSA9ICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnRGV2ZWxGcmVkU1RERVJSTG9nJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkU1FMTG9nLnBtIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6RnJlZFNRTExvZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkU1FMTG9nIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIFNRTCBsb2cgbW9kdWxlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgICRCYWNrZW5kT2JqZWN0ID0gS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRTUUxMb2ctPm5ldygKICAgICAgICAlUGFyYW0sCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCBMYXlvdXRPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSB0cmFuc2xhdGlvbmRlYnVnZ2luZyBsb2cKCiAgICAkTGF5b3V0T2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgIE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIENyZWF0ZUZyZWRPdXRwdXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZVJlZn0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIE1vZHVsZVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciBteSAkTGluZSAoIEB7ICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gfSApIHsKCiAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBUaW1lICAgICAgICAgICAgPT4gJExpbmUtPls0XSAqIDEwMDAsCiAgICAgICAgICAgICAgICBFcXVhbFN0YXRlbWVudHMgPT4gJExpbmUtPls1XSB8fCAnJywKICAgICAgICAgICAgICAgIFN0YXRlbWVudCAgICAgICA9PiAkTGluZS0+WzFdLAogICAgICAgICAgICAgICAgUGFja2FnZSAgICAgICAgID0+ICRMaW5lLT5bM10sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgZm9yIG15ICRMaW5lICggc3BsaXQoIC87LywgJExpbmUtPlszXSApICkgewogICAgICAgICAgICAkU2VsZi0+e0xheW91dE9iamVjdH0tPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU3RhY2tUcmFjZScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBTdGFja1RyYWNlID0+ICRMaW5lLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJExpbmUtPlsyXSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1Jvd0JpbmRQYXJhbWV0ZXJzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIEJpbmRQYXJhbWV0ZXJzID0+ICRMaW5lLT5bMl0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRTUUxMb2cnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgIEFsbFN0YXRlbWVudHMgICAgPT4gJFBhcmFte01vZHVsZVJlZn0tPntBbGxTdGF0ZW1lbnRzfSwKICAgICAgICAgICAgRG9TdGF0ZW1lbnRzICAgICA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e0RvU3RhdGVtZW50c30sCiAgICAgICAgICAgIFNlbGVjdFN0YXRlbWVudHMgPT4gJFBhcmFte01vZHVsZVJlZn0tPntTZWxlY3RTdGF0ZW1lbnRzfSwKICAgICAgICAgICAgVGltZSAgICAgICAgICAgICA9PiAkUGFyYW17TW9kdWxlUmVmfS0+e1RpbWV9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9GcmVkVHJhbnNsYXRpb25EZWJ1Zy5wbSAtIGxheW91dCBiYWNrZW5kIG1vZHVsZQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRUcmFuc2xhdGlvbkRlYnVnOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHZhcnMgcXcoQElTQSAkVkVSU0lPTik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkZyZWRUcmFuc2xhdGlvbkRlYnVnIC0gbGF5b3V0IGJhY2tlbmQgbW9kdWxlCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBsYXlvdXQgZnVuY3Rpb25zIG9mIHRyYW5zbGF0aW9uIGRlYnVnIG1vZHVsZQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICAkQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkVHJhbnNsYXRpb25EZWJ1Zy0+bmV3KAogICAgICAgICVQYXJhbSwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IExheW91dE9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENyZWF0ZUZyZWRPdXRwdXQoKQoKY3JlYXRlIHRoZSBvdXRwdXQgb2YgdGhlIHRyYW5zbGF0aW9uZGVidWdnaW5nIGxvZwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgTW9kdWxlc1JlZiA9PiAkTW9kdWxlc1JlZiwKICAgICk7Cgo9Y3V0CgpzdWIgQ3JlYXRlRnJlZE91dHB1dCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17TW9kdWxlUmVmfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJEhUTUxMaW5lcyA9ICcnOwogICAgZm9yIG15ICRMaW5lICggQHsgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSB9ICkgewogICAgICAgICRIVE1MTGluZXMgLj0gIjxzcGFuPiRMaW5lPC9zcGFuPiI7CiAgICB9CgogICAgcmV0dXJuIDEgaWYgISRIVE1MTGluZXM7CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntPdXRwdXR9ID0gJFNlbGYtPntMYXlvdXRPYmplY3R9LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdEZXZlbEZyZWRUcmFuc2xhdGlvbkRlYnVnJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICBIVE1MTGluZXMgPT4gJEhUTUxMaW5lcywKICAgICAgICB9LAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9MYXlvdXRGcmVkLnBtIC0gcHJvdmlkZXMgZ2VuZXJpYyBIVE1MIG91dHB1dCBmb3IgZnJlZAojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dEZyZWQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgdmFycyBxdyhASVNBICRWRVJTSU9OKTsKCj1vdmVyCgo9aXRlbSBDcmVhdGVGcmVkT3V0cHV0KCkKCmNyZWF0ZSB0aGUgb3V0cHV0IG9mIHRoZSBzZXZlcmFsIGZyZWQgbW9kdWxlcwoKICAgICRMYXlvdXRPYmplY3QtPkNyZWF0ZUZyZWRPdXRwdXQoCiAgICAgICAgRnJlZE1vZHVsZXNSZWYgPT4gJEZyZWRNb2R1bGVzUmVmLAogICAgKTsKCj1jdXQKCnN1YiBDcmVhdGVGcmVkT3V0cHV0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtGcmVkTW9kdWxlc1JlZn0gfHwgcmVmICRQYXJhbXtGcmVkTW9kdWxlc1JlZn0gbmUgJ0hBU0gnICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBGcmVkTW9kdWxlc1JlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIE1PRFVMRU5BTUU6CiAgICBmb3IgbXkgJE1vZHVsZU5hbWUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0ZyZWRNb2R1bGVzUmVmfSB9ICkgewoKICAgICAgICAjIGxvYWQgYmFja2VuZAogICAgICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJFNlbGYtPl9Mb2FkTGF5b3V0QmFja2VuZCggTW9kdWxlTmFtZSA9PiAkTW9kdWxlTmFtZSApOwoKICAgICAgICAjIGdldCBtb2R1bGUgZGF0YQogICAgICAgIG5leHQgTU9EVUxFTkFNRSBpZiAhJEJhY2tlbmRPYmplY3Q7CgogICAgICAgICRCYWNrZW5kT2JqZWN0LT5DcmVhdGVGcmVkT3V0cHV0KAogICAgICAgICAgICBNb2R1bGVSZWYgPT4gJFBhcmFte0ZyZWRNb2R1bGVzUmVmfS0+eyRNb2R1bGVOYW1lfSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfTG9hZExheW91dEJhY2tlbmQoKQoKbG9hZCBhIHNwZWNpYWwgZnJlZCBsYXlvdXQgYmFja2VuZHMKCiAgICAkQmFja2VuZE9iamVjdCA9ICRMYXlvdXRPYmplY3QtPl9Mb2FkTGF5b3V0QmFja2VuZCgKICAgICAgICBNb2R1bGVOYW1lID0+ICRNb2R1bGVOYW1lLAogICAgKTsKCj1jdXQKCnN1YiBfTG9hZExheW91dEJhY2tlbmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte01vZHVsZU5hbWV9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBNb2R1bGVOYW1lIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBsb2FkIGJhY2tlbmQKICAgIG15ICRHZW5lcmljTW9kdWxlID0gJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpGcmVkJyAuICRQYXJhbXtNb2R1bGVOYW1lfTsKICAgIGlmICggJFNlbGYtPntNYWluT2JqZWN0fS0+UmVxdWlyZSgkR2VuZXJpY01vZHVsZSkgKSB7CgogICAgICAgIG15ICRCYWNrZW5kT2JqZWN0ID0gJEdlbmVyaWNNb2R1bGUtPm5ldygKICAgICAgICAgICAgJXskU2VsZn0sCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgTGF5b3V0T2JqZWN0ID0+ICRTZWxmLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkQmFja2VuZE9iamVjdCBpZiAkQmFja2VuZE9iamVjdDsKICAgIH0KCiAgICByZXR1cm47Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9PdXRwdXRGaWx0ZXJGcmVkLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok91dHB1dDo6SFRNTDo6T3V0cHV0RmlsdGVyRnJlZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIFVSSTo6RXNjYXBlOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6T3V0cHV0OjpIVE1MOjpPdXRwdXRGaWx0ZXJGcmVkCgo9aGVhZDEgU1lOT1BTSVMKCmEgb3V0cHV0IGZpbHRlciBtb2R1bGUgc3BlY2lhbGx5IGZvciBkZXZlbG9wZXIKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoTWFpbk9iamVjdCBDb25maWdPYmplY3QgTG9nT2JqZWN0ICkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAkU2VsZi0+e0xheW91dE9iamVjdH0gPSAkUGFyYW17TGF5b3V0T2JqZWN0fTsKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcGVyaGFwcyBubyBvdXRwdXQgaXMgZ2VuZXJhdGVkCiAgICBkaWUgJ0ZyZWQ6IEF0IHRoZSBtb21lbnQsIHlvdXIgY29kZSBnZW5lcmF0ZXMgbm8gb3V0cHV0IScgaWYgISRQYXJhbXtEYXRhfTsKCiAgICAjIGRvIG5vdCBzaG93IHRoZSBkZWJ1ZyBiYXIgaW4gRnJlZCdzIHNldHRpbmcgd2luZG93CiAgICBpZiAoICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+e0FjdGlvbn0gJiYgJFNlbGYtPntMYXlvdXRPYmplY3R9LT57QWN0aW9ufSBlcSAnRGV2ZWxGcmVkJyApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgb3V0cHV0IGlzIGFuIGF0dGFjaG1lbnQgZG93bmxvYWQgb3IgQUpBWCByZXF1ZXN0CiAgICBpZiAoCiAgICAgICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gL15Db250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50Oy9taQogICAgICAgIHx8ICR7ICRQYXJhbXtEYXRhfSB9ID1+IC9eQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOy9taQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgaXQgaXMgYSByZWRpcmVjdAogICAgaWYgKAogICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IC9eU3RhdHVzOiAzMDIgTW92ZWQvbWkKICAgICAgICAmJiAkeyAkUGFyYW17RGF0YX0gfSA9fiAvXmxvY2F0aW9uOi9taQogICAgICAgICYmIGxlbmd0aCggJHsgJFBhcmFte0RhdGF9IH0gKSA8IDgwMAogICAgICAgICkKICAgIHsKICAgICAgICBwcmludCBTVERFUlIgIlJFRElSRUNUXG4iOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgICMgZG8gbm90aGluZyBpZiBpdCBpcyBmcmVkIGl0IHNlbGYKICAgIGlmICggJHsgJFBhcmFte0RhdGF9IH0gPX4gbXtGcmVkLVNldHRpbmc8XC90aXRsZT59bXN4ICkgewogICAgICAgIHByaW50IFNUREVSUiAiQ0hBTkdFIEZSRUQgU0VUVElOR1xuIjsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAjIGRvIG5vdGhpbmcgaWYgaXQgZG9lcyBub3QgY29udGFpbiB0aGUgPGh0bWw+IGVsZW1lbnQsIG1pZ2h0IGJlCiAgICAjIGFuIGVtYmVkZGVkIGxheW91dCByZW5kZXJpbmcKICAgIGlmICggJHsgJFBhcmFte0RhdGF9IH0gIX4gbXs8aHRtbFtePl0qPn1tc3ggKSB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBnZXQgZGF0YSBvZiB0aGUgYWN0aXZhdGVkIG1vZHVsZXMKICAgIG15ICRNb2R1bGVGb3JSZWYgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpNb2R1bGUnKTsKICAgIG15ICRNb2R1bGVzRGF0YVJlZiA9IHt9OwogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXskTW9kdWxlRm9yUmVmfSApIHsKICAgICAgICBpZiAoICRNb2R1bGVGb3JSZWYtPnskTW9kdWxlfS0+e0FjdGl2ZX0gKSB7CiAgICAgICAgICAgICRNb2R1bGVzRGF0YVJlZi0+eyRNb2R1bGV9ID0ge307CiAgICAgICAgfQogICAgfQoKICAgIG15ICRGcmVkT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkZyZWQtPm5ldyggJXskU2VsZn0gKTsKCiAgICAjIGxvYWQgdGhlIGFjdGl2YXRlZCBtb2R1bGVzCiAgICAkRnJlZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBGcmVkTW9kdWxlc1JlZiA9PiAkTW9kdWxlc0RhdGFSZWYsCiAgICAgICAgSFRNTERhdGFSZWYgICAgPT4gJFBhcmFte0RhdGF9LAogICAgKTsKCiAgICAjIGNyZWF0ZSBmcmVkcyBvdXRwdXQKICAgICRTZWxmLT57TGF5b3V0T2JqZWN0fS0+Q3JlYXRlRnJlZE91dHB1dCggRnJlZE1vZHVsZXNSZWYgPT4gJE1vZHVsZXNEYXRhUmVmICk7CgogICAgIyBidWlsZCB0aGUgY29udGVudCBzdHJpbmcKICAgIG15ICRPdXRwdXQgPSAnJzsKICAgIGlmICggJE1vZHVsZXNEYXRhUmVmLT57Q29uc29sZX0tPntPdXRwdXR9ICkgewogICAgICAgICRPdXRwdXQgLj0gJE1vZHVsZXNEYXRhUmVmLT57Q29uc29sZX0tPntPdXRwdXR9OwogICAgICAgIGRlbGV0ZSAkTW9kdWxlc0RhdGFSZWYtPntDb25zb2xlfTsKICAgIH0KICAgIGZvciBteSAkTW9kdWxlICggc29ydCBrZXlzICV7JE1vZHVsZXNEYXRhUmVmfSApIHsKICAgICAgICAkT3V0cHV0IC49ICRNb2R1bGVzRGF0YVJlZi0+eyRNb2R1bGV9LT57T3V0cHV0fSB8fCAnJzsKICAgIH0KCiAgICBteSAkSlNPdXRwdXQgPSAnJzsKICAgICRPdXRwdXQgPX4gc3soPHNjcmlwdC4rPy9zY3JpcHQ+KX17CiAgICAgICAgJEpTT3V0cHV0IC49ICQxOwogICAgICAgICIiOwogICAgfXNteGVnOwoKICAgICMgUHV0IG91dHB1dCBpbiB0aGUgRnJlZCBDb250YWluZXIKICAgICRPdXRwdXQgPSAkU2VsZi0+e0xheW91dE9iamVjdH0tPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0RldmVsRnJlZENvbnRhaW5lcicsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgRGF0YSA9PiAkT3V0cHV0CiAgICAgICAgfSwKICAgICk7CgogICAgIyBpbmNsdWRlIHRoZSBmcmVkIG91dHB1dCBpbiB0aGUgb3JpZ2luYWwgb3V0cHV0CiAgICBpZiAoICR7ICRQYXJhbXtEYXRhfSB9ICF+IHMvKFw8Ym9keSh8Lis/KVw+KS8kMVxuJE91dHB1dFxuXG5cblxuL214ICkgewogICAgICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHMvXiguKS9cbiRPdXRwdXRcblxuXG5cbiQxL214OwogICAgfQoKICAgICMgSW5qZWN0IEpTIGF0IHRoZSBlbmQgb2YgdGhlIGJvZHkKICAgICR7ICRQYXJhbXtEYXRhfSB9ID1+IHN7PC9ib2R5Pn17JEpTT3V0cHV0XG5cdDwvYm9keT59c214OwoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9PdXRwdXQvSFRNTC9PdXRwdXRGaWx0ZXJQb3N0U2hvd1N5c3RlbU5hbWVJbkhlYWRlci5wbQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpPdXRwdXQ6OkhUTUw6Ok91dHB1dEZpbHRlclBvc3RTaG93U3lzdGVtTmFtZUluSGVhZGVyOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEN3ZDsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBjaGVjayBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICROZWVkZWQgKHF3KCBNYWluT2JqZWN0IENvbmZpZ09iamVjdCBQYXJhbU9iamVjdCApKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPnskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMYXlvdXRPYmplY3R9LT5GYXRhbEVycm9yKCBNZXNzYWdlID0+ICJHb3Qgbm8gJE5lZWRlZCEiICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRlbXBsYXRlIG5hbWUKICAgIG15ICRUZW1wbGF0ZU5hbWUgPSAkUGFyYW17VGVtcGxhdGVGaWxlfSB8fCAnJzsKCiAgICByZXR1cm4gMSBpZiAhJFRlbXBsYXRlTmFtZTsKCiAgICAjIGdldCB2YWxpZCBtb2R1bGVzCiAgICBteSAkVmFsaWRUZW1wbGF0ZXMgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJvbnRlbmQ6Ok91dHB1dDo6RmlsdGVyRWxlbWVudFBvc3QnKQogICAgICAgIC0+eydPdXRwdXRGaWx0ZXJQb3N0U2hvd1N5c3RlbU5hbWVJbkhlYWRlcid9LT57VGVtcGxhdGVzfTsKCiAgICAjIGFwcGx5IG9ubHkgaWYgdGVtcGxhdGUgaXMgdmFsaWQgaW4gY29uZmlnCiAgICByZXR1cm4gMSBpZiAoICEkVmFsaWRUZW1wbGF0ZXMtPnskVGVtcGxhdGVOYW1lfSApOwoKICAgICMgZ2V0IGNvbmZpZwogICAgbXkgJFN5c3RlbU5hbWUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJlZDo6U3lzdGVtTmFtZScpCiAgICAgICAgfHwgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKTsKICAgIG15ICRCYWNrZ3JvdW5kQ29sb3IgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJlZDo6QmFja2dyb3VuZENvbG9yJykKICAgICAgICB8fCAncmVkJzsKCiAgICAjIEFkZCBjdXJyZW50IGdpdCBicmFuY2ggdG8gb3V0cHV0CiAgICBteSAkSG9tZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJyk7CiAgICBpZiAoIC1kICIkSG9tZS8uZ2l0IiApIHsKICAgICAgICBteSAkT2xkV29ya2luZ0RpciA9IGdldGN3ZCgpOwogICAgICAgIGNoZGlyKCRIb21lKTsKICAgICAgICBteSAkR2l0UmVzdWx0ID0gYGdpdCBicmFuY2hgOwogICAgICAgIGNoZGlyKCRPbGRXb3JraW5nRGlyKTsKCiAgICAgICAgaWYgKCRHaXRSZXN1bHQpIHsKICAgICAgICAgICAgbXkgKCRCcmFuY2hOYW1lKSA9ICRHaXRSZXN1bHQgPX4gbS9eWypdIFxzKyAoXFMrKS94bXM7CiAgICAgICAgICAgICRTeXN0ZW1OYW1lIC49ICIgKCRCcmFuY2hOYW1lKSI7CiAgICAgICAgfQogICAgfQoKICAgICMgaW5qZWN0IHN5c3RlbSBuYW1lIHJpZ2h0IGludG8gdGhlIG1pZGRsZSBvZiB0aGUgaGVhZGVyIHRvIGFsd2F5cyBoYXZlIHRoZSBhdHRlbnRpb24KICAgIG15ICRTZWFyY2ggID0gJyg8ZGl2IFxzKiBpZD0iTG9nbyI+PC9kaXY+KSc7CiAgICBteSAkUmVwbGFjZSA9IDw8IkZJTFRFUklOUFVUX0hUTUwiOwo8ZGl2IHN0eWxlPSJmb250LXNpemU6MThweDsgYmFja2dyb3VuZC1jb2xvcjogJEJhY2tncm91bmRDb2xvcjsgcGFkZGluZzogMTBweCAxMHB4IDE1cHggMTBweDsgd2lkdGg6IDQwMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLTExMHB4OyB0b3A6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4IDBweCA1cHggNXB4OyI+JFN5c3RlbU5hbWU8L2Rpdj4KRklMVEVSSU5QVVRfSFRNTAogICAgJHsgJFBhcmFte0RhdGF9IH0gPX4gc3skU2VhcmNofXskUmVwbGFjZSQxfXhtczsKCiAgICByZXR1cm4gMTsKfQoKMTsK
IyAtLQojIERldmVsRnJlZENvbmZpZ0xvZy5kdGwgLSBhIGZyb250ZW5kIHRvIHNob3cgdGhlIGNvbmZpZyBkZWJ1Z2dpbmcKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3giPgogICAgPGgxPgogICAgICAgIENvbmZpZ3VyYXRpb24gTG9nCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJUb2dnbGUgU2VhcmNoIEJhciI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1taW51cyBGcmVkTWluaW1pemUiIHRpdGxlPSJNaW5pbWl6ZSI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUgRnJlZENsb3NlIiB0aXRsZT0iQ2xvc2UiPjwvaT4KICAgICAgICA8L3NwYW4+CiAgICA8L2gxPgogICAgPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Q29udGVudCIgaWQ9IkRldmVsRnJlZENvbmZpZ0xvZ0NvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aD5DYWxsczwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPkNvbmZpZzwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlN0YXR1czwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlBhY2thZ2U8L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KJERhdGF7IkhUTUxMaW5lcyJ9CiAgICAgICAgICAgIDx0ciBjbGFzcz0iSGlkZGVuIEZpbHRlck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPk5vIEl0ZW1zIGZvdW5kLjwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIERldmVsRnJlZENvbnNvbGUuZHRsIC0gYSBodG1sIGNvbnNvbGUgZm9yIGEgYmV0dGVyIGZyZWQgaGFuZGxpbmcKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHdpZHRoOiAkQ29uZmlneyJGcmVkOjpDb25zb2xlV2lkdGgifTsKICAgIC1tb3otb3BhY2l0eTogJENvbmZpZ3siRnJlZDo6Q29uc29sZU9wYWNpdHkifTsKICAgIC13ZWJraXQtb3BhY2l0eTogJENvbmZpZ3siRnJlZDo6Q29uc29sZU9wYWNpdHkifTsKICAgIG9wYWNpdHk6ICRDb25maWd7IkZyZWQ6OkNvbnNvbGVPcGFjaXR5In07Cn0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgRnJlZAogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRUb29sQmFyIj4KPCEtLSBkdGw6YmxvY2s6U2V0dGluZyAtLT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZ2VhciBGcmVkU2V0dGluZ3MiIGRhdGEtdXJsPSIkRW52eyJCYXNlbGluayJ9QWN0aW9uPURldmVsRnJlZDtTdWJhY3Rpb249U2V0dGluZyI+PC9pPgo8IS0tIGR0bDpibG9jazpTZXR0aW5nIC0tPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1taW51cyBGcmVkTWluaW1pemUiIHRpdGxlPSJNaW5pbWl6ZSI+PC9pPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1yZW1vdmUgRnJlZENsb3NlIiB0aXRsZT0iQ2xvc2UiPjwvaT4KICAgICAgICA8L2Rpdj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50IEZyZWRFbGVtZW50TGlzdCI+CiAgICAgICAgPHNwYW4+bW9kX3BlcmwgJFFEYXRheyJNb2RQZXJsIn08L3NwYW4+CiAgICAgICAgPHNwYW4+UGVybCAkUURhdGF7IlBlcmwifTwvc3Bhbj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIERldmVsRnJlZENvbnRhaW5lci5kdGwgLSBjb250YWluZXIgZm9yIEZyZWQgb3V0cHV0CiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQo8ZGl2IGNsYXNzPSJEZXZlbEZyZWRDb250YWluZXIiIGlkPSJEZXZlbEZyZWRDb250YWluZXIiPgogICAgJERhdGF7IkRhdGEifQo8L2Rpdj4K
IyAtLQojIERldmVsRnJlZEVudkR1bXAuZHRsIC0gYSBmcm9udGVuZCB0byBzaG93IHRoZSBsYXlvdXQgZW52aXJvbm1lbnQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgRW52aXJvbm1lbnQgVmFyaWFibGVzCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJTZWFyY2giPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aD5LZXk8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5WYWx1ZTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgo8IS0tIGR0bDpibG9jazpFbnZEYXRhUm93IC0tPgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+JFFEYXRheyJLZXkifTwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+JFFEYXRheyJWYWx1ZSJ9PC90ZD4KICAgICAgICAgICAgPC90cj4KPCEtLSBkdGw6YmxvY2s6RW52RGF0YVJvdyAtLT4KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZEhUTUxDaGVjay5kdGwgLSBhIGZyb250ZW5kIHRvIHNob3cgdGhlIEhUTUwtQ2hlY2sgcmVzdWx0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgSFRNTCBWYWxpZGF0aW9uCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAidXNlIHN0cmljdCI7CiAgICAgICAgQ29yZS5BcHAuUmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICAgICAgQ29yZS5GcmVkLkhUTUxDaGVjay5DaGVja0ZvclN0YXJ0KCk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6NXB4OyIgaWQ9IkZyZWRIVE1MQ2hlY2tSZXN1bHRzIiBjbGFzcz0iRGV2ZWxGcmVkQm94Q29udGVudCI+CiAgICAgICAgPGRpdiBpZD0iRnJlZEhUTUxDaGVja1J1bm5pbmciPkNoZWNrcyBhcmUgcnVubmluZy4uLjwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZEpTTGludC5kdGwgLSBhIGZyb250ZW5kIHRvIHNob3cgdGhlIEhUTUwtQ2hlY2sgcmVzdWx0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZEJveCI+CiAgICA8aDE+CiAgICAgICAgSlNMaW50CiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAidXNlIHN0cmljdCI7CiAgICAgICAgQ29yZS5BcHAuUmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICAgICAgQ29yZS5GcmVkLkpTTGludC5Jbml0KCk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiIGlkPSJGcmVkSlNMaW50U2NyaXB0cyI+CiAgICAgICAgPGRpdiBpZD0iRnJlZEpTTGludFJ1bm5pbmciPgogICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1zcGlubmVyIGljb24tc3BpbiI+PC9pPiBDaGVja3MgYXJlIHJ1bm5pbmcuLi4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K
IyAtLQojIERldmVsRnJlZFNlc3Npb25EdW1wLmR0bCAtIGEgZnJvbnRlbmQgdG8gc2hvdyB0aGUgU1RERVJSIGxvZwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KPGRpdiBjbGFzcz0iRGV2ZWxGcmVkQm94Ij4KICAgIDxoMT4KICAgICAgICBTZXNzaW9uCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tc2VhcmNoIEZyZWRTZWFyY2giIHRpdGxlPSJTZWFyY2giPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aD5LZXk8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5WYWx1ZTwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICA8L3RoZWFkPgo8IS0tIGR0bDpibG9jazpTZXNzaW9uRGF0YVJvdyAtLT4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgPHRkPiRRRGF0YXsiS2V5In08L3RkPgogICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgIDxwcmU+JFFEYXRheyJWYWx1ZSJ9PC9wcmU+CiAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8L3RyPgo8IS0tIGR0bDpibG9jazpTZXNzaW9uRGF0YVJvdyAtLT4KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iMiI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZFNldHRpbmcuZHRsIC0gYSBmcm9udGVuZCBmb3IgYSBmYXN0IGZyZWQgc2V0dGluZyBoYW5kbGluZwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCjxkaXYgY2xhc3M9IkRldmVsRnJlZFNldHRpbmdzIj4KICAgIDxoMT5GcmVkLVNldHRpbmc8L2gxPgogICAgPGZvcm0gYWN0aW9uPSIkRW52eyJDR0lIYW5kbGUifSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBuYW1lPSJEZXZlbEZyZWRTZXR0aW5nIj4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJEZXZlbEZyZWQiLz4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJTZXR0aW5nQWN0aW9uIi8+CiAgICAgICAgPHVsPgo8IS0tIGR0bDpibG9jazpGcmVkTW9kdWxlIC0tPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSIkUURhdGF7IkZyZWRNb2R1bGUifSI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJGcmVkTW9kdWxlIiBpZD0iJFFEYXRheyJGcmVkTW9kdWxlIn0iIHZhbHVlPSIkUURhdGF7IkZyZWRNb2R1bGUifSIgJERhdGF7IkNoZWNrZWQifS8+CiAgICAgICAgICAgICAgICAgICAgJFFEYXRheyJGcmVkTW9kdWxlIn0KICAgICAgICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgJFFEYXRheyJEZXNjcmlwdGlvbiJ9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPC9sYWJlbD4KPCEtLSBkdGw6YmxvY2s6Q29uZmlnIC0tPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iJEVudnsiQmFzZWxpbmsifUFjdGlvbj1BZG1pblN5c0NvbmZpZztTdWJhY3Rpb249RWRpdDtTeXNDb25maWdTdWJHcm91cD0kRGF0YXsiTW9kdWxlTmFtZSJ9O1N5c0NvbmZpZ0dyb3VwPUZyZWQiIHRpdGxlPSJTZXR0aW5ncyIgY2xhc3M9IkZyZWRTZXR0aW5nc0xpbmsiIHRhcmdldD0iX2JsYW5rIj48aSBjbGFzcz0iaWNvbi1nZWFyIj48L2k+PC9hPgo8IS0tIGR0bDpibG9jazpDb25maWcgLS0+CiAgICAgICAgICAgIDwvbGk+CjwhLS0gZHRsOmJsb2NrOkZyZWRNb2R1bGUgLS0+CiAgICAgICAgPC91bD4KICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24iIHZhbHVlPSIkVGV4dHsiU2F2ZSJ9Ij48c3Bhbj4kVGV4dHsiU2F2ZSJ9PC9zcGFuPjwvYnV0dG9uPgogICAgPC9mb3JtPgo8L2Rpdj4K
IyAtLQojIERldmVsRnJlZFNRTExvZy5kdGwgLSBhIGZyb250ZW5kIHRvIHNob3cgdGhlIHNxbCBsb2cKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3giIGlkPSJEZXZlbEZyZWRCb3hTUUxMb2ciPgogICAgPGgxPgogICAgICAgIFNRTAogICAgICAgIDxzcGFuIGNsYXNzPSJGcmVkVG9vbEJhciI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXNlYXJjaCBGcmVkU2VhcmNoIiB0aXRsZT0iU2VhcmNoIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXJlbW92ZSBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJGcmVkRWxlbWVudExpc3QiPgogICAgICAgICAgICA8c3Bhbj5FeGVjdXRlZCA8c3Ryb25nPiREYXRheyJBbGxTdGF0ZW1lbnRzIn08L3N0cm9uZz4gU3RhdGVtZW50czwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+KDxzdHJvbmc+JFFEYXRheyJTZWxlY3RTdGF0ZW1lbnRzIn08L3N0cm9uZz4gU0VMRUNUcyArIDxzdHJvbmc+JFFEYXRheyJEb1N0YXRlbWVudHMifTwvc3Ryb25nPiBET3MpPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5pbiA8c3Ryb25nPiRRRGF0YXsiVGltZSJ9PC9zdHJvbmc+IHMuPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkZyZWRRdWlja1NlYXJjaCI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIGZvci4uLiIgLz4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIj48L2k+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPHRhYmxlIGNsYXNzPSJGcmVkVGFibGVEZWZhdWx0Ij4KICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aCB0aXRsZT0iVGltZSAobXMpIj5tczwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHRpdGxlPSJFcXVhbCBTdGF0ZW1lbnRzIj5FcXVhbDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlN0YXRlbWVudDwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIHRpdGxlPSJCaW5kIHBhcmFtZXRlcnMiPkJpbmQ8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5QYWNrYWdlPC90aD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgIDx0Ym9keT4KPCEtLSBkdGw6YmxvY2s6Um93IC0tPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iVGltZSIgdGl0bGU9IiRRRGF0YXsiVGltZSJ9IG1zIj4kUURhdGF7IlRpbWUiLCAiNiJ9PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkVxdWFsU3RhdGVtZW50cyI+JFFEYXRheyJFcXVhbFN0YXRlbWVudHMifTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJTUUxTdGF0ZW1lbnQiPiRRRGF0YXsiU3RhdGVtZW50In08L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQmluZFBhcmFtZXRlcnMiPgo8IS0tIGR0bDpibG9jazpSb3dCaW5kUGFyYW1ldGVycyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlNob3dCaW5kUGFyYW1ldGVycyIgdGl0bGU9IiRRRGF0YXsiQmluZFBhcmFtZXRlcnMifSI+U2hvdzwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGlkZGVuIj4kUURhdGF7IkJpbmRQYXJhbWV0ZXJzIn08L2Rpdj4KPCEtLSBkdGw6YmxvY2s6Um93QmluZFBhcmFtZXRlcnMgLS0+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlN0YWNrVHJhY2UiPgo8IS0tIGR0bDpibG9jazpTdGFja1RyYWNlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAkUURhdGF7IlN0YWNrVHJhY2UifTxici8+CjwhLS0gZHRsOmJsb2NrOlN0YWNrVHJhY2UgLS0+CiAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDwvdGJvZHk+CjwhLS0gZHRsOmJsb2NrOlJvdyAtLT4KICAgICAgICAgICAgPHRyIGNsYXNzPSJIaWRkZW4gRmlsdGVyTWVzc2FnZSI+CiAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNSI+Tm8gSXRlbXMgZm91bmQuPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CjwvZGl2Pgo=
IyAtLQojIERldmVsRnJlZFNUREVSUkxvZy5kdGwgLSBhIGZyb250ZW5kIHRvIHNob3cgdGhlIFNUREVSUiBsb2cKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3giPgogICAgPGgxPgogICAgICAgIFNUREVSUkxvZwogICAgICAgIDxzcGFuIGNsYXNzPSJGcmVkVG9vbEJhciI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLW1pbnVzIEZyZWRNaW5pbWl6ZSIgdGl0bGU9Ik1pbmltaXplIj48L2k+CiAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLXJlbW92ZSBGcmVkQ2xvc2UiIHRpdGxlPSJDbG9zZSI+PC9pPgogICAgICAgIDwvc3Bhbj4KICAgIDwvaDE+CiAgICA8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3hDb250ZW50Ij4KICAgICAgICA8cHJlIGNsYXNzPSJGcmVkTW9ub1NwYWNlIj4kUURhdGF7IkhUTUxMaW5lcyJ9PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIERldmVsRnJlZFRyYW5zbGF0aW9uRGVidWcuZHRsIC0gYSBmcm9udGVuZCB0byBzaG93IHRoZSB0cmFuc2xhdGlvbiBkZWJ1Z2dpbmcKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgo8ZGl2IGNsYXNzPSJEZXZlbEZyZWRCb3giPgogICAgPGgxPgogICAgICAgIE1pc3NpbmcgVHJhbnNsYXRpb25zCiAgICAgICAgPHNwYW4gY2xhc3M9IkZyZWRUb29sQmFyIj4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbWludXMgRnJlZE1pbmltaXplIiB0aXRsZT0iTWluaW1pemUiPjwvaT4KICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tcmVtb3ZlIEZyZWRDbG9zZSIgdGl0bGU9IkNsb3NlIj48L2k+CiAgICAgICAgPC9zcGFuPgogICAgPC9oMT4KICAgIDxkaXYgY2xhc3M9IkRldmVsRnJlZEJveENvbnRlbnQgRnJlZEVsZW1lbnRMaXN0Ij4KJERhdGF7IkhUTUxMaW5lcyJ9CiAgICA8L2Rpdj4KPC9kaXY+Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vREJMaXN0ZW5lci9GcmVkU1FMTG9nLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6REJMaXN0ZW5lcjo6RnJlZFNRTExvZzsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nOwoKdXNlIFRpbWU6OkhpUmVzIHF3KGdldHRpbWVvZmRheSB0dl9pbnRlcnZhbCk7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nLT5uZXcoJVBhcmFtKTsKCiAgICAkU2VsZi0+e0FjdGl2ZX0gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRnJlZDo6TW9kdWxlJyktPntTUUxMb2d9LT57QWN0aXZlfTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBQcmVQcmVwYXJlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICggISRTZWxmLT57QWN0aXZlfSApOwoKICAgICRTZWxmLT57UHJlcGFyZVN0YXJ0fSA9IFtnZXR0aW1lb2ZkYXldOwp9CgpzdWIgUG9zdFByZXBhcmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgbXkgJERpZmZUaW1lID0gdHZfaW50ZXJ2YWwoICRTZWxmLT57UHJlcGFyZVN0YXJ0fSApOwoKICAgIG15IEBTdGFja1RyYWNlOwoKICAgIENPVU5UOgogICAgZm9yICggbXkgJENvdW50ID0gMTsgJENvdW50IDwgMzA7ICRDb3VudCsrICkgewogICAgICAgIG15ICggJFBhY2thZ2UxLCAkRmlsZW5hbWUxLCAkTGluZTEsICRTdWJyb3V0aW5lMSApID0gY2FsbGVyKCRDb3VudCk7CiAgICAgICAgbGFzdCBDT1VOVCBpZiAhJExpbmUxOwogICAgICAgIG15ICggJFBhY2thZ2UyLCAkRmlsZW5hbWUyLCAkTGluZTIsICRTdWJyb3V0aW5lMiApID0gY2FsbGVyKCAxICsgJENvdW50ICk7CiAgICAgICAgJFN1YnJvdXRpbmUyIHx8PSAkMDsgICAgIyBpZiB0aGVyZSBpcyBubyBjYWxsZXIgbW9kdWxlIHVzZSB0aGUgZmlsZSBuYW1lCiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpTeXN0ZW0vSzo6Uy87CiAgICAgICAgJFN1YnJvdXRpbmUyID1+IHMvS2VybmVsOjpNb2R1bGVzL0s6Ok0vOwogICAgICAgICRTdWJyb3V0aW5lMiA9fiBzL0tlcm5lbDo6T3V0cHV0L0s6Ok8vOwogICAgICAgIHB1c2ggQFN0YWNrVHJhY2UsICIkU3Vicm91dGluZTI6JExpbmUxIjsKICAgIH0KCiAgICBteSBAQXJyYXkgPSBtYXAgeyBkZWZpbmVkICRfID8gJF8gOiAndW5kZWYnIH0gQHsgJFBhcmFte0JpbmR9IHx8IFtdIH07CgogICAgIyBSZXBsYWNlIG5ld2xpbmVzCiAgICBAQXJyYXkgPSBtYXAgeyAkXyA9fiBze1xyP1xufXtbXFxuXX1zbXhnOyAkXzsgfSBAQXJyYXk7ICAgICMjIG5vIGNyaXRpYwoKICAgICMgTGltaXQgYmluZCBwYXJhbSBsZW5ndGgKICAgIEBBcnJheSA9IG1hcCB7IGxlbmd0aCgkXykgPiAxMDAgPyAoIHN1YnN0ciggJF8sIDAsIDEwMCApIC4gJ1suLi5dJyApIDogJF8gfSBAQXJyYXk7CiAgICBteSAkQmluZFN0cmluZyA9IEBBcnJheSA/IGpvaW4gJywgJywgQEFycmF5IDogJyc7CgogICAgJFNlbGYtPntTUUxMb2dPYmplY3R9LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gIlNRTC1TRUxFQ1QjIyEjIyRQYXJhbXtTUUx9IyMhIyMkQmluZFN0cmluZyMjISMjIgogICAgICAgICAgICAuIGpvaW4oICc7JywgQFN0YWNrVHJhY2UgKQogICAgICAgICAgICAuICIjIyEjIyREaWZmVGltZSIsCiAgICApOwp9CgpzdWIgUHJlRG8gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgJFNlbGYtPntEb1N0YXJ0fSA9IFtnZXR0aW1lb2ZkYXldOwp9CgpzdWIgUG9zdERvIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgcmV0dXJuIGlmICggISRTZWxmLT57QWN0aXZlfSApOwoKICAgIG15ICREaWZmVGltZSA9IHR2X2ludGVydmFsKCAkU2VsZi0+e0RvU3RhcnR9ICk7CgogICAgbXkgQFN0YWNrVHJhY2U7CgogICAgQ09VTlQ6CiAgICBmb3IgKCBteSAkQ291bnQgPSAxOyAkQ291bnQgPCAzMDsgJENvdW50KysgKSB7CiAgICAgICAgbXkgKCAkUGFja2FnZTEsICRGaWxlbmFtZTEsICRMaW5lMSwgJFN1YnJvdXRpbmUxICkgPSBjYWxsZXIoJENvdW50KTsKICAgICAgICBsYXN0IENPVU5UIGlmICEkTGluZTE7CiAgICAgICAgbXkgKCAkUGFja2FnZTIsICRGaWxlbmFtZTIsICRMaW5lMiwgJFN1YnJvdXRpbmUyICkgPSBjYWxsZXIoIDEgKyAkQ291bnQgKTsKICAgICAgICAkU3Vicm91dGluZTIgfHw9ICQwOyAgICAjIGlmIHRoZXJlIGlzIG5vIGNhbGxlciBtb2R1bGUgdXNlIHRoZSBmaWxlIG5hbWUKICAgICAgICAkU3Vicm91dGluZTIgPX4gcy9LZXJuZWw6OlN5c3RlbS9LOjpTLzsKICAgICAgICAkU3Vicm91dGluZTIgPX4gcy9LZXJuZWw6Ok1vZHVsZXMvSzo6TS87CiAgICAgICAgcHVzaCBAU3RhY2tUcmFjZSwgIiRTdWJyb3V0aW5lMjokTGluZTEiOwogICAgfQoKICAgIG15IEBBcnJheSA9IG1hcCB7IGRlZmluZWQgJF8gPyAkXyA6ICd1bmRlZicgfSBAeyAkUGFyYW17QmluZH0gfHwgW10gfTsKCiAgICAjIFJlcGxhY2UgbmV3bGluZXMKICAgIEBBcnJheSA9IG1hcCB7ICRfID1+IHN7XHI/XG59e1tcXG5dfXNteGc7ICRfOyB9IEBBcnJheTsgICAgIyMgbm8gY3JpdGljCgogICAgIyBMaW1pdCBiaW5kIHBhcmFtIGxlbmd0aAogICAgQEFycmF5ID0gbWFwIHsgbGVuZ3RoKCRfKSA+IDEwMCA/ICggc3Vic3RyKCAkXywgMCwgMTAwICkgLiAnWy4uLl0nICkgOiAkXyB9IEBBcnJheTsKICAgIG15ICRCaW5kU3RyaW5nID0gQEFycmF5ID8gam9pbiAnLCAnLCBAQXJyYXkgOiAnJzsKCiAgICAkU2VsZi0+e1NRTExvZ09iamVjdH0tPkluc2VydFdvcmQoCiAgICAgICAgV2hhdCA9PiAiU1FMLURPIyMhIyMkUGFyYW17U1FMfSMjISMjJEJpbmRTdHJpbmcjIyEjIyIKICAgICAgICAgICAgLiBqb2luKCAnOycsIEBTdGFja1RyYWNlICkKICAgICAgICAgICAgLiAiIyMhIyMkRGlmZlRpbWUiLAogICAgKTsKfQoKMTsKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC5wbSAtIGFsbCBmcmVkIGNvcmUgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSB2YXJzIHF3KEBJU0EgJFZFUlNJT04pOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkIC0gZnJlZCBjb3JlIGxpYgoKPWhlYWQxIFNZTk9QU0lTCgpBbGwgZnJlZCBzdGFuZGFyZCBjb3JlIGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZC0+bmV3KAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IE1haW5PYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkV2YWx1YXRlIHRoZSBzZXZlcmFsIGRhdGEgb2YgYWxsIGZyZWQgbW9kdWxlcyBhbmQgYWRkIHRoZW0Kb24gdGhlIEZyZWRNb2R1bGVzIHJlZmVyZW5jZS4KCiAgICAkRnJlZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBGcmVkTW9kdWxlc1JlZiA9PiAkRnJlZE1vZHVsZXNSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte0ZyZWRNb2R1bGVzUmVmfSB8fCByZWYoICRQYXJhbXtGcmVkTW9kdWxlc1JlZn0gKSBuZSAnSEFTSCcgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdOZWVkIEZyZWRNb2R1bGVzUmVmIScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoICEkUGFyYW17SFRNTERhdGFSZWZ9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBIVE1MRGF0YVJlZiEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciBteSAkTW9kdWxlTmFtZSAoIHNvcnQga2V5cyAleyAkUGFyYW17RnJlZE1vZHVsZXNSZWZ9IH0gKSB7CgogICAgICAgICMgbG9hZCBiYWNrZW5kCiAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkU2VsZi0+X0xvYWRCYWNrZW5kKCBNb2R1bGVOYW1lID0+ICRNb2R1bGVOYW1lICk7CgogICAgICAgICMgZ2V0IG1vZHVsZSBkYXRhCiAgICAgICAgaWYgKCRCYWNrZW5kT2JqZWN0KSB7CiAgICAgICAgICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgICAgICAgICAgTW9kdWxlUmVmICAgICAgPT4gJFBhcmFte0ZyZWRNb2R1bGVzUmVmfS0+eyRNb2R1bGVOYW1lfSwKICAgICAgICAgICAgICAgIEhUTUxEYXRhUmVmICAgID0+ICRQYXJhbXtIVE1MRGF0YVJlZn0sCiAgICAgICAgICAgICAgICBGcmVkTW9kdWxlc1JlZiA9PiAkUGFyYW17RnJlZE1vZHVsZXNSZWZ9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX0xvYWRCYWNrZW5kKCkKCmxvYWQgYSB4bWwgaXRlbSBtb2R1bGUKCiAgICAkQmFja2VuZE9iamVjdCA9ICRGcmVkT2JqZWN0LT5fTG9hZEJhY2tlbmQoCiAgICAgICAgTW9kdWxlTmFtZSA9PiAkTW9kdWxlTmFtZSwKICAgICk7Cgo9Y3V0CgpzdWIgX0xvYWRCYWNrZW5kIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtNb2R1bGVOYW1lfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgTW9kdWxlTmFtZSEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgbG9hZCBiYWNrZW5kCiAgICBteSAkR2VuZXJpY01vZHVsZSA9ICdLZXJuZWw6OlN5c3RlbTo6RnJlZDo6JyAuICRQYXJhbXtNb2R1bGVOYW1lfTsKICAgIGlmICggJFNlbGYtPntNYWluT2JqZWN0fS0+UmVxdWlyZSgkR2VuZXJpY01vZHVsZSkgKSB7CiAgICAgICAgbXkgJEJhY2tlbmRPYmplY3QgPSAkR2VuZXJpY01vZHVsZS0+bmV3KCAleyRTZWxmfSwgJVBhcmFtLCApOwoKICAgICAgICBpZiAoJEJhY2tlbmRPYmplY3QpIHsKCiAgICAgICAgICAgICMgcmV0dXJuIG9iamVjdAogICAgICAgICAgICByZXR1cm4gJEJhY2tlbmRPYmplY3Q7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybjsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9Db25maWdMb2cucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25maWdMb2c7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25maWdMb2cKCj1oZWFkMSBTWU5PUFNJUwoKaGFuZGxlIHRoZSBjb25maWcgbG9nIGRhdGEKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uZmlnTG9nOwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uZmlnTG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAjIERvbid0IGNhbGwgQ29uZmlnT2JqZWN0LT5HZXQoKSBoZXJlLCB0aGlzIGNvdWxkIGNhdXNlIGRlZXAgcmVjdXJzaW9ucy4KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKR2V0IHRoZSBkYXRhIGZvciB0aGlzIGZyZWQgbW9kdWxlLiBSZXR1cm5zIHRydWUgb3IgZmFsc2UuCkFuZCBhZGQgdGhlIGRhdGEgdG8gdGhlIG1vZHVsZSByZWYuCgogICAgJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBATG9nTWVzc2FnZXM7CgogICAgIyBvcGVuIHRoZSBUcmFuc2xhdGlvbkRlYnVnLmxvZyBmaWxlIHRvIGdldCB0aGUgdW50cmFuc2xhdGVkIHdvcmRzCiAgICBteSAkRmlsZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJykgLiAnL3Zhci9mcmVkL0NvbmZpZy5sb2cnOwogICAgbXkgJEZpbGVoYW5kbGU7CiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPCcsICRGaWxlICkgewogICAgICAgIHByaW50IFNUREVSUiAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC9cbiIgLgogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvQ29uZmlnLmxvZyI7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IHRoZSB3aG9sZSBpbmZvcm1hdGlvbgogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgPCRGaWxlaGFuZGxlPiApIHsKICAgICAgICBsYXN0IExJTkUgaWYgJExpbmUgPX4gL0ZSRUQvOwogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCAkTGluZTsKICAgIH0KCiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKICAgIHBvcCBATG9nTWVzc2FnZXM7CiAgICAkU2VsZi0+SW5zZXJ0V29yZCggV2hhdCA9PiAiRlJFRFxuIiApOwoKICAgIG15ICVJbmRpdmlkdWFsQ29uZmlnID0gKCk7CgogICAgZm9yIG15ICRMaW5lIChATG9nTWVzc2FnZXMpIHsKICAgICAgICAkTGluZSA9fiBzL1xuLy87CiAgICAgICAgJEluZGl2aWR1YWxDb25maWd7JExpbmV9Kys7CiAgICB9CgogICAgQExvZ01lc3NhZ2VzID0gKCk7CiAgICBmb3IgbXkgJExpbmUgKCBzb3J0IGtleXMgJUluZGl2aWR1YWxDb25maWcgKSB7CiAgICAgICAgbXkgQFNwbGl0ZWRMaW5lID0gc3BsaXQgLzsvLCAkTGluZTsKICAgICAgICBwdXNoIEBTcGxpdGVkTGluZSwgJEluZGl2aWR1YWxDb25maWd7JExpbmV9OwogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCBcQFNwbGl0ZWRMaW5lOwogICAgfQoKICAgICMgc29ydCB0aGUgZGF0YQogICAgbXkgJENvbmZpZyA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpDb25maWdMb2cnKTsKICAgIG15ICRPcmRlckJ5ID0gZGVmaW5lZCggJENvbmZpZy0+e09yZGVyQnl9ICkgPyAkQ29uZmlnLT57T3JkZXJCeX0gOiAzOwogICAgaWYgKCAkT3JkZXJCeSA9PSAzICkgewogICAgICAgIEBMb2dNZXNzYWdlcyA9IHNvcnQgeyAkYi0+WyRPcmRlckJ5XSA8PT4gJGEtPlskT3JkZXJCeV0gfSBATG9nTWVzc2FnZXM7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBATG9nTWVzc2FnZXMgPSBzb3J0IHsgJGEtPlskT3JkZXJCeV0gY21wICRiLT5bJE9yZGVyQnldIH0gQExvZ01lc3NhZ2VzOwogICAgfQoKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBcQExvZ01lc3NhZ2VzOwogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEluc2VydFdvcmQoKQoKU2F2ZSBhIHdvcmQgaW4gdGhlIHRyYW5zbGF0aW9uIGRlYnVnIGxvZwoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ2Egd29yZCcsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRnJlZFNldHRpbmdzID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXRPcmlnaW5hbCgnRnJlZDo6TW9kdWxlJyk7CgogICAgaWYgKCAhJEZyZWRTZXR0aW5ncyB8fCAhJEZyZWRTZXR0aW5ncy0+e0NvbmZpZ0xvZ30gfHwgISRGcmVkU2V0dGluZ3MtPntDb25maWdMb2d9LT57QWN0aXZlfSApIHsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAhJFBhcmFte0hvbWV9ICkgewogICAgICAgICRQYXJhbXtIb21lfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0T3JpZ2luYWwoJ0hvbWUnKTsKICAgIH0KCiAgICAjIHNhdmUgdGhlIHdvcmQgaW4gbG9nIGZpbGUKICAgIG15ICRGaWxlID0gJFBhcmFte0hvbWV9IC4gJy92YXIvZnJlZC9Db25maWcubG9nJzsKICAgIG9wZW4gbXkgJEZpbGVoYW5kbGUsICc+PicsICRGaWxlIHx8IGRpZSAiQ2FuJ3Qgd3JpdGUgJEZpbGUgIVxuIjsKICAgIHByaW50ICRGaWxlaGFuZGxlICRQYXJhbXtXaGF0fSAuICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9Db25zb2xlLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uc29sZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6Q29uc29sZQoKPWhlYWQxIFNZTk9QU0lTCgpnaXZlcyB5b3UgYWxsIGZ1bmN0aW9ucyB3aGljaCBhcmUgbmVlZGVkIGZvciB0aGUgRlJFRC1jb25zb2xlCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkNvbnNvbGU7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpDb25zb2xlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkcyB0aGUgZGF0YSB0byB0aGUgbW9kdWxlIHJlZi4KCiAgICAkQmFja2VuZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBNb2R1bGVSZWYgPT4gJE1vZHVsZVJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJFJlZiAocXcoTW9kdWxlUmVmIEhUTUxEYXRhUmVmIEZyZWRNb2R1bGVzUmVmKSkgewogICAgICAgIGlmICggISRQYXJhbXskUmVmfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJFJlZiEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15IEBNb2R1bGVzOwogICAgZm9yIG15ICRNb2R1bGUgKCBzb3J0IGtleXMgJXsgJFBhcmFte0ZyZWRNb2R1bGVzUmVmfSB9ICkgewogICAgICAgIGlmICggJE1vZHVsZSBuZSAnQ29uc29sZScgKSB7CiAgICAgICAgICAgIHB1c2ggQE1vZHVsZXMsICRNb2R1bGU7CiAgICAgICAgfQogICAgfQogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATW9kdWxlczsKCiAgICBpZiAoICR7ICRQYXJhbXtIVE1MRGF0YVJlZn0gfSAhfiBtL0ZyZWQtU2V0dGluZy8gJiYgJHsgJFBhcmFte0hUTUxEYXRhUmVmfSB9ID1+IC9cPGJvZHkuKj9cPi8gKQogICAgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57U3RhdHVzfSA9IDE7CiAgICB9CgogICAgaWYgKCAkeyAkUGFyYW17SFRNTERhdGFSZWZ9IH0gIX4gbS9uYW1lPSJBY3Rpb24iIHZhbHVlPSJMb2dpbiIvICkgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57U2V0dGluZ30gPSAxOwogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9FbnZEdW1wLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcAoKPWhlYWQxIFNZTk9QU0lTCgpkb2VzIGVzc2VudGlhbGx5IG5vdGhpbmcKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6RW52RHVtcDsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRGcmVkT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkVudkR1bXAtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIERhdGFHZXQoKQoKVGhpcyBtZXRob2QgaXMganVzdCBmb3IgY29tcGF0YmlsaXR5LiBObyBkYXRhIGlzIHNldCBoZXJlLAphcyB0aGUgbmVlZGVkIHNlc3Npb24gb2JqZWN0IGlzIG5vdCBlYXNpbHkgYXZhaWxhYmxlIGhlcmUuCgogICAgbXkgJERhdGFHZXRPayA9ICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyggTW9kdWxlUmVmICkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9IVE1MQ2hlY2sucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpIVE1MQ2hlY2s7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkhUTUxDaGVjawoKPWhlYWQxIFNZTk9QU0lTCgpQZXJmb3JtIEhUTUwgUUEuCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkhUTUxDaGVjazsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRNYWluT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpIVE1MQ2hlY2stPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgTWFpbk9iamVjdCkpIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIERhdGFHZXQgewogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9KU0xpbnQucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpKU0xpbnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgRmlsZTo6VGVtcDsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RnJlZDo6SlNMaW50Cgo9aGVhZDEgU1lOT1BTSVMKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6TWFpbjsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6SlNMaW50OwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJE1haW5PYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TWFpbi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICRGcmVkT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkZyZWQ6OkpTTGludC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZ2V0IG5lZWRlZCBvYmplY3RzCiAgICBmb3IgbXkgJE9iamVjdCAocXcoQ29uZmlnT2JqZWN0IExvZ09iamVjdCBNYWluT2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9TZXNzaW9uRHVtcC5wbQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlNlc3Npb25EdW1wOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpTZXNzaW9uRHVtcAoKPWhlYWQxIFNZTk9QU0lTCgpkb2VzIGVzc2VudGlhbGx5IG5vdGhpbmcKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U2Vzc2lvbkR1bXA7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTZXNzaW9uRHVtcC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0ge307CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0IChxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0KSkgewogICAgICAgICRTZWxmLT57JE9iamVjdH0gPSAkUGFyYW17JE9iamVjdH0gfHwgZGllICJHb3Qgbm8gJE9iamVjdCEiOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gRGF0YUdldCgpCgpUaGlzIG1ldGhvZCBpcyBqdXN0IGZvciBjb21wYXRiaWxpdHkuIE5vIGRhdGEgaXMgc2V0IGhlcmUsCmFzIHRoZSBuZWVkZWQgc2Vzc2lvbiBvYmplY3QgaXMgbm90IGVhc2lseSBhdmFpbGFibGUgaGVyZS4KCiAgICBteSAkRGF0YUdldE9rID0gJEJhY2tlbmRPYmplY3QtPkRhdGFHZXQoCiAgICAgICAgTW9kdWxlUmVmID0+ICRNb2R1bGVSZWYsCiAgICApOwoKPWN1dAoKc3ViIERhdGFHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KCBNb2R1bGVSZWYgKSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKGh0dHA6Ly9vdHJzLm9yZy8pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9TUUxMb2cucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2c7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpTUUxMb2cKCj1oZWFkMSBTWU5PUFNJUwoKU2hvdyBhIGxvZyBvZiB0aGUgU1FMIHN0YXRlbWVudHMgZXhlY3V0ZWQgc2luY2UgdGhlIGxhc3QgdmlldyBvZiB0aGUgbG9nLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nOwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1FMTG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBvcGVuIHRoZSBmaWxlIFNRTC5sb2cKICAgIG15ICRGaWxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1FMLmxvZyc7CgogICAgbXkgJEZpbGVoYW5kbGU7CiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPCcsICRGaWxlICkgewogICAgICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gPSBbCiAgICAgICAgICAgICJQZXJoYXBzIHlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gYXQgL3Zhci9mcmVkLyIsCiAgICAgICAgICAgICJDYW4ndCByZWFkIC92YXIvZnJlZC9TUUwubG9nIiwKICAgICAgICBdOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSBATG9nTWVzc2FnZXM7CiAgICBteSAkRG9TdGF0ZW1lbnRzICAgICA9IDA7CiAgICBteSAkU2VsZWN0U3RhdGVtZW50cyA9IDA7CgogICAgIyBzbHVycCBpbiB0aGUgd2hvbGUgbG9nZmlsZSwgaW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBsaW5lcyBhdCB0aGUgZW5kCiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewoKICAgICAgICAjIGRvIG5vdCBzaG93IHRoZSBsb2cgZnJvbSB0aGUgcHJldmlvdXMgcmVxdWVzdAogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiAvRlJFRC87CgojIGEgdHlwaWNhbCBsaW5lIGZyb20gU1FMLmxvZyBsb29rcyBsaWtlOgojIFNRTC1TRUxFQ1QjIyEjI1NFTEVDVCAxICsgMSBGUk9NIGR1YWwgV0hFUkUgaWQgPSA/IEFORCB1c2VyX2lkID0gPyMjISMjMSwgMiMjISMjS2VybmVsOjpTeXN0ZW06OlVzZXIjIyEjIzAuMDA0Mzk3CiAgICAgICAgbXkgQFNwbGl0TG9nTGluZSA9IHNwbGl0IC8jIyEjIy8sICRMaW5lOwogICAgICAgIGlmICggJFNwbGl0TG9nTGluZVswXSBlcSAnU1FMLURPJyAmJiAkU3BsaXRMb2dMaW5lWzFdID1+IG17IFxBIFNFTEVDVCB9eG1zICkgewogICAgICAgICAgICAkU3BsaXRMb2dMaW5lWzBdIC49ICcgLSBQZXJoYXBzIHlvdSBoYXZlIGFuIGVycm9yIHlvdSB1c2UgRE8gZm9yIGEgU0VMRUNULVN0YXRlbWVudDonOwogICAgICAgIH0KICAgICAgICBwdXNoIEBMb2dNZXNzYWdlcywgXEBTcGxpdExvZ0xpbmU7CgogICAgICAgIGlmICggJFNwbGl0TG9nTGluZVswXSBlcSAnU1FMLURPJyApIHsKICAgICAgICAgICAgJERvU3RhdGVtZW50cysrOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkU3BsaXRMb2dMaW5lWzRdICkgewogICAgICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e1RpbWV9ICs9ICRTcGxpdExvZ0xpbmVbNF07CiAgICAgICAgfQogICAgfQoKICAgIHBvcCBATG9nTWVzc2FnZXM7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICAjIGZpbmQgU1FMLXN0YXRlbWVudHMgdXNlZCBtdWx0aXBsZSB0aW1lcwogICAgbXkgJU11bHRpVXNlZDsKICAgIGZvciBteSAkU3RhdGVtZW50UmVmIChATG9nTWVzc2FnZXMpIHsKICAgICAgICAkTXVsdGlVc2VkeyAkU3RhdGVtZW50UmVmLT5bMV0gfSsrOwogICAgfQogICAgZm9yIG15ICRTdGF0ZW1lbnRSZWYgKEBMb2dNZXNzYWdlcykgewogICAgICAgIHB1c2ggQHskU3RhdGVtZW50UmVmfSwgKCAkTXVsdGlVc2VkeyAkU3RhdGVtZW50UmVmLT5bMV0gfSAtIDEgKTsKICAgIH0KCiAgICAjIEFkZCBtYXJrZXIgZm9yIHRoZSBuZXh0IHZpZXcKICAgICRTZWxmLT5JbnNlcnRXb3JkKCBXaGF0ID0+ICJGUkVEXG4iICk7CgogICAgIyBzZXQgdGhlIGRhdGEgZm9yIHRoZSBvdXRwdXQgdGVtcGxhdGUKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57RGF0YX0gICAgICAgICAgICAgPSBcQExvZ01lc3NhZ2VzOwogICAgJFBhcmFte01vZHVsZVJlZn0tPntBbGxTdGF0ZW1lbnRzfSAgICA9IHNjYWxhciBATG9nTWVzc2FnZXM7CiAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RvU3RhdGVtZW50c30gICAgID0gJERvU3RhdGVtZW50czsKICAgICRQYXJhbXtNb2R1bGVSZWZ9LT57U2VsZWN0U3RhdGVtZW50c30gPSAkUGFyYW17TW9kdWxlUmVmfS0+e0FsbFN0YXRlbWVudHN9IC0gJERvU3RhdGVtZW50czsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gSW5zZXJ0V29yZCgpCgpBcHBlbmQgYSBzZW1pY29sb24gc2VwZXJhdGVkIHJlY29yZCBsaW5lIHRvIHRoZSB0aGUgU1FMIGxvZy4KCiAgICAkQmFja2VuZE9iamVjdC0+SW5zZXJ0V29yZCgKICAgICAgICBXaGF0ID0+ICdTUUwtU0VMRUNUO1NFTEVDVCAxICsgMSBGUk9NIGR1YWw7S2VybmVsOjpTeXN0ZW06OlVzZXI7MC4wMDQzOTcnLAogICAgKTsKCj1jdXQKCnN1YiBJbnNlcnRXb3JkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtXaGF0fSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgV2hhdCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgRml4dXAgbXVsdGlsaW5lIFNRTCBzdGF0ZW1lbnRzCiAgICBpZiAoICRQYXJhbXtXaGF0fSA9fiBtL15TUUwvc214ICkgewogICAgICAgIG15IEBXaGF0ID0gc3BsaXQgJyMjISMjJywgJFBhcmFte1doYXR9OwoKICAgICAgICAjIGhpZGUgd2hpdGUgc3BhY2UKICAgICAgICAkV2hhdFsxXSA9fiBzL1xyP1xuLyAvc214ZzsKICAgICAgICAkV2hhdFsxXSA9fiBzL1xzKy8gL3NteGc7CiAgICAgICAgJFBhcmFte1doYXR9ID0gam9pbiAnIyMhIyMnLCBAV2hhdDsKICAgIH0KCiAgICAjIGFwcHBlbmQgdGhlIGxpbmUgdG8gbG9nIGZpbGUKICAgIG15ICRGaWxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1FMLmxvZyc7CiAgICBvcGVuIG15ICRGaWxlaGFuZGxlLCAnPj4nLCAkRmlsZSB8fCBkaWUgIkNhbid0IHdyaXRlICRGaWxlICFcbiI7CiAgICBwcmludCAkRmlsZWhhbmRsZSAkUGFyYW17V2hhdH0sICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9TVERFUlJMb2cucG0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpTVERFUlJMb2c7CiMjIG5vIGNyaXRpYyhQZXJsOjpDcml0aWM6OlBvbGljeTo6T1RSUzo6UHJvaGliaXRPcGVuKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpGcmVkOjpTVERFUlJMb2cKCj1oZWFkMSBTWU5PUFNJUwoKaGFuZGxlIHRoZSBTVERFUlIgbG9nIGRhdGEKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1RERVJSTG9nOwoKICAgIG15ICRDb25maWdPYmplY3QgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICBteSAkRW5jb2RlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2dPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEZyZWRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6U1RERVJSTG9nLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBEYXRhR2V0KCkKCkdldCB0aGUgZGF0YSBmb3IgdGhpcyBmcmVkIG1vZHVsZS4gUmV0dXJucyB0cnVlIG9yIGZhbHNlLgpBbmQgYWRkIHRoZSBkYXRhIHRvIHRoZSBtb2R1bGUgcmVmLgoKICAgICRCYWNrZW5kT2JqZWN0LT5EYXRhR2V0KAogICAgICAgIE1vZHVsZVJlZiA9PiAkTW9kdWxlUmVmLAogICAgKTsKCj1jdXQKCnN1YiBEYXRhR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhNb2R1bGVSZWYpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBvcGVuIHRoZSBTVERFUlIubG9nIGZpbGUgdG8gZ2V0IHRoZSBTVERFUlIgbWVzc2FnZXMKICAgIG15ICRGaWxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKSAuICcvdmFyL2ZyZWQvU1RERVJSLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKCiAgICBpZiAoICFvcGVuICRGaWxlaGFuZGxlLCAnPDplbmNvZGluZyhVVEYtOCknLCAkRmlsZSApIHsKICAgICAgICAkUGFyYW17TW9kdWxlUmVmfS0+e0RhdGF9ID0gWwogICAgICAgICAgICAiUGVyaGFwcyB5b3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIGF0IC92YXIvZnJlZC8gb3IgL0tlcm5lbC9Db25maWcvRmlsZXMvQUFBRnJlZC5wbS4iLAogICAgICAgICAgICAiQ2FuJ3QgcmVhZCAvdmFyL2ZyZWQvU1RERVJSLmxvZyIsCiAgICAgICAgXTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgdGhlIHdob2xlIGluZm9ybWF0aW9uCiAgICBteSBATG9nTWVzc2FnZXM7CiAgICBMSU5FOgogICAgZm9yIG15ICRMaW5lICggcmV2ZXJzZSA8JEZpbGVoYW5kbGU+ICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSA9fiBteyBcQSBccyogRlJFRCBccyogXHp9eG1zOwoKICAgICAgICAjIEF0dGVudGlvbjogdGhlIGxhc3QgdHdvIHN0cmluZ3MgYXJlIGJlY2F1c2Ugb2YgRFByb2YuIEkgaGF2ZSB0byBmb3JjZSB0aGUgcHJvY2Vzcy4KICAgICAgICAjIFNvIEkgZ2V0IHRoaXMgd2FybmluZ3MhCiAgICAgICAgaWYgKAogICAgICAgICAgICAkTGluZQogICAgICAgICAgICAhfiAvKFN1YnJvdXRpbmUgLis/IHJlZGVmaW5lZCBhdHxoYXMgLis/IHVuc3RhY2tlZCBjYWxsc3xGYWtpbmcgLis/IGV4aXQgdGltZXN0YW1wKS8KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcHVzaCBATG9nTWVzc2FnZXMsICRMaW5lOwogICAgICAgIH0KICAgIH0KICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgIHByaW50IFNUREVSUiAiXG5GUkVEXG4iOwoKICAgICMgdHJpbSB0aGUgbG9nIG1lc3NhZ2UgYXJyYXkKICAgIExJTkU6CiAgICBmb3IgbXkgJExpbmUgKEBMb2dNZXNzYWdlcykgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgIyB0cmltIHRoZSBsb2cgbWVzc2FnZSBhcnJheQogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgQExvZ01lc3NhZ2VzICkgewogICAgICAgIGxhc3QgTElORSBpZiAkTGluZSAhfiBteyBcQSBccyogXHogfXhtczsKICAgICAgICBzaGlmdCBATG9nTWVzc2FnZXM7CiAgICB9CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATG9nTWVzc2FnZXM7CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoaHR0cDovL290cnMub3JnLykuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRnJlZC9UcmFuc2xhdGlvbkRlYnVnLnBtCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RnJlZDo6VHJhbnNsYXRpb25EZWJ1ZzsKIyMgbm8gY3JpdGljKFBlcmw6OkNyaXRpYzo6UG9saWN5OjpPVFJTOjpQcm9oaWJpdE9wZW4pCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWcKCj1oZWFkMSBTWU5PUFNJUwoKaGFuZGxlIHRoZSB0cmFuc2xhdGlvbiBkZWJ1ZyBkYXRhCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKICAgIHVzZSBLZXJuZWw6OkNvbmZpZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkZyZWQ6OlRyYW5zbGF0aW9uRGVidWc7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkRnJlZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpGcmVkOjpUcmFuc2xhdGlvbkRlYnVnLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGdldCBuZWVkZWQgb2JqZWN0cwogICAgZm9yIG15ICRPYmplY3QgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QpKSB7CiAgICAgICAgJFNlbGYtPnskT2JqZWN0fSA9ICRQYXJhbXskT2JqZWN0fSB8fCBkaWUgIkdvdCBubyAkT2JqZWN0ISI7CiAgICB9CgogICAgaWYgKCByZWYgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpICYmICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcmVkOjpNb2R1bGUnKS0+e1RyYW5zbGF0aW9uRGVidWd9KSB7CiAgICAgICAgJFNlbGYtPntBY3RpdmV9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0ZyZWQ6Ok1vZHVsZScpLT57VHJhbnNsYXRpb25EZWJ1Z30tPntBY3RpdmV9OwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gRGF0YUdldCgpCgpHZXQgdGhlIGRhdGEgZm9yIHRoaXMgZnJlZCBtb2R1bGUuIFJldHVybnMgdHJ1ZSBvciBmYWxzZS4KQW5kIGFkZCB0aGUgZGF0YSB0byB0aGUgbW9kdWxlIHJlZi4KCiAgICAkQmFja2VuZE9iamVjdC0+RGF0YUdldCgKICAgICAgICBNb2R1bGVSZWYgPT4gJE1vZHVsZVJlZiwKICAgICk7Cgo9Y3V0CgpzdWIgRGF0YUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgb3BlbiB0aGUgVHJhbnNsYXRpb25EZWJ1Zy5sb2cgZmlsZSB0byBnZXQgdGhlIHVudHJhbnNsYXRlZCB3b3JkcwogICAgbXkgJEZpbGUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnSG9tZScpIC4gJy92YXIvZnJlZC9UcmFuc2xhdGlvbkRlYnVnLmxvZyc7CiAgICBteSAkRmlsZWhhbmRsZTsKICAgIGlmICggIW9wZW4gJEZpbGVoYW5kbGUsICc8JywgJEZpbGUgKSB7CiAgICAgICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFsKICAgICAgICAgICAgIlBlcmhhcHMgeW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiBhdCAvdmFyL2ZyZWQvIiwKICAgICAgICAgICAgIkNhbid0IHJlYWQgL3Zhci9mcmVkL1RyYW5zbGF0aW9uRGVidWcubG9nIgogICAgICAgIF07CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbXkgQExvZ01lc3NhZ2VzOwoKICAgICMgZ2V0IHRoZSB3aG9sZSBpbmZvcm1hdGlvbgogICAgTElORToKICAgIGZvciBteSAkTGluZSAoIHJldmVyc2UgPCRGaWxlaGFuZGxlPiApIHsKICAgICAgICBsYXN0IExJTkUgaWYgJExpbmUgPX4gL0ZSRUQvOwoKICAgICAgICBjaG9tcCAkTGluZTsKICAgICAgICBuZXh0IExJTkUgaWYgJExpbmUgZXEgJyc7CgogICAgICAgIHB1c2ggQExvZ01lc3NhZ2VzLCAkTGluZTsKICAgIH0KICAgIGNsb3NlICRGaWxlaGFuZGxlOwoKICAgICRTZWxmLT5JbnNlcnRXb3JkKCBXaGF0ID0+ICJGUkVEXG4iICk7CgogICAgJFBhcmFte01vZHVsZVJlZn0tPntEYXRhfSA9IFxATG9nTWVzc2FnZXM7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIEluc2VydFdvcmQoKQoKU2F2ZSBhIHdvcmQgaW4gdGhlIHRyYW5zbGF0aW9uIGRlYnVnIGxvZwoKICAgICRCYWNrZW5kT2JqZWN0LT5JbnNlcnRXb3JkKAogICAgICAgIFdoYXQgPT4gJ2Egd29yZCcsCiAgICApOwoKPWN1dAoKc3ViIEluc2VydFdvcmQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICByZXR1cm4gaWYgKCAhJFNlbGYtPntBY3RpdmV9ICk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggIWRlZmluZWQoICRQYXJhbXtXaGF0fSApICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBXaGF0IScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzYXZlIHRoZSB3b3JkIGluIGxvZyBmaWxlCiAgICBteSAkRmlsZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJykgLiAnL3Zhci9mcmVkL1RyYW5zbGF0aW9uRGVidWcubG9nJzsKICAgIG9wZW4gbXkgJEZpbGVoYW5kbGUsICc+PicsICRGaWxlIHx8IGRpZSAiQ2FuJ3Qgd3JpdGUgJEZpbGUgIVxuIjsKICAgIHByaW50ICRGaWxlaGFuZGxlICRQYXJhbXtXaGF0fSAuICJcbiI7CiAgICBjbG9zZSAkRmlsZWhhbmRsZTsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChodHRwOi8vb3Rycy5vcmcvKS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
Ly8gLS0KLy8gQ29yZS5GcmVkLmpzIC0gR2VuZXJpYyBGcmVkIGZ1bmN0aW9ucwovLyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5vcmcvCi8vIC0tCi8vIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCi8vIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKLy8gZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KLy8gLS0KCiJ1c2Ugc3RyaWN0IjsKCnZhciBDb3JlID0gQ29yZSB8fCB7fTsKQ29yZS5GcmVkID0gQ29yZS5GcmVkIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgYWxsIGxvZ2ljIGZvciBGcmVkCiAqLwpDb3JlLkZyZWQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm4gbm90aGluZy4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGluaXRzIGdlbmVyaWMgZnJlZCBmdW5jdGlvbnMKICAgICAqLwogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgLy8gVG9vbGJhciBpdGVtcwogICAgICAgICQoJy5GcmVkU2VhcmNoJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykuZmluZCgnLkZyZWRRdWlja1NlYXJjaCcpLnRvZ2dsZSgpOwogICAgICAgIH0pOwogICAgICAgICQoJy5GcmVkTWluaW1pemUnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5EZXZlbEZyZWRCb3gnKS5maW5kKCcuRGV2ZWxGcmVkQm94Q29udGVudCcpLnNsaWRlVG9nZ2xlKCdmYXN0Jyk7CiAgICAgICAgfSk7CiAgICAgICAgJCgnLkZyZWRDbG9zZScpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLkRldmVsRnJlZEJveCcpLnJlbW92ZSgpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBlbXB0eSB0aGUgc2VhcmNoIGZpZWxkCiAgICAgICAgJCgnLkZyZWRRdWlja1NlYXJjaCBpJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5wcmV2KCdpbnB1dCcpLnZhbCgnJykudHJpZ2dlcigna2V5ZG93bicpOwogICAgICAgIH0pOwoKICAgICAgICAvLyByZWdpc3RlciB0aGUgdGFibGUgZmlsdGVyIG9uIHRoZSBxdWlja3NlYXJjaCBmaWVsZHMKICAgICAgICAkKCcuRnJlZFF1aWNrU2VhcmNoIGlucHV0JykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgICAgICAgQ29yZS5VSS5UYWJsZS5Jbml0VGFibGVGaWx0ZXIoJCh0aGlzKSwgJCh0aGlzKS5jbG9zZXN0KCcuRGV2ZWxGcmVkQm94JykuZmluZCgnLkZyZWRUYWJsZURlZmF1bHQnKSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIHJlZ2lzdGVyIG5ldyBwb3B1cCBwcm9maWxlIGFzIG5lZWRlZCBieSBmcmVkCiAgICAgICAgQ29yZS5VSS5Qb3B1cC5Qcm9maWxlQWRkKCdGcmVkU2V0dGluZ3MnLCB7CiAgICAgICAgICAgIFdpbmRvd1VSTFBhcmFtczogImRlcGVuZGVudD15ZXMsbG9jYXRpb249bm8sbWVudWJhcj1ubyxyZXNpemFibGU9eWVzLHNjcm9sbGJhcnM9eWVzLHN0YXR1cz1ubyx0b29sYmFyPW5vIiwKICAgICAgICAgICAgTGVmdDogICAgICAgICAgICAxMDAsCiAgICAgICAgICAgIFRvcDogICAgICAgICAgICAgMTAwLAogICAgICAgICAgICBXaWR0aDogICAgICAgICAgIDQwMCwKICAgICAgICAgICAgSGVpZ2h0OiAgICAgICAgICA0NzAKICAgICAgICB9KTsKCiAgICAgICAgLy8gb3BlbiB0aGUgc2V0dGluZ3MgcG9wdXAKICAgICAgICAkKCcuRnJlZFNldHRpbmdzJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgQ29yZS5VSS5Qb3B1cC5PcGVuUG9wdXAoJCh0aGlzKS5kYXRhKCd1cmwnKSwgJ0ZyZWRTZXR0aW5ncycsICdGcmVkU2V0dGluZ3MnKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gU1FMIGxvZzogU2hvdyBiaW5kIHBhcmFtZXRlcnMgb24gY2xpY2sgb2YgJ3Nob3cnIGxpbmsKICAgICAgICAkKCcuU2hvd0JpbmRQYXJhbWV0ZXJzJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCh0aGlzKS5uZXh0KCcuSGlkZGVuJykudG9nZ2xlKCk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgJCgnLkZyZWRTZXR0aW5nc0xpbmsnKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gbWFrZSB0aGUgZnJlZCBib3ggZHJhZ2dhYmxlCiAgICAgICAgJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmRyYWdnYWJsZSh7CiAgICAgICAgICAgIGhhbmRsZTogJ2gxJywKICAgICAgICAgICAgc3RvcDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CiAgICAgICAgICAgICAgICB2YXIgVG9wID0gdWkub2Zmc2V0LnRvcCwKICAgICAgICAgICAgICAgICAgICBMZWZ0ID0gdWkub2Zmc2V0LmxlZnQ7CgogICAgICAgICAgICAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cubG9jYWxTdG9yYWdlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ID0gTGVmdDsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV90b3AgID0gVG9wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIHNhdmUgZnJlZCdzIHdpbmRvdyBwb3NpdGlvbgogICAgICAgIChmdW5jdGlvbigpewogICAgICAgICAgICBpZiAod2luZG93ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UgIT09IHVuZGVmaW5lZCAmJiB3aW5kb3cubG9jYWxTdG9yYWdlLkZSRURfY29uc29sZV9sZWZ0ICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UuRlJFRF9jb25zb2xlX3RvcCkgewoKICAgICAgICAgICAgICAgIHZhciBTYXZlZExlZnQgID0gd2luZG93LmxvY2FsU3RvcmFnZS5GUkVEX2NvbnNvbGVfbGVmdCwKICAgICAgICAgICAgICAgICAgICBTYXZlZFRvcCAgID0gd2luZG93LmxvY2FsU3RvcmFnZS5GUkVEX2NvbnNvbGVfdG9wLAogICAgICAgICAgICAgICAgICAgIEZyZWRXaWR0aCAgPSAkKCcjRGV2ZWxGcmVkQ29udGFpbmVyJykud2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICBGcmVkSGVpZ2h0ID0gJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmhlaWdodCgpOwoKICAgICAgICAgICAgICAgIGlmIChTYXZlZExlZnQgPiAkKCdib2R5Jykud2lkdGgoKSkgewogICAgICAgICAgICAgICAgICAgIFNhdmVkTGVmdCA9ICQoJ2JvZHknKS53aWR0aCgpIC0gRnJlZFdpZHRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKFNhdmVkVG9wID4gJCgnYm9keScpLmhlaWdodCgpKSB7CiAgICAgICAgICAgICAgICAgICAgU2F2ZWRUb3AgPSAkKCdib2R5JykuaGVpZ2h0KCkgLSBGcmVkSGVpZ2h0OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChTYXZlZExlZnQgJiYgU2F2ZWRUb3ApIHsKICAgICAgICAgICAgICAgICAgICAkKCcjRGV2ZWxGcmVkQ29udGFpbmVyJykuY3NzKCdsZWZ0JywgU2F2ZWRMZWZ0ICsgJ3B4Jyk7CiAgICAgICAgICAgICAgICAgICAgJCgnI0RldmVsRnJlZENvbnRhaW5lcicpLmNzcygndG9wJywgU2F2ZWRUb3AgKyAncHgnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0oKSk7CiAgICB9OwoKICAgIFRhcmdldE5TLkluaXQoKTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5GcmVkLkpTTGludCB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29yZS5GcmVkLkhUTUxDaGVjay5qcyAtIHZhcmlvdXMgSFRNTCBjaGVja3MKLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsIEpTTElOVDogZmFsc2UsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBleHBvcnRzIFRhcmdldE5TIGFzIENvcmUuRnJlZC5IVE1MQ2hlY2sKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgYWxsIGxvZ2ljIGZvciB0aGUgRnJlZCBtb2R1bGUgSFRNTENIZWNrCiAqLwpDb3JlLkZyZWQuSFRNTENoZWNrID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIHZhciBDaGVja0Z1bmN0aW9ucyA9IFtdLAogICAgICAgIEVycm9yc0ZvdW5kID0gZmFsc2U7CgogICAgZnVuY3Rpb24gaHRtbEVuY29kZShUZXh0KXsKICAgICAgICByZXR1cm4gVGV4dC5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7CiAgICB9CgogICAgZnVuY3Rpb24gZXNjYXBlU2VsZWN0b3IgKFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIFNlbGVjdG9yLnJlcGxhY2UoLygjfDp8XC58XFt8XF0pL2csJ1xcJDEnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBvdXRwdXRFcnJvcigkRWxlbWVudCwgRXJyb3JUeXBlLCBFcnJvckRlc2NyaXB0aW9uLCBIaW50KXsKICAgICAgICB2YXIgJENvbnRhaW5lciwKICAgICAgICAgICAgQ29kZSwKICAgICAgICAgICAgTWVzc2FnZTsKCiAgICAgICAgJCgnI0ZyZWRIVE1MQ2hlY2tSdW5uaW5nJykucmVtb3ZlKCk7CiAgICAgICAgRXJyb3JzRm91bmQgPSB0cnVlOwoKICAgICAgICAvLyBHZXQgZWxlbWVudCBIVE1MIGJ5IHdyYXBwaW5nIGl0IGluIGEgZGl2IGFuZCBjYWxsaW5nIC5odG1sKCkgb24gdGhhdAogICAgICAgICRDb250YWluZXIgPSAkKCc8ZGl2PjwvZGl2PicpOwogICAgICAgICRDb250YWluZXIuYXBwZW5kKCAkRWxlbWVudC5jbG9uZSgpICk7CgogICAgICAgIENvZGUgPSAkQ29udGFpbmVyLmh0bWwoKTsKICAgICAgICBpZiAoQ29kZS5sZW5ndGggPiAxNjApIHsKICAgICAgICAgICAgQ29kZSA9IENvZGUuc3Vic3RyaW5nKDAsIDE2MCkgKyAnLi4uJzsKICAgICAgICB9CgogICAgICAgIE1lc3NhZ2UgPSAkKCc8cCBjbGFzcz0iU21hbGwiPjwvcD4nKTsKICAgICAgICBNZXNzYWdlLmFwcGVuZCgnPHNwYW4gY2xhc3M9IkVycm9yIj5FcnJvcjo8L3NwYW4+IDxzdHJvbmc+JyArIEVycm9yRGVzY3JpcHRpb24gKyAnPC9zdHJvbmc+PGRpdj4nICsgSGludCArICc8L2Rpdj48ZGl2Pjxjb2RlPicgKyBodG1sRW5jb2RlKENvZGUpICsgJzwvY29kZT48L2Rpdj4nKTsKICAgICAgICAkKCcjRnJlZEhUTUxDaGVja1Jlc3VsdHMnKS5hcHBlbmQoTWVzc2FnZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBQZXJmb3JtcyB2YXJpb3VzIGFjY2Vzc2liaWxpdHkgY2hlY2tzIHRvIHNlZSBpZiB0aGUgSFRNTCBjb2RlCiAgICAgKiAgICAgIHZpb2xhdGVzIHNvbWUgb2Ygb3VyIGd1aWRlbGluZXMuCiAgICAgKiBAcmV0dXJuCiAgICAgKiAgICAgIG5vdGhpbmcsIGJ1dCBjYWxscyBPdXRwdXRFcnJvciBpZiBhbiBlcnJvciB3YXMgZm91bmQKICAgICAqLwoKICAgIGZ1bmN0aW9uIENoZWNrQWNjZXNzaWJpbGl0eSgpIHsKICAgICAgICAvKgogICAgICAgICAqIGNoZWNrIGlmIGlucHV0IGVsZW1lbnRzIGVpdGhlciBoYXZlIGEgbGFiZWwgb3IgYW4gYXNzaWduZWQgdGl0bGUgdGV4dAogICAgICAgICAqLwogICAgICAgICQoJ2lucHV0OnRleHQ6dmlzaWJsZSwgaW5wdXQ6cGFzc3dvcmQ6dmlzaWJsZSwgaW5wdXQ6Y2hlY2tib3g6dmlzaWJsZSwgaW5wdXQ6cmFkaW86dmlzaWJsZSwgc2VsZWN0OnZpc2libGUsIHRleHRhcmVhOnZpc2libGUnKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksCiAgICAgICAgICAgICAgICAkTGFiZWwgPSAkKFtdKSwKICAgICAgICAgICAgICAgIFRpdGxlOwoKICAgICAgICAgICAgLy8gZmlyc3QgbG9vayBmb3IgbGFiZWxzIHdoaWNoIHJlZmVyIHRvIHRoaXMgZWxlbWVudCBieSBpZAogICAgICAgICAgICBpZiAoJHRoaXMuYXR0cignaWQnKSAmJiAkdGhpcy5hdHRyKCdpZCcpLmxlbmd0aCkgewogICAgICAgICAgICAgICAgJExhYmVsID0gJCgnbGFiZWxbZm9yPScgKyBlc2NhcGVTZWxlY3RvcigkdGhpcy5hdHRyKCdpZCcpKSAgKyAnXScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHRoZW4gbG9vayBmb3IgbGFiZWxzIHdoaWNoIHN1cnJvdW5kIHRoZSBjdXJyZW50IGVsZW1lbnQKICAgICAgICAgICAgaWYgKCEkTGFiZWwubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAkTGFiZWwgPSAkdGhpcy5wYXJlbnRzKCdsYWJlbCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJExhYmVsLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5TXVsdGlwbGVMYWJlbCcsCiAgICAgICAgICAgICAgICAgICAgJ0lucHV0IGVsZW1lbnQgd2l0aCBtb3JlIHRoYW4gb25lIGFzc2lnbmVkIGxhYmVscycsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBtYWtlIHN1cmUgdGhhdCBvbmx5IG9uZSBsYWJlbCBpcyBwcmVzZW50IGZvciB0aGlzIGlucHV0IGVsZW1lbnQuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZmlyc3QgY2hlY2sgaWYgYSB0aXRsZSBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgdGhhdCBpcyBhbHNvIG9rIGZvciBhY2Nlc3NpYmlsaXR5CiAgICAgICAgICAgIFRpdGxlID0gJHRoaXMuYXR0cigndGl0bGUnKTsKICAgICAgICAgICAgaWYgKFRpdGxlICYmIFRpdGxlLmxlbmd0aCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBvaywgbm8gdGl0bGUgYXZhaWxhYmxlLCBub3cgbG9vayBmb3IgYW4gYXNzaWduZWQgbGFiZWwgZWxlbWVudAogICAgICAgICAgICBpZiAoISRMYWJlbCB8fCAhJExhYmVsLmxlbmd0aCkgewogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0FjY2Vzc2liaWxpdHlNaXNzaW5nTGFiZWwnLAogICAgICAgICAgICAgICAgICAgICdJbnB1dCBlbGVtZW50IHdpdGhvdXQgYSBkZXNjcmliaW5nIGxhYmVsIG9yIHRpdGxlIGF0dHJpYnV0ZScsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBhZGQgYSB0aXRsZSBhdHRyaWJ1dGUgb3IgYSBsYWJlbCBlbGVtZW50IHdpdGggYSAic3BlYWtpbmciIGRlc2NyaXB0aW9uIGZvciB0aGlzIGVsZW1lbnQuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvKgogICAgICAgICAqIGNoZWNrIGlmIGxpbmtzIGhhdmUgZWl0aGVyIGEgdGV4dCBvciBhIHRpdGxlCiAgICAgICAgICovCiAgICAgICAgJCgnYScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKCiAgICAgICAgICAgIC8vIGlnbm9yZSBpZiBpdCdzIGEgImEgbmFtZSIgYW5kIG5vICJhIGhyZWYiCiAgICAgICAgICAgIGlmICgkdGhpcy5hdHRyKCduYW1lJykgJiYgISR0aGlzLmF0dHIoJ2hyZWYnKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBsb2cgaWYgYW4gYXR0cmlidXRlIHRpdGxlIGV4dGlzdHMgYnV0IG5vdGhpbmcgaXMgaW4gdGhlcmUsIHNvbWV0aGluZyBtaXNzZWQgc29tZWJvZHkgKGUuIGcuIHRpdGxlPSIiKQogICAgICAgICAgICAkLmVhY2goJHRoaXNbMF0uYXR0cmlidXRlcywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMubmFtZSA9PT0gJ3RpdGxlJyAmJiAhdGhpcy52YWx1ZS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5SW5hY2Nlc3NpYmxlTGluaycsCiAgICAgICAgICAgICAgICAgICAgICAgICdMaW5rIHdpdGggdGl0bGUgYnV0IHdpdGhvdXQgdmFsdWUnLAogICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5IGxpbmsgaGFzIGEgdGl0bGUgYXR0cmlidXRlIG5vdCBlbXB0eS4nCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBldmVyeXRoaW5nIGlzIG9rLCBpZiB0ZXh0IGluIGEgaHJlZiBleGlzdHMKICAgICAgICAgICAgaWYgKCR0aGlzLnRleHQoKSAmJiAkdGhpcy50ZXh0KCkubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgaXMgb2ssIGlmIHRpdGxlIGluIGEgaHJlZiBleGlzdHMKICAgICAgICAgICAgaWYgKCR0aGlzLmF0dHIoJ3RpdGxlJykgJiYgJHRoaXMuYXR0cigndGl0bGUnKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICdBY2Nlc3NpYmlsaXR5SW5hY2Nlc3NpYmxlTGluaycsCiAgICAgICAgICAgICAgICAnTGluayB3aXRob3V0IHRleHQgb3IgdGl0bGUnLAogICAgICAgICAgICAgICAgJ1BsZWFzZSBtYWtlIHN1cmUgdGhhdCBldmVyeSBsaW5rIGhhcyBlaXRoZXIgYSB0ZXh0IGNvbnRlbnQgb3IgYSB0aXRsZSBhdHRyaWJ1dGUgdGhhdCBjYW4gYmUgdXNlZCBieSBhIHNjcmVlbnJlYWRlciB0byBpZGVudGlmeSB0aGUgbGluay4nCiAgICAgICAgICAgICk7CgogICAgICAgIH0pOwogICAgfQogICAgQ2hlY2tGdW5jdGlvbnMucHVzaChDaGVja0FjY2Vzc2liaWxpdHkpOwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgUGVyZm9ybXMgdmFyaW91cyBjaGVja3MgZm9yIGJhZCBIVE1MIHByYWN0aWNlCiAgICAgKiBAcmV0dXJuCiAgICAgKiAgICAgIG5vdGhpbmcsIGJ1dCBjYWxscyBPdXRwdXRFcnJvciBpZiBhbiBlcnJvciB3YXMgZm91bmQKICAgICAqLwoKICAgIGZ1bmN0aW9uIENoZWNrQmFkUHJhY3RpY2UoKSB7CiAgICAgICAgdmFyIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudDsKCiAgICAgICAgLy8gY2hlY2sgZm9yIGlucHV0cyB3aGljaCBzaG91bGQgYmUgYnV0dG9ucwogICAgICAgICQoJ2lucHV0OmJ1dHRvbiwgaW5wdXQ6c3VibWl0LCBpbnB1dDpyZXNldCcpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAkdGhpcywKICAgICAgICAgICAgICAgICdCYWRQcmFjdGljZUlucHV0QnV0dG9uJywKICAgICAgICAgICAgICAgICdPbGQgaW5wdXQgd2l0aCB0eXBlIGJ1dHRvbiwgc3VibWl0IG9yIHJlc2V0IGRldGVjdGVkJywKICAgICAgICAgICAgICAgICdQbGVhc2UgcmVwbGFjZSB0aGlzIGVsZW1lbnQgd2l0aCBhIDxjb2RlPiZsdDtidXR0b24mZ3Q7PC9jb2RlPiB3aXRoIHRoZSBzYW1lIHR5cGUuIElucHV0IGZpZWxkcyBtdXN0IG5vdCBiZSB1c2VkIGZvciB0aGlzIHB1cnBvc2UgYW55IG1vcmUuJwogICAgICAgICAgICApOwogICAgICAgIH0pOwoKICAgICAgICAvKgogICAgICAgIFRPRE86IGxvb2sgZm9yIGEgZml4IGZvciBjaHJvbWUuIEluIENocm9tZSwgdGhlIHNpemUgYXR0cmlidXRlIGhhcyBhIHZhbHVlIG9mIDIwIGlmCiAgICAgICAgICAgIGl0IHdhcyBub3Qgc3BlY2lmaWVkLgogICAgICAgIC8vIGNoZWNrIGZvciBpbnB1dHMgd2l0aCBzaXplIGF0dHJpYnV0ZXMKICAgICAgICAkKCdpbnB1dDpub3QoOmZpbGUpJykuZWFjaChmdW5jdGlvbigpewogICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICBpZiAoJHRoaXMuYXR0cignc2l6ZScpICYmICR0aGlzLmF0dHIoJ3NpemUnKSA+IDApIHsKICAgICAgICAgICAgICAgIG91dHB1dEVycm9yKAogICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICdCYWRQcmFjdGljZUlucHV0U2l6ZScsCiAgICAgICAgICAgICAgICAgICAgJ0lucHV0IGVsZW1lbnQgd2l0aCBzaXplIGF0dHJpYnV0ZScsCiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSByZW1vdmUgdGhlIHNpemUgYXR0cmlidXRlICh0aGlzIGlzIG9ubHkgYWxsb3dlZCBmb3IgZmlsZSB1cGxvYWQgZmllbGRzKS4gTWF5YmUgYSBjbGFzcyBsaWtlIFcyNXBjLCBXMzNwYyBvciBXNTBwYyB3b3VsZCBhY2hpZXZlIGEgc2ltaWxhciBlZmZlY3QuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgICovCgogICAgICAgIC8vIGNoZWNrIGZvciBvYnNvbGV0ZSBlbGVtZW50cwogICAgICAgIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudCA9IHsKICAgICAgICAgICAgYjogJzxjb2RlPiZsdDtzdHJvbmcmZ3Q7PC9jb2RlPicsCiAgICAgICAgICAgIGk6ICc8Y29kZT4mbHQ7ZW0mZ3Q7PC9jb2RlPicsCiAgICAgICAgICAgIGZvbnQ6ICc8Y29kZT4mbHQ7c3BhbiZndDs8L2NvZGU+IHdpdGggYSBDU1MgY2xhc3MnLAogICAgICAgICAgICBub2JyOiAnYSBwcm9wZXIgc3Vic3RpdHV0ZSAoZGVwZW5kcyBvbiBjb250ZXh0KScKICAgICAgICB9OwoKICAgICAgICAvLyBjaGVjayBmb3IgaW5wdXRzIHdpdGggc2l6ZSBhdHRyaWJ1dGVzCiAgICAgICAgJCgnZm9udCwgbm9icicpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsKICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlT2Jzb2xldGVFbGVtZW50JywKICAgICAgICAgICAgICAgICAgICAnT2Jzb2xldGUgZWxlbWVudCA8Y29kZT4mbHQ7JyArIHRoaXMudGFnTmFtZSArICcmZ3Q7PC9jb2RlPiB1c2VkJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlcGxhY2UgaXQgd2l0aDogJyArIE9ic29sZXRlRWxlbWVudDJSZXBsYWNlbWVudFt0aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKV0gKyAnLicKICAgICAgICAgICAgKTsKICAgICAgICB9KTsKCiAgICAgICAgZnVuY3Rpb24gb2Jzb2xldGVDbGFzc0Vycm9yKENsYXNzTmFtZSkgewogICAgICAgICAgICAvLyBSZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgY2FsbGJhY2sgYnkgZWFjaCgpLgogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOwogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAnQmFkUHJhY3RpY2VPYnNvbGV0ZUNsYXNzJywKICAgICAgICAgICAgICAgICAgICAgICAgJ09ic29sZXRlIGNsYXNzIDxjb2RlPiInICsgQ2xhc3NOYW1lICsgJyI8L2NvZGU+IHVzZWQnLAogICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlbW92ZSBpdCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcHJvcGVyIHN1YnN0aXR1dGUuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIC8vIGNoZWNrIGZvciBpbnB1dHMgd2l0aCBzaXplIGF0dHJpYnV0ZXMKICAgICAgICAkKCcubWFpbmJvZHknKS5lYWNoKG9ic29sZXRlQ2xhc3NFcnJvcignbWFpbmJvZHknKSk7CiAgICAgICAgJCgnLmNvbnRlbnRrZXknKS5lYWNoKG9ic29sZXRlQ2xhc3NFcnJvcignY29udGVudGtleScpKTsKICAgICAgICAkKCcuY29udGVudHZhbHVlJykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ2NvbnRlbnR2YWx1ZScpKTsKICAgICAgICAkKCcuc2VhcmNoYWN0aXZlJykuZWFjaChvYnNvbGV0ZUNsYXNzRXJyb3IoJ3NlYXJjaGFjdGl2ZScpKTsKICAgICAgICAkKCcuc2VhcmNocGFzc2l2ZScpLmVhY2gob2Jzb2xldGVDbGFzc0Vycm9yKCdzZWFyY2hwYXNzaXZlJykpOwoKICAgICAgICAvLyBjaGVjayBmb3IgZXZlbnRzCiAgICAgICAgJCgiZGl2IikuZWFjaChmdW5jdGlvbigpewoKICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwKICAgICAgICAgICAgICAgICRDb250YWluZXIsCiAgICAgICAgICAgICAgICBDb2RlLAogICAgICAgICAgICAgICAgRXZlbnRzLAogICAgICAgICAgICAgICAgRXZlbnQ7CgogICAgICAgICAgICAvLyBEb24ndCBvdXRwdXQgdGhpcyBlcnJvciBmb3IgZnJlZCBpdHNlbGYuCiAgICAgICAgICAgIC8vIFdlIGFsc28gY3VycmVudGx5IG5lZWQgb25jbGljayBldmVudHMgaW4gdGhlIG1haW4gbWVudS4KICAgICAgICAgICAgaWYgKCAkdGhpcy5jbG9zZXN0KCcuRGV2ZWxGcmVkQ29udGFpbmVyLCAjTmF2aWdhdGlvbicpLmxlbmd0aCApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gR2V0IGVsZW1lbnQgSFRNTCBieSB3cmFwcGluZyBpdCBpbiBhIGRpdiBhbmQgY2FsbGluZyAuaHRtbCgpIG9uIHRoYXQKICAgICAgICAgICAgJENvbnRhaW5lciA9ICQoJzxkaXY+PC9kaXY+Jyk7CiAgICAgICAgICAgICRDb250YWluZXIuYXBwZW5kKCAkdGhpcy5jbG9uZSgpICk7CgogICAgICAgICAgICBDb2RlID0gJENvbnRhaW5lci5odG1sKCk7CgogICAgICAgICAgICAvLyBzZWFyY2ggZm9yIGV2ZW50cyBpbiBodG1sIGVsZW1lbnQgY29kZQogICAgICAgICAgICBFdmVudHMgPSBDb2RlLm1hdGNoKC9ccytvblx3Kz0vaWcpOwoKICAgICAgICAgICAgLy8gc2VuZCBlcnJvciB0byBvdXRwdXQKICAgICAgICAgICAgaWYgKEV2ZW50cyAhPT0gbnVsbCl7CiAgICAgICAgICAgICAgICAvLyBjbGVhbiBsZWFkaW5nIHNwYWNlIGFuZCBlcXVhbHMgc2lnbiBmcm9tIHRoZSBSZWdFeCBtYXRjaGluZwogICAgICAgICAgICAgICAgZm9yIChFdmVudCBpbiBFdmVudHMpewogICAgICAgICAgICAgICAgICAgIGlmIChFdmVudHMuaGFzT3duUHJvcGVydHkoRXZlbnQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50c1tFdmVudF0gPSBFdmVudHNbRXZlbnRdLnRvU3RyaW5nKCkubWF0Y2goL29uXHcrLyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgb3V0cHV0RXJyb3IoCiAgICAgICAgICAgICAgICAgICAgJHRoaXMsCiAgICAgICAgICAgICAgICAgICAgJ0JhZFByYWN0aWNlRXZlbnQnLAogICAgICAgICAgICAgICAgICAgICdFdmVudCA8Y29kZT4iJyArIEV2ZW50cyArICciPC9jb2RlPiB1c2VkJywKICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlbW92ZSBpdCBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgcHJvcGVyIHN1YnN0aXR1dGUuJwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgIH0KICAgIENoZWNrRnVuY3Rpb25zLnB1c2goQ2hlY2tCYWRQcmFjdGljZSk7CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBIVE1MQ2hlY2sgY2FuIGJlIHN0YXJ0ZWQgKGpRdWVyeSBpcyBsb2FkZWQpLgogICAgICogQHJldHVybiBub3RoaW5nLgogICAgICovCiAgICBUYXJnZXROUy5DaGVja0ZvclN0YXJ0ID0gZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChqUXVlcnkpIHsKICAgICAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIENvcmUuRnJlZC5IVE1MQ2hlY2suUnVuKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgQ29yZS5GcmVkLkhUTUxDaGVjay5DaGVja0ZvclN0YXJ0KCk7CiAgICAgICAgICAgIH0sIDI1MCk7CiAgICAgICAgfQogICAgfTsKCiAgICAvKioKICAgICAqIEBmdW5jdGlvbgogICAgICogQGRlc2NyaXB0aW9uCiAgICAgKiAgICAgIFJ1bnMgYWxsIGF2YWlsYWJsZSBjaGVjayBmdW5jdGlvbnMKICAgICAqIEByZXR1cm4KICAgICAqICAgICAgbm90aGluZwogICAgICovCiAgICBUYXJnZXROUy5SdW4gPSBmdW5jdGlvbigpewogICAgICAgICQuZWFjaChDaGVja0Z1bmN0aW9ucywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgdGhpcygpOwogICAgICAgIH0pOwogICAgICAgICQoJyNGcmVkSFRNTENoZWNrUnVubmluZycpLnJlbW92ZSgpOwogICAgICAgIGlmICghRXJyb3JzRm91bmQpIHsKICAgICAgICAgICAgJCgnI0ZyZWRIVE1MQ2hlY2tSZXN1bHRzJykuaHRtbCgnPHAgY2xhc3M9IkNvbmZpcm1hdGlvbiI+QWxsIGNoZWNrcyBvay48L3A+Jyk7CiAgICAgICAgfQogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cn0oQ29yZS5GcmVkLkhUTUxDaGVjayB8fCB7fSkpOwo=
Ly8gLS0KLy8gQ29yZS5GcmVkLkpTTGludC5qcyAtIEpTTGludCBpbnRlcmZhY2UKLy8gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwovLyAtLQovLyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQovLyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91Ci8vIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCi8vIC0tCgoidXNlIHN0cmljdCI7Ci8qZ2xvYmFsIEpTTElOVDogZmFsc2UsICQ6IGZhbHNlLCBqUXVlcnk6IGZhbHNlICovCgp2YXIgQ29yZSA9IENvcmUgfHwge307CkNvcmUuRnJlZCA9IENvcmUuRnJlZCB8fCB7fTsKCi8qKgogKiBAbmFtZXNwYWNlCiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIGFsbCBsb2dpYyBmb3IgdGhlIEZyZWQgbW9kdWxlIEpTTGludAogKi8KQ29yZS5GcmVkLkpTTGludCA9IChmdW5jdGlvbiAoVGFyZ2V0TlMpIHsKCiAgICBmdW5jdGlvbiBodG1sRXNjYXBlKHN0cikgewogICAgICAgIHJldHVybiBTdHJpbmcoc3RyKQogICAgICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKQogICAgICAgICAgICAucmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykKICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7JykKICAgICAgICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKQogICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpOwogICAgfQoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcHJpdmF0ZQogICAgICogQHJldHVybiBub3RoaW5nCiAgICAgKiBAZGVzY3JpcHRpb24gU3RhcnQgSlNMaW50IGNoZWNrLgogICAgICovCiAgICBmdW5jdGlvbiBzdGFydEpTTGludCgpIHsKICAgICAgICB2YXIgUmVzdWx0LAogICAgICAgICAgICBFcnJvcnNGb3VuZCA9IGZhbHNlOwoKICAgICAgICAvLyBUaGlzIGZ1bmMgc2hvdWxkIG5vdCBiZSBzdGFydGVkIG1vcmUgdGhhbiBvbmUgdGltZS4uLgogICAgICAgIGlmIChUYXJnZXROUy5TdGFydGVkKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgVGFyZ2V0TlMuU3RhcnRlZCsrOwoKICAgICAgICAvLyBTdGFydCBKU0xpbnQgZm9yIGV2ZXJ5IHNjcmlwdCB3ZSBmb3VuZCBhbmQgb3V0cHV0IHRoZSByZXN1bHQKICAgICAgICAkLmVhY2goVGFyZ2V0TlMuQWxsU2NyaXB0cywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgRXJyb3JPYmplY3QsIE91dHB1dCwgaTsKCiAgICAgICAgICAgIC8vIElnbm9yZSBpbnZhbGlkIGNvZGUgdGhhdCBpcyBpbmplY3RlZCBieSB0aGUgZ29vZ2xlIGFuYWx5dGljcyBvcHQtb3V0IHBsdWdpbiBmb3IgYnJvd3NlcnMuCiAgICAgICAgICAgIGlmICggdGhpcy5TcmMgPT09ICdpbmxpbmUnICYmIHRoaXMuU2NyaXB0Lm1hdGNoKC9fZ2FVc2VyUHJlZnMvKSApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVzdWx0ID0gSlNMSU5UKHRoaXMuU2NyaXB0LCAodGhpcy5TcmMgPT09ICdpbmxpbmUnKSA/IFRhcmdldE5TLklubGluZU9wdGlvbnMgOiBUYXJnZXROUy5SZW1vdGVPcHRpb25zKTsKICAgICAgICAgICAgaWYgKCFSZXN1bHQpIHsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBKU0xJTlQuZXJyb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgRXJyb3JPYmplY3QgPSBKU0xJTlQuZXJyb3JzW2ldOwogICAgICAgICAgICAgICAgICAgIGlmIChFcnJvck9iamVjdCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCcjRnJlZEpTTGludFJ1bm5pbmcnKS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0ID0gJzxkaXYgY2xhc3M9IkZyZWRKU0xpbnRFcnJvciI+JzsKICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0ICs9ICc8cD48c3BhbiBjbGFzcz0iRXJyb3IiPkVycm9yOiA8L3NwYW4+PHN0cm9uZz4nICsgRXJyb3JPYmplY3QucmVhc29uICsgJzwvc3Ryb25nPiBTb3VyY2U6ICAgICAnICsgdGhpcy5TcmMgKyAnOicgKyBFcnJvck9iamVjdC5saW5lICsgJzonICsgRXJyb3JPYmplY3QuY2hhcmFjdGVyICsgJzwvcD4nOwogICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQgKz0gJzxjb2RlPicgKyBodG1sRXNjYXBlKEVycm9yT2JqZWN0LmV2aWRlbmNlKSArICc8L2NvZGU+JzsKICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0ICs9ICc8L2Rpdj4nOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjRnJlZEpTTGludFNjcmlwdHMnKS5hcHBlbmQoT3V0cHV0KTsKICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3JzRm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBhY3RpdmF0ZSBlbHNlIGJyYW5jaCB0byBzZWUgcG9zaXRpdmUgY2hlY2sgcmVzdWx0cyBwZXIgZmlsZSBmb3IgZnJlZCBkZWJ1Z2dpbmcKICAgICAgICAgICAgLy9lbHNlIHsKICAgICAgICAgICAgLy8gICAgJCgnI0ZyZWRKU0xpbnRSdW5uaW5nJykucmVtb3ZlKCk7CiAgICAgICAgICAgIC8vICAgICQoJyNGcmVkSlNMaW50U2NyaXB0cycpLmFwcGVuZCgnPHAgY2xhc3M9IkZyZWRKU0xpbnRTdWNjZXNzZnVsbCI+JyArIHRoaXMuU3JjICsgJyBvazwvcD4nKTsKICAgICAgICAgICAgLy99CiAgICAgICAgfSk7CiAgICAgICAgaWYgKCFFcnJvcnNGb3VuZCkgewogICAgICAgICAgICAkKCcjRnJlZEpTTGludFJ1bm5pbmcnKS5yZW1vdmUoKTsKICAgICAgICAgICAgJCgnI0ZyZWRKU0xpbnRTY3JpcHRzJykuYXBwZW5kKCc8cCBjbGFzcz0iRnJlZEpTTGludFN1Y2Nlc3NmdWxsIj5BbGwgY2hlY2tzIG9rLjwvcD4nKTsKICAgICAgICB9CgogICAgICAgIGlmIChUYXJnZXROUy5BbGxTY3JpcHRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAkKCcjRnJlZEpTTGludFNjcmlwdHMnKS5hcHBlbmQoJzxwPk5vIHNjcmlwdHMgZm91bmQhPC9wPicpLmNzcygnaGVpZ2h0JywgJzE1cHgnKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAZmllbGQKICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3B0aW9ucyBmb3IgSlNMaW50LgogICAgICovCiAgICBUYXJnZXROUy5Db21tb25PcHRpb25zID0gewogICAgICAgIGJyb3dzZXI6IHRydWUsCiAgICAgICAgd2hpdGU6IHRydWUsCiAgICAgICAgaW5kZW50OiA0LAogICAgICAgIGRldmVsOiB0cnVlLAogICAgICAgIG9uZXZhcjogdHJ1ZSwKICAgICAgICB1bmRlZjogdHJ1ZSwKICAgICAgICBub21lbjogdHJ1ZSwKICAgICAgICBlcWVxZXE6IHRydWUsCiAgICAgICAgcGx1c3BsdXM6IGZhbHNlLAogICAgICAgIGJpdHdpc2U6IHRydWUsCiAgICAgICAgc3RyaWN0OiB0cnVlLAogICAgICAgIGltbWVkOiB0cnVlLAogICAgICAgIHByZWRlZjogWydDb3JlJywgJ2lzSlF1ZXJ5T2JqZWN0JywgJyQnLCAnalF1ZXJ5JywgJ0NLRURJVE9SJywgJ3dpbmRvdycsICdkb2N1bWVudCcsICdwcmludFN0YWNrVHJhY2UnXQogICAgfTsKICAgIFRhcmdldE5TLlJlbW90ZU9wdGlvbnMgPSAkLmV4dGVuZChUYXJnZXROUy5Db21tb25PcHRpb25zLCB7fSk7CiAgICBUYXJnZXROUy5JbmxpbmVPcHRpb25zID0gJC5leHRlbmQoVGFyZ2V0TlMuQ29tbW9uT3B0aW9ucywgewogICAgICAgIHdoaXRlOiBmYWxzZQogICAgfSk7CgogICAgVGFyZ2V0TlMuQWxsU2NyaXB0cyA9IFRhcmdldE5TLkFsbFNjcmlwdHMgfHwgW107CiAgICBUYXJnZXROUy5XYWl0aW5nID0gMDsKICAgIFRhcmdldE5TLlN0YXJ0ZWQgPSAwOwogICAgVGFyZ2V0TlMuU291cmNlcyA9IHt9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJuIG5vdGhpbmcuCiAgICAgKiBAZGVzY3JpcHRpb24KICAgICAqICAgICAgVGhpcyBpcyB0aGUgaW5pdCBmdW5jdGlvbiBmb3IgSlNMaW50LgogICAgICovCiAgICBUYXJnZXROUy5Jbml0ID0gZnVuY3Rpb24gKCkgewogICAgICAgIC8vIHRoaXMgbW9kdWxlIG5lZWRzIGpRdWVyeSEKICAgICAgICBpZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcgfHwgIWpRdWVyeSkgewogICAgICAgICAgICB3aW5kb3cuYWxlcnQoJ0ZyZWQgSlNMaW50IG1vZHVsZSBuZWVkcyBqUXVlcnkgbG9hZGVkJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdGcmVkSlNMaW50U2NyaXB0cycpLnN0eWxlLmhlaWdodCA9ICcxNXB4JzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIENvcmUuRnJlZC5KU0xpbnQuR2V0U2NyaXB0cygpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9OwoKICAgIC8qKgogICAgICogQGZ1bmN0aW9uCiAgICAgKiBAcmV0dXJuIG5vdGhpbmcKICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgYWxsIHNjcmlwdHMgdG8gY2hlY2suCiAgICAgKi8KICAgIFRhcmdldE5TLkdldFNjcmlwdHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgU2NyaXB0cywgU291cmNlOwoKICAgICAgICAgICAgJCgnc2NyaXB0JykuZWFjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAvLyBFeGNsdWRlIHRoZSBGcmVkIEphdmFTY3JpcHQgOy0pCiAgICAgICAgICAgICAgICBTY3JpcHRzID0gJCh0aGlzKS50ZXh0KCk7CgogICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaXMoJ1tzcmNdJykpIHsKICAgICAgICAgICAgICAgICAgICBTb3VyY2UgPSAkKHRoaXMpLmF0dHIoJ3NyYycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU291cmNlID0gJ2lubGluZSc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKFNvdXJjZSA9PT0gJ2lubGluZScpIHsKICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5BbGxTY3JpcHRzLnB1c2goe1NyYzogU291cmNlLCBTY3JpcHQ6IFNjcmlwdHN9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIElmIGV4dGVybmFsIHNvdXJjZSBpcyBub3QgYSB0aGlyZHBhcnR5IHNjcmlwdCwgbG9hZCBpdCEKICAgICAgICAgICAgICAgICAgICBpZiAoIVNvdXJjZS5tYXRjaCgvdGhpcmRwYXJ0eS8pICYmICFTb3VyY2UubWF0Y2goL2Nocm9tZTpcL1wvLykgJiYgIVRhcmdldE5TLlNvdXJjZXNbU291cmNlXSkgewogICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXROUy5XYWl0aW5nKys7CiAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLlNvdXJjZXNbU291cmNlXSA9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICAkLmdldChTb3VyY2UsIHt9LCBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0TlMuQWxsU2NyaXB0cy5wdXNoKHtTcmM6IHRoaXMudXJsLCBTY3JpcHQ6IGRhdGF9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldE5TLldhaXRpbmctLTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwgJ3RleHQnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gc3RhcnQganNsaW50LCBpZiBhbGwgYWpheCByZXF1ZXN0cyBhcmUgcmVhZHkKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSlNMaW50LkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgfSwgMjUwKTsKICAgICAgICB9KTsKICAgIH07CgogICAgLyoqCiAgICAgKiBAZnVuY3Rpb24KICAgICAqIEByZXR1cm4gbm90aGluZy4KICAgICAqIEBkZXNjcmlwdGlvbgogICAgICogICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcywgaWYgSlNMaW50IGNhbiBiZSBzdGFydGVkIChhbGwgc2NyaXB0cyBhcmUgbG9hZGVkKS4KICAgICAqLwogICAgVGFyZ2V0TlMuQ2hlY2tGb3JTdGFydCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoVGFyZ2V0TlMuV2FpdGluZyA8PSAwICYmIFRhcmdldE5TLlN0YXJ0ZWQgPT09IDApIHsKICAgICAgICAgICAgc3RhcnRKU0xpbnQoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChUYXJnZXROUy5TdGFydGVkID09PSAwKSB7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBDb3JlLkZyZWQuSlNMaW50LkNoZWNrRm9yU3RhcnQoKTsKICAgICAgICAgICAgICAgIH0sIDI1MCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuIFRhcmdldE5TOwp9KENvcmUuRnJlZC5KU0xpbnQgfHwge30pKTsK
Ly8gKEMpMjAwMiBEb3VnbGFzIENyb2NrZm9yZAovLyB3d3cuSlNMaW50LmNvbQoidXNlIHN0cmljdCI7dmFyIEpTTElOVD0oZnVuY3Rpb24oKXt2YXIgYWRzYWZlX2lkLGFkc2FmZV9tYXksYWRzYWZlX3dlbnQsYW5vbm5hbWUsYXBwcm92ZWQsYXRydWxlPXttZWRpYTp0cnVlLCdmb250LWZhY2UnOnRydWUscGFnZTp0cnVlfSxiYW5nPXsnPCc6dHJ1ZSwnPD0nOnRydWUsJz09Jzp0cnVlLCc9PT0nOnRydWUsJyE9PSc6dHJ1ZSwnIT0nOnRydWUsJz4nOnRydWUsJz49Jzp0cnVlLCcrJzp0cnVlLCctJzp0cnVlLCcqJzp0cnVlLCcvJzp0cnVlLCclJzp0cnVlfSxiYW5uZWQ9eydhcmd1bWVudHMnOnRydWUsY2FsbGVlOnRydWUsY2FsbGVyOnRydWUsY29uc3RydWN0b3I6dHJ1ZSwnZXZhbCc6dHJ1ZSxwcm90b3R5cGU6dHJ1ZSx1bndhdGNoOnRydWUsdmFsdWVPZjp0cnVlLHdhdGNoOnRydWV9LGJvb2xPcHRpb25zPXthZHNhZmU6dHJ1ZSxiaXR3aXNlOnRydWUsYnJvd3Nlcjp0cnVlLGNhcDp0cnVlLGNzczp0cnVlLGRlYnVnOnRydWUsZGV2ZWw6dHJ1ZSxlcWVxZXE6dHJ1ZSxldmlsOnRydWUsZm9yaW46dHJ1ZSxmcmFnbWVudDp0cnVlLGltbWVkOnRydWUsbGF4YnJlYWs6dHJ1ZSxuZXdjYXA6dHJ1ZSxub21lbjp0cnVlLG9uOnRydWUsb25ldmFyOnRydWUscGFzc2ZhaWw6dHJ1ZSxwbHVzcGx1czp0cnVlLHJlZ2V4cDp0cnVlLHJoaW5vOnRydWUsdW5kZWY6dHJ1ZSxzYWZlOnRydWUsc2lkZWJhcjp0cnVlLHN0cmljdDp0cnVlLHN1Yjp0cnVlLHdoaXRlOnRydWUsd2lkZ2V0OnRydWV9LGJyb3dzZXI9e2FkZEV2ZW50TGlzdGVuZXI6ZmFsc2UsYmx1cjpmYWxzZSxjbGVhckludGVydmFsOmZhbHNlLGNsZWFyVGltZW91dDpmYWxzZSxjbG9zZTpmYWxzZSxjbG9zZWQ6ZmFsc2UsZGVmYXVsdFN0YXR1czpmYWxzZSxkb2N1bWVudDpmYWxzZSxldmVudDpmYWxzZSxmb2N1czpmYWxzZSxmcmFtZXM6ZmFsc2UsZ2V0Q29tcHV0ZWRTdHlsZTpmYWxzZSxoaXN0b3J5OmZhbHNlLEltYWdlOmZhbHNlLGxlbmd0aDpmYWxzZSxsb2NhdGlvbjpmYWxzZSxtb3ZlQnk6ZmFsc2UsbW92ZVRvOmZhbHNlLG5hbWU6ZmFsc2UsbmF2aWdhdG9yOmZhbHNlLG9uYmVmb3JldW5sb2FkOnRydWUsb25ibHVyOnRydWUsb25lcnJvcjp0cnVlLG9uZm9jdXM6dHJ1ZSxvbmxvYWQ6dHJ1ZSxvbnJlc2l6ZTp0cnVlLG9udW5sb2FkOnRydWUsb3BlbjpmYWxzZSxvcGVuZXI6ZmFsc2UsT3B0aW9uOmZhbHNlLHBhcmVudDpmYWxzZSxwcmludDpmYWxzZSxyZW1vdmVFdmVudExpc3RlbmVyOmZhbHNlLHJlc2l6ZUJ5OmZhbHNlLHJlc2l6ZVRvOmZhbHNlLHNjcmVlbjpmYWxzZSxzY3JvbGw6ZmFsc2Usc2Nyb2xsQnk6ZmFsc2Usc2Nyb2xsVG86ZmFsc2Usc2V0SW50ZXJ2YWw6ZmFsc2Usc2V0VGltZW91dDpmYWxzZSxzdGF0dXM6ZmFsc2UsdG9wOmZhbHNlLFhNTEh0dHBSZXF1ZXN0OmZhbHNlfSxjc3NBdHRyaWJ1dGVEYXRhLGNzc0FueSxjc3NDb2xvckRhdGE9eyJhbGljZWJsdWUiOnRydWUsImFudGlxdWV3aGl0ZSI6dHJ1ZSwiYXF1YSI6dHJ1ZSwiYXF1YW1hcmluZSI6dHJ1ZSwiYXp1cmUiOnRydWUsImJlaWdlIjp0cnVlLCJiaXNxdWUiOnRydWUsImJsYWNrIjp0cnVlLCJibGFuY2hlZGFsbW9uZCI6dHJ1ZSwiYmx1ZSI6dHJ1ZSwiYmx1ZXZpb2xldCI6dHJ1ZSwiYnJvd24iOnRydWUsImJ1cmx5d29vZCI6dHJ1ZSwiY2FkZXRibHVlIjp0cnVlLCJjaGFydHJldXNlIjp0cnVlLCJjaG9jb2xhdGUiOnRydWUsImNvcmFsIjp0cnVlLCJjb3JuZmxvd2VyYmx1ZSI6dHJ1ZSwiY29ybnNpbGsiOnRydWUsImNyaW1zb24iOnRydWUsImN5YW4iOnRydWUsImRhcmtibHVlIjp0cnVlLCJkYXJrY3lhbiI6dHJ1ZSwiZGFya2dvbGRlbnJvZCI6dHJ1ZSwiZGFya2dyYXkiOnRydWUsImRhcmtncmVlbiI6dHJ1ZSwiZGFya2toYWtpIjp0cnVlLCJkYXJrbWFnZW50YSI6dHJ1ZSwiZGFya29saXZlZ3JlZW4iOnRydWUsImRhcmtvcmFuZ2UiOnRydWUsImRhcmtvcmNoaWQiOnRydWUsImRhcmtyZWQiOnRydWUsImRhcmtzYWxtb24iOnRydWUsImRhcmtzZWFncmVlbiI6dHJ1ZSwiZGFya3NsYXRlYmx1ZSI6dHJ1ZSwiZGFya3NsYXRlZ3JheSI6dHJ1ZSwiZGFya3R1cnF1b2lzZSI6dHJ1ZSwiZGFya3Zpb2xldCI6dHJ1ZSwiZGVlcHBpbmsiOnRydWUsImRlZXBza3libHVlIjp0cnVlLCJkaW1ncmF5Ijp0cnVlLCJkb2RnZXJibHVlIjp0cnVlLCJmaXJlYnJpY2siOnRydWUsImZsb3JhbHdoaXRlIjp0cnVlLCJmb3Jlc3RncmVlbiI6dHJ1ZSwiZnVjaHNpYSI6dHJ1ZSwiZ2FpbnNib3JvIjp0cnVlLCJnaG9zdHdoaXRlIjp0cnVlLCJnb2xkIjp0cnVlLCJnb2xkZW5yb2QiOnRydWUsImdyYXkiOnRydWUsImdyZWVuIjp0cnVlLCJncmVlbnllbGxvdyI6dHJ1ZSwiaG9uZXlkZXciOnRydWUsImhvdHBpbmsiOnRydWUsImluZGlhbnJlZCI6dHJ1ZSwiaW5kaWdvIjp0cnVlLCJpdm9yeSI6dHJ1ZSwia2hha2kiOnRydWUsImxhdmVuZGVyIjp0cnVlLCJsYXZlbmRlcmJsdXNoIjp0cnVlLCJsYXduZ3JlZW4iOnRydWUsImxlbW9uY2hpZmZvbiI6dHJ1ZSwibGlnaHRibHVlIjp0cnVlLCJsaWdodGNvcmFsIjp0cnVlLCJsaWdodGN5YW4iOnRydWUsImxpZ2h0Z29sZGVucm9keWVsbG93Ijp0cnVlLCJsaWdodGdyZWVuIjp0cnVlLCJsaWdodHBpbmsiOnRydWUsImxpZ2h0c2FsbW9uIjp0cnVlLCJsaWdodHNlYWdyZWVuIjp0cnVlLCJsaWdodHNreWJsdWUiOnRydWUsImxpZ2h0c2xhdGVncmF5Ijp0cnVlLCJsaWdodHN0ZWVsYmx1ZSI6dHJ1ZSwibGlnaHR5ZWxsb3ciOnRydWUsImxpbWUiOnRydWUsImxpbWVncmVlbiI6dHJ1ZSwibGluZW4iOnRydWUsIm1hZ2VudGEiOnRydWUsIm1hcm9vbiI6dHJ1ZSwibWVkaXVtYXF1YW1hcmluZSI6dHJ1ZSwibWVkaXVtYmx1ZSI6dHJ1ZSwibWVkaXVtb3JjaGlkIjp0cnVlLCJtZWRpdW1wdXJwbGUiOnRydWUsIm1lZGl1bXNlYWdyZWVuIjp0cnVlLCJtZWRpdW1zbGF0ZWJsdWUiOnRydWUsIm1lZGl1bXNwcmluZ2dyZWVuIjp0cnVlLCJtZWRpdW10dXJxdW9pc2UiOnRydWUsIm1lZGl1bXZpb2xldHJlZCI6dHJ1ZSwibWlkbmlnaHRibHVlIjp0cnVlLCJtaW50Y3JlYW0iOnRydWUsIm1pc3R5cm9zZSI6dHJ1ZSwibW9jY2FzaW4iOnRydWUsIm5hdmFqb3doaXRlIjp0cnVlLCJuYXZ5Ijp0cnVlLCJvbGRsYWNlIjp0cnVlLCJvbGl2ZSI6dHJ1ZSwib2xpdmVkcmFiIjp0cnVlLCJvcmFuZ2UiOnRydWUsIm9yYW5nZXJlZCI6dHJ1ZSwib3JjaGlkIjp0cnVlLCJwYWxlZ29sZGVucm9kIjp0cnVlLCJwYWxlZ3JlZW4iOnRydWUsInBhbGV0dXJxdW9pc2UiOnRydWUsInBhbGV2aW9sZXRyZWQiOnRydWUsInBhcGF5YXdoaXAiOnRydWUsInBlYWNocHVmZiI6dHJ1ZSwicGVydSI6dHJ1ZSwicGluayI6dHJ1ZSwicGx1bSI6dHJ1ZSwicG93ZGVyYmx1ZSI6dHJ1ZSwicHVycGxlIjp0cnVlLCJyZWQiOnRydWUsInJvc3licm93biI6dHJ1ZSwicm95YWxibHVlIjp0cnVlLCJzYWRkbGVicm93biI6dHJ1ZSwic2FsbW9uIjp0cnVlLCJzYW5keWJyb3duIjp0cnVlLCJzZWFncmVlbiI6dHJ1ZSwic2Vhc2hlbGwiOnRydWUsInNpZW5uYSI6dHJ1ZSwic2lsdmVyIjp0cnVlLCJza3libHVlIjp0cnVlLCJzbGF0ZWJsdWUiOnRydWUsInNsYXRlZ3JheSI6dHJ1ZSwic25vdyI6dHJ1ZSwic3ByaW5nZ3JlZW4iOnRydWUsInN0ZWVsYmx1ZSI6dHJ1ZSwidGFuIjp0cnVlLCJ0ZWFsIjp0cnVlLCJ0aGlzdGxlIjp0cnVlLCJ0b21hdG8iOnRydWUsInR1cnF1b2lzZSI6dHJ1ZSwidmlvbGV0Ijp0cnVlLCJ3aGVhdCI6dHJ1ZSwid2hpdGUiOnRydWUsIndoaXRlc21va2UiOnRydWUsInllbGxvdyI6dHJ1ZSwieWVsbG93Z3JlZW4iOnRydWV9LGNzc0JvcmRlclN0eWxlLGNzc0JyZWFrLGNzc0xlbmd0aERhdGE9eyclJzp0cnVlLCdjbSc6dHJ1ZSwnZW0nOnRydWUsJ2V4Jzp0cnVlLCdpbic6dHJ1ZSwnbW0nOnRydWUsJ3BjJzp0cnVlLCdwdCc6dHJ1ZSwncHgnOnRydWV9LGNzc092ZXJmbG93LGRldmVsPXthbGVydDpmYWxzZSxjb25maXJtOmZhbHNlLGNvbnNvbGU6ZmFsc2UsRGVidWc6ZmFsc2Usb3BlcmE6ZmFsc2UscHJvbXB0OmZhbHNlfSxlc2NhcGVzPXsnXGInOidcXGInLCdcdCc6J1xcdCcsJ1xuJzonXFxuJywnXGYnOidcXGYnLCdccic6J1xccicsJyInOidcXCInLCcvJzonXFwvJywnXFwnOidcXFxcJ30sZnVuY3QsZnVuY3Rpb25pY2l0eT1bJ2Nsb3N1cmUnLCdleGNlcHRpb24nLCdnbG9iYWwnLCdsYWJlbCcsJ291dGVyJywndW51c2VkJywndmFyJ10sZnVuY3Rpb25zLGdsb2JhbCxodG1sdGFnPXthOnt9LGFiYnI6e30sYWNyb255bTp7fSxhZGRyZXNzOnt9LGFwcGxldDp7fSxhcmVhOntlbXB0eTp0cnVlLHBhcmVudDonIG1hcCAnfSxiOnt9LGJhc2U6e2VtcHR5OnRydWUscGFyZW50OicgaGVhZCAnfSxiZG86e30sYmlnOnt9LGJsb2NrcXVvdGU6e30sYm9keTp7cGFyZW50OicgaHRtbCBub2ZyYW1lcyAnfSxicjp7ZW1wdHk6dHJ1ZX0sYnV0dG9uOnt9LGNhbnZhczp7cGFyZW50OicgYm9keSBwIGRpdiB0aCB0ZCAnfSxjYXB0aW9uOntwYXJlbnQ6JyB0YWJsZSAnfSxjZW50ZXI6e30sY2l0ZTp7fSxjb2RlOnt9LGNvbDp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyB0YWJsZSBjb2xncm91cCAnfSxjb2xncm91cDp7cGFyZW50OicgdGFibGUgJ30sZGQ6e3BhcmVudDonIGRsICd9LGRlbDp7fSxkZm46e30sZGlyOnt9LGRpdjp7fSxkbDp7fSxkdDp7cGFyZW50OicgZGwgJ30sZW06e30sZW1iZWQ6e30sZmllbGRzZXQ6e30sZm9udDp7fSxmb3JtOnt9LGZyYW1lOntlbXB0eTp0cnVlLHBhcmVudDonIGZyYW1lc2V0ICd9LGZyYW1lc2V0OntwYXJlbnQ6JyBodG1sIGZyYW1lc2V0ICd9LGgxOnt9LGgyOnt9LGgzOnt9LGg0Ont9LGg1Ont9LGg2Ont9LGhlYWQ6e3BhcmVudDonIGh0bWwgJ30saHRtbDp7cGFyZW50OicqJ30saHI6e2VtcHR5OnRydWV9LGk6e30saWZyYW1lOnt9LGltZzp7ZW1wdHk6dHJ1ZX0saW5wdXQ6e2VtcHR5OnRydWV9LGluczp7fSxrYmQ6e30sbGFiZWw6e30sbGVnZW5kOntwYXJlbnQ6JyBmaWVsZHNldCAnfSxsaTp7cGFyZW50OicgZGlyIG1lbnUgb2wgdWwgJ30sbGluazp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyBoZWFkICd9LG1hcDp7fSxtZW51Ont9LG1ldGE6e2VtcHR5OnRydWUscGFyZW50OicgaGVhZCBub2ZyYW1lcyBub3NjcmlwdCAnfSxub2ZyYW1lczp7cGFyZW50OicgaHRtbCBib2R5ICd9LG5vc2NyaXB0OntwYXJlbnQ6JyBib2R5IGhlYWQgbm9mcmFtZXMgJ30sb2JqZWN0Ont9LG9sOnt9LG9wdGdyb3VwOntwYXJlbnQ6JyBzZWxlY3QgJ30sb3B0aW9uOntwYXJlbnQ6JyBvcHRncm91cCBzZWxlY3QgJ30scDp7fSxwYXJhbTp7ZW1wdHk6dHJ1ZSxwYXJlbnQ6JyBhcHBsZXQgb2JqZWN0ICd9LHByZTp7fSxxOnt9LHNhbXA6e30sc2NyaXB0OntlbXB0eTp0cnVlLHBhcmVudDonIGJvZHkgZGl2IGZyYW1lIGhlYWQgaWZyYW1lIHAgcHJlIHNwYW4gJ30sc2VsZWN0Ont9LHNtYWxsOnt9LHNwYW46e30sc3Ryb25nOnt9LHN0eWxlOntwYXJlbnQ6JyBoZWFkICcsZW1wdHk6dHJ1ZX0sc3ViOnt9LHN1cDp7fSx0YWJsZTp7fSx0Ym9keTp7cGFyZW50OicgdGFibGUgJ30sdGQ6e3BhcmVudDonIHRyICd9LHRleHRhcmVhOnt9LHRmb290OntwYXJlbnQ6JyB0YWJsZSAnfSx0aDp7cGFyZW50OicgdHIgJ30sdGhlYWQ6e3BhcmVudDonIHRhYmxlICd9LHRpdGxlOntwYXJlbnQ6JyBoZWFkICd9LHRyOntwYXJlbnQ6JyB0YWJsZSB0Ym9keSB0aGVhZCB0Zm9vdCAnfSx0dDp7fSx1Ont9LHVsOnt9LCd2YXInOnt9fSxpZHMsaW1wbGllZCxpbmJsb2NrLGluZGVudCxqc29ubW9kZSxsaW5lcyxsb29rYWhlYWQsbWVtYmVyLG1lbWJlcnNPbmx5LG5leHR0b2tlbixub3JlYWNoLG9wdGlvbixwcmVkZWZpbmVkLHByZXJlZyxwcmV2dG9rZW4scmhpbm89e2RlZmluZUNsYXNzOmZhbHNlLGRlc2VyaWFsaXplOmZhbHNlLGdjOmZhbHNlLGhlbHA6ZmFsc2UsbG9hZDpmYWxzZSxsb2FkQ2xhc3M6ZmFsc2UscHJpbnQ6ZmFsc2UscXVpdDpmYWxzZSxyZWFkRmlsZTpmYWxzZSxyZWFkVXJsOmZhbHNlLHJ1bkNvbW1hbmQ6ZmFsc2Usc2VhbDpmYWxzZSxzZXJpYWxpemU6ZmFsc2Usc3Bhd246ZmFsc2Usc3luYzpmYWxzZSx0b2ludDMyOmZhbHNlLHZlcnNpb246ZmFsc2V9LHNjb3BlLHNpZGViYXI9e1N5c3RlbTpmYWxzZX0sc3JjLHN0YWNrLHN0YW5kYXJkPXtBcnJheTpmYWxzZSxCb29sZWFuOmZhbHNlLERhdGU6ZmFsc2UsZGVjb2RlVVJJOmZhbHNlLGRlY29kZVVSSUNvbXBvbmVudDpmYWxzZSxlbmNvZGVVUkk6ZmFsc2UsZW5jb2RlVVJJQ29tcG9uZW50OmZhbHNlLEVycm9yOmZhbHNlLCdldmFsJzpmYWxzZSxFdmFsRXJyb3I6ZmFsc2UsRnVuY3Rpb246ZmFsc2UsaGFzT3duUHJvcGVydHk6ZmFsc2UsaXNGaW5pdGU6ZmFsc2UsaXNOYU46ZmFsc2UsSlNPTjpmYWxzZSxNYXRoOmZhbHNlLE51bWJlcjpmYWxzZSxPYmplY3Q6ZmFsc2UscGFyc2VJbnQ6ZmFsc2UscGFyc2VGbG9hdDpmYWxzZSxSYW5nZUVycm9yOmZhbHNlLFJlZmVyZW5jZUVycm9yOmZhbHNlLFJlZ0V4cDpmYWxzZSxTdHJpbmc6ZmFsc2UsU3ludGF4RXJyb3I6ZmFsc2UsVHlwZUVycm9yOmZhbHNlLFVSSUVycm9yOmZhbHNlfSxzdGFuZGFyZF9tZW1iZXI9e0U6dHJ1ZSxMTjI6dHJ1ZSxMTjEwOnRydWUsTE9HMkU6dHJ1ZSxMT0cxMEU6dHJ1ZSxQSTp0cnVlLFNRUlQxXzI6dHJ1ZSxTUVJUMjp0cnVlLE1BWF9WQUxVRTp0cnVlLE1JTl9WQUxVRTp0cnVlLE5FR0FUSVZFX0lORklOSVRZOnRydWUsUE9TSVRJVkVfSU5GSU5JVFk6dHJ1ZX0sc3RyaWN0X21vZGUsc3ludGF4PXt9LHRhYix0b2tlbix1cmxzLHdhcm5pbmdzLHdpZGdldD17YWxlcnQ6dHJ1ZSxhbmltYXRvcjp0cnVlLGFwcGxlU2NyaXB0OnRydWUsYmVlcDp0cnVlLGJ5dGVzVG9VSVN0cmluZzp0cnVlLENhbnZhczp0cnVlLGNob29zZUNvbG9yOnRydWUsY2hvb3NlRmlsZTp0cnVlLGNob29zZUZvbGRlcjp0cnVlLGNsb3NlV2lkZ2V0OnRydWUsQ09NOnRydWUsY29udmVydFBhdGhUb0hGUzp0cnVlLGNvbnZlcnRQYXRoVG9QbGF0Zm9ybTp0cnVlLEN1c3RvbUFuaW1hdGlvbjp0cnVlLGVzY2FwZTp0cnVlLEZhZGVBbmltYXRpb246dHJ1ZSxmaWxlc3lzdGVtOnRydWUsRmxhc2g6dHJ1ZSxmb2N1c1dpZGdldDp0cnVlLGZvcm06dHJ1ZSxGb3JtRmllbGQ6dHJ1ZSxGcmFtZTp0cnVlLEhvdEtleTp0cnVlLEltYWdlOnRydWUsaW5jbHVkZTp0cnVlLGlzQXBwbGljYXRpb25SdW5uaW5nOnRydWUsaVR1bmVzOnRydWUsa29uZmFidWxhdG9yVmVyc2lvbjp0cnVlLGxvZzp0cnVlLG1kNTp0cnVlLE1lbnVJdGVtOnRydWUsTW92ZUFuaW1hdGlvbjp0cnVlLG9wZW5VUkw6dHJ1ZSxwbGF5OnRydWUsUG9pbnQ6dHJ1ZSxwb3B1cE1lbnU6dHJ1ZSxwcmVmZXJlbmNlR3JvdXBzOnRydWUscHJlZmVyZW5jZXM6dHJ1ZSxwcmludDp0cnVlLHByb21wdDp0cnVlLHJhbmRvbTp0cnVlLFJlY3RhbmdsZTp0cnVlLHJlbG9hZFdpZGdldDp0cnVlLFJlc2l6ZUFuaW1hdGlvbjp0cnVlLHJlc29sdmVQYXRoOnRydWUscmVzdW1lVXBkYXRlczp0cnVlLFJvdGF0ZUFuaW1hdGlvbjp0cnVlLHJ1bkNvbW1hbmQ6dHJ1ZSxydW5Db21tYW5kSW5CZzp0cnVlLHNhdmVBczp0cnVlLHNhdmVQcmVmZXJlbmNlczp0cnVlLHNjcmVlbjp0cnVlLFNjcm9sbEJhcjp0cnVlLHNob3dXaWRnZXRQcmVmZXJlbmNlczp0cnVlLHNsZWVwOnRydWUsc3BlYWs6dHJ1ZSxTdHlsZTp0cnVlLHN1cHByZXNzVXBkYXRlczp0cnVlLHN5c3RlbTp0cnVlLHRlbGxXaWRnZXQ6dHJ1ZSxUZXh0OnRydWUsVGV4dEFyZWE6dHJ1ZSxUaW1lcjp0cnVlLHVuZXNjYXBlOnRydWUsdXBkYXRlTm93OnRydWUsVVJMOnRydWUsV2ViOnRydWUsd2lkZ2V0OnRydWUsV2luZG93OnRydWUsWE1MRE9NOnRydWUsWE1MSHR0cFJlcXVlc3Q6dHJ1ZSx5YWhvb0NoZWNrTG9naW46dHJ1ZSx5YWhvb0xvZ2luOnRydWUseWFob29Mb2dvdXQ6dHJ1ZX0seG1vZGUseHF1b3RlLGF4PS9AY2N8PFwvP3xzY3JpcHR8XF0qc1xdfDxccyohfCZsdC9pLGN4PS9bXHUwMDAwLVx1MDAxZlx1MDA3Zi1cdTAwOWZcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vLHR4PS9eXHMqKFsoKXt9XFsuLDo7JyJ+XD9cXSNAXXw9PT89P3xcLyhcKihqc2xpbnR8bWVtYmVycz98Z2xvYmFsKT98PXxcLyk/fFwqW1wvPV0/fFwrWys9XT98LVtcLT1dP3wlPT98JlsmPV0/fFx8W3w9XT98Pj4/Pj89P3w8KFtcLz0hXXxcIShcW3wtLSk/fDw9Pyk/fFxePT98XCE9Pz0/fFthLXpBLVpfJF1bYS16QS1aMC05XyRdKnxbMC05XSsoW3hYXVswLTlhLWZBLUZdK3xcLlswLTldKik/KFtlRV1bK1wtXT9bMC05XSspPykvLGh4PS9eXHMqKFsnIj0+XC8mI118PCg/OlwvfFwhKD86LS0pPyk/fFthLXpBLVpdW2EtekEtWjAtOV9cLV0qfFswLTldK3wtLSkvLG54PS9bXHUwMDAwLVx1MDAxZiY8IlwvXFxcdTAwN2YtXHUwMDlmXHUwMGFkXHUwNjAwLVx1MDYwNFx1MDcwZlx1MTdiNFx1MTdiNVx1MjAwYy1cdTIwMGZcdTIwMjgtXHUyMDJmXHUyMDYwLVx1MjA2Zlx1ZmVmZlx1ZmZmMC1cdWZmZmZdLyxueGc9L1tcdTAwMDAtXHUwMDFmJjwiXC9cXFx1MDA3Zi1cdTAwOWZcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vZyxveD0vWz4mXXw8W1wvIV0/fC0tLyxseD0vXCpcL3xcL1wqLyxpeD0vXihbYS16QS1aXyRdW2EtekEtWjAtOV8kXSopJC8sang9L14oPzpqYXZhc2NyaXB0fGpzY3JpcHR8ZWNtYXNjcmlwdHx2YnNjcmlwdHxtb2NoYXxsaXZlc2NyaXB0KVxzKjovaSx1eD0vJnxcK3xcdTAwQUR8XC5cLnxcL1wqfCVbXjtdfGJhc2U2NHx1cmx8ZXhwcmVzc2lvbnxkYXRhfG1haWx0by9pLHN4PS9eXHMqKFt7OiMlLj0sPitcW1xdQCgpIic7XXxcKj0/fFwkPXxcfD18XF49fH49fFthLXpBLVpfXVthLXpBLVowLTlfXC1dKnxbMC05XSt8PFwvfFwvXCopLyxzc3g9L15ccyooW0AjISInfTs6XC0lLj0sK1xbXF0oKSpfXXxbYS16QS1aXVthLXpBLVowLTkuX1wtXSp8XC9cKj98XGQrKD86XC5cZCspP3w8XC8pLyxxeD0vW15hLXpBLVowLTktX1wvIF0vLGR4PS9bXFtcXVwvXFwiJyo8Pi4mOigpe30rPSNdLyxyeD17b3V0ZXI6aHgsaHRtbDpoeCxzdHlsZTpzeCxzdHlsZXByb3BlcnR5OnNzeH07ZnVuY3Rpb24gRigpe30KaWYodHlwZW9mIE9iamVjdC5jcmVhdGUhPT0nZnVuY3Rpb24nKXtPYmplY3QuY3JlYXRlPWZ1bmN0aW9uKG8pe0YucHJvdG90eXBlPW87cmV0dXJuIG5ldyBGKCk7fTt9CmZ1bmN0aW9uIGlzX293bihvYmplY3QsbmFtZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsbmFtZSk7fQpmdW5jdGlvbiBjb21iaW5lKHQsbyl7dmFyIG47Zm9yKG4gaW4gbyl7aWYoaXNfb3duKG8sbikpe3Rbbl09b1tuXTt9fX0KU3RyaW5nLnByb3RvdHlwZS5lbnRpdHlpZnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC8mL2csJyZhbXA7JykucmVwbGFjZSgvPC9nLCcmbHQ7JykucmVwbGFjZSgvPi9nLCcmZ3Q7Jyk7fTtTdHJpbmcucHJvdG90eXBlLmlzQWxwaGE9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcz49J2EnJiZ0aGlzPD0nelx1ZmZmZicpfHwodGhpcz49J0EnJiZ0aGlzPD0nWlx1ZmZmZicpO307U3RyaW5nLnByb3RvdHlwZS5pc0RpZ2l0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXM+PScwJyYmdGhpczw9JzknKTt9O1N0cmluZy5wcm90b3R5cGUuc3VwcGxhbnQ9ZnVuY3Rpb24obyl7cmV0dXJuIHRoaXMucmVwbGFjZSgvXHsoW157fV0qKVx9L2csZnVuY3Rpb24oYSxiKXt2YXIgcj1vW2JdO3JldHVybiB0eXBlb2Ygcj09PSdzdHJpbmcnfHx0eXBlb2Ygcj09PSdudW1iZXInP3I6YTt9KTt9O1N0cmluZy5wcm90b3R5cGUubmFtZT1mdW5jdGlvbigpe2lmKGl4LnRlc3QodGhpcykpe3JldHVybiB0aGlzO30KaWYobngudGVzdCh0aGlzKSl7cmV0dXJuJyInK3RoaXMucmVwbGFjZShueGcsZnVuY3Rpb24oYSl7dmFyIGM9ZXNjYXBlc1thXTtpZihjKXtyZXR1cm4gYzt9CnJldHVybidcXHUnKygnMDAwMCcrYS5jaGFyQ29kZUF0KCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCk7fSkrJyInO30KcmV0dXJuJyInK3RoaXMrJyInO307ZnVuY3Rpb24gYXNzdW1lKCl7aWYoIW9wdGlvbi5zYWZlKXtpZihvcHRpb24ucmhpbm8pe2NvbWJpbmUocHJlZGVmaW5lZCxyaGlubyk7fQppZihvcHRpb24uZGV2ZWwpe2NvbWJpbmUocHJlZGVmaW5lZCxkZXZlbCk7fQppZihvcHRpb24uYnJvd3Nlcnx8b3B0aW9uLnNpZGViYXIpe2NvbWJpbmUocHJlZGVmaW5lZCxicm93c2VyKTt9CmlmKG9wdGlvbi5zaWRlYmFyKXtjb21iaW5lKHByZWRlZmluZWQsc2lkZWJhcik7fQppZihvcHRpb24ud2lkZ2V0KXtjb21iaW5lKHByZWRlZmluZWQsd2lkZ2V0KTt9fX0KZnVuY3Rpb24gcXVpdChtLGwsY2gpe3Rocm93e25hbWU6J0pTTGludEVycm9yJyxsaW5lOmwsY2hhcmFjdGVyOmNoLG1lc3NhZ2U6bSsiICgiK01hdGguZmxvb3IoKGwvbGluZXMubGVuZ3RoKSoxMDApKyIlIHNjYW5uZWQpLiJ9O30KZnVuY3Rpb24gd2FybmluZyhtLHQsYSxiLGMsZCl7dmFyIGNoLGwsdzt0PXR8fG5leHR0b2tlbjtpZih0LmlkPT09JyhlbmQpJyl7dD10b2tlbjt9Cmw9dC5saW5lfHwwO2NoPXQuZnJvbXx8MDt3PXtpZDonKGVycm9yKScscmF3Om0sZXZpZGVuY2U6bGluZXNbbC0xXXx8JycsbGluZTpsLGNoYXJhY3RlcjpjaCxhOmEsYjpiLGM6YyxkOmR9O3cucmVhc29uPW0uc3VwcGxhbnQodyk7SlNMSU5ULmVycm9ycy5wdXNoKHcpO2lmKG9wdGlvbi5wYXNzZmFpbCl7cXVpdCgnU3RvcHBpbmcuICcsbCxjaCk7fQp3YXJuaW5ncys9MTtpZih3YXJuaW5ncz49b3B0aW9uLm1heGVycil7cXVpdCgiVG9vIG1hbnkgZXJyb3JzLiIsbCxjaCk7fQpyZXR1cm4gdzt9CmZ1bmN0aW9uIHdhcm5pbmdBdChtLGwsY2gsYSxiLGMsZCl7cmV0dXJuIHdhcm5pbmcobSx7bGluZTpsLGZyb206Y2h9LGEsYixjLGQpO30KZnVuY3Rpb24gZXJyb3IobSx0LGEsYixjLGQpe3ZhciB3PXdhcm5pbmcobSx0LGEsYixjLGQpO3F1aXQoIlN0b3BwaW5nLCB1bmFibGUgdG8gY29udGludWUuIix3LmxpbmUsdy5jaGFyYWN0ZXIpO30KZnVuY3Rpb24gZXJyb3JBdChtLGwsY2gsYSxiLGMsZCl7cmV0dXJuIGVycm9yKG0se2xpbmU6bCxmcm9tOmNofSxhLGIsYyxkKTt9CnZhciBsZXg9KGZ1bmN0aW9uIGxleCgpe3ZhciBjaGFyYWN0ZXIsZnJvbSxsaW5lLHM7ZnVuY3Rpb24gbmV4dExpbmUoKXt2YXIgYXQ7aWYobGluZT49bGluZXMubGVuZ3RoKXtyZXR1cm4gZmFsc2U7fQpjaGFyYWN0ZXI9MTtzPWxpbmVzW2xpbmVdO2xpbmUrPTE7YXQ9cy5zZWFyY2goLyBcdC8pO2lmKGF0Pj0wKXt3YXJuaW5nQXQoIk1peGVkIHNwYWNlcyBhbmQgdGFicy4iLGxpbmUsYXQrMSk7fQpzPXMucmVwbGFjZSgvXHQvZyx0YWIpO2F0PXMuc2VhcmNoKGN4KTtpZihhdD49MCl7d2FybmluZ0F0KCJVbnNhZmUgY2hhcmFjdGVyLiIsbGluZSxhdCk7fQppZihvcHRpb24ubWF4bGVuJiZvcHRpb24ubWF4bGVuPHMubGVuZ3RoKXt3YXJuaW5nQXQoIkxpbmUgdG9vIGxvbmcuIixsaW5lLHMubGVuZ3RoKTt9CnJldHVybiB0cnVlO30KZnVuY3Rpb24gaXQodHlwZSx2YWx1ZSl7dmFyIGksdDtpZih0eXBlPT09Jyhjb2xvciknKXt0PXt0eXBlOnR5cGV9O31lbHNlIGlmKHR5cGU9PT0nKHB1bmN0dWF0b3IpJ3x8KHR5cGU9PT0nKGlkZW50aWZpZXIpJyYmaXNfb3duKHN5bnRheCx2YWx1ZSkpKXt0PXN5bnRheFt2YWx1ZV18fHN5bnRheFsnKGVycm9yKSddO31lbHNle3Q9c3ludGF4W3R5cGVdO30KdD1PYmplY3QuY3JlYXRlKHQpO2lmKHR5cGU9PT0nKHN0cmluZyknfHx0eXBlPT09JyhyYW5nZSknKXtpZihqeC50ZXN0KHZhbHVlKSl7d2FybmluZ0F0KCJTY3JpcHQgVVJMLiIsbGluZSxmcm9tKTt9fQppZih0eXBlPT09JyhpZGVudGlmaWVyKScpe3QuaWRlbnRpZmllcj10cnVlO2lmKHZhbHVlPT09J19faXRlcmF0b3JfXyd8fHZhbHVlPT09J19fcHJvdG9fXycpe2Vycm9yQXQoIlJlc2VydmVkIG5hbWUgJ3thfScuIixsaW5lLGZyb20sdmFsdWUpO31lbHNlIGlmKG9wdGlvbi5ub21lbiYmKHZhbHVlLmNoYXJBdCgwKT09PSdfJ3x8dmFsdWUuY2hhckF0KHZhbHVlLmxlbmd0aC0xKT09PSdfJykpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCB7YX0gaW4gJ3tifScuIixsaW5lLGZyb20sImRhbmdsaW5nICdfJyIsdmFsdWUpO319CnQudmFsdWU9dmFsdWU7dC5saW5lPWxpbmU7dC5jaGFyYWN0ZXI9Y2hhcmFjdGVyO3QuZnJvbT1mcm9tO2k9dC5pZDtpZihpIT09JyhlbmRsaW5lKScpe3ByZXJlZz1pJiYoKCcoLD06WyEmfD97fTsnLmluZGV4T2YoaS5jaGFyQXQoaS5sZW5ndGgtMSkpPj0wKXx8aT09PSdyZXR1cm4nKTt9CnJldHVybiB0O30KcmV0dXJue2luaXQ6ZnVuY3Rpb24oc291cmNlKXtpZih0eXBlb2Ygc291cmNlPT09J3N0cmluZycpe2xpbmVzPXNvdXJjZS5yZXBsYWNlKC9cclxuL2csJ1xuJykucmVwbGFjZSgvXHIvZywnXG4nKS5zcGxpdCgnXG4nKTt9ZWxzZXtsaW5lcz1zb3VyY2U7fQpsaW5lPTA7bmV4dExpbmUoKTtmcm9tPTE7fSxyYW5nZTpmdW5jdGlvbihiZWdpbixlbmQpe3ZhciBjLHZhbHVlPScnO2Zyb209Y2hhcmFjdGVyO2lmKHMuY2hhckF0KDApIT09YmVnaW4pe2Vycm9yQXQoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLGxpbmUsY2hhcmFjdGVyLGJlZ2luLHMuY2hhckF0KDApKTt9CmZvcig7Oyl7cz1zLnNsaWNlKDEpO2NoYXJhY3Rlcis9MTtjPXMuY2hhckF0KDApO3N3aXRjaChjKXtjYXNlJyc6ZXJyb3JBdCgiTWlzc2luZyAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLGMpO2JyZWFrO2Nhc2UgZW5kOnM9cy5zbGljZSgxKTtjaGFyYWN0ZXIrPTE7cmV0dXJuIGl0KCcocmFuZ2UpJyx2YWx1ZSk7Y2FzZSB4cXVvdGU6Y2FzZSdcXCc6d2FybmluZ0F0KCJVbmV4cGVjdGVkICd7YX0nLiIsbGluZSxjaGFyYWN0ZXIsYyk7fQp2YWx1ZSs9Yzt9fSx0b2tlbjpmdW5jdGlvbigpe3ZhciBiLGMsY2FwdHVyZXMsZCxkZXB0aCxoaWdoLGksbCxsb3cscSx0O2Z1bmN0aW9uIG1hdGNoKHgpe3ZhciByPXguZXhlYyhzKSxyMTtpZihyKXtsPXJbMF0ubGVuZ3RoO3IxPXJbMV07Yz1yMS5jaGFyQXQoMCk7cz1zLnN1YnN0cihsKTtmcm9tPWNoYXJhY3RlcitsLXIxLmxlbmd0aDtjaGFyYWN0ZXIrPWw7cmV0dXJuIHIxO319CmZ1bmN0aW9uIHN0cmluZyh4KXt2YXIgYyxqLHI9Jyc7aWYoanNvbm1vZGUmJnghPT0nIicpe3dhcm5pbmdBdCgiU3RyaW5ncyBtdXN0IHVzZSBkb3VibGVxdW90ZS4iLGxpbmUsY2hhcmFjdGVyKTt9CmlmKHhxdW90ZT09PXh8fCh4bW9kZT09PSdzY3JpcHRzdHJpbmcnJiYheHF1b3RlKSl7cmV0dXJuIGl0KCcocHVuY3R1YXRvciknLHgpO30KZnVuY3Rpb24gZXNjKG4pe3ZhciBpPXBhcnNlSW50KHMuc3Vic3RyKGorMSxuKSwxNik7ais9bjtpZihpPj0zMiYmaTw9MTI2JiZpIT09MzQmJmkhPT05MiYmaSE9PTM5KXt3YXJuaW5nQXQoIlVubmVjZXNzYXJ5IGVzY2FwZW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpjaGFyYWN0ZXIrPW47Yz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpO30Kaj0wO2Zvcig7Oyl7d2hpbGUoaj49cy5sZW5ndGgpe2o9MDtpZih4bW9kZSE9PSdodG1sJ3x8IW5leHRMaW5lKCkpe2Vycm9yQXQoIlVuY2xvc2VkIHN0cmluZy4iLGxpbmUsZnJvbSk7fX0KYz1zLmNoYXJBdChqKTtpZihjPT09eCl7Y2hhcmFjdGVyKz0xO3M9cy5zdWJzdHIoaisxKTtyZXR1cm4gaXQoJyhzdHJpbmcpJyxyLHgpO30KaWYoYzwnICcpe2lmKGM9PT0nXG4nfHxjPT09J1xyJyl7YnJlYWs7fQp3YXJuaW5nQXQoIkNvbnRyb2wgY2hhcmFjdGVyIGluIHN0cmluZzoge2F9LiIsbGluZSxjaGFyYWN0ZXIraixzLnNsaWNlKDAsaikpO31lbHNlIGlmKGM9PT14cXVvdGUpe3dhcm5pbmdBdCgiQmFkIEhUTUwgc3RyaW5nIixsaW5lLGNoYXJhY3RlcitqKTt9ZWxzZSBpZihjPT09JzwnKXtpZihvcHRpb24uc2FmZSYmeG1vZGU9PT0naHRtbCcpe3dhcm5pbmdBdCgiQURzYWZlIHN0cmluZyB2aW9sYXRpb24uIixsaW5lLGNoYXJhY3RlcitqKTt9ZWxzZSBpZihzLmNoYXJBdChqKzEpPT09Jy8nJiYoeG1vZGV8fG9wdGlvbi5zYWZlKSl7d2FybmluZ0F0KCJFeHBlY3RlZCAnPFxcLycgYW5kIGluc3RlYWQgc2F3ICc8LycuIixsaW5lLGNoYXJhY3Rlcik7fWVsc2UgaWYocy5jaGFyQXQoaisxKT09PSchJyYmKHhtb2RlfHxvcHRpb24uc2FmZSkpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCAnPCEnIGluIGEgc3RyaW5nLiIsbGluZSxjaGFyYWN0ZXIpO319ZWxzZSBpZihjPT09J1xcJyl7aWYoeG1vZGU9PT0naHRtbCcpe2lmKG9wdGlvbi5zYWZlKXt3YXJuaW5nQXQoIkFEc2FmZSBzdHJpbmcgdmlvbGF0aW9uLiIsbGluZSxjaGFyYWN0ZXIraik7fX1lbHNlIGlmKHhtb2RlPT09J3N0eWxlcHJvcGVydHknKXtqKz0xO2NoYXJhY3Rlcis9MTtjPXMuY2hhckF0KGopO2lmKGMhPT14KXt3YXJuaW5nQXQoIkVzY2FwZW1lbnQgaW4gc3R5bGUgc3RyaW5nLiIsbGluZSxjaGFyYWN0ZXIraik7fX1lbHNle2orPTE7Y2hhcmFjdGVyKz0xO2M9cy5jaGFyQXQoaik7c3dpdGNoKGMpe2Nhc2UgeHF1b3RlOndhcm5pbmdBdCgiQmFkIEhUTUwgc3RyaW5nIixsaW5lLGNoYXJhY3RlcitqKTticmVhaztjYXNlJ1xcJzpjYXNlJ1wnJzpjYXNlJyInOmNhc2UnLyc6YnJlYWs7Y2FzZSdiJzpjPSdcYic7YnJlYWs7Y2FzZSdmJzpjPSdcZic7YnJlYWs7Y2FzZSduJzpjPSdcbic7YnJlYWs7Y2FzZSdyJzpjPSdccic7YnJlYWs7Y2FzZSd0JzpjPSdcdCc7YnJlYWs7Y2FzZSd1Jzplc2MoNCk7YnJlYWs7Y2FzZSd2JzpjPSdcdic7YnJlYWs7Y2FzZSd4JzppZihqc29ubW9kZSl7d2FybmluZ0F0KCJBdm9pZCBcXHgtLiIsbGluZSxjaGFyYWN0ZXIpO30KZXNjKDIpO2JyZWFrO2RlZmF1bHQ6d2FybmluZ0F0KCJCYWQgZXNjYXBlbWVudC4iLGxpbmUsY2hhcmFjdGVyKTt9fX0Kcis9YztjaGFyYWN0ZXIrPTE7ais9MTt9fQpmb3IoOzspe2lmKCFzKXtyZXR1cm4gaXQobmV4dExpbmUoKT8nKGVuZGxpbmUpJzonKGVuZCknLCcnKTt9CndoaWxlKHhtb2RlPT09J291dGVyJyl7aT1zLnNlYXJjaChveCk7aWYoaT09PTApe2JyZWFrO31lbHNlIGlmKGk+MCl7Y2hhcmFjdGVyKz0xO3M9cy5zbGljZShpKTticmVhazt9ZWxzZXtpZighbmV4dExpbmUoKSl7cmV0dXJuIGl0KCcoZW5kKScsJycpO319fQp0PW1hdGNoKHJ4W3htb2RlXXx8dHgpO2lmKCF0KXt0PScnO2M9Jyc7d2hpbGUocyYmczwnIScpe3M9cy5zdWJzdHIoMSk7fQppZihzKXtpZih4bW9kZT09PSdodG1sJyl7cmV0dXJuIGl0KCcoZXJyb3IpJyxzLmNoYXJBdCgwKSk7fWVsc2V7ZXJyb3JBdCgiVW5leHBlY3RlZCAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHMuc3Vic3RyKDAsMSkpO319fWVsc2V7aWYoYy5pc0FscGhhKCl8fGM9PT0nXyd8fGM9PT0nJCcpe3JldHVybiBpdCgnKGlkZW50aWZpZXIpJyx0KTt9CmlmKGMuaXNEaWdpdCgpKXtpZih4bW9kZSE9PSdzdHlsZScmJiFpc0Zpbml0ZShOdW1iZXIodCkpKXt3YXJuaW5nQXQoIkJhZCBudW1iZXIgJ3thfScuIixsaW5lLGNoYXJhY3Rlcix0KTt9CmlmKHhtb2RlIT09J3N0eWxlJyYmeG1vZGUhPT0nc3R5bGVwcm9wZXJ0eScmJnMuc3Vic3RyKDAsMSkuaXNBbHBoYSgpKXt3YXJuaW5nQXQoIk1pc3Npbmcgc3BhY2UgYWZ0ZXIgJ3thfScuIixsaW5lLGNoYXJhY3Rlcix0KTt9CmlmKGM9PT0nMCcpe2Q9dC5zdWJzdHIoMSwxKTtpZihkLmlzRGlnaXQoKSl7aWYodG9rZW4uaWQhPT0nLicmJnhtb2RlIT09J3N0eWxlcHJvcGVydHknKXt3YXJuaW5nQXQoIkRvbid0IHVzZSBleHRyYSBsZWFkaW5nIHplcm9zICd7YX0nLiIsbGluZSxjaGFyYWN0ZXIsdCk7fX1lbHNlIGlmKGpzb25tb2RlJiYoZD09PSd4J3x8ZD09PSdYJykpe3dhcm5pbmdBdCgiQXZvaWQgMHgtLiAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHQpO319CmlmKHQuc3Vic3RyKHQubGVuZ3RoLTEpPT09Jy4nKXt3YXJuaW5nQXQoIkEgdHJhaWxpbmcgZGVjaW1hbCBwb2ludCBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRvdCAne2F9Jy4iLGxpbmUsY2hhcmFjdGVyLHQpO30KcmV0dXJuIGl0KCcobnVtYmVyKScsdCk7fQpzd2l0Y2godCl7Y2FzZSciJzpjYXNlIiciOnJldHVybiBzdHJpbmcodCk7Y2FzZScvLyc6aWYoc3JjfHwoeG1vZGUmJnhtb2RlIT09J3NjcmlwdCcpKXt3YXJuaW5nQXQoIlVuZXhwZWN0ZWQgY29tbWVudC4iLGxpbmUsY2hhcmFjdGVyKTt9ZWxzZSBpZih4bW9kZT09PSdzY3JpcHQnJiYvPFxzKlwvL2kudGVzdChzKSl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIDxcLyBpbiBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO31lbHNlIGlmKChvcHRpb24uc2FmZXx8eG1vZGU9PT0nc2NyaXB0JykmJmF4LnRlc3Qocykpe3dhcm5pbmdBdCgiRGFuZ2Vyb3VzIGNvbW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpzPScnO3Rva2VuLmNvbW1lbnQ9dHJ1ZTticmVhaztjYXNlJy8qJzppZihzcmN8fCh4bW9kZSYmeG1vZGUhPT0nc2NyaXB0JyYmeG1vZGUhPT0nc3R5bGUnJiZ4bW9kZSE9PSdzdHlsZXByb3BlcnR5Jykpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO30KaWYob3B0aW9uLnNhZmUmJmF4LnRlc3Qocykpe3dhcm5pbmdBdCgiQURzYWZlIGNvbW1lbnQgdmlvbGF0aW9uLiIsbGluZSxjaGFyYWN0ZXIpO30KZm9yKDs7KXtpPXMuc2VhcmNoKGx4KTtpZihpPj0wKXticmVhazt9CmlmKCFuZXh0TGluZSgpKXtlcnJvckF0KCJVbmNsb3NlZCBjb21tZW50LiIsbGluZSxjaGFyYWN0ZXIpO31lbHNle2lmKG9wdGlvbi5zYWZlJiZheC50ZXN0KHMpKXt3YXJuaW5nQXQoIkFEc2FmZSBjb21tZW50IHZpb2xhdGlvbi4iLGxpbmUsY2hhcmFjdGVyKTt9fX0KY2hhcmFjdGVyKz1pKzI7aWYocy5zdWJzdHIoaSwxKT09PScvJyl7ZXJyb3JBdCgiTmVzdGVkIGNvbW1lbnQuIixsaW5lLGNoYXJhY3Rlcik7fQpzPXMuc3Vic3RyKGkrMik7dG9rZW4uY29tbWVudD10cnVlO2JyZWFrO2Nhc2UnLyptZW1iZXJzJzpjYXNlJy8qbWVtYmVyJzpjYXNlJy8qanNsaW50JzpjYXNlJy8qZ2xvYmFsJzpjYXNlJyovJzpyZXR1cm57dmFsdWU6dCx0eXBlOidzcGVjaWFsJyxsaW5lOmxpbmUsY2hhcmFjdGVyOmNoYXJhY3Rlcixmcm9tOmZyb219O2Nhc2UnJzpicmVhaztjYXNlJy8nOmlmKHRva2VuLmlkPT09Jy89Jyl7ZXJyb3JBdCgiQSByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCBjYW4gYmUgY29uZnVzZWQgd2l0aCAnLz0nLiIsbGluZSxmcm9tKTt9CmlmKHByZXJlZyl7ZGVwdGg9MDtjYXB0dXJlcz0wO2w9MDtmb3IoOzspe2I9dHJ1ZTtjPXMuY2hhckF0KGwpO2wrPTE7c3dpdGNoKGMpe2Nhc2UnJzplcnJvckF0KCJVbmNsb3NlZCByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20pO3JldHVybjtjYXNlJy8nOmlmKGRlcHRoPjApe3dhcm5pbmdBdCgiVW5lc2NhcGVkICd7YX0nLiIsbGluZSxmcm9tK2wsJy8nKTt9CmM9cy5zdWJzdHIoMCxsLTEpO3E9e2c6dHJ1ZSxpOnRydWUsbTp0cnVlfTt3aGlsZShxW3MuY2hhckF0KGwpXT09PXRydWUpe3Fbcy5jaGFyQXQobCldPWZhbHNlO2wrPTE7fQpjaGFyYWN0ZXIrPWw7cz1zLnN1YnN0cihsKTtxPXMuY2hhckF0KDApO2lmKHE9PT0nLyd8fHE9PT0nKicpe2Vycm9yQXQoIkNvbmZ1c2luZyByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20pO30KcmV0dXJuIGl0KCcocmVnZXhwKScsYyk7Y2FzZSdcXCc6Yz1zLmNoYXJBdChsKTtpZihjPCcgJyl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLGxpbmUsZnJvbStsKTt9ZWxzZSBpZihjPT09JzwnKXt3YXJuaW5nQXQoIlVuZXhwZWN0ZWQgZXNjYXBlZCBjaGFyYWN0ZXIgJ3thfScgaW4gcmVndWxhciBleHByZXNzaW9uLiIsbGluZSxmcm9tK2wsYyk7fQpsKz0xO2JyZWFrO2Nhc2UnKCc6ZGVwdGgrPTE7Yj1mYWxzZTtpZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTtzd2l0Y2gocy5jaGFyQXQobCkpe2Nhc2UnOic6Y2FzZSc9JzpjYXNlJyEnOmwrPTE7YnJlYWs7ZGVmYXVsdDp3YXJuaW5nQXQoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLGxpbmUsZnJvbStsLCc6JyxzLmNoYXJBdChsKSk7fX1lbHNle2NhcHR1cmVzKz0xO30KYnJlYWs7Y2FzZSd8JzpiPWZhbHNlO2JyZWFrO2Nhc2UnKSc6aWYoZGVwdGg9PT0wKXt3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLCcpJyk7fWVsc2V7ZGVwdGgtPTE7fQpicmVhaztjYXNlJyAnOnE9MTt3aGlsZShzLmNoYXJBdChsKT09PScgJyl7bCs9MTtxKz0xO30KaWYocT4xKXt3YXJuaW5nQXQoIlNwYWNlcyBhcmUgaGFyZCB0byBjb3VudC4gVXNlIHt7YX19LiIsbGluZSxmcm9tK2wscSk7fQpicmVhaztjYXNlJ1snOmM9cy5jaGFyQXQobCk7aWYoYz09PSdeJyl7bCs9MTtpZihvcHRpb24ucmVnZXhwKXt3YXJuaW5nQXQoIkluc2VjdXJlICd7YX0nLiIsbGluZSxmcm9tK2wsYyk7fX0KcT1mYWxzZTtpZihjPT09J10nKXt3YXJuaW5nQXQoIkVtcHR5IGNsYXNzLiIsbGluZSxmcm9tK2wtMSk7cT10cnVlO30Ka2xhc3M6ZG97Yz1zLmNoYXJBdChsKTtsKz0xO3N3aXRjaChjKXtjYXNlJ1snOmNhc2UnXic6d2FybmluZ0F0KCJVbmVzY2FwZWQgJ3thfScuIixsaW5lLGZyb20rbCxjKTtxPXRydWU7YnJlYWs7Y2FzZSctJzppZihxKXtxPWZhbHNlO31lbHNle3dhcm5pbmdBdCgiVW5lc2NhcGVkICd7YX0nLiIsbGluZSxmcm9tK2wsJy0nKTtxPXRydWU7fQpicmVhaztjYXNlJ10nOmlmKCFxKXt3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLTEsJy0nKTt9CmJyZWFrIGtsYXNzO2Nhc2UnXFwnOmM9cy5jaGFyQXQobCk7aWYoYzwnICcpe3dhcm5pbmdBdCgiVW5leHBlY3RlZCBjb250cm9sIGNoYXJhY3RlciBpbiByZWd1bGFyIGV4cHJlc3Npb24uIixsaW5lLGZyb20rbCk7fWVsc2UgaWYoYz09PSc8Jyl7d2FybmluZ0F0KCJVbmV4cGVjdGVkIGVzY2FwZWQgY2hhcmFjdGVyICd7YX0nIGluIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLGxpbmUsZnJvbStsLGMpO30KbCs9MTtxPXRydWU7YnJlYWs7Y2FzZScvJzp3YXJuaW5nQXQoIlVuZXNjYXBlZCAne2F9Jy4iLGxpbmUsZnJvbStsLTEsJy8nKTtxPXRydWU7YnJlYWs7Y2FzZSc8JzppZih4bW9kZT09PSdzY3JpcHQnKXtjPXMuY2hhckF0KGwpO2lmKGM9PT0nISd8fGM9PT0nLycpe3dhcm5pbmdBdCgiSFRNTCBjb25mdXNpb24gaW4gcmVndWxhciBleHByZXNzaW9uICc8e2F9Jy4iLGxpbmUsZnJvbStsLGMpO319CnE9dHJ1ZTticmVhaztkZWZhdWx0OnE9dHJ1ZTt9fXdoaWxlKGMpO2JyZWFrO2Nhc2UnLic6aWYob3B0aW9uLnJlZ2V4cCl7d2FybmluZ0F0KCJJbnNlY3VyZSAne2F9Jy4iLGxpbmUsZnJvbStsLGMpO30KYnJlYWs7Y2FzZSddJzpjYXNlJz8nOmNhc2Uneyc6Y2FzZSd9JzpjYXNlJysnOmNhc2UnKic6d2FybmluZ0F0KCJVbmVzY2FwZWQgJ3thfScuIixsaW5lLGZyb20rbCxjKTticmVhaztjYXNlJzwnOmlmKHhtb2RlPT09J3NjcmlwdCcpe2M9cy5jaGFyQXQobCk7aWYoYz09PSchJ3x8Yz09PScvJyl7d2FybmluZ0F0KCJIVE1MIGNvbmZ1c2lvbiBpbiByZWd1bGFyIGV4cHJlc3Npb24gJzx7YX0nLiIsbGluZSxmcm9tK2wsYyk7fX19CmlmKGIpe3N3aXRjaChzLmNoYXJBdChsKSl7Y2FzZSc/JzpjYXNlJysnOmNhc2UnKic6bCs9MTtpZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTt9CmJyZWFrO2Nhc2Uneyc6bCs9MTtjPXMuY2hhckF0KGwpO2lmKGM8JzAnfHxjPic5Jyl7d2FybmluZ0F0KCJFeHBlY3RlZCBhIG51bWJlciBhbmQgaW5zdGVhZCBzYXcgJ3thfScuIixsaW5lLGZyb20rbCxjKTt9CmwrPTE7bG93PStjO2Zvcig7Oyl7Yz1zLmNoYXJBdChsKTtpZihjPCcwJ3x8Yz4nOScpe2JyZWFrO30KbCs9MTtsb3c9K2MrKGxvdyoxMCk7fQpoaWdoPWxvdztpZihjPT09JywnKXtsKz0xO2hpZ2g9SW5maW5pdHk7Yz1zLmNoYXJBdChsKTtpZihjPj0nMCcmJmM8PSc5Jyl7bCs9MTtoaWdoPStjO2Zvcig7Oyl7Yz1zLmNoYXJBdChsKTtpZihjPCcwJ3x8Yz4nOScpe2JyZWFrO30KbCs9MTtoaWdoPStjKyhoaWdoKjEwKTt9fX0KaWYocy5jaGFyQXQobCkhPT0nfScpe3dhcm5pbmdBdCgiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbGluZSxmcm9tK2wsJ30nLGMpO31lbHNle2wrPTE7fQppZihzLmNoYXJBdChsKT09PSc/Jyl7bCs9MTt9CmlmKGxvdz5oaWdoKXt3YXJuaW5nQXQoIid7YX0nIHNob3VsZCBub3QgYmUgZ3JlYXRlciB0aGFuICd7Yn0nLiIsbGluZSxmcm9tK2wsbG93LGhpZ2gpO319fX0KYz1zLnN1YnN0cigwLGwtMSk7Y2hhcmFjdGVyKz1sO3M9cy5zdWJzdHIobCk7cmV0dXJuIGl0KCcocmVnZXhwKScsYyk7fQpyZXR1cm4gaXQoJyhwdW5jdHVhdG9yKScsdCk7Y2FzZSc8IS0tJzpsPWxpbmU7Yz1jaGFyYWN0ZXI7Zm9yKDs7KXtpPXMuaW5kZXhPZignLS0nKTtpZihpPj0wKXticmVhazt9Cmk9cy5pbmRleE9mKCc8IScpO2lmKGk+PTApe2Vycm9yQXQoIk5lc3RlZCBIVE1MIGNvbW1lbnQuIixsaW5lLGNoYXJhY3RlcitpKTt9CmlmKCFuZXh0TGluZSgpKXtlcnJvckF0KCJVbmNsb3NlZCBIVE1MIGNvbW1lbnQuIixsLGMpO319Cmw9cy5pbmRleE9mKCc8IScpO2lmKGw+PTAmJmw8aSl7ZXJyb3JBdCgiTmVzdGVkIEhUTUwgY29tbWVudC4iLGxpbmUsY2hhcmFjdGVyK2wpO30KY2hhcmFjdGVyKz1pO2lmKHNbaSsyXSE9PSc+Jyl7ZXJyb3JBdCgiRXhwZWN0ZWQgLS0+LiIsbGluZSxjaGFyYWN0ZXIpO30KY2hhcmFjdGVyKz0zO3M9cy5zbGljZShpKzMpO2JyZWFrO2Nhc2UnIyc6aWYoeG1vZGU9PT0naHRtbCd8fHhtb2RlPT09J3N0eWxlcHJvcGVydHknKXtmb3IoOzspe2M9cy5jaGFyQXQoMCk7aWYoKGM8JzAnfHxjPic5JykmJihjPCdhJ3x8Yz4nZicpJiYoYzwnQSd8fGM+J0YnKSl7YnJlYWs7fQpjaGFyYWN0ZXIrPTE7cz1zLnN1YnN0cigxKTt0Kz1jO30KaWYodC5sZW5ndGghPT00JiZ0Lmxlbmd0aCE9PTcpe3dhcm5pbmdBdCgiQmFkIGhleCBjb2xvciAne2F9Jy4iLGxpbmUsZnJvbStsLHQpO30KcmV0dXJuIGl0KCcoY29sb3IpJyx0KTt9CnJldHVybiBpdCgnKHB1bmN0dWF0b3IpJyx0KTtkZWZhdWx0OmlmKHhtb2RlPT09J291dGVyJyYmYz09PScmJyl7Y2hhcmFjdGVyKz0xO3M9cy5zdWJzdHIoMSk7Zm9yKDs7KXtjPXMuY2hhckF0KDApO2NoYXJhY3Rlcis9MTtzPXMuc3Vic3RyKDEpO2lmKGM9PT0nOycpe2JyZWFrO30KaWYoISgoYz49JzAnJiZjPD0nOScpfHwoYz49J2EnJiZjPD0neicpfHxjPT09JyMnKSl7ZXJyb3JBdCgiQmFkIGVudGl0eSIsbGluZSxmcm9tK2wsY2hhcmFjdGVyKTt9fQpicmVhazt9CnJldHVybiBpdCgnKHB1bmN0dWF0b3IpJyx0KTt9fX19fTt9KCkpO2Z1bmN0aW9uIGFkZGxhYmVsKHQsdHlwZSl7aWYob3B0aW9uLnNhZmUmJmZ1bmN0WycoZ2xvYmFsKSddJiZ0eXBlb2YgcHJlZGVmaW5lZFt0XSE9PSdib29sZWFuJyl7d2FybmluZygnQURzYWZlIGdsb2JhbDogJyt0KycuJyx0b2tlbik7fWVsc2UgaWYodD09PSdoYXNPd25Qcm9wZXJ0eScpe3dhcm5pbmcoIidoYXNPd25Qcm9wZXJ0eScgaXMgYSByZWFsbHkgYmFkIG5hbWUuIik7fQppZihpc19vd24oZnVuY3QsdCkmJiFmdW5jdFsnKGdsb2JhbCknXSl7d2FybmluZyhmdW5jdFt0XT09PXRydWU/Iid7YX0nIHdhcyB1c2VkIGJlZm9yZSBpdCB3YXMgZGVmaW5lZC4iOiIne2F9JyBpcyBhbHJlYWR5IGRlZmluZWQuIixuZXh0dG9rZW4sdCk7fQpmdW5jdFt0XT10eXBlO2lmKGZ1bmN0WycoZ2xvYmFsKSddKXtnbG9iYWxbdF09ZnVuY3Q7aWYoaXNfb3duKGltcGxpZWQsdCkpe3dhcm5pbmcoIid7YX0nIHdhcyB1c2VkIGJlZm9yZSBpdCB3YXMgZGVmaW5lZC4iLG5leHR0b2tlbix0KTtkZWxldGUgaW1wbGllZFt0XTt9fWVsc2V7c2NvcGVbdF09ZnVuY3Q7fX0KZnVuY3Rpb24gZG9PcHRpb24oKXt2YXIgYixvYmosZmlsdGVyLG89bmV4dHRva2VuLnZhbHVlLHQsdjtzd2l0Y2gobyl7Y2FzZScqLyc6ZXJyb3IoIlVuYmVndW4gY29tbWVudC4iKTticmVhaztjYXNlJy8qbWVtYmVycyc6Y2FzZScvKm1lbWJlcic6bz0nLyptZW1iZXJzJztpZighbWVtYmVyc09ubHkpe21lbWJlcnNPbmx5PXt9O30Kb2JqPW1lbWJlcnNPbmx5O2JyZWFrO2Nhc2UnLypqc2xpbnQnOmlmKG9wdGlvbi5zYWZlKXt3YXJuaW5nKCJBRHNhZmUgcmVzdHJpY3Rpb24uIik7fQpvYmo9b3B0aW9uO2ZpbHRlcj1ib29sT3B0aW9uczticmVhaztjYXNlJy8qZ2xvYmFsJzppZihvcHRpb24uc2FmZSl7d2FybmluZygiQURzYWZlIHJlc3RyaWN0aW9uLiIpO30Kb2JqPXByZWRlZmluZWQ7YnJlYWs7ZGVmYXVsdDp9CnQ9bGV4LnRva2VuKCk7bG9vcDpmb3IoOzspe2Zvcig7Oyl7aWYodC50eXBlPT09J3NwZWNpYWwnJiZ0LnZhbHVlPT09JyovJyl7YnJlYWsgbG9vcDt9CmlmKHQuaWQhPT0nKGVuZGxpbmUpJyYmdC5pZCE9PScsJyl7YnJlYWs7fQp0PWxleC50b2tlbigpO30KaWYodC50eXBlIT09JyhzdHJpbmcpJyYmdC50eXBlIT09JyhpZGVudGlmaWVyKScmJm8hPT0nLyptZW1iZXJzJyl7ZXJyb3IoIkJhZCBvcHRpb24uIix0KTt9CnY9bGV4LnRva2VuKCk7aWYodi5pZD09PSc6Jyl7dj1sZXgudG9rZW4oKTtpZihvYmo9PT1tZW1iZXJzT25seSl7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHQsJyovJywnOicpO30KaWYodC52YWx1ZT09PSdpbmRlbnQnJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoud2hpdGU9dHJ1ZTtvYmouaW5kZW50PWI7fWVsc2UgaWYodC52YWx1ZT09PSdtYXhlcnInJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoubWF4ZXJyPWI7fWVsc2UgaWYodC52YWx1ZT09PSdtYXhsZW4nJiZvPT09Jy8qanNsaW50Jyl7Yj0rdi52YWx1ZTtpZih0eXBlb2YgYiE9PSdudW1iZXInfHwhaXNGaW5pdGUoYil8fGI8PTB8fE1hdGguZmxvb3IoYikhPT1iKXtlcnJvcigiRXhwZWN0ZWQgYSBzbWFsbCBpbnRlZ2VyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHYsdi52YWx1ZSk7fQpvYmoubWF4bGVuPWI7fWVsc2UgaWYodi52YWx1ZT09PSd0cnVlJyl7b2JqW3QudmFsdWVdPXRydWU7fWVsc2UgaWYodi52YWx1ZT09PSdmYWxzZScpe29ialt0LnZhbHVlXT1mYWxzZTt9ZWxzZXtlcnJvcigiQmFkIG9wdGlvbiB2YWx1ZS4iLHYpO30KdD1sZXgudG9rZW4oKTt9ZWxzZXtpZihvPT09Jy8qanNsaW50Jyl7ZXJyb3IoIk1pc3Npbmcgb3B0aW9uIHZhbHVlLiIsdCk7fQpvYmpbdC52YWx1ZV09ZmFsc2U7dD12O319CmlmKGZpbHRlcil7YXNzdW1lKCk7fX0KZnVuY3Rpb24gcGVlayhwKXt2YXIgaT1wfHwwLGo9MCx0O3doaWxlKGo8PWkpe3Q9bG9va2FoZWFkW2pdO2lmKCF0KXt0PWxvb2thaGVhZFtqXT1sZXgudG9rZW4oKTt9CmorPTE7fQpyZXR1cm4gdDt9CmZ1bmN0aW9uIGFkdmFuY2UoaWQsdCl7c3dpdGNoKHRva2VuLmlkKXtjYXNlJyhudW1iZXIpJzppZihuZXh0dG9rZW4uaWQ9PT0nLicpe3dhcm5pbmcoIkEgZG90IGZvbGxvd2luZyBhIG51bWJlciBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRlY2ltYWwgcG9pbnQuIix0b2tlbik7fQpicmVhaztjYXNlJy0nOmlmKG5leHR0b2tlbi5pZD09PSctJ3x8bmV4dHRva2VuLmlkPT09Jy0tJyl7d2FybmluZygiQ29uZnVzaW5nIG1pbnVzc2VzLiIpO30KYnJlYWs7Y2FzZScrJzppZihuZXh0dG9rZW4uaWQ9PT0nKyd8fG5leHR0b2tlbi5pZD09PScrKycpe3dhcm5pbmcoIkNvbmZ1c2luZyBwbHVzc2VzLiIpO30KYnJlYWs7fQppZih0b2tlbi50eXBlPT09JyhzdHJpbmcpJ3x8dG9rZW4uaWRlbnRpZmllcil7YW5vbm5hbWU9dG9rZW4udmFsdWU7fQppZihpZCYmbmV4dHRva2VuLmlkIT09aWQpe2lmKHQpe2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe3dhcm5pbmcoIlVubWF0Y2hlZCAne2F9Jy4iLHQsdC5pZCk7fWVsc2V7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgdG8gbWF0Y2ggJ3tifScgZnJvbSBsaW5lIHtjfSBhbmQgaW5zdGVhZCBzYXcgJ3tkfScuIixuZXh0dG9rZW4saWQsdC5pZCx0LmxpbmUsbmV4dHRva2VuLnZhbHVlKTt9fWVsc2UgaWYobmV4dHRva2VuLnR5cGUhPT0nKGlkZW50aWZpZXIpJ3x8bmV4dHRva2VuLnZhbHVlIT09aWQpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbixpZCxuZXh0dG9rZW4udmFsdWUpO319CnByZXZ0b2tlbj10b2tlbjt0b2tlbj1uZXh0dG9rZW47Zm9yKDs7KXtuZXh0dG9rZW49bG9va2FoZWFkLnNoaWZ0KCl8fGxleC50b2tlbigpO2lmKG5leHR0b2tlbi5pZD09PScoZW5kKSd8fG5leHR0b2tlbi5pZD09PScoZXJyb3IpJyl7cmV0dXJuO30KaWYobmV4dHRva2VuLnR5cGU9PT0nc3BlY2lhbCcpe2RvT3B0aW9uKCk7fWVsc2V7aWYobmV4dHRva2VuLmlkIT09JyhlbmRsaW5lKScpe2JyZWFrO319fX0KZnVuY3Rpb24gcGFyc2UocmJwLGluaXRpYWwpe3ZhciBsZWZ0O2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe2Vycm9yKCJVbmV4cGVjdGVkIGVhcmx5IGVuZCBvZiBwcm9ncmFtLiIsdG9rZW4pO30KYWR2YW5jZSgpO2lmKG9wdGlvbi5zYWZlJiZ0eXBlb2YgcHJlZGVmaW5lZFt0b2tlbi52YWx1ZV09PT0nYm9vbGVhbicmJihuZXh0dG9rZW4uaWQhPT0nKCcmJm5leHR0b2tlbi5pZCE9PScuJykpe3dhcm5pbmcoJ0FEc2FmZSB2aW9sYXRpb24uJyx0b2tlbik7fQppZihpbml0aWFsKXthbm9ubmFtZT0nYW5vbnltb3VzJztmdW5jdFsnKHZlcmIpJ109dG9rZW4udmFsdWU7fQppZihpbml0aWFsPT09dHJ1ZSYmdG9rZW4uZnVkKXtsZWZ0PXRva2VuLmZ1ZCgpO31lbHNle2lmKHRva2VuLm51ZCl7bGVmdD10b2tlbi5udWQoKTt9ZWxzZXtpZihuZXh0dG9rZW4udHlwZT09PScobnVtYmVyKScmJnRva2VuLmlkPT09Jy4nKXt3YXJuaW5nKCJBIGxlYWRpbmcgZGVjaW1hbCBwb2ludCBjYW4gYmUgY29uZnVzZWQgd2l0aCBhIGRvdDogJy57YX0nLiIsdG9rZW4sbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7cmV0dXJuIHRva2VuO31lbHNle2Vycm9yKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLHRva2VuLmlkKTt9fQp3aGlsZShyYnA8bmV4dHRva2VuLmxicCl7YWR2YW5jZSgpO2lmKHRva2VuLmxlZCl7bGVmdD10b2tlbi5sZWQobGVmdCk7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkIGFuIG9wZXJhdG9yIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLHRva2VuLmlkKTt9fX0KcmV0dXJuIGxlZnQ7fQpmdW5jdGlvbiBhZGphY2VudChsZWZ0LHJpZ2h0KXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYob3B0aW9uLndoaXRlfHx4bW9kZT09PSdzdHlsZXByb3BlcnR5J3x8eG1vZGU9PT0nc3R5bGUnKXtpZihsZWZ0LmNoYXJhY3RlciE9PXJpZ2h0LmZyb20mJmxlZnQubGluZT09PXJpZ2h0LmxpbmUpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgJ3thfScuIixyaWdodCxsZWZ0LnZhbHVlKTt9fX0KZnVuY3Rpb24gbm9zcGFjZShsZWZ0LHJpZ2h0KXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYob3B0aW9uLndoaXRlJiYhbGVmdC5jb21tZW50KXtpZihsZWZ0LmxpbmU9PT1yaWdodC5saW5lKXthZGphY2VudChsZWZ0LHJpZ2h0KTt9fX0KZnVuY3Rpb24gbm9uYWRqYWNlbnQobGVmdCxyaWdodCl7aWYob3B0aW9uLndoaXRlKXtsZWZ0PWxlZnR8fHRva2VuO3JpZ2h0PXJpZ2h0fHxuZXh0dG9rZW47aWYobGVmdC5saW5lPT09cmlnaHQubGluZSYmbGVmdC5jaGFyYWN0ZXI9PT1yaWdodC5mcm9tKXt3YXJuaW5nKCJNaXNzaW5nIHNwYWNlIGFmdGVyICd7YX0nLiIsbmV4dHRva2VuLGxlZnQudmFsdWUpO319fQpmdW5jdGlvbiBub2JyZWFrbm9uYWRqYWNlbnQobGVmdCxyaWdodCl7bGVmdD1sZWZ0fHx0b2tlbjtyaWdodD1yaWdodHx8bmV4dHRva2VuO2lmKCFvcHRpb24ubGF4YnJlYWsmJmxlZnQubGluZSE9PXJpZ2h0LmxpbmUpe3dhcm5pbmcoIkJhZCBsaW5lIGJyZWFraW5nIGJlZm9yZSAne2F9Jy4iLHJpZ2h0LHJpZ2h0LmlkKTt9ZWxzZSBpZihvcHRpb24ud2hpdGUpe2xlZnQ9bGVmdHx8dG9rZW47cmlnaHQ9cmlnaHR8fG5leHR0b2tlbjtpZihsZWZ0LmNoYXJhY3Rlcj09PXJpZ2h0LmZyb20pe3dhcm5pbmcoIk1pc3Npbmcgc3BhY2UgYWZ0ZXIgJ3thfScuIixuZXh0dG9rZW4sbGVmdC52YWx1ZSk7fX19CmZ1bmN0aW9uIGluZGVudGF0aW9uKGJpYXMpe3ZhciBpO2lmKG9wdGlvbi53aGl0ZSYmbmV4dHRva2VuLmlkIT09JyhlbmQpJyl7aT1pbmRlbnQrKGJpYXN8fDApO2lmKG5leHR0b2tlbi5mcm9tIT09aSl7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgdG8gaGF2ZSBhbiBpbmRlbnRhdGlvbiBhdCB7Yn0gaW5zdGVhZCBhdCB7Y30uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlLGksbmV4dHRva2VuLmZyb20pO319fQpmdW5jdGlvbiBub2xpbmVicmVhayh0KXt0PXR8fHRva2VuO2lmKHQubGluZSE9PW5leHR0b2tlbi5saW5lKXt3YXJuaW5nKCJMaW5lIGJyZWFraW5nIGVycm9yICd7YX0nLiIsdCx0LnZhbHVlKTt9fQpmdW5jdGlvbiBjb21tYSgpe2lmKHRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZSl7aWYoIW9wdGlvbi5sYXhicmVhayl7d2FybmluZygiQmFkIGxpbmUgYnJlYWtpbmcgYmVmb3JlICd7YX0nLiIsdG9rZW4sbmV4dHRva2VuLmlkKTt9fWVsc2UgaWYodG9rZW4uY2hhcmFjdGVyIT09bmV4dHRva2VuLmZyb20mJm9wdGlvbi53aGl0ZSl7d2FybmluZygiVW5leHBlY3RlZCBzcGFjZSBhZnRlciAne2F9Jy4iLG5leHR0b2tlbix0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCcsJyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt9CmZ1bmN0aW9uIHN5bWJvbChzLHApe3ZhciB4PXN5bnRheFtzXTtpZigheHx8dHlwZW9mIHghPT0nb2JqZWN0Jyl7c3ludGF4W3NdPXg9e2lkOnMsbGJwOnAsdmFsdWU6c307fQpyZXR1cm4geDt9CmZ1bmN0aW9uIGRlbGltKHMpe3JldHVybiBzeW1ib2wocywwKTt9CmZ1bmN0aW9uIHN0bXQocyxmKXt2YXIgeD1kZWxpbShzKTt4LmlkZW50aWZpZXI9eC5yZXNlcnZlZD10cnVlO3guZnVkPWY7cmV0dXJuIHg7fQpmdW5jdGlvbiBibG9ja3N0bXQocyxmKXt2YXIgeD1zdG10KHMsZik7eC5ibG9jaz10cnVlO3JldHVybiB4O30KZnVuY3Rpb24gcmVzZXJ2ZU5hbWUoeCl7dmFyIGM9eC5pZC5jaGFyQXQoMCk7aWYoKGM+PSdhJyYmYzw9J3onKXx8KGM+PSdBJyYmYzw9J1onKSl7eC5pZGVudGlmaWVyPXgucmVzZXJ2ZWQ9dHJ1ZTt9CnJldHVybiB4O30KZnVuY3Rpb24gcHJlZml4KHMsZil7dmFyIHg9c3ltYm9sKHMsMTUwKTtyZXNlcnZlTmFtZSh4KTt4Lm51ZD0odHlwZW9mIGY9PT0nZnVuY3Rpb24nKT9mOmZ1bmN0aW9uKCl7dGhpcy5yaWdodD1wYXJzZSgxNTApO3RoaXMuYXJpdHk9J3VuYXJ5JztpZih0aGlzLmlkPT09JysrJ3x8dGhpcy5pZD09PSctLScpe2lmKG9wdGlvbi5wbHVzcGx1cyl7d2FybmluZygiVW5leHBlY3RlZCB1c2Ugb2YgJ3thfScuIix0aGlzLHRoaXMuaWQpO31lbHNlIGlmKCghdGhpcy5yaWdodC5pZGVudGlmaWVyfHx0aGlzLnJpZ2h0LnJlc2VydmVkKSYmdGhpcy5yaWdodC5pZCE9PScuJyYmdGhpcy5yaWdodC5pZCE9PSdbJyl7d2FybmluZygiQmFkIG9wZXJhbmQuIix0aGlzKTt9fQpyZXR1cm4gdGhpczt9O3JldHVybiB4O30KZnVuY3Rpb24gdHlwZShzLGYpe3ZhciB4PWRlbGltKHMpO3gudHlwZT1zO3gubnVkPWY7cmV0dXJuIHg7fQpmdW5jdGlvbiByZXNlcnZlKHMsZil7dmFyIHg9dHlwZShzLGYpO3guaWRlbnRpZmllcj14LnJlc2VydmVkPXRydWU7cmV0dXJuIHg7fQpmdW5jdGlvbiByZXNlcnZldmFyKHMsdil7cmV0dXJuIHJlc2VydmUocyxmdW5jdGlvbigpe2lmKHRoaXMuaWQ9PT0ndGhpcyd8fHRoaXMuaWQ9PT0nYXJndW1lbnRzJyl7aWYoc3RyaWN0X21vZGUmJmZ1bmN0WycoZ2xvYmFsKSddKXt3YXJuaW5nKCJTdHJpY3QgdmlvbGF0aW9uLiIsdGhpcyk7fWVsc2UgaWYob3B0aW9uLnNhZmUpe3dhcm5pbmcoIkFEc2FmZSB2aW9sYXRpb24uIix0aGlzKTt9fQpyZXR1cm4gdGhpczt9KTt9CmZ1bmN0aW9uIGluZml4KHMsZixwLHcpe3ZhciB4PXN5bWJvbChzLHApO3Jlc2VydmVOYW1lKHgpO3gubGVkPWZ1bmN0aW9uKGxlZnQpe2lmKCF3KXtub2JyZWFrbm9uYWRqYWNlbnQocHJldnRva2VuLHRva2VuKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO30KaWYodHlwZW9mIGY9PT0nZnVuY3Rpb24nKXtyZXR1cm4gZihsZWZ0LHRoaXMpO31lbHNle3RoaXMubGVmdD1sZWZ0O3RoaXMucmlnaHQ9cGFyc2UocCk7cmV0dXJuIHRoaXM7fX07cmV0dXJuIHg7fQpmdW5jdGlvbiByZWxhdGlvbihzLGYpe3ZhciB4PXN5bWJvbChzLDEwMCk7eC5sZWQ9ZnVuY3Rpb24obGVmdCl7bm9icmVha25vbmFkamFjZW50KHByZXZ0b2tlbix0b2tlbik7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt2YXIgcmlnaHQ9cGFyc2UoMTAwKTtpZigobGVmdCYmbGVmdC5pZD09PSdOYU4nKXx8KHJpZ2h0JiZyaWdodC5pZD09PSdOYU4nKSl7d2FybmluZygiVXNlIHRoZSBpc05hTiBmdW5jdGlvbiB0byBjb21wYXJlIHdpdGggTmFOLiIsdGhpcyk7fWVsc2UgaWYoZil7Zi5hcHBseSh0aGlzLFtsZWZ0LHJpZ2h0XSk7fQppZihsZWZ0LmlkPT09JyEnKXt3YXJuaW5nKCJDb25mdXNpbmcgdXNlIG9mICd7YX0nLiIsbGVmdCwnIScpO30KaWYocmlnaHQuaWQ9PT0nIScpe3dhcm5pbmcoIkNvbmZ1c2luZyB1c2Ugb2YgJ3thfScuIixsZWZ0LCchJyk7fQp0aGlzLmxlZnQ9bGVmdDt0aGlzLnJpZ2h0PXJpZ2h0O3JldHVybiB0aGlzO307cmV0dXJuIHg7fQpmdW5jdGlvbiBpc1Bvb3JSZWxhdGlvbihub2RlKXtyZXR1cm4gbm9kZSYmKChub2RlLnR5cGU9PT0nKG51bWJlciknJiYrbm9kZS52YWx1ZT09PTApfHwobm9kZS50eXBlPT09JyhzdHJpbmcpJyYmbm9kZS52YWx1ZT09PScgJyl8fG5vZGUudHlwZT09PSd0cnVlJ3x8bm9kZS50eXBlPT09J2ZhbHNlJ3x8bm9kZS50eXBlPT09J3VuZGVmaW5lZCd8fG5vZGUudHlwZT09PSdudWxsJyk7fQpmdW5jdGlvbiBhc3NpZ25vcChzLGYpe3N5bWJvbChzLDIwKS5leHBzPXRydWU7cmV0dXJuIGluZml4KHMsZnVuY3Rpb24obGVmdCx0aGF0KXt2YXIgbDt0aGF0LmxlZnQ9bGVmdDtpZihwcmVkZWZpbmVkW2xlZnQudmFsdWVdPT09ZmFsc2UmJnNjb3BlW2xlZnQudmFsdWVdWycoZ2xvYmFsKSddPT09dHJ1ZSl7d2FybmluZygnUmVhZCBvbmx5LicsbGVmdCk7fQppZihvcHRpb24uc2FmZSl7bD1sZWZ0O2Rve2lmKHR5cGVvZiBwcmVkZWZpbmVkW2wudmFsdWVdPT09J2Jvb2xlYW4nKXt3YXJuaW5nKCdBRHNhZmUgdmlvbGF0aW9uLicsbCk7fQpsPWwubGVmdDt9d2hpbGUobCk7fQppZihsZWZ0KXtpZihsZWZ0LmlkPT09Jy4nfHxsZWZ0LmlkPT09J1snKXtpZighbGVmdC5sZWZ0fHxsZWZ0LmxlZnQudmFsdWU9PT0nYXJndW1lbnRzJyl7d2FybmluZygnQmFkIGFzc2lnbm1lbnQuJyx0aGF0KTt9CnRoYXQucmlnaHQ9cGFyc2UoMTkpO3JldHVybiB0aGF0O31lbHNlIGlmKGxlZnQuaWRlbnRpZmllciYmIWxlZnQucmVzZXJ2ZWQpe2lmKGZ1bmN0W2xlZnQudmFsdWVdPT09J2V4Y2VwdGlvbicpe3dhcm5pbmcoIkRvIG5vdCBhc3NpZ24gdG8gdGhlIGV4Y2VwdGlvbiBwYXJhbWV0ZXIuIixsZWZ0KTt9CnRoYXQucmlnaHQ9cGFyc2UoMTkpO3JldHVybiB0aGF0O30KaWYobGVmdD09PXN5bnRheFsnZnVuY3Rpb24nXSl7d2FybmluZygiRXhwZWN0ZWQgYW4gaWRlbnRpZmllciBpbiBhbiBhc3NpZ25tZW50IGFuZCBpbnN0ZWFkIHNhdyBhIGZ1bmN0aW9uIGludm9jYXRpb24uIix0b2tlbik7fX0KZXJyb3IoIkJhZCBhc3NpZ25tZW50LiIsdGhhdCk7fSwyMCk7fQpmdW5jdGlvbiBiaXR3aXNlKHMsZixwKXt2YXIgeD1zeW1ib2wocyxwKTtyZXNlcnZlTmFtZSh4KTt4LmxlZD0odHlwZW9mIGY9PT0nZnVuY3Rpb24nKT9mOmZ1bmN0aW9uKGxlZnQpe2lmKG9wdGlvbi5iaXR3aXNlKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHVzZSBvZiAne2F9Jy4iLHRoaXMsdGhpcy5pZCk7fQp0aGlzLmxlZnQ9bGVmdDt0aGlzLnJpZ2h0PXBhcnNlKHApO3JldHVybiB0aGlzO307cmV0dXJuIHg7fQpmdW5jdGlvbiBiaXR3aXNlYXNzaWdub3Aocyl7c3ltYm9sKHMsMjApLmV4cHM9dHJ1ZTtyZXR1cm4gaW5maXgocyxmdW5jdGlvbihsZWZ0LHRoYXQpe2lmKG9wdGlvbi5iaXR3aXNlKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHVzZSBvZiAne2F9Jy4iLHRoYXQsdGhhdC5pZCk7fQpub25hZGphY2VudChwcmV2dG9rZW4sdG9rZW4pO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7aWYobGVmdCl7aWYobGVmdC5pZD09PScuJ3x8bGVmdC5pZD09PSdbJ3x8KGxlZnQuaWRlbnRpZmllciYmIWxlZnQucmVzZXJ2ZWQpKXtwYXJzZSgxOSk7cmV0dXJuIHRoYXQ7fQppZihsZWZ0PT09c3ludGF4WydmdW5jdGlvbiddKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGluIGFuIGFzc2lnbm1lbnQsIGFuZCBpbnN0ZWFkIHNhdyBhIGZ1bmN0aW9uIGludm9jYXRpb24uIix0b2tlbik7fQpyZXR1cm4gdGhhdDt9CmVycm9yKCJCYWQgYXNzaWdubWVudC4iLHRoYXQpO30sMjApO30KZnVuY3Rpb24gc3VmZml4KHMsZil7dmFyIHg9c3ltYm9sKHMsMTUwKTt4LmxlZD1mdW5jdGlvbihsZWZ0KXtpZihvcHRpb24ucGx1c3BsdXMpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgdXNlIG9mICd7YX0nLiIsdGhpcyx0aGlzLmlkKTt9ZWxzZSBpZigoIWxlZnQuaWRlbnRpZmllcnx8bGVmdC5yZXNlcnZlZCkmJmxlZnQuaWQhPT0nLicmJmxlZnQuaWQhPT0nWycpe3dhcm5pbmcoIkJhZCBvcGVyYW5kLiIsdGhpcyk7fQp0aGlzLmxlZnQ9bGVmdDtyZXR1cm4gdGhpczt9O3JldHVybiB4O30KZnVuY3Rpb24gb3B0aW9uYWxpZGVudGlmaWVyKCl7aWYobmV4dHRva2VuLnJlc2VydmVkKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9JyAoYSByZXNlcnZlZCB3b3JkKS4iLG5leHR0b2tlbixuZXh0dG9rZW4uaWQpO30KaWYobmV4dHRva2VuLmlkZW50aWZpZXIpe2FkdmFuY2UoKTtyZXR1cm4gdG9rZW4udmFsdWU7fX0KZnVuY3Rpb24gaWRlbnRpZmllcigpe3ZhciBpPW9wdGlvbmFsaWRlbnRpZmllcigpO2lmKGkpe3JldHVybiBpO30KaWYodG9rZW4uaWQ9PT0nZnVuY3Rpb24nJiZuZXh0dG9rZW4uaWQ9PT0nKCcpe3dhcm5pbmcoIk1pc3NpbmcgbmFtZSBpbiBmdW5jdGlvbiBzdGF0ZW1lbnQuIik7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkIGFuIGlkZW50aWZpZXIgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fX0KZnVuY3Rpb24gcmVhY2hhYmxlKHMpe3ZhciBpPTAsdDtpZihuZXh0dG9rZW4uaWQhPT0nOyd8fG5vcmVhY2gpe3JldHVybjt9CmZvcig7Oyl7dD1wZWVrKGkpO2lmKHQucmVhY2gpe3JldHVybjt9CmlmKHQuaWQhPT0nKGVuZGxpbmUpJyl7aWYodC5pZD09PSdmdW5jdGlvbicpe3dhcm5pbmcoIklubmVyIGZ1bmN0aW9ucyBzaG91bGQgYmUgbGlzdGVkIGF0IHRoZSB0b3Agb2YgdGhlIG91dGVyIGZ1bmN0aW9uLiIsdCk7YnJlYWs7fQp3YXJuaW5nKCJVbnJlYWNoYWJsZSAne2F9JyBhZnRlciAne2J9Jy4iLHQsdC52YWx1ZSxzKTticmVhazt9CmkrPTE7fX0KZnVuY3Rpb24gc3RhdGVtZW50KG5vaW5kZW50KXt2YXIgaT1pbmRlbnQscixzPXNjb3BlLHQ9bmV4dHRva2VuO2lmKHQuaWQ9PT0nOycpe3dhcm5pbmcoIlVubmVjZXNzYXJ5IHNlbWljb2xvbi4iLHQpO2FkdmFuY2UoJzsnKTtyZXR1cm47fQppZih0LmlkZW50aWZpZXImJiF0LnJlc2VydmVkJiZwZWVrKCkuaWQ9PT0nOicpe2FkdmFuY2UoKTthZHZhbmNlKCc6Jyk7c2NvcGU9T2JqZWN0LmNyZWF0ZShzKTthZGRsYWJlbCh0LnZhbHVlLCdsYWJlbCcpO2lmKCFuZXh0dG9rZW4ubGFiZWxsZWQpe3dhcm5pbmcoIkxhYmVsICd7YX0nIG9uIHtifSBzdGF0ZW1lbnQuIixuZXh0dG9rZW4sdC52YWx1ZSxuZXh0dG9rZW4udmFsdWUpO30KaWYoangudGVzdCh0LnZhbHVlKyc6Jykpe3dhcm5pbmcoIkxhYmVsICd7YX0nIGxvb2tzIGxpa2UgYSBqYXZhc2NyaXB0IHVybC4iLHQsdC52YWx1ZSk7fQpuZXh0dG9rZW4ubGFiZWw9dC52YWx1ZTt0PW5leHR0b2tlbjt9CmlmKCFub2luZGVudCl7aW5kZW50YXRpb24oKTt9CmlmKG5leHR0b2tlbi5pZD09PSduZXcnKXt3YXJuaW5nKCInbmV3JyBzaG91bGQgbm90IGJlIHVzZWQgYXMgYSBzdGF0ZW1lbnQuIik7fQpyPXBhcnNlKDAsdHJ1ZSk7aWYoIXQuYmxvY2spe2lmKCFyfHwhci5leHBzKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBhc3NpZ25tZW50IG9yIGZ1bmN0aW9uIGNhbGwgYW5kIGluc3RlYWQgc2F3IGFuIGV4cHJlc3Npb24uIix0b2tlbik7fQppZihuZXh0dG9rZW4uaWQhPT0nOycpe3dhcm5pbmdBdCgiTWlzc2luZyBzZW1pY29sb24uIix0b2tlbi5saW5lLHRva2VuLmZyb20rdG9rZW4udmFsdWUubGVuZ3RoKTt9ZWxzZXthZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2FkdmFuY2UoJzsnKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO319CmluZGVudD1pO3Njb3BlPXM7cmV0dXJuIHI7fQpmdW5jdGlvbiB1c2Vfc3RyaWN0KCl7aWYobmV4dHRva2VuLnZhbHVlPT09J3VzZSBzdHJpY3QnKXthZHZhbmNlKCk7YWR2YW5jZSgnOycpO3N0cmljdF9tb2RlPXRydWU7cmV0dXJuIHRydWU7fWVsc2V7cmV0dXJuIGZhbHNlO319CmZ1bmN0aW9uIHN0YXRlbWVudHMoYmVnaW4pe3ZhciBhPVtdLGYscDtpZihiZWdpbiYmIXVzZV9zdHJpY3QoKSYmb3B0aW9uLnN0cmljdCl7d2FybmluZygnTWlzc2luZyAidXNlIHN0cmljdCIgc3RhdGVtZW50LicsbmV4dHRva2VuKTt9CmlmKG9wdGlvbi5hZHNhZmUpe3N3aXRjaChiZWdpbil7Y2FzZSdzY3JpcHQnOmlmKCFhZHNhZmVfbWF5KXtpZihuZXh0dG9rZW4udmFsdWUhPT0nQURTQUZFJ3x8cGVlaygwKS5pZCE9PScuJ3x8KHBlZWsoMSkudmFsdWUhPT0naWQnJiZwZWVrKDEpLnZhbHVlIT09J2dvJykpe2Vycm9yKCdBRHNhZmUgdmlvbGF0aW9uOiBNaXNzaW5nIEFEU0FGRS5pZCBvciBBRFNBRkUuZ28uJyxuZXh0dG9rZW4pO319CmlmKG5leHR0b2tlbi52YWx1ZT09PSdBRFNBRkUnJiZwZWVrKDApLmlkPT09Jy4nJiZwZWVrKDEpLnZhbHVlPT09J2lkJyl7aWYoYWRzYWZlX21heSl7ZXJyb3IoJ0FEc2FmZSB2aW9sYXRpb24uJyxuZXh0dG9rZW4pO30KYWR2YW5jZSgnQURTQUZFJyk7YWR2YW5jZSgnLicpO2FkdmFuY2UoJ2lkJyk7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi52YWx1ZSE9PWFkc2FmZV9pZCl7ZXJyb3IoJ0FEc2FmZSB2aW9sYXRpb246IGlkIGRvZXMgbm90IG1hdGNoLicsbmV4dHRva2VuKTt9CmFkdmFuY2UoJyhzdHJpbmcpJyk7YWR2YW5jZSgnKScpO2FkdmFuY2UoJzsnKTthZHNhZmVfbWF5PXRydWU7fQpicmVhaztjYXNlJ2xpYic6aWYobmV4dHRva2VuLnZhbHVlPT09J0FEU0FGRScpe2FkdmFuY2UoJ0FEU0FGRScpO2FkdmFuY2UoJy4nKTthZHZhbmNlKCdsaWInKTthZHZhbmNlKCcoJyk7YWR2YW5jZSgnKHN0cmluZyknKTtjb21tYSgpO2Y9cGFyc2UoMCk7aWYoZi5pZCE9PSdmdW5jdGlvbicpe2Vycm9yKCdUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIGxpYiBtdXN0IGJlIGEgZnVuY3Rpb24uJyxmKTt9CnA9Zi5mdW5jdFsnKHBhcmFtcyknXTtwPXAmJnAuam9pbignLCAnKTtpZihwJiZwIT09J2xpYicpe2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixmLCcobGliKScsJygnK3ArJyknKTt9CmFkdmFuY2UoJyknKTthZHZhbmNlKCc7Jyk7cmV0dXJuIGE7fWVsc2V7ZXJyb3IoIkFEc2FmZSBsaWIgdmlvbGF0aW9uLiIpO319fQp3aGlsZSghbmV4dHRva2VuLnJlYWNoJiZuZXh0dG9rZW4uaWQhPT0nKGVuZCknKXtpZihuZXh0dG9rZW4uaWQ9PT0nOycpe3dhcm5pbmcoIlVubmVjZXNzYXJ5IHNlbWljb2xvbi4iKTthZHZhbmNlKCc7Jyk7fWVsc2V7YS5wdXNoKHN0YXRlbWVudCgpKTt9fQpyZXR1cm4gYTt9CmZ1bmN0aW9uIGJsb2NrKGYpe3ZhciBhLGI9aW5ibG9jayxvbGRfaW5kZW50PWluZGVudCxzPXNjb3BlLHQ7aW5ibG9jaz1mO3Njb3BlPU9iamVjdC5jcmVhdGUoc2NvcGUpO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7dD1uZXh0dG9rZW47aWYobmV4dHRva2VuLmlkPT09J3snKXthZHZhbmNlKCd7Jyk7aWYobmV4dHRva2VuLmlkIT09J30nfHx0b2tlbi5saW5lIT09bmV4dHRva2VuLmxpbmUpe2luZGVudCs9b3B0aW9uLmluZGVudDt3aGlsZSghZiYmbmV4dHRva2VuLmZyb20+aW5kZW50KXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7fQppZighZil7dXNlX3N0cmljdCgpO30KYT1zdGF0ZW1lbnRzKCk7aW5kZW50LT1vcHRpb24uaW5kZW50O2luZGVudGF0aW9uKCk7fQphZHZhbmNlKCd9Jyx0KTtpbmRlbnQ9b2xkX2luZGVudDt9ZWxzZXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3snLG5leHR0b2tlbi52YWx1ZSk7bm9yZWFjaD10cnVlO2E9W3N0YXRlbWVudCgpXTtub3JlYWNoPWZhbHNlO30KZnVuY3RbJyh2ZXJiKSddPW51bGw7c2NvcGU9cztpbmJsb2NrPWI7cmV0dXJuIGE7fQpmdW5jdGlvbiBpZFZhbHVlKCl7cmV0dXJuIHRoaXM7fQpmdW5jdGlvbiBjb3VudE1lbWJlcihtKXtpZihtZW1iZXJzT25seSYmdHlwZW9mIG1lbWJlcnNPbmx5W21dIT09J2Jvb2xlYW4nKXt3YXJuaW5nKCJVbmV4cGVjdGVkIC8qbWVtYmVyICd7YX0nLiIsdG9rZW4sbSk7fQppZih0eXBlb2YgbWVtYmVyW21dPT09J251bWJlcicpe21lbWJlclttXSs9MTt9ZWxzZXttZW1iZXJbbV09MTt9fQpmdW5jdGlvbiBub3RlX2ltcGxpZWQodG9rZW4pe3ZhciBuYW1lPXRva2VuLnZhbHVlLGxpbmU9dG9rZW4ubGluZSxhPWltcGxpZWRbbmFtZV07aWYodHlwZW9mIGE9PT0nZnVuY3Rpb24nKXthPWZhbHNlO30KaWYoIWEpe2E9W2xpbmVdO2ltcGxpZWRbbmFtZV09YTt9ZWxzZSBpZihhW2EubGVuZ3RoLTFdIT09bGluZSl7YS5wdXNoKGxpbmUpO319CmZ1bmN0aW9uIGNzc05hbWUoKXtpZihuZXh0dG9rZW4uaWRlbnRpZmllcil7YWR2YW5jZSgpO3JldHVybiB0cnVlO319CmZ1bmN0aW9uIGNzc051bWJlcigpe2lmKG5leHR0b2tlbi5pZD09PSctJyl7YWR2YW5jZSgnLScpO2FkamFjZW50KCk7bm9saW5lYnJlYWsoKTt9CmlmKG5leHR0b2tlbi50eXBlPT09JyhudW1iZXIpJyl7YWR2YW5jZSgnKG51bWJlciknKTtyZXR1cm4gdHJ1ZTt9fQpmdW5jdGlvbiBjc3NTdHJpbmcoKXtpZihuZXh0dG9rZW4udHlwZT09PScoc3RyaW5nKScpe2FkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fQpmdW5jdGlvbiBjc3NDb2xvcigpe3ZhciBpLG51bWJlcjtpZihuZXh0dG9rZW4uaWRlbnRpZmllcil7aWYobmV4dHRva2VuLnZhbHVlPT09J3JnYicpe2FkdmFuY2UoKTthZHZhbmNlKCcoJyk7Zm9yKGk9MDtpPDM7aSs9MSl7aWYoaSl7YWR2YW5jZSgnLCcpO30KbnVtYmVyPW5leHR0b2tlbi52YWx1ZTtpZihuZXh0dG9rZW4udHlwZSE9PScobnVtYmVyKSd8fG51bWJlcjwwKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHBvc2l0aXZlIG51bWJlciBhbmQgaW5zdGVhZCBzYXcgJ3thfSciLG5leHR0b2tlbixudW1iZXIpO2FkdmFuY2UoKTt9ZWxzZXthZHZhbmNlKCk7aWYobmV4dHRva2VuLmlkPT09JyUnKXthZHZhbmNlKCclJyk7aWYobnVtYmVyPjEwMCl7d2FybmluZygiRXhwZWN0ZWQgYSBwZXJjZW50YWdlIGFuZCBpbnN0ZWFkIHNhdyAne2F9JyIsdG9rZW4sbnVtYmVyKTt9fWVsc2V7aWYobnVtYmVyPjI1NSl7d2FybmluZygiRXhwZWN0ZWQgYSBzbWFsbCBudW1iZXIgYW5kIGluc3RlYWQgc2F3ICd7YX0nIix0b2tlbixudW1iZXIpO319fX0KYWR2YW5jZSgnKScpO3JldHVybiB0cnVlO31lbHNlIGlmKGNzc0NvbG9yRGF0YVtuZXh0dG9rZW4udmFsdWVdPT09dHJ1ZSl7YWR2YW5jZSgpO3JldHVybiB0cnVlO319ZWxzZSBpZihuZXh0dG9rZW4udHlwZT09PScoY29sb3IpJyl7YWR2YW5jZSgpO3JldHVybiB0cnVlO30KcmV0dXJuIGZhbHNlO30KZnVuY3Rpb24gY3NzTGVuZ3RoKCl7aWYobmV4dHRva2VuLmlkPT09Jy0nKXthZHZhbmNlKCctJyk7YWRqYWNlbnQoKTtub2xpbmVicmVhaygpO30KaWYobmV4dHRva2VuLnR5cGU9PT0nKG51bWJlciknKXthZHZhbmNlKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknJiZjc3NMZW5ndGhEYXRhW25leHR0b2tlbi52YWx1ZV09PT10cnVlKXthZGphY2VudCgpO2FkdmFuY2UoKTt9ZWxzZSBpZigrdG9rZW4udmFsdWUhPT0wKXt3YXJuaW5nKCJFeHBlY3RlZCBhIGxpbmVhciB1bml0IGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KcmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpmdW5jdGlvbiBjc3NMaW5lSGVpZ2h0KCl7aWYobmV4dHRva2VuLmlkPT09Jy0nKXthZHZhbmNlKCctJyk7YWRqYWNlbnQoKTt9CmlmKG5leHR0b2tlbi50eXBlPT09JyhudW1iZXIpJyl7YWR2YW5jZSgpO2lmKG5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyYmY3NzTGVuZ3RoRGF0YVtuZXh0dG9rZW4udmFsdWVdPT09dHJ1ZSl7YWRqYWNlbnQoKTthZHZhbmNlKCk7fQpyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1dpZHRoKCl7aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe3N3aXRjaChuZXh0dG9rZW4udmFsdWUpe2Nhc2UndGhpbic6Y2FzZSdtZWRpdW0nOmNhc2UndGhpY2snOmFkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fWVsc2V7cmV0dXJuIGNzc0xlbmd0aCgpO319CmZ1bmN0aW9uIGNzc01hcmdpbigpe2lmKG5leHR0b2tlbi5pZGVudGlmaWVyKXtpZihuZXh0dG9rZW4udmFsdWU9PT0nYXV0bycpe2FkdmFuY2UoKTtyZXR1cm4gdHJ1ZTt9fWVsc2V7cmV0dXJuIGNzc0xlbmd0aCgpO319CmZ1bmN0aW9uIGNzc0F0dHIoKXtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2F0dHInKXthZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBuYW1lIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO2FkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc0NvbW1hTGlzdCgpe3doaWxlKG5leHR0b2tlbi5pZCE9PSc7Jyl7aWYoIWNzc05hbWUoKSYmIWNzc1N0cmluZygpKXt3YXJuaW5nKCJFeHBlY3RlZCBhIG5hbWUgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQppZihuZXh0dG9rZW4uaWQhPT0nLCcpe3JldHVybiB0cnVlO30KY29tbWEoKTt9fQpmdW5jdGlvbiBjc3NDb3VudGVyKCl7aWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdjb3VudGVyJyl7YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtpZighbmV4dHRva2VuLmlkZW50aWZpZXIpe30KYWR2YW5jZSgpO2lmKG5leHR0b2tlbi5pZD09PScsJyl7Y29tbWEoKTtpZihuZXh0dG9rZW4udHlwZSE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KYWR2YW5jZSgnKScpO3JldHVybiB0cnVlO30KaWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdjb3VudGVycycpe2FkdmFuY2UoKTthZHZhbmNlKCcoJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeHBlY3RlZCBhIG5hbWUgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO2lmKG5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyl7d2FybmluZygiRXhwZWN0ZWQgYSBzdHJpbmcgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fQppZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2NvbW1hKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHN0cmluZyBhbmQgaW5zdGVhZCBzYXcgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTt9CmFkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1NoYXBlKCl7dmFyIGk7aWYobmV4dHRva2VuLmlkZW50aWZpZXImJm5leHR0b2tlbi52YWx1ZT09PSdyZWN0Jyl7YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtmb3IoaT0wO2k8NDtpKz0xKXtpZighY3NzTGVuZ3RoKCkpe3dhcm5pbmcoIkV4cGVjdGVkIGEgbnVtYmVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO2JyZWFrO319CmFkdmFuY2UoJyknKTtyZXR1cm4gdHJ1ZTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGNzc1VybCgpe3ZhciBjLHVybDtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J3VybCcpe25leHR0b2tlbj1sZXgucmFuZ2UoJygnLCcpJyk7dXJsPW5leHR0b2tlbi52YWx1ZTtjPXVybC5jaGFyQXQoMCk7aWYoYz09PSciJ3x8Yz09PSdcJycpe2lmKHVybC5zbGljZSgtMSkhPT1jKXt3YXJuaW5nKCJCYWQgdXJsIHN0cmluZy4iKTt9ZWxzZXt1cmw9dXJsLnNsaWNlKDEsLTEpO2lmKHVybC5pbmRleE9mKGMpPj0wKXt3YXJuaW5nKCJCYWQgdXJsIHN0cmluZy4iKTt9fX0KaWYoIXVybCl7d2FybmluZygiTWlzc2luZyB1cmwuIik7fQphZHZhbmNlKCk7aWYob3B0aW9uLnNhZmUmJnV4LnRlc3QodXJsKSl7ZXJyb3IoIkFEc2FmZSBVUkwgdmlvbGF0aW9uLiIpO30KdXJscy5wdXNoKHVybCk7cmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpjc3NBbnk9W2Nzc1VybCxmdW5jdGlvbigpe2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe3N3aXRjaChuZXh0dG9rZW4udmFsdWUudG9Mb3dlckNhc2UoKSl7Y2FzZSd1cmwnOmNzc1VybCgpO2JyZWFrO2Nhc2UnZXhwcmVzc2lvbic6d2FybmluZygiVW5leHBlY3RlZCBleHByZXNzaW9uICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7YWR2YW5jZSgpO2JyZWFrO2RlZmF1bHQ6YWR2YW5jZSgpO319ZWxzZXtpZihuZXh0dG9rZW4uaWQ9PT0nOyd8fG5leHR0b2tlbi5pZD09PSchJ3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJ3x8bmV4dHRva2VuLmlkPT09J30nKXtyZXR1cm4gdHJ1ZTt9CmFkdmFuY2UoKTt9fX1dO2Nzc0JvcmRlclN0eWxlPVsnbm9uZScsJ2hpZGRlbicsJ2RvdHRlZCcsJ2Rhc2hlZCcsJ3NvbGlkJywnZG91YmxlJywncmlkZ2UnLCdpbnNldCcsJ291dHNldCddO2Nzc0JyZWFrPVsnYXV0bycsJ2Fsd2F5cycsJ2F2b2lkJywnbGVmdCcsJ3JpZ2h0J107Y3NzT3ZlcmZsb3c9WydhdXRvJywnaGlkZGVuJywnc2Nyb2xsJywndmlzaWJsZSddO2Nzc0F0dHJpYnV0ZURhdGE9e2JhY2tncm91bmQ6W3RydWUsJ2JhY2tncm91bmQtYXR0YWNobWVudCcsJ2JhY2tncm91bmQtY29sb3InLCdiYWNrZ3JvdW5kLWltYWdlJywnYmFja2dyb3VuZC1wb3NpdGlvbicsJ2JhY2tncm91bmQtcmVwZWF0J10sJ2JhY2tncm91bmQtYXR0YWNobWVudCc6WydzY3JvbGwnLCdmaXhlZCddLCdiYWNrZ3JvdW5kLWNvbG9yJzpbJ3RyYW5zcGFyZW50Jyxjc3NDb2xvcl0sJ2JhY2tncm91bmQtaW1hZ2UnOlsnbm9uZScsY3NzVXJsXSwnYmFja2dyb3VuZC1wb3NpdGlvbic6WzIsW2Nzc0xlbmd0aCwndG9wJywnYm90dG9tJywnbGVmdCcsJ3JpZ2h0JywnY2VudGVyJ11dLCdiYWNrZ3JvdW5kLXJlcGVhdCc6WydyZXBlYXQnLCdyZXBlYXQteCcsJ3JlcGVhdC15Jywnbm8tcmVwZWF0J10sJ2JvcmRlcic6W3RydWUsJ2JvcmRlci1jb2xvcicsJ2JvcmRlci1zdHlsZScsJ2JvcmRlci13aWR0aCddLCdib3JkZXItYm90dG9tJzpbdHJ1ZSwnYm9yZGVyLWJvdHRvbS1jb2xvcicsJ2JvcmRlci1ib3R0b20tc3R5bGUnLCdib3JkZXItYm90dG9tLXdpZHRoJ10sJ2JvcmRlci1ib3R0b20tY29sb3InOmNzc0NvbG9yLCdib3JkZXItYm90dG9tLXN0eWxlJzpjc3NCb3JkZXJTdHlsZSwnYm9yZGVyLWJvdHRvbS13aWR0aCc6Y3NzV2lkdGgsJ2JvcmRlci1jb2xsYXBzZSc6Wydjb2xsYXBzZScsJ3NlcGFyYXRlJ10sJ2JvcmRlci1jb2xvcic6Wyd0cmFuc3BhcmVudCcsNCxjc3NDb2xvcl0sJ2JvcmRlci1sZWZ0JzpbdHJ1ZSwnYm9yZGVyLWxlZnQtY29sb3InLCdib3JkZXItbGVmdC1zdHlsZScsJ2JvcmRlci1sZWZ0LXdpZHRoJ10sJ2JvcmRlci1sZWZ0LWNvbG9yJzpjc3NDb2xvciwnYm9yZGVyLWxlZnQtc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItbGVmdC13aWR0aCc6Y3NzV2lkdGgsJ2JvcmRlci1yaWdodCc6W3RydWUsJ2JvcmRlci1yaWdodC1jb2xvcicsJ2JvcmRlci1yaWdodC1zdHlsZScsJ2JvcmRlci1yaWdodC13aWR0aCddLCdib3JkZXItcmlnaHQtY29sb3InOmNzc0NvbG9yLCdib3JkZXItcmlnaHQtc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItcmlnaHQtd2lkdGgnOmNzc1dpZHRoLCdib3JkZXItc3BhY2luZyc6WzIsY3NzTGVuZ3RoXSwnYm9yZGVyLXN0eWxlJzpbNCxjc3NCb3JkZXJTdHlsZV0sJ2JvcmRlci10b3AnOlt0cnVlLCdib3JkZXItdG9wLWNvbG9yJywnYm9yZGVyLXRvcC1zdHlsZScsJ2JvcmRlci10b3Atd2lkdGgnXSwnYm9yZGVyLXRvcC1jb2xvcic6Y3NzQ29sb3IsJ2JvcmRlci10b3Atc3R5bGUnOmNzc0JvcmRlclN0eWxlLCdib3JkZXItdG9wLXdpZHRoJzpjc3NXaWR0aCwnYm9yZGVyLXdpZHRoJzpbNCxjc3NXaWR0aF0sYm90dG9tOltjc3NMZW5ndGgsJ2F1dG8nXSwnY2FwdGlvbi1zaWRlJzpbJ2JvdHRvbScsJ2xlZnQnLCdyaWdodCcsJ3RvcCddLGNsZWFyOlsnYm90aCcsJ2xlZnQnLCdub25lJywncmlnaHQnXSxjbGlwOltjc3NTaGFwZSwnYXV0byddLGNvbG9yOmNzc0NvbG9yLGNvbnRlbnQ6WydvcGVuLXF1b3RlJywnY2xvc2UtcXVvdGUnLCduby1vcGVuLXF1b3RlJywnbm8tY2xvc2UtcXVvdGUnLGNzc1N0cmluZyxjc3NVcmwsY3NzQ291bnRlcixjc3NBdHRyXSwnY291bnRlci1pbmNyZW1lbnQnOltjc3NOYW1lLCdub25lJ10sJ2NvdW50ZXItcmVzZXQnOltjc3NOYW1lLCdub25lJ10sY3Vyc29yOltjc3NVcmwsJ2F1dG8nLCdjcm9zc2hhaXInLCdkZWZhdWx0JywnZS1yZXNpemUnLCdoZWxwJywnbW92ZScsJ24tcmVzaXplJywnbmUtcmVzaXplJywnbnctcmVzaXplJywncG9pbnRlcicsJ3MtcmVzaXplJywnc2UtcmVzaXplJywnc3ctcmVzaXplJywndy1yZXNpemUnLCd0ZXh0Jywnd2FpdCddLGRpcmVjdGlvbjpbJ2x0cicsJ3J0bCddLGRpc3BsYXk6WydibG9jaycsJ2NvbXBhY3QnLCdpbmxpbmUnLCdpbmxpbmUtYmxvY2snLCdpbmxpbmUtdGFibGUnLCdsaXN0LWl0ZW0nLCdtYXJrZXInLCdub25lJywncnVuLWluJywndGFibGUnLCd0YWJsZS1jYXB0aW9uJywndGFibGUtY2VsbCcsJ3RhYmxlLWNvbHVtbicsJ3RhYmxlLWNvbHVtbi1ncm91cCcsJ3RhYmxlLWZvb3Rlci1ncm91cCcsJ3RhYmxlLWhlYWRlci1ncm91cCcsJ3RhYmxlLXJvdycsJ3RhYmxlLXJvdy1ncm91cCddLCdlbXB0eS1jZWxscyc6WydzaG93JywnaGlkZSddLCdmbG9hdCc6WydsZWZ0Jywnbm9uZScsJ3JpZ2h0J10sZm9udDpbJ2NhcHRpb24nLCdpY29uJywnbWVudScsJ21lc3NhZ2UtYm94Jywnc21hbGwtY2FwdGlvbicsJ3N0YXR1cy1iYXInLHRydWUsJ2ZvbnQtc2l6ZScsJ2ZvbnQtc3R5bGUnLCdmb250LXdlaWdodCcsJ2ZvbnQtZmFtaWx5J10sJ2ZvbnQtZmFtaWx5Jzpjc3NDb21tYUxpc3QsJ2ZvbnQtc2l6ZSc6Wyd4eC1zbWFsbCcsJ3gtc21hbGwnLCdzbWFsbCcsJ21lZGl1bScsJ2xhcmdlJywneC1sYXJnZScsJ3h4LWxhcmdlJywnbGFyZ2VyJywnc21hbGxlcicsY3NzTGVuZ3RoXSwnZm9udC1zaXplLWFkanVzdCc6Wydub25lJyxjc3NOdW1iZXJdLCdmb250LXN0cmV0Y2gnOlsnbm9ybWFsJywnd2lkZXInLCduYXJyb3dlcicsJ3VsdHJhLWNvbmRlbnNlZCcsJ2V4dHJhLWNvbmRlbnNlZCcsJ2NvbmRlbnNlZCcsJ3NlbWktY29uZGVuc2VkJywnc2VtaS1leHBhbmRlZCcsJ2V4cGFuZGVkJywnZXh0cmEtZXhwYW5kZWQnXSwnZm9udC1zdHlsZSc6Wydub3JtYWwnLCdpdGFsaWMnLCdvYmxpcXVlJ10sJ2ZvbnQtdmFyaWFudCc6Wydub3JtYWwnLCdzbWFsbC1jYXBzJ10sJ2ZvbnQtd2VpZ2h0JzpbJ25vcm1hbCcsJ2JvbGQnLCdib2xkZXInLCdsaWdodGVyJyxjc3NOdW1iZXJdLGhlaWdodDpbY3NzTGVuZ3RoLCdhdXRvJ10sbGVmdDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ2xldHRlci1zcGFjaW5nJzpbJ25vcm1hbCcsY3NzTGVuZ3RoXSwnbGluZS1oZWlnaHQnOlsnbm9ybWFsJyxjc3NMaW5lSGVpZ2h0XSwnbGlzdC1zdHlsZSc6W3RydWUsJ2xpc3Qtc3R5bGUtaW1hZ2UnLCdsaXN0LXN0eWxlLXBvc2l0aW9uJywnbGlzdC1zdHlsZS10eXBlJ10sJ2xpc3Qtc3R5bGUtaW1hZ2UnOlsnbm9uZScsY3NzVXJsXSwnbGlzdC1zdHlsZS1wb3NpdGlvbic6WydpbnNpZGUnLCdvdXRzaWRlJ10sJ2xpc3Qtc3R5bGUtdHlwZSc6WydjaXJjbGUnLCdkaXNjJywnc3F1YXJlJywnZGVjaW1hbCcsJ2RlY2ltYWwtbGVhZGluZy16ZXJvJywnbG93ZXItcm9tYW4nLCd1cHBlci1yb21hbicsJ2xvd2VyLWdyZWVrJywnbG93ZXItYWxwaGEnLCdsb3dlci1sYXRpbicsJ3VwcGVyLWFscGhhJywndXBwZXItbGF0aW4nLCdoZWJyZXcnLCdrYXRha2FuYScsJ2hpcmFnYW5hLWlyb2hhJywna2F0YWthbmEtb3JvaGEnLCdub25lJ10sbWFyZ2luOls0LGNzc01hcmdpbl0sJ21hcmdpbi1ib3R0b20nOmNzc01hcmdpbiwnbWFyZ2luLWxlZnQnOmNzc01hcmdpbiwnbWFyZ2luLXJpZ2h0Jzpjc3NNYXJnaW4sJ21hcmdpbi10b3AnOmNzc01hcmdpbiwnbWFya2VyLW9mZnNldCc6W2Nzc0xlbmd0aCwnYXV0byddLCdtYXgtaGVpZ2h0JzpbY3NzTGVuZ3RoLCdub25lJ10sJ21heC13aWR0aCc6W2Nzc0xlbmd0aCwnbm9uZSddLCdtaW4taGVpZ2h0Jzpjc3NMZW5ndGgsJ21pbi13aWR0aCc6Y3NzTGVuZ3RoLG9wYWNpdHk6Y3NzTnVtYmVyLG91dGxpbmU6W3RydWUsJ291dGxpbmUtY29sb3InLCdvdXRsaW5lLXN0eWxlJywnb3V0bGluZS13aWR0aCddLCdvdXRsaW5lLWNvbG9yJzpbJ2ludmVydCcsY3NzQ29sb3JdLCdvdXRsaW5lLXN0eWxlJzpbJ2Rhc2hlZCcsJ2RvdHRlZCcsJ2RvdWJsZScsJ2dyb292ZScsJ2luc2V0Jywnbm9uZScsJ291dHNldCcsJ3JpZGdlJywnc29saWQnXSwnb3V0bGluZS13aWR0aCc6Y3NzV2lkdGgsb3ZlcmZsb3c6Y3NzT3ZlcmZsb3csJ292ZXJmbG93LXgnOmNzc092ZXJmbG93LCdvdmVyZmxvdy15Jzpjc3NPdmVyZmxvdyxwYWRkaW5nOls0LGNzc0xlbmd0aF0sJ3BhZGRpbmctYm90dG9tJzpjc3NMZW5ndGgsJ3BhZGRpbmctbGVmdCc6Y3NzTGVuZ3RoLCdwYWRkaW5nLXJpZ2h0Jzpjc3NMZW5ndGgsJ3BhZGRpbmctdG9wJzpjc3NMZW5ndGgsJ3BhZ2UtYnJlYWstYWZ0ZXInOmNzc0JyZWFrLCdwYWdlLWJyZWFrLWJlZm9yZSc6Y3NzQnJlYWsscG9zaXRpb246WydhYnNvbHV0ZScsJ2ZpeGVkJywncmVsYXRpdmUnLCdzdGF0aWMnXSxxdW90ZXM6WzgsY3NzU3RyaW5nXSxyaWdodDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ3RhYmxlLWxheW91dCc6WydhdXRvJywnZml4ZWQnXSwndGV4dC1hbGlnbic6WydjZW50ZXInLCdqdXN0aWZ5JywnbGVmdCcsJ3JpZ2h0J10sJ3RleHQtZGVjb3JhdGlvbic6Wydub25lJywndW5kZXJsaW5lJywnb3ZlcmxpbmUnLCdsaW5lLXRocm91Z2gnLCdibGluayddLCd0ZXh0LWluZGVudCc6Y3NzTGVuZ3RoLCd0ZXh0LXNoYWRvdyc6Wydub25lJyw0LFtjc3NDb2xvcixjc3NMZW5ndGhdXSwndGV4dC10cmFuc2Zvcm0nOlsnY2FwaXRhbGl6ZScsJ3VwcGVyY2FzZScsJ2xvd2VyY2FzZScsJ25vbmUnXSx0b3A6W2Nzc0xlbmd0aCwnYXV0byddLCd1bmljb2RlLWJpZGknOlsnbm9ybWFsJywnZW1iZWQnLCdiaWRpLW92ZXJyaWRlJ10sJ3ZlcnRpY2FsLWFsaWduJzpbJ2Jhc2VsaW5lJywnYm90dG9tJywnc3ViJywnc3VwZXInLCd0b3AnLCd0ZXh0LXRvcCcsJ21pZGRsZScsJ3RleHQtYm90dG9tJyxjc3NMZW5ndGhdLHZpc2liaWxpdHk6Wyd2aXNpYmxlJywnaGlkZGVuJywnY29sbGFwc2UnXSwnd2hpdGUtc3BhY2UnOlsnbm9ybWFsJywnbm93cmFwJywncHJlJywncHJlLWxpbmUnLCdwcmUtd3JhcCcsJ2luaGVyaXQnXSx3aWR0aDpbY3NzTGVuZ3RoLCdhdXRvJ10sJ3dvcmQtc3BhY2luZyc6Wydub3JtYWwnLGNzc0xlbmd0aF0sJ3dvcmQtd3JhcCc6WydicmVhay13b3JkJywnbm9ybWFsJ10sJ3otaW5kZXgnOlsnYXV0bycsY3NzTnVtYmVyXX07ZnVuY3Rpb24gc3R5bGVBdHRyaWJ1dGUoKXt2YXIgdjt3aGlsZShuZXh0dG9rZW4uaWQ9PT0nKid8fG5leHR0b2tlbi5pZD09PScjJ3x8bmV4dHRva2VuLnZhbHVlPT09J18nKXtpZighb3B0aW9uLmNzcyl7d2FybmluZygiVW5leHBlY3RlZCAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KaWYobmV4dHRva2VuLmlkPT09Jy0nKXtpZighb3B0aW9uLmNzcyl7d2FybmluZygiVW5leHBlY3RlZCAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgnLScpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBub24tc3RhbmRhcmQgc3R5bGUgYXR0cmlidXRlIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3JldHVybiBjc3NBbnk7fWVsc2V7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeGNlcHRlZCBhIHN0eWxlIGF0dHJpYnV0ZSwgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fWVsc2V7aWYoaXNfb3duKGNzc0F0dHJpYnV0ZURhdGEsbmV4dHRva2VuLnZhbHVlKSl7dj1jc3NBdHRyaWJ1dGVEYXRhW25leHR0b2tlbi52YWx1ZV07fWVsc2V7dj1jc3NBbnk7aWYoIW9wdGlvbi5jc3Mpe3dhcm5pbmcoIlVucmVjb2duaXplZCBzdHlsZSBhdHRyaWJ1dGUgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9fX0KYWR2YW5jZSgpO3JldHVybiB2O319CmZ1bmN0aW9uIHN0eWxlVmFsdWUodil7dmFyIGk9MCxuLG9uY2UsbWF0Y2gscm91bmQsc3RhcnQ9MCx2aTtzd2l0Y2godHlwZW9mIHYpe2Nhc2UnZnVuY3Rpb24nOnJldHVybiB2KCk7Y2FzZSdzdHJpbmcnOmlmKG5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4udmFsdWU9PT12KXthZHZhbmNlKCk7cmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fQpmb3IoOzspe2lmKGk+PXYubGVuZ3RoKXtyZXR1cm4gZmFsc2U7fQp2aT12W2ldO2krPTE7aWYodmk9PT10cnVlKXticmVhazt9ZWxzZSBpZih0eXBlb2Ygdmk9PT0nbnVtYmVyJyl7bj12aTt2aT12W2ldO2krPTE7fWVsc2V7bj0xO30KbWF0Y2g9ZmFsc2U7d2hpbGUobj4wKXtpZihzdHlsZVZhbHVlKHZpKSl7bWF0Y2g9dHJ1ZTtuLT0xO31lbHNle2JyZWFrO319CmlmKG1hdGNoKXtyZXR1cm4gdHJ1ZTt9fQpzdGFydD1pO29uY2U9W107Zm9yKDs7KXtyb3VuZD1mYWxzZTtmb3IoaT1zdGFydDtpPHYubGVuZ3RoO2krPTEpe2lmKCFvbmNlW2ldKXtpZihzdHlsZVZhbHVlKGNzc0F0dHJpYnV0ZURhdGFbdltpXV0pKXttYXRjaD10cnVlO3JvdW5kPXRydWU7b25jZVtpXT10cnVlO2JyZWFrO319fQppZighcm91bmQpe3JldHVybiBtYXRjaDt9fX0KZnVuY3Rpb24gc3R5bGVDaGlsZCgpe2lmKG5leHR0b2tlbi5pZD09PScobnVtYmVyKScpe2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udmFsdWU9PT0nbicmJm5leHR0b2tlbi5pZGVudGlmaWVyKXthZGphY2VudCgpO2FkdmFuY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nKycpe2FkamFjZW50KCk7YWR2YW5jZSgnKycpO2FkamFjZW50KCk7YWR2YW5jZSgnKG51bWJlciknKTt9fQpyZXR1cm47fWVsc2V7c3dpdGNoKG5leHR0b2tlbi52YWx1ZSl7Y2FzZSdvZGQnOmNhc2UnZXZlbic6aWYobmV4dHRva2VuLmlkZW50aWZpZXIpe2FkdmFuY2UoKTtyZXR1cm47fX19Cndhcm5pbmcoIlVuZXhwZWN0ZWQgdG9rZW4gJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmZ1bmN0aW9uIHN1YnN0eWxlKCl7dmFyIHY7Zm9yKDs7KXtpZihuZXh0dG9rZW4uaWQ9PT0nfSd8fG5leHR0b2tlbi5pZD09PScoZW5kKSd8fHhxdW90ZSYmbmV4dHRva2VuLmlkPT09eHF1b3RlKXtyZXR1cm47fQp3aGlsZShuZXh0dG9rZW4uaWQ9PT0nOycpe3dhcm5pbmcoIk1pc3BsYWNlZCAnOycuIik7YWR2YW5jZSgnOycpO30Kdj1zdHlsZUF0dHJpYnV0ZSgpO2FkdmFuY2UoJzonKTtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2luaGVyaXQnKXthZHZhbmNlKCk7fWVsc2V7aWYoIXN0eWxlVmFsdWUodikpe3dhcm5pbmcoIlVuZXhwZWN0ZWQgdG9rZW4gJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7fX0KaWYobmV4dHRva2VuLmlkPT09JyEnKXthZHZhbmNlKCchJyk7YWRqYWNlbnQoKTtpZihuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlPT09J2ltcG9ydGFudCcpe2FkdmFuY2UoKTt9ZWxzZXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ2ltcG9ydGFudCcsbmV4dHRva2VuLnZhbHVlKTt9fQppZihuZXh0dG9rZW4uaWQ9PT0nfSd8fG5leHR0b2tlbi5pZD09PXhxdW90ZSl7d2FybmluZygiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnOycpO31lbHNle2FkdmFuY2UoJzsnKTt9fX0KZnVuY3Rpb24gc3R5bGVTZWxlY3Rvcigpe2lmKG5leHR0b2tlbi5pZGVudGlmaWVyKXtpZighaXNfb3duKGh0bWx0YWcsbmV4dHRva2VuLnZhbHVlKSl7d2FybmluZygiRXhwZWN0ZWQgYSB0YWdOYW1lLCBhbmQgaW5zdGVhZCBzYXcge2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fWVsc2V7c3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSc+JzpjYXNlJysnOmFkdmFuY2UoKTtzdHlsZVNlbGVjdG9yKCk7YnJlYWs7Y2FzZSc6JzphZHZhbmNlKCc6Jyk7c3dpdGNoKG5leHR0b2tlbi52YWx1ZSl7Y2FzZSdhY3RpdmUnOmNhc2UnYWZ0ZXInOmNhc2UnYmVmb3JlJzpjYXNlJ2NoZWNrZWQnOmNhc2UnZGlzYWJsZWQnOmNhc2UnZW1wdHknOmNhc2UnZW5hYmxlZCc6Y2FzZSdmaXJzdC1jaGlsZCc6Y2FzZSdmaXJzdC1sZXR0ZXInOmNhc2UnZmlyc3QtbGluZSc6Y2FzZSdmaXJzdC1vZi10eXBlJzpjYXNlJ2ZvY3VzJzpjYXNlJ2hvdmVyJzpjYXNlJ2xhc3Qtb2YtdHlwZSc6Y2FzZSdsaW5rJzpjYXNlJ29ubHktb2YtdHlwZSc6Y2FzZSdyb290JzpjYXNlJ3RhcmdldCc6Y2FzZSd2aXNpdGVkJzphZHZhbmNlKCk7YnJlYWs7Y2FzZSdsYW5nJzphZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYSBsYW5nIGNvZGUsIGFuZCBpbnN0ZWFkIHNhdyA6e2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCcpJyk7YnJlYWs7Y2FzZSdudGgtY2hpbGQnOmNhc2UnbnRoLWxhc3QtY2hpbGQnOmNhc2UnbnRoLWxhc3Qtb2YtdHlwZSc6Y2FzZSdudGgtb2YtdHlwZSc6YWR2YW5jZSgpO2FkdmFuY2UoJygnKTtzdHlsZUNoaWxkKCk7YWR2YW5jZSgnKScpO2JyZWFrO2Nhc2Unbm90JzphZHZhbmNlKCk7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi5pZD09PSc6JyYmcGVlaygwKS52YWx1ZT09PSdub3QnKXt3YXJuaW5nKCJOZXN0ZWQgbm90LiIpO30Kc3R5bGVTZWxlY3RvcigpO2FkdmFuY2UoJyknKTticmVhaztkZWZhdWx0Ondhcm5pbmcoIkV4cGVjdGVkIGEgcHNldWRvLCBhbmQgaW5zdGVhZCBzYXcgOnthfS4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYnJlYWs7Y2FzZScjJzphZHZhbmNlKCcjJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZCwgYW5kIGluc3RlYWQgc2F3ICN7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTticmVhaztjYXNlJyonOmFkdmFuY2UoJyonKTticmVhaztjYXNlJy4nOmFkdmFuY2UoJy4nKTtpZighbmV4dHRva2VuLmlkZW50aWZpZXIpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY2xhc3MsIGFuZCBpbnN0ZWFkIHNhdyAjLnthfS4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO2JyZWFrO2Nhc2UnWyc6YWR2YW5jZSgnWycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiRXhwZWN0ZWQgYW4gYXR0cmlidXRlLCBhbmQgaW5zdGVhZCBzYXcgW3thfV0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmFkdmFuY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nPSd8fG5leHR0b2tlbi52YWx1ZT09PSd+PSd8fG5leHR0b2tlbi52YWx1ZT09PSckPSd8fG5leHR0b2tlbi52YWx1ZT09PSd8PSd8fG5leHR0b2tlbi5pZD09PScqPSd8fG5leHR0b2tlbi5pZD09PSdePScpe2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udHlwZSE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nLCBhbmQgaW5zdGVhZCBzYXcge2F9LiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fQphZHZhbmNlKCk7fQphZHZhbmNlKCddJyk7YnJlYWs7ZGVmYXVsdDplcnJvcigiRXhwZWN0ZWQgYSBDU1Mgc2VsZWN0b3IsIGFuZCBpbnN0ZWFkIHNhdyB7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9fX0KZnVuY3Rpb24gc3R5bGVQYXR0ZXJuKCl7dmFyIG5hbWU7aWYobmV4dHRva2VuLmlkPT09J3snKXt3YXJuaW5nKCJFeHBlY3RlZCBhIHN0eWxlIHBhdHRlcm4sIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4uaWQpO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PSdAJyl7YWR2YW5jZSgnQCcpO25hbWU9bmV4dHRva2VuLnZhbHVlO2lmKG5leHR0b2tlbi5pZGVudGlmaWVyJiZhdHJ1bGVbbmFtZV09PT10cnVlKXthZHZhbmNlKCk7cmV0dXJuIG5hbWU7fQp3YXJuaW5nKCJFeHBlY3RlZCBhbiBhdC1ydWxlLCBhbmQgaW5zdGVhZCBzYXcgQHthfS4iLG5leHR0b2tlbixuYW1lKTt9CmZvcig7Oyl7c3R5bGVTZWxlY3RvcigpO2lmKG5leHR0b2tlbi5pZD09PSc8Lyd8fG5leHR0b2tlbi5pZD09PSd7J3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJyl7cmV0dXJuJyc7fQppZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2NvbW1hKCk7fX19CmZ1bmN0aW9uIHN0eWxlcygpe3ZhciBpO3doaWxlKG5leHR0b2tlbi5pZD09PSdAJyl7aT1wZWVrKCk7aWYoaS5pZGVudGlmaWVyJiZpLnZhbHVlPT09J2ltcG9ydCcpe2FkdmFuY2UoJ0AnKTthZHZhbmNlKCk7aWYoIWNzc1VybCgpKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3VybCcsbmV4dHRva2VuLnZhbHVlKTthZHZhbmNlKCk7fQphZHZhbmNlKCc7Jyk7fWVsc2V7YnJlYWs7fX0Kd2hpbGUobmV4dHRva2VuLmlkIT09JzwvJyYmbmV4dHRva2VuLmlkIT09JyhlbmQpJyl7c3R5bGVQYXR0ZXJuKCk7eG1vZGU9J3N0eWxlcHJvcGVydHknO2lmKG5leHR0b2tlbi5pZD09PSc7Jyl7YWR2YW5jZSgnOycpO31lbHNle2FkdmFuY2UoJ3snKTtzdWJzdHlsZSgpO3htb2RlPSdzdHlsZSc7YWR2YW5jZSgnfScpO319fQpmdW5jdGlvbiBkb0JlZ2luKG4pe2lmKG4hPT0naHRtbCcmJiFvcHRpb24uZnJhZ21lbnQpe2lmKG49PT0nZGl2JyYmb3B0aW9uLmFkc2FmZSl7ZXJyb3IoIkFEU0FGRTogVXNlIHRoZSBmcmFnbWVudCBvcHRpb24uIik7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHRva2VuLCdodG1sJyxuKTt9fQppZihvcHRpb24uYWRzYWZlKXtpZihuPT09J2h0bWwnKXtlcnJvcigiQ3VycmVudGx5LCBBRHNhZmUgZG9lcyBub3Qgb3BlcmF0ZSBvbiB3aG9sZSBIVE1MIGRvY3VtZW50cy4gSXQgb3BlcmF0ZXMgb24gPGRpdj4gZnJhZ21lbnRzIGFuZCAuanMgZmlsZXMuIix0b2tlbik7fQppZihvcHRpb24uZnJhZ21lbnQpe2lmKG4hPT0nZGl2Jyl7ZXJyb3IoIkFEc2FmZSB2aW9sYXRpb246IFdyYXAgdGhlIHdpZGdldCBpbiBhIGRpdi4iLHRva2VuKTt9fWVsc2V7ZXJyb3IoIlVzZSB0aGUgZnJhZ21lbnQgb3B0aW9uLiIsdG9rZW4pO319Cm9wdGlvbi5icm93c2VyPXRydWU7YXNzdW1lKCk7fQpmdW5jdGlvbiBkb0F0dHJpYnV0ZShuLGEsdil7dmFyIHUseDtpZihhPT09J2lkJyl7dT10eXBlb2Ygdj09PSdzdHJpbmcnP3YudG9VcHBlckNhc2UoKTonJztpZihpZHNbdV09PT10cnVlKXt3YXJuaW5nKCJEdXBsaWNhdGUgaWQ9J3thfScuIixuZXh0dG9rZW4sdik7fQppZihvcHRpb24uYWRzYWZlKXtpZihhZHNhZmVfaWQpe2lmKHYuc2xpY2UoMCxhZHNhZmVfaWQubGVuZ3RoKSE9PWFkc2FmZV9pZCl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogQW4gaWQgbXVzdCBoYXZlIGEgJ3thfScgcHJlZml4IixuZXh0dG9rZW4sYWRzYWZlX2lkKTt9ZWxzZSBpZighL15bQS1aXStfW0EtWl0rJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319ZWxzZXthZHNhZmVfaWQ9djtpZighL15bQS1aXStfJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319fQp4PXYuc2VhcmNoKGR4KTtpZih4Pj0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNoYXJhY3RlciAne2F9JyBpbiB7Yn0uIix0b2tlbix2LmNoYXJBdCh4KSxhKTt9Cmlkc1t1XT10cnVlO31lbHNlIGlmKGE9PT0nY2xhc3MnfHxhPT09J3R5cGUnfHxhPT09J25hbWUnKXt4PXYuc2VhcmNoKHF4KTtpZih4Pj0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNoYXJhY3RlciAne2F9JyBpbiB7Yn0uIix0b2tlbix2LmNoYXJBdCh4KSxhKTt9Cmlkc1t1XT10cnVlO31lbHNlIGlmKGE9PT0naHJlZid8fGE9PT0nYmFja2dyb3VuZCd8fGE9PT0nY29udGVudCd8fGE9PT0nZGF0YSd8fGEuaW5kZXhPZignc3JjJyk+PTB8fGEuaW5kZXhPZigndXJsJyk+PTApe2lmKG9wdGlvbi5zYWZlJiZ1eC50ZXN0KHYpKXtlcnJvcigiQURzYWZlIFVSTCB2aW9sYXRpb24uIik7fQp1cmxzLnB1c2godik7fWVsc2UgaWYoYT09PSdmb3InKXtpZihvcHRpb24uYWRzYWZlKXtpZihhZHNhZmVfaWQpe2lmKHYuc2xpY2UoMCxhZHNhZmVfaWQubGVuZ3RoKSE9PWFkc2FmZV9pZCl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogQW4gaWQgbXVzdCBoYXZlIGEgJ3thfScgcHJlZml4IixuZXh0dG9rZW4sYWRzYWZlX2lkKTt9ZWxzZSBpZighL15bQS1aXStfW0EtWl0rJC8udGVzdCh2KSl7d2FybmluZygiQURTQUZFIHZpb2xhdGlvbjogYmFkIGlkLiIpO319ZWxzZXt3YXJuaW5nKCJBRFNBRkUgdmlvbGF0aW9uOiBiYWQgaWQuIik7fX19ZWxzZSBpZihhPT09J25hbWUnKXtpZihvcHRpb24uYWRzYWZlJiZ2LmluZGV4T2YoJ18nKT49MCl7d2FybmluZygiQURzYWZlIG5hbWUgdmlvbGF0aW9uLiIpO319fQpmdW5jdGlvbiBkb1RhZyhuLGEpe3ZhciBpLHQ9aHRtbHRhZ1tuXSx4O3NyYz1mYWxzZTtpZighdCl7ZXJyb3IoIlVucmVjb2duaXplZCB0YWcgJzx7YX0+Jy4iLG5leHR0b2tlbixuPT09bi50b0xvd2VyQ2FzZSgpP246bisnIChjYXBpdGFsaXphdGlvbiBlcnJvciknKTt9CmlmKHN0YWNrLmxlbmd0aD4wKXtpZihuPT09J2h0bWwnKXtlcnJvcigiVG9vIG1hbnkgPGh0bWw+IHRhZ3MuIix0b2tlbik7fQp4PXQucGFyZW50O2lmKHgpe2lmKHguaW5kZXhPZignICcrc3RhY2tbc3RhY2subGVuZ3RoLTFdLm5hbWUrJyAnKTwwKXtlcnJvcigiQSAnPHthfT4nIG11c3QgYmUgd2l0aGluICc8e2J9PicuIix0b2tlbixuLHgpO319ZWxzZSBpZighb3B0aW9uLmFkc2FmZSYmIW9wdGlvbi5mcmFnbWVudCl7aT1zdGFjay5sZW5ndGg7ZG97aWYoaTw9MCl7ZXJyb3IoIkEgJzx7YX0+JyBtdXN0IGJlIHdpdGhpbiAnPHtifT4nLiIsdG9rZW4sbiwnYm9keScpO30KaS09MTt9d2hpbGUoc3RhY2tbaV0ubmFtZSE9PSdib2R5Jyk7fX0Kc3dpdGNoKG4pe2Nhc2UnZGl2JzppZihvcHRpb24uYWRzYWZlJiZzdGFjay5sZW5ndGg9PT0xJiYhYWRzYWZlX2lkKXt3YXJuaW5nKCJBRFNBRkUgdmlvbGF0aW9uOiBtaXNzaW5nIElEXy4iKTt9CmJyZWFrO2Nhc2Unc2NyaXB0Jzp4bW9kZT0nc2NyaXB0JzthZHZhbmNlKCc+Jyk7aW5kZW50PW5leHR0b2tlbi5mcm9tO2lmKGEubGFuZyl7d2FybmluZygibGFuZyBpcyBkZXByZWNhdGVkLiIsdG9rZW4pO30KaWYob3B0aW9uLmFkc2FmZSYmc3RhY2subGVuZ3RoIT09MSl7d2FybmluZygiQURzYWZlIHNjcmlwdCBwbGFjZW1lbnQgdmlvbGF0aW9uLiIsdG9rZW4pO30KaWYoYS5zcmMpe2lmKG9wdGlvbi5hZHNhZmUmJighYWRzYWZlX21heXx8IWFwcHJvdmVkW2Euc3JjXSkpe3dhcm5pbmcoIkFEc2FmZSB1bmFwcHJvdmVkIHNjcmlwdCBzb3VyY2UuIix0b2tlbik7fQppZihhLnR5cGUpe3dhcm5pbmcoInR5cGUgaXMgdW5uZWNlc3NhcnkuIix0b2tlbik7fX1lbHNle2lmKGFkc2FmZV93ZW50KXtlcnJvcigiQURzYWZlIHNjcmlwdCB2aW9sYXRpb24uIix0b2tlbik7fQpzdGF0ZW1lbnRzKCdzY3JpcHQnKTt9Cnhtb2RlPSdodG1sJzthZHZhbmNlKCc8LycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllciYmbmV4dHRva2VuLnZhbHVlIT09J3NjcmlwdCcpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnc2NyaXB0JyxuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3htb2RlPSdvdXRlcic7YnJlYWs7Y2FzZSdzdHlsZSc6eG1vZGU9J3N0eWxlJzthZHZhbmNlKCc+Jyk7c3R5bGVzKCk7eG1vZGU9J2h0bWwnO2FkdmFuY2UoJzwvJyk7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4udmFsdWUhPT0nc3R5bGUnKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ3N0eWxlJyxuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO3htb2RlPSdvdXRlcic7YnJlYWs7Y2FzZSdpbnB1dCc6c3dpdGNoKGEudHlwZSl7Y2FzZSdyYWRpbyc6Y2FzZSdjaGVja2JveCc6Y2FzZSdidXR0b24nOmNhc2UncmVzZXQnOmNhc2Unc3VibWl0JzpicmVhaztjYXNlJ3RleHQnOmNhc2UnZmlsZSc6Y2FzZSdwYXNzd29yZCc6Y2FzZSdmaWxlJzpjYXNlJ2hpZGRlbic6Y2FzZSdpbWFnZSc6aWYob3B0aW9uLmFkc2FmZSYmYS5hdXRvY29tcGxldGUhPT0nb2ZmJyl7d2FybmluZygiQURzYWZlIGF1dG9jb21wbGV0ZSB2aW9sYXRpb24uIik7fQpicmVhaztkZWZhdWx0Ondhcm5pbmcoIkJhZCBpbnB1dCB0eXBlLiIpO30KYnJlYWs7Y2FzZSdhcHBsZXQnOmNhc2UnYm9keSc6Y2FzZSdlbWJlZCc6Y2FzZSdmcmFtZSc6Y2FzZSdmcmFtZXNldCc6Y2FzZSdoZWFkJzpjYXNlJ2lmcmFtZSc6Y2FzZSdub2VtYmVkJzpjYXNlJ25vZnJhbWVzJzpjYXNlJ29iamVjdCc6Y2FzZSdwYXJhbSc6aWYob3B0aW9uLmFkc2FmZSl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbjogRGlzYWxsb3dlZCB0YWc6ICIrbik7fQpicmVhazt9fQpmdW5jdGlvbiBjbG9zZXRhZyhuKXtyZXR1cm4nPC8nK24rJz4nO30KZnVuY3Rpb24gaHRtbCgpe3ZhciBhLGF0dHJpYnV0ZXMsZSxuLHEsdCx2LHc9b3B0aW9uLndoaXRlLHdtb2RlO3htb2RlPSdodG1sJzt4cXVvdGU9Jyc7c3RhY2s9bnVsbDtmb3IoOzspe3N3aXRjaChuZXh0dG9rZW4udmFsdWUpe2Nhc2UnPCc6eG1vZGU9J2h0bWwnO2FkdmFuY2UoJzwnKTthdHRyaWJ1dGVzPXt9O3Q9bmV4dHRva2VuO2lmKCF0LmlkZW50aWZpZXIpe3dhcm5pbmcoIkJhZCBpZGVudGlmaWVyIHthfS4iLHQsdC52YWx1ZSk7fQpuPXQudmFsdWU7aWYob3B0aW9uLmNhcCl7bj1uLnRvTG93ZXJDYXNlKCk7fQp0Lm5hbWU9bjthZHZhbmNlKCk7aWYoIXN0YWNrKXtzdGFjaz1bXTtkb0JlZ2luKG4pO30Kdj1odG1sdGFnW25dO2lmKHR5cGVvZiB2IT09J29iamVjdCcpe2Vycm9yKCJVbnJlY29nbml6ZWQgdGFnICc8e2F9PicuIix0LG4pO30KZT12LmVtcHR5O3QudHlwZT1uO2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09Jy8nKXthZHZhbmNlKCcvJyk7aWYobmV4dHRva2VuLmlkIT09Jz4nKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJz4nLG5leHR0b2tlbi52YWx1ZSk7fQpicmVhazt9CmlmKG5leHR0b2tlbi5pZCYmbmV4dHRva2VuLmlkLnN1YnN0cigwLDEpPT09Jz4nKXticmVhazt9CmlmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7aWYobmV4dHRva2VuLmlkPT09JyhlbmQpJ3x8bmV4dHRva2VuLmlkPT09JyhlcnJvciknKXtlcnJvcigiTWlzc2luZyAnPicuIixuZXh0dG9rZW4pO30Kd2FybmluZygiQmFkIGlkZW50aWZpZXIuIik7fQpvcHRpb24ud2hpdGU9dHJ1ZTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2E9bmV4dHRva2VuLnZhbHVlO29wdGlvbi53aGl0ZT13O2FkdmFuY2UoKTtpZighb3B0aW9uLmNhcCYmYSE9PWEudG9Mb3dlckNhc2UoKSl7d2FybmluZygiQXR0cmlidXRlICd7YX0nIG5vdCBhbGwgbG93ZXIgY2FzZS4iLG5leHR0b2tlbixhKTt9CmE9YS50b0xvd2VyQ2FzZSgpO3hxdW90ZT0nJztpZihpc19vd24oYXR0cmlidXRlcyxhKSl7d2FybmluZygiQXR0cmlidXRlICd7YX0nIHJlcGVhdGVkLiIsbmV4dHRva2VuLGEpO30KaWYoYS5zbGljZSgwLDIpPT09J29uJyl7aWYoIW9wdGlvbi5vbil7d2FybmluZygiQXZvaWQgSFRNTCBldmVudCBoYW5kbGVycy4iKTt9Cnhtb2RlPSdzY3JpcHRzdHJpbmcnO2FkdmFuY2UoJz0nKTtxPW5leHR0b2tlbi5pZDtpZihxIT09JyInJiZxIT09IiciKXtlcnJvcigiTWlzc2luZyBxdW90ZS4iKTt9CnhxdW90ZT1xO3dtb2RlPW9wdGlvbi53aGl0ZTtvcHRpb24ud2hpdGU9ZmFsc2U7YWR2YW5jZShxKTtzdGF0ZW1lbnRzKCdvbicpO29wdGlvbi53aGl0ZT13bW9kZTtpZihuZXh0dG9rZW4uaWQhPT1xKXtlcnJvcigiTWlzc2luZyBjbG9zZSBxdW90ZSBvbiBzY3JpcHQgYXR0cmlidXRlLiIpO30KeG1vZGU9J2h0bWwnO3hxdW90ZT0nJzthZHZhbmNlKHEpO3Y9ZmFsc2U7fWVsc2UgaWYoYT09PSdzdHlsZScpe3htb2RlPSdzY3JpcHRzdHJpbmcnO2FkdmFuY2UoJz0nKTtxPW5leHR0b2tlbi5pZDtpZihxIT09JyInJiZxIT09IiciKXtlcnJvcigiTWlzc2luZyBxdW90ZS4iKTt9Cnhtb2RlPSdzdHlsZXByb3BlcnR5Jzt4cXVvdGU9cTthZHZhbmNlKHEpO3N1YnN0eWxlKCk7eG1vZGU9J2h0bWwnO3hxdW90ZT0nJzthZHZhbmNlKHEpO3Y9ZmFsc2U7fWVsc2V7aWYobmV4dHRva2VuLmlkPT09Jz0nKXthZHZhbmNlKCc9Jyk7dj1uZXh0dG9rZW4udmFsdWU7aWYoIW5leHR0b2tlbi5pZGVudGlmaWVyJiZuZXh0dG9rZW4uaWQhPT0nIicmJm5leHR0b2tlbi5pZCE9PSdcJycmJm5leHR0b2tlbi50eXBlIT09JyhzdHJpbmcpJyYmbmV4dHRva2VuLnR5cGUhPT0nKG51bWJlciknJiZuZXh0dG9rZW4udHlwZSE9PScoY29sb3IpJyl7d2FybmluZygiRXhwZWN0ZWQgYW4gYXR0cmlidXRlIHZhbHVlIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLHRva2VuLGEpO30KYWR2YW5jZSgpO31lbHNle3Y9dHJ1ZTt9fQphdHRyaWJ1dGVzW2FdPXY7ZG9BdHRyaWJ1dGUobixhLHYpO30KZG9UYWcobixhdHRyaWJ1dGVzKTtpZighZSl7c3RhY2sucHVzaCh0KTt9Cnhtb2RlPSdvdXRlcic7YWR2YW5jZSgnPicpO2JyZWFrO2Nhc2UnPC8nOnhtb2RlPSdodG1sJzthZHZhbmNlKCc8LycpO2lmKCFuZXh0dG9rZW4uaWRlbnRpZmllcil7d2FybmluZygiQmFkIGlkZW50aWZpZXIuIik7fQpuPW5leHR0b2tlbi52YWx1ZTtpZihvcHRpb24uY2FwKXtuPW4udG9Mb3dlckNhc2UoKTt9CmFkdmFuY2UoKTtpZighc3RhY2spe2Vycm9yKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLGNsb3NldGFnKG4pKTt9CnQ9c3RhY2sucG9wKCk7aWYoIXQpe2Vycm9yKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLGNsb3NldGFnKG4pKTt9CmlmKHQubmFtZSE9PW4pe2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sY2xvc2V0YWcodC5uYW1lKSxjbG9zZXRhZyhuKSk7fQppZihuZXh0dG9rZW4uaWQhPT0nPicpe2Vycm9yKCJNaXNzaW5nICd7YX0nLiIsbmV4dHRva2VuLCc+Jyk7fQp4bW9kZT0nb3V0ZXInO2FkdmFuY2UoJz4nKTticmVhaztjYXNlJzwhJzppZihvcHRpb24uc2FmZSl7d2FybmluZygiQURzYWZlIEhUTUwgdmlvbGF0aW9uLiIpO30KeG1vZGU9J2h0bWwnO2Zvcig7Oyl7YWR2YW5jZSgpO2lmKG5leHR0b2tlbi5pZD09PSc+J3x8bmV4dHRva2VuLmlkPT09JyhlbmQpJyl7YnJlYWs7fQppZihuZXh0dG9rZW4udmFsdWUuaW5kZXhPZignLS0nKT49MCl7d2FybmluZygiVW5leHBlY3RlZCAtLS4iKTt9CmlmKG5leHR0b2tlbi52YWx1ZS5pbmRleE9mKCc8Jyk+PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgPC4iKTt9CmlmKG5leHR0b2tlbi52YWx1ZS5pbmRleE9mKCc+Jyk+PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgPi4iKTt9fQp4bW9kZT0nb3V0ZXInO2FkdmFuY2UoJz4nKTticmVhaztjYXNlJyhlbmQpJzpyZXR1cm47ZGVmYXVsdDppZihuZXh0dG9rZW4uaWQ9PT0nKGVuZCknKXtlcnJvcigiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnPC8nK3N0YWNrW3N0YWNrLmxlbmd0aC0xXS52YWx1ZSsnPicpO31lbHNle2FkdmFuY2UoKTt9fQppZihzdGFjayYmc3RhY2subGVuZ3RoPT09MCYmKG9wdGlvbi5hZHNhZmV8fCFvcHRpb24uZnJhZ21lbnR8fG5leHR0b2tlbi5pZD09PScoZW5kKScpKXticmVhazt9fQppZihuZXh0dG9rZW4uaWQhPT0nKGVuZCknKXtlcnJvcigiVW5leHBlY3RlZCBtYXRlcmlhbCBhZnRlciB0aGUgZW5kLiIpO319CnR5cGUoJyhudW1iZXIpJyxpZFZhbHVlKTt0eXBlKCcoc3RyaW5nKScsaWRWYWx1ZSk7c3ludGF4WycoaWRlbnRpZmllciknXT17dHlwZTonKGlkZW50aWZpZXIpJyxsYnA6MCxpZGVudGlmaWVyOnRydWUsbnVkOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy52YWx1ZSxzPXNjb3BlW3ZdLGY7aWYodHlwZW9mIHM9PT0nZnVuY3Rpb24nKXtzPXVuZGVmaW5lZDt9ZWxzZSBpZih0eXBlb2Ygcz09PSdib29sZWFuJyl7Zj1mdW5jdDtmdW5jdD1mdW5jdGlvbnNbMF07YWRkbGFiZWwodiwndmFyJyk7cz1mdW5jdDtmdW5jdD1mO30KaWYoZnVuY3Q9PT1zKXtzd2l0Y2goZnVuY3Rbdl0pe2Nhc2UndW51c2VkJzpmdW5jdFt2XT0ndmFyJzticmVhaztjYXNlJ2xhYmVsJzp3YXJuaW5nKCIne2F9JyBpcyBhIHN0YXRlbWVudCBsYWJlbC4iLHRva2VuLHYpO2JyZWFrO319ZWxzZSBpZihmdW5jdFsnKGdsb2JhbCknXSl7aWYob3B0aW9uLnVuZGVmJiZwcmVkZWZpbmVkW3ZdIT09J2Jvb2xlYW4nKXt3YXJuaW5nKCIne2F9JyBpcyBub3QgZGVmaW5lZC4iLHRva2VuLHYpO30Kbm90ZV9pbXBsaWVkKHRva2VuKTt9ZWxzZXtzd2l0Y2goZnVuY3Rbdl0pe2Nhc2UnY2xvc3VyZSc6Y2FzZSdmdW5jdGlvbic6Y2FzZSd2YXInOmNhc2UndW51c2VkJzp3YXJuaW5nKCIne2F9JyB1c2VkIG91dCBvZiBzY29wZS4iLHRva2VuLHYpO2JyZWFrO2Nhc2UnbGFiZWwnOndhcm5pbmcoIid7YX0nIGlzIGEgc3RhdGVtZW50IGxhYmVsLiIsdG9rZW4sdik7YnJlYWs7Y2FzZSdvdXRlcic6Y2FzZSdnbG9iYWwnOmJyZWFrO2RlZmF1bHQ6aWYocz09PXRydWUpe2Z1bmN0W3ZdPXRydWU7fWVsc2UgaWYocz09PW51bGwpe3dhcm5pbmcoIid7YX0nIGlzIG5vdCBhbGxvd2VkLiIsdG9rZW4sdik7bm90ZV9pbXBsaWVkKHRva2VuKTt9ZWxzZSBpZih0eXBlb2YgcyE9PSdvYmplY3QnKXtpZihvcHRpb24udW5kZWYpe3dhcm5pbmcoIid7YX0nIGlzIG5vdCBkZWZpbmVkLiIsdG9rZW4sdik7fWVsc2V7ZnVuY3Rbdl09dHJ1ZTt9Cm5vdGVfaW1wbGllZCh0b2tlbik7fWVsc2V7c3dpdGNoKHNbdl0pe2Nhc2UnZnVuY3Rpb24nOmNhc2UndmFyJzpjYXNlJ3VudXNlZCc6c1t2XT0nY2xvc3VyZSc7ZnVuY3Rbdl09c1snKGdsb2JhbCknXT8nZ2xvYmFsJzonb3V0ZXInO2JyZWFrO2Nhc2UnY2xvc3VyZSc6Y2FzZSdwYXJhbWV0ZXInOmZ1bmN0W3ZdPXNbJyhnbG9iYWwpJ10/J2dsb2JhbCc6J291dGVyJzticmVhaztjYXNlJ2xhYmVsJzp3YXJuaW5nKCIne2F9JyBpcyBhIHN0YXRlbWVudCBsYWJlbC4iLHRva2VuLHYpO319fX0KcmV0dXJuIHRoaXM7fSxsZWQ6ZnVuY3Rpb24oKXtlcnJvcigiRXhwZWN0ZWQgYW4gb3BlcmF0b3IgYW5kIGluc3RlYWQgc2F3ICd7YX0nLiIsbmV4dHRva2VuLG5leHR0b2tlbi52YWx1ZSk7fX07dHlwZSgnKHJlZ2V4cCknLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM7fSk7ZGVsaW0oJyhlbmRsaW5lKScpO2RlbGltKCcoYmVnaW4pJyk7ZGVsaW0oJyhlbmQpJykucmVhY2g9dHJ1ZTtkZWxpbSgnPC8nKS5yZWFjaD10cnVlO2RlbGltKCc8IScpO2RlbGltKCc8IS0tJyk7ZGVsaW0oJy0tPicpO2RlbGltKCcoZXJyb3IpJykucmVhY2g9dHJ1ZTtkZWxpbSgnfScpLnJlYWNoPXRydWU7ZGVsaW0oJyknKTtkZWxpbSgnXScpO2RlbGltKCciJykucmVhY2g9dHJ1ZTtkZWxpbSgiJyIpLnJlYWNoPXRydWU7ZGVsaW0oJzsnKTtkZWxpbSgnOicpLnJlYWNoPXRydWU7ZGVsaW0oJywnKTtkZWxpbSgnIycpO2RlbGltKCdAJyk7cmVzZXJ2ZSgnZWxzZScpO3Jlc2VydmUoJ2Nhc2UnKS5yZWFjaD10cnVlO3Jlc2VydmUoJ2NhdGNoJyk7cmVzZXJ2ZSgnZGVmYXVsdCcpLnJlYWNoPXRydWU7cmVzZXJ2ZSgnZmluYWxseScpO3Jlc2VydmV2YXIoJ2FyZ3VtZW50cycpO3Jlc2VydmV2YXIoJ2V2YWwnKTtyZXNlcnZldmFyKCdmYWxzZScpO3Jlc2VydmV2YXIoJ0luZmluaXR5Jyk7cmVzZXJ2ZXZhcignTmFOJyk7cmVzZXJ2ZXZhcignbnVsbCcpO3Jlc2VydmV2YXIoJ3RoaXMnKTtyZXNlcnZldmFyKCd0cnVlJyk7cmVzZXJ2ZXZhcigndW5kZWZpbmVkJyk7YXNzaWdub3AoJz0nLCdhc3NpZ24nLDIwKTthc3NpZ25vcCgnKz0nLCdhc3NpZ25hZGQnLDIwKTthc3NpZ25vcCgnLT0nLCdhc3NpZ25zdWInLDIwKTthc3NpZ25vcCgnKj0nLCdhc3NpZ25tdWx0JywyMCk7YXNzaWdub3AoJy89JywnYXNzaWduZGl2JywyMCkubnVkPWZ1bmN0aW9uKCl7ZXJyb3IoIkEgcmVndWxhciBleHByZXNzaW9uIGxpdGVyYWwgY2FuIGJlIGNvbmZ1c2VkIHdpdGggJy89Jy4iKTt9O2Fzc2lnbm9wKCclPScsJ2Fzc2lnbm1vZCcsMjApO2JpdHdpc2Vhc3NpZ25vcCgnJj0nLCdhc3NpZ25iaXRhbmQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJ3w9JywnYXNzaWduYml0b3InLDIwKTtiaXR3aXNlYXNzaWdub3AoJ149JywnYXNzaWduYml0eG9yJywyMCk7Yml0d2lzZWFzc2lnbm9wKCc8PD0nLCdhc3NpZ25zaGlmdGxlZnQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJz4+PScsJ2Fzc2lnbnNoaWZ0cmlnaHQnLDIwKTtiaXR3aXNlYXNzaWdub3AoJz4+Pj0nLCdhc3NpZ25zaGlmdHJpZ2h0dW5zaWduZWQnLDIwKTtpbmZpeCgnPycsZnVuY3Rpb24obGVmdCx0aGF0KXt0aGF0LmxlZnQ9bGVmdDt0aGF0LnJpZ2h0PXBhcnNlKDEwKTthZHZhbmNlKCc6Jyk7dGhhdFsnZWxzZSddPXBhcnNlKDEwKTtyZXR1cm4gdGhhdDt9LDMwKTtpbmZpeCgnfHwnLCdvcicsNDApO2luZml4KCcmJicsJ2FuZCcsNTApO2JpdHdpc2UoJ3wnLCdiaXRvcicsNzApO2JpdHdpc2UoJ14nLCdiaXR4b3InLDgwKTtiaXR3aXNlKCcmJywnYml0YW5kJyw5MCk7cmVsYXRpb24oJz09JyxmdW5jdGlvbihsZWZ0LHJpZ2h0KXtpZihvcHRpb24uZXFlcWVxKXt3YXJuaW5nKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIix0aGlzLCc9PT0nLCc9PScpO31lbHNlIGlmKGlzUG9vclJlbGF0aW9uKGxlZnQpKXt3YXJuaW5nKCJVc2UgJ3thfScgdG8gY29tcGFyZSB3aXRoICd7Yn0nLiIsdGhpcywnPT09JyxsZWZ0LnZhbHVlKTt9ZWxzZSBpZihpc1Bvb3JSZWxhdGlvbihyaWdodCkpe3dhcm5pbmcoIlVzZSAne2F9JyB0byBjb21wYXJlIHdpdGggJ3tifScuIix0aGlzLCc9PT0nLHJpZ2h0LnZhbHVlKTt9CnJldHVybiB0aGlzO30pO3JlbGF0aW9uKCc9PT0nKTtyZWxhdGlvbignIT0nLGZ1bmN0aW9uKGxlZnQscmlnaHQpe2lmKG9wdGlvbi5lcWVxZXEpe3dhcm5pbmcoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLHRoaXMsJyE9PScsJyE9Jyk7fWVsc2UgaWYoaXNQb29yUmVsYXRpb24obGVmdCkpe3dhcm5pbmcoIlVzZSAne2F9JyB0byBjb21wYXJlIHdpdGggJ3tifScuIix0aGlzLCchPT0nLGxlZnQudmFsdWUpO31lbHNlIGlmKGlzUG9vclJlbGF0aW9uKHJpZ2h0KSl7d2FybmluZygiVXNlICd7YX0nIHRvIGNvbXBhcmUgd2l0aCAne2J9Jy4iLHRoaXMsJyE9PScscmlnaHQudmFsdWUpO30KcmV0dXJuIHRoaXM7fSk7cmVsYXRpb24oJyE9PScpO3JlbGF0aW9uKCc8Jyk7cmVsYXRpb24oJz4nKTtyZWxhdGlvbignPD0nKTtyZWxhdGlvbignPj0nKTtiaXR3aXNlKCc8PCcsJ3NoaWZ0bGVmdCcsMTIwKTtiaXR3aXNlKCc+PicsJ3NoaWZ0cmlnaHQnLDEyMCk7Yml0d2lzZSgnPj4+Jywnc2hpZnRyaWdodHVuc2lnbmVkJywxMjApO2luZml4KCdpbicsJ2luJywxMjApO2luZml4KCdpbnN0YW5jZW9mJywnaW5zdGFuY2VvZicsMTIwKTtpbmZpeCgnKycsZnVuY3Rpb24obGVmdCx0aGF0KXt2YXIgcmlnaHQ9cGFyc2UoMTMwKTtpZihsZWZ0JiZyaWdodCYmbGVmdC5pZD09PScoc3RyaW5nKScmJnJpZ2h0LmlkPT09JyhzdHJpbmcpJyl7bGVmdC52YWx1ZSs9cmlnaHQudmFsdWU7bGVmdC5jaGFyYWN0ZXI9cmlnaHQuY2hhcmFjdGVyO2lmKGp4LnRlc3QobGVmdC52YWx1ZSkpe3dhcm5pbmcoIkphdmFTY3JpcHQgVVJMLiIsbGVmdCk7fQpyZXR1cm4gbGVmdDt9CnRoYXQubGVmdD1sZWZ0O3RoYXQucmlnaHQ9cmlnaHQ7cmV0dXJuIHRoYXQ7fSwxMzApO3ByZWZpeCgnKycsJ251bScpO2luZml4KCctJywnc3ViJywxMzApO3ByZWZpeCgnLScsJ25lZycpO2luZml4KCcqJywnbXVsdCcsMTQwKTtpbmZpeCgnLycsJ2RpdicsMTQwKTtpbmZpeCgnJScsJ21vZCcsMTQwKTtzdWZmaXgoJysrJywncG9zdGluYycpO3ByZWZpeCgnKysnLCdwcmVpbmMnKTtzeW50YXhbJysrJ10uZXhwcz10cnVlO3N1ZmZpeCgnLS0nLCdwb3N0ZGVjJyk7cHJlZml4KCctLScsJ3ByZWRlYycpO3N5bnRheFsnLS0nXS5leHBzPXRydWU7cHJlZml4KCdkZWxldGUnLGZ1bmN0aW9uKCl7dmFyIHA9cGFyc2UoMCk7aWYoIXB8fChwLmlkIT09Jy4nJiZwLmlkIT09J1snKSl7d2FybmluZygiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbmV4dHRva2VuLCcuJyxuZXh0dG9rZW4udmFsdWUpO30KdGhpcy5maXJzdD1wO3JldHVybiB0aGlzO30pLmV4cHM9dHJ1ZTtwcmVmaXgoJ34nLGZ1bmN0aW9uKCl7aWYob3B0aW9uLmJpdHdpc2Upe3dhcm5pbmcoIlVuZXhwZWN0ZWQgJ3thfScuIix0aGlzLCd+Jyk7fQpwYXJzZSgxNTApO3JldHVybiB0aGlzO30pO3ByZWZpeCgnIScsZnVuY3Rpb24oKXt0aGlzLnJpZ2h0PXBhcnNlKDE1MCk7dGhpcy5hcml0eT0ndW5hcnknO2lmKGJhbmdbdGhpcy5yaWdodC5pZF09PT10cnVlKXt3YXJuaW5nKCJDb25mdXNpbmcgdXNlIG9mICd7YX0nLiIsdGhpcywnIScpO30KcmV0dXJuIHRoaXM7fSk7cHJlZml4KCd0eXBlb2YnLCd0eXBlb2YnKTtwcmVmaXgoJ25ldycsZnVuY3Rpb24oKXt2YXIgYz1wYXJzZSgxNTUpLGk7aWYoYyYmYy5pZCE9PSdmdW5jdGlvbicpe2lmKGMuaWRlbnRpZmllcil7Y1snbmV3J109dHJ1ZTtzd2l0Y2goYy52YWx1ZSl7Y2FzZSdPYmplY3QnOndhcm5pbmcoIlVzZSB0aGUgb2JqZWN0IGxpdGVyYWwgbm90YXRpb24ge30uIix0b2tlbik7YnJlYWs7Y2FzZSdBcnJheSc6aWYobmV4dHRva2VuLmlkIT09JygnKXt3YXJuaW5nKCJVc2UgdGhlIGFycmF5IGxpdGVyYWwgbm90YXRpb24gW10uIix0b2tlbik7fWVsc2V7YWR2YW5jZSgnKCcpO2lmKG5leHR0b2tlbi5pZD09PScpJyl7d2FybmluZygiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO31lbHNle2k9cGFyc2UoMCk7Yy5kaW1lbnNpb249aTtpZigoaS5pZD09PScobnVtYmVyKScmJi9bLitcLUVlXS8udGVzdChpLnZhbHVlKSl8fChpLmlkPT09Jy0nJiYhaS5yaWdodCl8fGkuaWQ9PT0nKHN0cmluZyknfHxpLmlkPT09J1snfHxpLmlkPT09J3snfHxpLmlkPT09J3RydWUnfHxpLmlkPT09J2ZhbHNlJ3x8aS5pZD09PSdudWxsJ3x8aS5pZD09PSd1bmRlZmluZWQnfHxpLmlkPT09J0luZmluaXR5Jyl7d2FybmluZygiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO30KaWYobmV4dHRva2VuLmlkIT09JyknKXtlcnJvcigiVXNlIHRoZSBhcnJheSBsaXRlcmFsIG5vdGF0aW9uIFtdLiIsdG9rZW4pO319CmFkdmFuY2UoJyknKTt9CnRoaXMuZmlyc3Q9YztyZXR1cm4gdGhpcztjYXNlJ051bWJlcic6Y2FzZSdTdHJpbmcnOmNhc2UnQm9vbGVhbic6Y2FzZSdNYXRoJzpjYXNlJ0pTT04nOndhcm5pbmcoIkRvIG5vdCB1c2Uge2F9IGFzIGEgY29uc3RydWN0b3IuIix0b2tlbixjLnZhbHVlKTticmVhaztjYXNlJ0Z1bmN0aW9uJzppZighb3B0aW9uLmV2aWwpe3dhcm5pbmcoIlRoZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBldmFsLiIpO30KYnJlYWs7Y2FzZSdEYXRlJzpjYXNlJ1JlZ0V4cCc6YnJlYWs7ZGVmYXVsdDppZihjLmlkIT09J2Z1bmN0aW9uJyl7aT1jLnZhbHVlLnN1YnN0cigwLDEpO2lmKG9wdGlvbi5uZXdjYXAmJihpPCdBJ3x8aT4nWicpKXt3YXJuaW5nKCJBIGNvbnN0cnVjdG9yIG5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGxldHRlci4iLHRva2VuKTt9fX19ZWxzZXtpZihjLmlkIT09Jy4nJiZjLmlkIT09J1snJiZjLmlkIT09JygnKXt3YXJuaW5nKCJCYWQgY29uc3RydWN0b3IuIix0b2tlbik7fX19ZWxzZXt3YXJuaW5nKCJXZWlyZCBjb25zdHJ1Y3Rpb24uIERlbGV0ZSAnbmV3Jy4iLHRoaXMpO30KYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZihuZXh0dG9rZW4uaWQhPT0nKCcpe3dhcm5pbmcoIk1pc3NpbmcgJygpJyBpbnZva2luZyBhIGNvbnN0cnVjdG9yLiIpO30KdGhpcy5maXJzdD1jO3JldHVybiB0aGlzO30pO3N5bnRheFsnbmV3J10uZXhwcz10cnVlO2luZml4KCcuJyxmdW5jdGlvbihsZWZ0LHRoYXQpe2FkamFjZW50KHByZXZ0b2tlbix0b2tlbik7dmFyIG09aWRlbnRpZmllcigpO2lmKHR5cGVvZiBtPT09J3N0cmluZycpe2NvdW50TWVtYmVyKG0pO30KdGhhdC5sZWZ0PWxlZnQ7dGhhdC5yaWdodD1tO2lmKCFvcHRpb24uZXZpbCYmbGVmdCYmbGVmdC52YWx1ZT09PSdkb2N1bWVudCcmJihtPT09J3dyaXRlJ3x8bT09PSd3cml0ZWxuJykpe3dhcm5pbmcoImRvY3VtZW50LndyaXRlIGNhbiBiZSBhIGZvcm0gb2YgZXZhbC4iLGxlZnQpO31lbHNlIGlmKG9wdGlvbi5hZHNhZmUpe2lmKGxlZnQmJmxlZnQudmFsdWU9PT0nQURTQUZFJyl7aWYobT09PSdpZCd8fG09PT0nbGliJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLHRoYXQpO31lbHNlIGlmKG09PT0nZ28nKXtpZih4bW9kZSE9PSdzY3JpcHQnKXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uLiIsdGhhdCk7fWVsc2UgaWYoYWRzYWZlX3dlbnR8fG5leHR0b2tlbi5pZCE9PScoJ3x8cGVlaygwKS5pZCE9PScoc3RyaW5nKSd8fHBlZWsoMCkudmFsdWUhPT1hZHNhZmVfaWR8fHBlZWsoMSkuaWQhPT0nLCcpe2Vycm9yKCJBRHNhZmUgdmlvbGF0aW9uOiBnby4iLHRoYXQpO30KYWRzYWZlX3dlbnQ9dHJ1ZTthZHNhZmVfbWF5PWZhbHNlO319fQppZighb3B0aW9uLmV2aWwmJihtPT09J2V2YWwnfHxtPT09J2V4ZWNTY3JpcHQnKSl7d2FybmluZygnZXZhbCBpcyBldmlsLicpO31lbHNlIGlmKG9wdGlvbi5zYWZlKXtmb3IoOzspe2lmKGJhbm5lZFttXT09PXRydWUpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHdvcmQgJ3thfScuIix0b2tlbixtKTt9CmlmKHR5cGVvZiBwcmVkZWZpbmVkW2xlZnQudmFsdWVdIT09J2Jvb2xlYW4nfHxuZXh0dG9rZW4uaWQ9PT0nKCcpe2JyZWFrO30KaWYoc3RhbmRhcmRfbWVtYmVyW21dPT09dHJ1ZSl7aWYobmV4dHRva2VuLmlkPT09Jy4nKXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uLiIsdGhhdCk7fQpicmVhazt9CmlmKG5leHR0b2tlbi5pZCE9PScuJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLHRoYXQpO2JyZWFrO30KYWR2YW5jZSgnLicpO3Rva2VuLmxlZnQ9dGhhdDt0b2tlbi5yaWdodD1tO3RoYXQ9dG9rZW47bT1pZGVudGlmaWVyKCk7aWYodHlwZW9mIG09PT0nc3RyaW5nJyl7Y291bnRNZW1iZXIobSk7fX19CnJldHVybiB0aGF0O30sMTYwLHRydWUpO2luZml4KCcoJyxmdW5jdGlvbihsZWZ0LHRoYXQpe2FkamFjZW50KHByZXZ0b2tlbix0b2tlbik7bm9zcGFjZSgpO3ZhciBuPTAscD1bXTtpZihsZWZ0KXtpZihsZWZ0LnR5cGU9PT0nKGlkZW50aWZpZXIpJyl7aWYobGVmdC52YWx1ZS5tYXRjaCgvXltBLVpdKFtBLVowLTlfJF0qW2Etel1bQS1aYS16MC05XyRdKik/JC8pKXtpZihsZWZ0LnZhbHVlIT09J051bWJlcicmJmxlZnQudmFsdWUhPT0nU3RyaW5nJyYmbGVmdC52YWx1ZSE9PSdCb29sZWFuJyYmbGVmdC52YWx1ZSE9PSdEYXRlJyl7aWYobGVmdC52YWx1ZT09PSdNYXRoJyl7d2FybmluZygiTWF0aCBpcyBub3QgYSBmdW5jdGlvbi4iLGxlZnQpO31lbHNlIGlmKG9wdGlvbi5uZXdjYXApe3dhcm5pbmcoIk1pc3NpbmcgJ25ldycgcHJlZml4IHdoZW4gaW52b2tpbmcgYSBjb25zdHJ1Y3Rvci4iLGxlZnQpO319fX1lbHNlIGlmKGxlZnQuaWQ9PT0nLicpe2lmKG9wdGlvbi5zYWZlJiZsZWZ0LmxlZnQudmFsdWU9PT0nTWF0aCcmJmxlZnQucmlnaHQ9PT0ncmFuZG9tJyl7d2FybmluZygiQURzYWZlIHZpb2xhdGlvbi4iLGxlZnQpO319fQppZihuZXh0dG9rZW4uaWQhPT0nKScpe2Zvcig7Oyl7cFtwLmxlbmd0aF09cGFyc2UoMTApO24rPTE7aWYobmV4dHRva2VuLmlkIT09JywnKXticmVhazt9CmNvbW1hKCk7fX0KYWR2YW5jZSgnKScpO2lmKG9wdGlvbi5pbW1lZCYmbGVmdC5pZD09PSdmdW5jdGlvbicmJm5leHR0b2tlbi5pZCE9PScpJyl7d2FybmluZygiV3JhcCB0aGUgZW50aXJlIGltbWVkaWF0ZSBmdW5jdGlvbiBpbnZvY2F0aW9uIGluIHBhcmVucy4iLHRoYXQpO30Kbm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2lmKHR5cGVvZiBsZWZ0PT09J29iamVjdCcpe2lmKGxlZnQudmFsdWU9PT0ncGFyc2VJbnQnJiZuPT09MSl7d2FybmluZygiTWlzc2luZyByYWRpeCBwYXJhbWV0ZXIuIixsZWZ0KTt9CmlmKCFvcHRpb24uZXZpbCl7aWYobGVmdC52YWx1ZT09PSdldmFsJ3x8bGVmdC52YWx1ZT09PSdGdW5jdGlvbid8fGxlZnQudmFsdWU9PT0nZXhlY1NjcmlwdCcpe3dhcm5pbmcoImV2YWwgaXMgZXZpbC4iLGxlZnQpO31lbHNlIGlmKHBbMF0mJnBbMF0uaWQ9PT0nKHN0cmluZyknJiYobGVmdC52YWx1ZT09PSdzZXRUaW1lb3V0J3x8bGVmdC52YWx1ZT09PSdzZXRJbnRlcnZhbCcpKXt3YXJuaW5nKCJJbXBsaWVkIGV2YWwgaXMgZXZpbC4gUGFzcyBhIGZ1bmN0aW9uIGluc3RlYWQgb2YgYSBzdHJpbmcuIixsZWZ0KTt9fQppZighbGVmdC5pZGVudGlmaWVyJiZsZWZ0LmlkIT09Jy4nJiZsZWZ0LmlkIT09J1snJiZsZWZ0LmlkIT09JygnJiZsZWZ0LmlkIT09JyYmJyYmbGVmdC5pZCE9PSd8fCcmJmxlZnQuaWQhPT0nPycpe3dhcm5pbmcoIkJhZCBpbnZvY2F0aW9uLiIsbGVmdCk7fX0KdGhhdC5sZWZ0PWxlZnQ7cmV0dXJuIHRoYXQ7fSwxNTUsdHJ1ZSkuZXhwcz10cnVlO3ByZWZpeCgnKCcsZnVuY3Rpb24oKXtub3NwYWNlKCk7dmFyIHY9cGFyc2UoMCk7YWR2YW5jZSgnKScsdGhpcyk7bm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2lmKG9wdGlvbi5pbW1lZCYmdi5pZD09PSdmdW5jdGlvbicpe2lmKG5leHR0b2tlbi5pZD09PScoJyl7d2FybmluZygiTW92ZSB0aGUgaW52b2NhdGlvbiBpbnRvIHRoZSBwYXJlbnMgdGhhdCBjb250YWluIHRoZSBmdW5jdGlvbi4iLG5leHR0b2tlbik7fWVsc2V7d2FybmluZygiRG8gbm90IHdyYXAgZnVuY3Rpb24gbGl0ZXJhbHMgaW4gcGFyZW5zIHVubGVzcyB0aGV5IGFyZSB0byBiZSBpbW1lZGlhdGVseSBpbnZva2VkLiIsdGhpcyk7fX0KcmV0dXJuIHY7fSk7aW5maXgoJ1snLGZ1bmN0aW9uKGxlZnQsdGhhdCl7bm9zcGFjZSgpO3ZhciBlPXBhcnNlKDApLHM7aWYoZSYmZS50eXBlPT09JyhzdHJpbmcpJyl7aWYob3B0aW9uLnNhZmUmJmJhbm5lZFtlLnZhbHVlXT09PXRydWUpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHdvcmQgJ3thfScuIix0aGF0LGUudmFsdWUpO31lbHNlIGlmKCFvcHRpb24uZXZpbCYmKGUudmFsdWU9PT0nZXZhbCd8fGUudmFsdWU9PT0nZXhlY1NjcmlwdCcpKXt3YXJuaW5nKCJldmFsIGlzIGV2aWwuIix0aGF0KTt9ZWxzZSBpZihvcHRpb24uc2FmZSYmKGUudmFsdWUuY2hhckF0KDApPT09J18nfHxlLnZhbHVlLmNoYXJBdCgwKT09PSctJykpe3dhcm5pbmcoIkFEc2FmZSByZXN0cmljdGVkIHN1YnNjcmlwdCAne2F9Jy4iLHRoYXQsZS52YWx1ZSk7fQpjb3VudE1lbWJlcihlLnZhbHVlKTtpZighb3B0aW9uLnN1YiYmaXgudGVzdChlLnZhbHVlKSl7cz1zeW50YXhbZS52YWx1ZV07aWYoIXN8fCFzLnJlc2VydmVkKXt3YXJuaW5nKCJbJ3thfSddIGlzIGJldHRlciB3cml0dGVuIGluIGRvdCBub3RhdGlvbi4iLGUsZS52YWx1ZSk7fX19ZWxzZSBpZighZXx8ZS50eXBlIT09JyhudW1iZXIpJ3x8ZS52YWx1ZTwwKXtpZihvcHRpb24uc2FmZSl7d2FybmluZygnQURzYWZlIHN1YnNjcmlwdGluZy4nKTt9fQphZHZhbmNlKCddJyx0aGF0KTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7dGhhdC5sZWZ0PWxlZnQ7dGhhdC5yaWdodD1lO3JldHVybiB0aGF0O30sMTYwLHRydWUpO3ByZWZpeCgnWycsZnVuY3Rpb24oKXt2YXIgYj10b2tlbi5saW5lIT09bmV4dHRva2VuLmxpbmU7dGhpcy5maXJzdD1bXTtpZihiKXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7aWYobmV4dHRva2VuLmZyb209PT1pbmRlbnQrb3B0aW9uLmluZGVudCl7aW5kZW50Kz1vcHRpb24uaW5kZW50O319CndoaWxlKG5leHR0b2tlbi5pZCE9PScoZW5kKScpe3doaWxlKG5leHR0b2tlbi5pZD09PScsJyl7d2FybmluZygiRXh0cmEgY29tbWEuIik7YWR2YW5jZSgnLCcpO30KaWYobmV4dHRva2VuLmlkPT09J10nKXticmVhazt9CmlmKGImJnRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZSl7aW5kZW50YXRpb24oKTt9CnRoaXMuZmlyc3QucHVzaChwYXJzZSgxMCkpO2lmKG5leHR0b2tlbi5pZD09PScsJyl7Y29tbWEoKTtpZihuZXh0dG9rZW4uaWQ9PT0nXScpe3dhcm5pbmcoIkV4dHJhIGNvbW1hLiIsdG9rZW4pO2JyZWFrO319ZWxzZXticmVhazt9fQppZihiKXtpbmRlbnQtPW9wdGlvbi5pbmRlbnQ7aW5kZW50YXRpb24oKTt9CmFkdmFuY2UoJ10nLHRoaXMpO3JldHVybiB0aGlzO30sMTYwKTsoZnVuY3Rpb24oeCl7eC5udWQ9ZnVuY3Rpb24oKXt2YXIgYixpLHMsc2Vlbj17fTtiPXRva2VuLmxpbmUhPT1uZXh0dG9rZW4ubGluZTtpZihiKXtpbmRlbnQrPW9wdGlvbi5pbmRlbnQ7aWYobmV4dHRva2VuLmZyb209PT1pbmRlbnQrb3B0aW9uLmluZGVudCl7aW5kZW50Kz1vcHRpb24uaW5kZW50O319CmZvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09J30nKXticmVhazt9CmlmKGIpe2luZGVudGF0aW9uKCk7fQppPW9wdGlvbmFsaWRlbnRpZmllcih0cnVlKTtpZighaSl7aWYobmV4dHRva2VuLmlkPT09JyhzdHJpbmcpJyl7aT1uZXh0dG9rZW4udmFsdWU7aWYoaXgudGVzdChpKSl7cz1zeW50YXhbaV07fQphZHZhbmNlKCk7fWVsc2UgaWYobmV4dHRva2VuLmlkPT09JyhudW1iZXIpJyl7aT1uZXh0dG9rZW4udmFsdWUudG9TdHJpbmcoKTthZHZhbmNlKCk7fWVsc2V7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnfScsbmV4dHRva2VuLnZhbHVlKTt9fQppZihzZWVuW2ldPT09dHJ1ZSl7d2FybmluZygiRHVwbGljYXRlIG1lbWJlciAne2F9Jy4iLG5leHR0b2tlbixpKTt9CnNlZW5baV09dHJ1ZTtjb3VudE1lbWJlcihpKTthZHZhbmNlKCc6Jyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtwYXJzZSgxMCk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO2lmKG5leHR0b2tlbi5pZD09PScsJ3x8bmV4dHRva2VuLmlkPT09J30nKXt3YXJuaW5nKCJFeHRyYSBjb21tYS4iLHRva2VuKTt9fWVsc2V7YnJlYWs7fX0KaWYoYil7aW5kZW50LT1vcHRpb24uaW5kZW50O2luZGVudGF0aW9uKCk7fQphZHZhbmNlKCd9Jyx0aGlzKTtyZXR1cm4gdGhpczt9O3guZnVkPWZ1bmN0aW9uKCl7ZXJyb3IoIkV4cGVjdGVkIHRvIHNlZSBhIHN0YXRlbWVudCBhbmQgaW5zdGVhZCBzYXcgYSBibG9jay4iLHRva2VuKTt9O30oZGVsaW0oJ3snKSkpO2Z1bmN0aW9uIHZhcnN0YXRlbWVudChwcmVmaXgpe3ZhciBpZCxuYW1lLHZhbHVlO2lmKGZ1bmN0Wycob25ldmFyKSddJiZvcHRpb24ub25ldmFyKXt3YXJuaW5nKCJUb28gbWFueSB2YXIgc3RhdGVtZW50cy4iKTt9ZWxzZSBpZighZnVuY3RbJyhnbG9iYWwpJ10pe2Z1bmN0Wycob25ldmFyKSddPXRydWU7fQp0aGlzLmZpcnN0PVtdO2Zvcig7Oyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZD1pZGVudGlmaWVyKCk7aWYoZnVuY3RbJyhnbG9iYWwpJ10mJnByZWRlZmluZWRbaWRdPT09ZmFsc2Upe3dhcm5pbmcoIlJlZGVmaW5pdGlvbiBvZiAne2F9Jy4iLHRva2VuLGlkKTt9CmFkZGxhYmVsKGlkLCd1bnVzZWQnKTtpZihwcmVmaXgpe2JyZWFrO30KbmFtZT10b2tlbjt0aGlzLmZpcnN0LnB1c2godG9rZW4pO2lmKG5leHR0b2tlbi5pZD09PSc9Jyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTthZHZhbmNlKCc9Jyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTtpZihuZXh0dG9rZW4uaWQ9PT0ndW5kZWZpbmVkJyl7d2FybmluZygiSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBpbml0aWFsaXplICd7YX0nIHRvICd1bmRlZmluZWQnLiIsdG9rZW4saWQpO30KaWYocGVlaygwKS5pZD09PSc9JyYmbmV4dHRva2VuLmlkZW50aWZpZXIpe2Vycm9yKCJWYXJpYWJsZSB7YX0gd2FzIG5vdCBkZWNsYXJlZCBjb3JyZWN0bHkuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CnZhbHVlPXBhcnNlKDApO25hbWUuZmlyc3Q9dmFsdWU7fQppZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KY29tbWEoKTt9CnJldHVybiB0aGlzO30Kc3RtdCgndmFyJyx2YXJzdGF0ZW1lbnQpLmV4cHM9dHJ1ZTtmdW5jdGlvbiBmdW5jdGlvbnBhcmFtcygpe3ZhciBpLHQ9bmV4dHRva2VuLHA9W107YWR2YW5jZSgnKCcpO25vc3BhY2UoKTtpZihuZXh0dG9rZW4uaWQ9PT0nKScpe2FkdmFuY2UoJyknKTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7cmV0dXJuO30KZm9yKDs7KXtpPWlkZW50aWZpZXIoKTtwLnB1c2goaSk7YWRkbGFiZWwoaSwncGFyYW1ldGVyJyk7aWYobmV4dHRva2VuLmlkPT09JywnKXtjb21tYSgpO31lbHNle2FkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtyZXR1cm4gcDt9fX0KZnVuY3Rpb24gZG9GdW5jdGlvbihpKXt2YXIgcz1zY29wZTtzY29wZT1PYmplY3QuY3JlYXRlKHMpO2Z1bmN0PXsnKG5hbWUpJzppfHwnIicrYW5vbm5hbWUrJyInLCcobGluZSknOm5leHR0b2tlbi5saW5lLCcoY29udGV4dCknOmZ1bmN0LCcoYnJlYWthZ2UpJzowLCcobG9vcGFnZSknOjAsJyhzY29wZSknOnNjb3BlfTt0b2tlbi5mdW5jdD1mdW5jdDtmdW5jdGlvbnMucHVzaChmdW5jdCk7aWYoaSl7YWRkbGFiZWwoaSwnZnVuY3Rpb24nKTt9CmZ1bmN0WycocGFyYW1zKSddPWZ1bmN0aW9ucGFyYW1zKCk7YmxvY2soZmFsc2UpO3Njb3BlPXM7ZnVuY3RbJyhsYXN0KSddPXRva2VuLmxpbmU7ZnVuY3Q9ZnVuY3RbJyhjb250ZXh0KSddO30KYmxvY2tzdG10KCdmdW5jdGlvbicsZnVuY3Rpb24oKXtpZihpbmJsb2NrKXt3YXJuaW5nKCJGdW5jdGlvbiBzdGF0ZW1lbnRzIGNhbm5vdCBiZSBwbGFjZWQgaW4gYmxvY2tzLiBVc2UgYSBmdW5jdGlvbiBleHByZXNzaW9uIG9yIG1vdmUgdGhlIHN0YXRlbWVudCB0byB0aGUgdG9wIG9mIHRoZSBvdXRlciBmdW5jdGlvbi4iLHRva2VuKTt9CnZhciBpPWlkZW50aWZpZXIoKTthZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2FkZGxhYmVsKGksJ3VudXNlZCcpO2RvRnVuY3Rpb24oaSk7aWYobmV4dHRva2VuLmlkPT09JygnJiZuZXh0dG9rZW4ubGluZT09PXRva2VuLmxpbmUpe2Vycm9yKCJGdW5jdGlvbiBzdGF0ZW1lbnRzIGFyZSBub3QgaW52b2NhYmxlLiBXcmFwIHRoZSB3aG9sZSBmdW5jdGlvbiBpbnZvY2F0aW9uIGluIHBhcmVucy4iKTt9CnJldHVybiB0aGlzO30pO3ByZWZpeCgnZnVuY3Rpb24nLGZ1bmN0aW9uKCl7dmFyIGk9b3B0aW9uYWxpZGVudGlmaWVyKCk7aWYoaSl7YWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt9ZWxzZXtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO30KZG9GdW5jdGlvbihpKTtpZihmdW5jdFsnKGxvb3BhZ2UpJ10mJm5leHR0b2tlbi5pZCE9PScoJyl7d2FybmluZygiQmUgY2FyZWZ1bCB3aGVuIG1ha2luZyBmdW5jdGlvbnMgd2l0aGluIGEgbG9vcC4gQ29uc2lkZXIgcHV0dGluZyB0aGUgZnVuY3Rpb24gaW4gYSBjbG9zdXJlLiIpO30KcmV0dXJuIHRoaXM7fSk7YmxvY2tzdG10KCdpZicsZnVuY3Rpb24oKXt2YXIgdD1uZXh0dG9rZW47YWR2YW5jZSgnKCcpO25vbmFkamFjZW50KHRoaXMsdCk7bm9zcGFjZSgpO3BhcnNlKDIwKTtpZihuZXh0dG9rZW4uaWQ9PT0nPScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBhbmQgaW5zdGVhZCBzYXcgYW4gYXNzaWdubWVudC4iKTthZHZhbmNlKCc9Jyk7cGFyc2UoMjApO30KYWR2YW5jZSgnKScsdCk7bm9zcGFjZShwcmV2dG9rZW4sdG9rZW4pO2Jsb2NrKHRydWUpO2lmKG5leHR0b2tlbi5pZD09PSdlbHNlJyl7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTthZHZhbmNlKCdlbHNlJyk7aWYobmV4dHRva2VuLmlkPT09J2lmJ3x8bmV4dHRva2VuLmlkPT09J3N3aXRjaCcpe3N0YXRlbWVudCh0cnVlKTt9ZWxzZXtibG9jayh0cnVlKTt9fQpyZXR1cm4gdGhpczt9KTtibG9ja3N0bXQoJ3RyeScsZnVuY3Rpb24oKXt2YXIgYixlLHM7aWYob3B0aW9uLmFkc2FmZSl7d2FybmluZygiQURzYWZlIHRyeSB2aW9sYXRpb24uIix0aGlzKTt9CmJsb2NrKGZhbHNlKTtpZihuZXh0dG9rZW4uaWQ9PT0nY2F0Y2gnKXthZHZhbmNlKCdjYXRjaCcpO25vbmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7YWR2YW5jZSgnKCcpO3M9c2NvcGU7c2NvcGU9T2JqZWN0LmNyZWF0ZShzKTtlPW5leHR0b2tlbi52YWx1ZTtpZihuZXh0dG9rZW4udHlwZSE9PScoaWRlbnRpZmllciknKXt3YXJuaW5nKCJFeHBlY3RlZCBhbiBpZGVudGlmaWVyIGFuZCBpbnN0ZWFkIHNhdyAne2F9Jy4iLG5leHR0b2tlbixlKTt9ZWxzZXthZGRsYWJlbChlLCdleGNlcHRpb24nKTt9CmFkdmFuY2UoKTthZHZhbmNlKCcpJyk7YmxvY2soZmFsc2UpO2I9dHJ1ZTtzY29wZT1zO30KaWYobmV4dHRva2VuLmlkPT09J2ZpbmFsbHknKXthZHZhbmNlKCdmaW5hbGx5Jyk7YmxvY2soZmFsc2UpO3JldHVybjt9ZWxzZSBpZighYil7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnY2F0Y2gnLG5leHR0b2tlbi52YWx1ZSk7fQpyZXR1cm4gdGhpczt9KTtibG9ja3N0bXQoJ3doaWxlJyxmdW5jdGlvbigpe3ZhciB0PW5leHR0b2tlbjtmdW5jdFsnKGJyZWFrYWdlKSddKz0xO2Z1bmN0WycobG9vcGFnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7cGFyc2UoMjApO2lmKG5leHR0b2tlbi5pZD09PSc9Jyl7d2FybmluZygiRXhwZWN0ZWQgYSBjb25kaXRpb25hbCBleHByZXNzaW9uIGFuZCBpbnN0ZWFkIHNhdyBhbiBhc3NpZ25tZW50LiIpO2FkdmFuY2UoJz0nKTtwYXJzZSgyMCk7fQphZHZhbmNlKCcpJyx0KTtub3NwYWNlKHByZXZ0b2tlbix0b2tlbik7YmxvY2sodHJ1ZSk7ZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKGxvb3BhZ2UpJ10tPTE7cmV0dXJuIHRoaXM7fSkubGFiZWxsZWQ9dHJ1ZTtyZXNlcnZlKCd3aXRoJyk7YmxvY2tzdG10KCdzd2l0Y2gnLGZ1bmN0aW9uKCl7dmFyIHQ9bmV4dHRva2VuLGc9ZmFsc2U7ZnVuY3RbJyhicmVha2FnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7dGhpcy5jb25kaXRpb249cGFyc2UoMjApO2FkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO3Q9bmV4dHRva2VuO2FkdmFuY2UoJ3snKTtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO2luZGVudCs9b3B0aW9uLmluZGVudDt0aGlzLmNhc2VzPVtdO2Zvcig7Oyl7c3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSdjYXNlJzpzd2l0Y2goZnVuY3RbJyh2ZXJiKSddKXtjYXNlJ2JyZWFrJzpjYXNlJ2Nhc2UnOmNhc2UnY29udGludWUnOmNhc2UncmV0dXJuJzpjYXNlJ3N3aXRjaCc6Y2FzZSd0aHJvdyc6YnJlYWs7ZGVmYXVsdDp3YXJuaW5nKCJFeHBlY3RlZCBhICdicmVhaycgc3RhdGVtZW50IGJlZm9yZSAnY2FzZScuIix0b2tlbik7fQppbmRlbnRhdGlvbigtb3B0aW9uLmluZGVudCk7YWR2YW5jZSgnY2FzZScpO3RoaXMuY2FzZXMucHVzaChwYXJzZSgyMCkpO2c9dHJ1ZTthZHZhbmNlKCc6Jyk7ZnVuY3RbJyh2ZXJiKSddPSdjYXNlJzticmVhaztjYXNlJ2RlZmF1bHQnOnN3aXRjaChmdW5jdFsnKHZlcmIpJ10pe2Nhc2UnYnJlYWsnOmNhc2UnY29udGludWUnOmNhc2UncmV0dXJuJzpjYXNlJ3Rocm93JzpicmVhaztkZWZhdWx0Ondhcm5pbmcoIkV4cGVjdGVkIGEgJ2JyZWFrJyBzdGF0ZW1lbnQgYmVmb3JlICdkZWZhdWx0Jy4iLHRva2VuKTt9CmluZGVudGF0aW9uKC1vcHRpb24uaW5kZW50KTthZHZhbmNlKCdkZWZhdWx0Jyk7Zz10cnVlO2FkdmFuY2UoJzonKTticmVhaztjYXNlJ30nOmluZGVudC09b3B0aW9uLmluZGVudDtpbmRlbnRhdGlvbigpO2FkdmFuY2UoJ30nLHQpO2lmKHRoaXMuY2FzZXMubGVuZ3RoPT09MXx8dGhpcy5jb25kaXRpb24uaWQ9PT0ndHJ1ZSd8fHRoaXMuY29uZGl0aW9uLmlkPT09J2ZhbHNlJyl7d2FybmluZygiVGhpcyAnc3dpdGNoJyBzaG91bGQgYmUgYW4gJ2lmJy4iLHRoaXMpO30KZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKHZlcmIpJ109dW5kZWZpbmVkO3JldHVybjtjYXNlJyhlbmQpJzplcnJvcigiTWlzc2luZyAne2F9Jy4iLG5leHR0b2tlbiwnfScpO3JldHVybjtkZWZhdWx0OmlmKGcpe3N3aXRjaCh0b2tlbi5pZCl7Y2FzZScsJzplcnJvcigiRWFjaCB2YWx1ZSBzaG91bGQgaGF2ZSBpdHMgb3duIGNhc2UgbGFiZWwuIik7cmV0dXJuO2Nhc2UnOic6c3RhdGVtZW50cygpO2JyZWFrO2RlZmF1bHQ6ZXJyb3IoIk1pc3NpbmcgJzonIG9uIGEgY2FzZSBjbGF1c2UuIix0b2tlbik7fX1lbHNle2Vycm9yKCJFeHBlY3RlZCAne2F9JyBhbmQgaW5zdGVhZCBzYXcgJ3tifScuIixuZXh0dG9rZW4sJ2Nhc2UnLG5leHR0b2tlbi52YWx1ZSk7fX19fSkubGFiZWxsZWQ9dHJ1ZTtzdG10KCdkZWJ1Z2dlcicsZnVuY3Rpb24oKXtpZighb3B0aW9uLmRlYnVnKXt3YXJuaW5nKCJBbGwgJ2RlYnVnZ2VyJyBzdGF0ZW1lbnRzIHNob3VsZCBiZSByZW1vdmVkLiIpO30KcmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlOyhmdW5jdGlvbigpe3ZhciB4PXN0bXQoJ2RvJyxmdW5jdGlvbigpe2Z1bmN0WycoYnJlYWthZ2UpJ10rPTE7ZnVuY3RbJyhsb29wYWdlKSddKz0xO3RoaXMuZmlyc3Q9YmxvY2sodHJ1ZSk7YWR2YW5jZSgnd2hpbGUnKTt2YXIgdD1uZXh0dG9rZW47bm9uYWRqYWNlbnQodG9rZW4sdCk7YWR2YW5jZSgnKCcpO25vc3BhY2UoKTtwYXJzZSgyMCk7aWYobmV4dHRva2VuLmlkPT09Jz0nKXt3YXJuaW5nKCJFeHBlY3RlZCBhIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gYW5kIGluc3RlYWQgc2F3IGFuIGFzc2lnbm1lbnQuIik7YWR2YW5jZSgnPScpO3BhcnNlKDIwKTt9CmFkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtmdW5jdFsnKGJyZWFrYWdlKSddLT0xO2Z1bmN0WycobG9vcGFnZSknXS09MTtyZXR1cm4gdGhpczt9KTt4LmxhYmVsbGVkPXRydWU7eC5leHBzPXRydWU7fSgpKTtibG9ja3N0bXQoJ2ZvcicsZnVuY3Rpb24oKXt2YXIgZj1vcHRpb24uZm9yaW4scyx0PW5leHR0b2tlbjtmdW5jdFsnKGJyZWFrYWdlKSddKz0xO2Z1bmN0WycobG9vcGFnZSknXSs9MTthZHZhbmNlKCcoJyk7bm9uYWRqYWNlbnQodGhpcyx0KTtub3NwYWNlKCk7aWYocGVlayhuZXh0dG9rZW4uaWQ9PT0ndmFyJz8xOjApLmlkPT09J2luJyl7aWYobmV4dHRva2VuLmlkPT09J3Zhcicpe2FkdmFuY2UoJ3ZhcicpO3ZhcnN0YXRlbWVudCh0cnVlKTt9ZWxzZXtzd2l0Y2goZnVuY3RbbmV4dHRva2VuLnZhbHVlXSl7Y2FzZSd1bnVzZWQnOmZ1bmN0W25leHR0b2tlbi52YWx1ZV09J3Zhcic7YnJlYWs7Y2FzZSd2YXInOmJyZWFrO2RlZmF1bHQ6d2FybmluZygiQmFkIGZvciBpbiB2YXJpYWJsZSAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO30KYWR2YW5jZSgpO30KYWR2YW5jZSgnaW4nKTtwYXJzZSgyMCk7YWR2YW5jZSgnKScsdCk7cz1ibG9jayh0cnVlKTtpZighZiYmKHMubGVuZ3RoPjF8fHR5cGVvZiBzWzBdIT09J29iamVjdCd8fHNbMF0udmFsdWUhPT0naWYnKSl7d2FybmluZygiVGhlIGJvZHkgb2YgYSBmb3IgaW4gc2hvdWxkIGJlIHdyYXBwZWQgaW4gYW4gaWYgc3RhdGVtZW50IHRvIGZpbHRlciB1bndhbnRlZCBwcm9wZXJ0aWVzIGZyb20gdGhlIHByb3RvdHlwZS4iLHRoaXMpO30KZnVuY3RbJyhicmVha2FnZSknXS09MTtmdW5jdFsnKGxvb3BhZ2UpJ10tPTE7cmV0dXJuIHRoaXM7fWVsc2V7aWYobmV4dHRva2VuLmlkIT09JzsnKXtpZihuZXh0dG9rZW4uaWQ9PT0ndmFyJyl7YWR2YW5jZSgndmFyJyk7dmFyc3RhdGVtZW50KCk7fWVsc2V7Zm9yKDs7KXtwYXJzZSgwLCdmb3InKTtpZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KY29tbWEoKTt9fX0Kbm9saW5lYnJlYWsodG9rZW4pO2FkdmFuY2UoJzsnKTtpZihuZXh0dG9rZW4uaWQhPT0nOycpe3BhcnNlKDIwKTtpZihuZXh0dG9rZW4uaWQ9PT0nPScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBhbmQgaW5zdGVhZCBzYXcgYW4gYXNzaWdubWVudC4iKTthZHZhbmNlKCc9Jyk7cGFyc2UoMjApO319Cm5vbGluZWJyZWFrKHRva2VuKTthZHZhbmNlKCc7Jyk7aWYobmV4dHRva2VuLmlkPT09JzsnKXtlcnJvcigiRXhwZWN0ZWQgJ3thfScgYW5kIGluc3RlYWQgc2F3ICd7Yn0nLiIsbmV4dHRva2VuLCcpJywnOycpO30KaWYobmV4dHRva2VuLmlkIT09JyknKXtmb3IoOzspe3BhcnNlKDAsJ2ZvcicpO2lmKG5leHR0b2tlbi5pZCE9PScsJyl7YnJlYWs7fQpjb21tYSgpO319CmFkdmFuY2UoJyknLHQpO25vc3BhY2UocHJldnRva2VuLHRva2VuKTtibG9jayh0cnVlKTtmdW5jdFsnKGJyZWFrYWdlKSddLT0xO2Z1bmN0WycobG9vcGFnZSknXS09MTtyZXR1cm4gdGhpczt9fSkubGFiZWxsZWQ9dHJ1ZTtzdG10KCdicmVhaycsZnVuY3Rpb24oKXt2YXIgdj1uZXh0dG9rZW4udmFsdWU7aWYoZnVuY3RbJyhicmVha2FnZSknXT09PTApe3dhcm5pbmcoIlVuZXhwZWN0ZWQgJ3thfScuIixuZXh0dG9rZW4sdGhpcy52YWx1ZSk7fQpub2xpbmVicmVhayh0aGlzKTtpZihuZXh0dG9rZW4uaWQhPT0nOycpe2lmKHRva2VuLmxpbmU9PT1uZXh0dG9rZW4ubGluZSl7aWYoZnVuY3Rbdl0hPT0nbGFiZWwnKXt3YXJuaW5nKCIne2F9JyBpcyBub3QgYSBzdGF0ZW1lbnQgbGFiZWwuIixuZXh0dG9rZW4sdik7fWVsc2UgaWYoc2NvcGVbdl0hPT1mdW5jdCl7d2FybmluZygiJ3thfScgaXMgb3V0IG9mIHNjb3BlLiIsbmV4dHRva2VuLHYpO30KdGhpcy5maXJzdD1uZXh0dG9rZW47YWR2YW5jZSgpO319CnJlYWNoYWJsZSgnYnJlYWsnKTtyZXR1cm4gdGhpczt9KS5leHBzPXRydWU7c3RtdCgnY29udGludWUnLGZ1bmN0aW9uKCl7dmFyIHY9bmV4dHRva2VuLnZhbHVlO2lmKGZ1bmN0WycoYnJlYWthZ2UpJ109PT0wKXt3YXJuaW5nKCJVbmV4cGVjdGVkICd7YX0nLiIsbmV4dHRva2VuLHRoaXMudmFsdWUpO30Kbm9saW5lYnJlYWsodGhpcyk7aWYobmV4dHRva2VuLmlkIT09JzsnKXtpZih0b2tlbi5saW5lPT09bmV4dHRva2VuLmxpbmUpe2lmKGZ1bmN0W3ZdIT09J2xhYmVsJyl7d2FybmluZygiJ3thfScgaXMgbm90IGEgc3RhdGVtZW50IGxhYmVsLiIsbmV4dHRva2VuLHYpO31lbHNlIGlmKHNjb3BlW3ZdIT09ZnVuY3Qpe3dhcm5pbmcoIid7YX0nIGlzIG91dCBvZiBzY29wZS4iLG5leHR0b2tlbix2KTt9CnRoaXMuZmlyc3Q9bmV4dHRva2VuO2FkdmFuY2UoKTt9fQpyZWFjaGFibGUoJ2NvbnRpbnVlJyk7cmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlO3N0bXQoJ3JldHVybicsZnVuY3Rpb24oKXtub2xpbmVicmVhayh0aGlzKTtpZihuZXh0dG9rZW4uaWQ9PT0nKHJlZ2V4cCknKXt3YXJuaW5nKCJXcmFwIHRoZSAvcmVnZXhwLyBsaXRlcmFsIGluIHBhcmVucyB0byBkaXNhbWJpZ3VhdGUgdGhlIHNsYXNoIG9wZXJhdG9yLiIpO30KaWYobmV4dHRva2VuLmlkIT09JzsnJiYhbmV4dHRva2VuLnJlYWNoKXtub25hZGphY2VudCh0b2tlbixuZXh0dG9rZW4pO3RoaXMuZmlyc3Q9cGFyc2UoMjApO30KcmVhY2hhYmxlKCdyZXR1cm4nKTtyZXR1cm4gdGhpczt9KS5leHBzPXRydWU7c3RtdCgndGhyb3cnLGZ1bmN0aW9uKCl7bm9saW5lYnJlYWsodGhpcyk7bm9uYWRqYWNlbnQodG9rZW4sbmV4dHRva2VuKTt0aGlzLmZpcnN0PXBhcnNlKDIwKTtyZWFjaGFibGUoJ3Rocm93Jyk7cmV0dXJuIHRoaXM7fSkuZXhwcz10cnVlO3Jlc2VydmUoJ3ZvaWQnKTtyZXNlcnZlKCdjbGFzcycpO3Jlc2VydmUoJ2NvbnN0Jyk7cmVzZXJ2ZSgnZW51bScpO3Jlc2VydmUoJ2V4cG9ydCcpO3Jlc2VydmUoJ2V4dGVuZHMnKTtyZXNlcnZlKCdpbXBvcnQnKTtyZXNlcnZlKCdzdXBlcicpO3Jlc2VydmUoJ2xldCcpO3Jlc2VydmUoJ3lpZWxkJyk7cmVzZXJ2ZSgnaW1wbGVtZW50cycpO3Jlc2VydmUoJ2ludGVyZmFjZScpO3Jlc2VydmUoJ3BhY2thZ2UnKTtyZXNlcnZlKCdwcml2YXRlJyk7cmVzZXJ2ZSgncHJvdGVjdGVkJyk7cmVzZXJ2ZSgncHVibGljJyk7cmVzZXJ2ZSgnc3RhdGljJyk7ZnVuY3Rpb24ganNvblZhbHVlKCl7ZnVuY3Rpb24ganNvbk9iamVjdCgpe3ZhciBvPXt9LHQ9bmV4dHRva2VuO2FkdmFuY2UoJ3snKTtpZihuZXh0dG9rZW4uaWQhPT0nfScpe2Zvcig7Oyl7aWYobmV4dHRva2VuLmlkPT09JyhlbmQpJyl7ZXJyb3IoIk1pc3NpbmcgJ30nIHRvIG1hdGNoICd7JyBmcm9tIGxpbmUge2F9LiIsbmV4dHRva2VuLHQubGluZSk7fWVsc2UgaWYobmV4dHRva2VuLmlkPT09J30nKXt3YXJuaW5nKCJVbmV4cGVjdGVkIGNvbW1hLiIsdG9rZW4pO2JyZWFrO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PScsJyl7ZXJyb3IoIlVuZXhwZWN0ZWQgY29tbWEuIixuZXh0dG9rZW4pO31lbHNlIGlmKG5leHR0b2tlbi5pZCE9PScoc3RyaW5nKScpe3dhcm5pbmcoIkV4cGVjdGVkIGEgc3RyaW5nIGFuZCBpbnN0ZWFkIHNhdyB7YX0uIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9CmlmKG9bbmV4dHRva2VuLnZhbHVlXT09PXRydWUpe3dhcm5pbmcoIkR1cGxpY2F0ZSBrZXkgJ3thfScuIixuZXh0dG9rZW4sbmV4dHRva2VuLnZhbHVlKTt9ZWxzZSBpZihuZXh0dG9rZW4udmFsdWU9PT0nX19wcm90b19fJyl7d2FybmluZygiU3R1cGlkIGtleSAne2F9Jy4iLG5leHR0b2tlbixuZXh0dG9rZW4udmFsdWUpO31lbHNle29bbmV4dHRva2VuLnZhbHVlXT10cnVlO30KYWR2YW5jZSgpO2FkdmFuY2UoJzonKTtqc29uVmFsdWUoKTtpZihuZXh0dG9rZW4uaWQhPT0nLCcpe2JyZWFrO30KYWR2YW5jZSgnLCcpO319CmFkdmFuY2UoJ30nKTt9CmZ1bmN0aW9uIGpzb25BcnJheSgpe3ZhciB0PW5leHR0b2tlbjthZHZhbmNlKCdbJyk7aWYobmV4dHRva2VuLmlkIT09J10nKXtmb3IoOzspe2lmKG5leHR0b2tlbi5pZD09PScoZW5kKScpe2Vycm9yKCJNaXNzaW5nICddJyB0byBtYXRjaCAnWycgZnJvbSBsaW5lIHthfS4iLG5leHR0b2tlbix0LmxpbmUpO31lbHNlIGlmKG5leHR0b2tlbi5pZD09PSddJyl7d2FybmluZygiVW5leHBlY3RlZCBjb21tYS4iLHRva2VuKTticmVhazt9ZWxzZSBpZihuZXh0dG9rZW4uaWQ9PT0nLCcpe2Vycm9yKCJVbmV4cGVjdGVkIGNvbW1hLiIsbmV4dHRva2VuKTt9Cmpzb25WYWx1ZSgpO2lmKG5leHR0b2tlbi5pZCE9PScsJyl7YnJlYWs7fQphZHZhbmNlKCcsJyk7fX0KYWR2YW5jZSgnXScpO30Kc3dpdGNoKG5leHR0b2tlbi5pZCl7Y2FzZSd7Jzpqc29uT2JqZWN0KCk7YnJlYWs7Y2FzZSdbJzpqc29uQXJyYXkoKTticmVhaztjYXNlJ3RydWUnOmNhc2UnZmFsc2UnOmNhc2UnbnVsbCc6Y2FzZScobnVtYmVyKSc6Y2FzZScoc3RyaW5nKSc6YWR2YW5jZSgpO2JyZWFrO2Nhc2UnLSc6YWR2YW5jZSgnLScpO2lmKHRva2VuLmNoYXJhY3RlciE9PW5leHR0b2tlbi5mcm9tKXt3YXJuaW5nKCJVbmV4cGVjdGVkIHNwYWNlIGFmdGVyICctJy4iLHRva2VuKTt9CmFkamFjZW50KHRva2VuLG5leHR0b2tlbik7YWR2YW5jZSgnKG51bWJlciknKTticmVhaztkZWZhdWx0OmVycm9yKCJFeHBlY3RlZCBhIEpTT04gdmFsdWUuIixuZXh0dG9rZW4pO319CnZhciBpdHNlbGY9ZnVuY3Rpb24ocyxvKXt2YXIgYSxpO0pTTElOVC5lcnJvcnM9W107cHJlZGVmaW5lZD1PYmplY3QuY3JlYXRlKHN0YW5kYXJkKTtpZihvKXthPW8ucHJlZGVmO2lmKGEgaW5zdGFuY2VvZiBBcnJheSl7Zm9yKGk9MDtpPGEubGVuZ3RoO2krPTEpe3ByZWRlZmluZWRbYVtpXV09dHJ1ZTt9fQppZihvLmFkc2FmZSl7by5zYWZlPXRydWU7fQppZihvLnNhZmUpe28uYnJvd3Nlcj1mYWxzZTtvLmNzcz1mYWxzZTtvLmRlYnVnPWZhbHNlO28uZGV2ZWw9ZmFsc2U7by5lcWVxZXE9dHJ1ZTtvLmV2aWw9ZmFsc2U7by5mb3Jpbj1mYWxzZTtvLm5vbWVuPXRydWU7by5vbj1mYWxzZTtvLnJoaW5vPWZhbHNlO28uc2FmZT10cnVlO28uc2lkZWJhcj1mYWxzZTtvLnN0cmljdD10cnVlO28uc3ViPWZhbHNlO28udW5kZWY9dHJ1ZTtvLndpZGdldD1mYWxzZTtwcmVkZWZpbmVkLkRhdGU9bnVsbDtwcmVkZWZpbmVkWydldmFsJ109bnVsbDtwcmVkZWZpbmVkLkZ1bmN0aW9uPW51bGw7cHJlZGVmaW5lZC5PYmplY3Q9bnVsbDtwcmVkZWZpbmVkLkFEU0FGRT1mYWxzZTtwcmVkZWZpbmVkLmxpYj1mYWxzZTt9Cm9wdGlvbj1vO31lbHNle29wdGlvbj17fTt9Cm9wdGlvbi5pbmRlbnQ9b3B0aW9uLmluZGVudHx8NDtvcHRpb24ubWF4ZXJyPW9wdGlvbi5tYXhlcnJ8fDUwO2Fkc2FmZV9pZD0nJzthZHNhZmVfbWF5PWZhbHNlO2Fkc2FmZV93ZW50PWZhbHNlO2FwcHJvdmVkPXt9O2lmKG9wdGlvbi5hcHByb3ZlZCl7Zm9yKGk9MDtpPG9wdGlvbi5hcHByb3ZlZC5sZW5ndGg7aSs9MSl7YXBwcm92ZWRbb3B0aW9uLmFwcHJvdmVkW2ldXT1vcHRpb24uYXBwcm92ZWRbaV07fX1lbHNle2FwcHJvdmVkLnRlc3Q9J3Rlc3QnO30KdGFiPScnO2ZvcihpPTA7aTxvcHRpb24uaW5kZW50O2krPTEpe3RhYis9JyAnO30KaW5kZW50PTE7Z2xvYmFsPU9iamVjdC5jcmVhdGUocHJlZGVmaW5lZCk7c2NvcGU9Z2xvYmFsO2Z1bmN0PXsnKGdsb2JhbCknOnRydWUsJyhuYW1lKSc6JyhnbG9iYWwpJywnKHNjb3BlKSc6c2NvcGUsJyhicmVha2FnZSknOjAsJyhsb29wYWdlKSc6MH07ZnVuY3Rpb25zPVtmdW5jdF07aWRzPXt9O3VybHM9W107c3JjPWZhbHNlO3htb2RlPWZhbHNlO3N0YWNrPW51bGw7bWVtYmVyPXt9O21lbWJlcnNPbmx5PW51bGw7aW1wbGllZD17fTtpbmJsb2NrPWZhbHNlO2xvb2thaGVhZD1bXTtqc29ubW9kZT1mYWxzZTt3YXJuaW5ncz0wO2xleC5pbml0KHMpO3ByZXJlZz10cnVlO3N0cmljdF9tb2RlPWZhbHNlO3ByZXZ0b2tlbj10b2tlbj1uZXh0dG9rZW49c3ludGF4WycoYmVnaW4pJ107YXNzdW1lKCk7dHJ5e2FkdmFuY2UoKTtpZihuZXh0dG9rZW4udmFsdWUuY2hhckF0KDApPT09JzwnKXtodG1sKCk7aWYob3B0aW9uLmFkc2FmZSYmIWFkc2FmZV93ZW50KXt3YXJuaW5nKCJBRHNhZmUgdmlvbGF0aW9uOiBNaXNzaW5nIEFEU0FGRS5nby4iLHRoaXMpO319ZWxzZXtzd2l0Y2gobmV4dHRva2VuLmlkKXtjYXNlJ3snOmNhc2UnWyc6b3B0aW9uLmxheGJyZWFrPXRydWU7anNvbm1vZGU9dHJ1ZTtqc29uVmFsdWUoKTticmVhaztjYXNlJ0AnOmNhc2UnKic6Y2FzZScjJzpjYXNlJy4nOmNhc2UnOic6eG1vZGU9J3N0eWxlJzthZHZhbmNlKCk7aWYodG9rZW4uaWQhPT0nQCd8fCFuZXh0dG9rZW4uaWRlbnRpZmllcnx8bmV4dHRva2VuLnZhbHVlIT09J2NoYXJzZXQnfHx0b2tlbi5saW5lIT09MXx8dG9rZW4uZnJvbSE9PTEpe2Vycm9yKCdBIGNzcyBmaWxlIHNob3VsZCBiZWdpbiB3aXRoIEBjaGFyc2V0ICJVVEYtOCI7Jyk7fQphZHZhbmNlKCk7aWYobmV4dHRva2VuLnR5cGUhPT0nKHN0cmluZyknJiZuZXh0dG9rZW4udmFsdWUhPT0nVVRGLTgnKXtlcnJvcignQSBjc3MgZmlsZSBzaG91bGQgYmVnaW4gd2l0aCBAY2hhcnNldCAiVVRGLTgiOycpO30KYWR2YW5jZSgpO2FkdmFuY2UoJzsnKTtzdHlsZXMoKTticmVhaztkZWZhdWx0OmlmKG9wdGlvbi5hZHNhZmUmJm9wdGlvbi5mcmFnbWVudCl7ZXJyb3IoIkV4cGVjdGVkICd7YX0nIGFuZCBpbnN0ZWFkIHNhdyAne2J9Jy4iLG5leHR0b2tlbiwnPGRpdj4nLG5leHR0b2tlbi52YWx1ZSk7fQpzdGF0ZW1lbnRzKCdsaWInKTt9fQphZHZhbmNlKCcoZW5kKScpO31jYXRjaChlKXtpZihlKXtKU0xJTlQuZXJyb3JzLnB1c2goe3JlYXNvbjplLm1lc3NhZ2UsbGluZTplLmxpbmV8fG5leHR0b2tlbi5saW5lLGNoYXJhY3RlcjplLmNoYXJhY3Rlcnx8bmV4dHRva2VuLmZyb219LG51bGwpO319CnJldHVybiBKU0xJTlQuZXJyb3JzLmxlbmd0aD09PTA7fTtmdW5jdGlvbiBpc19hcnJheShvKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShvKT09PSdbb2JqZWN0IEFycmF5XSc7fQpmdW5jdGlvbiB0b19hcnJheShvKXt2YXIgYT1bXSxrO2ZvcihrIGluIG8pe2lmKGlzX293bihvLGspKXthLnB1c2goayk7fX0KcmV0dXJuIGE7fQppdHNlbGYuZGF0YT1mdW5jdGlvbigpe3ZhciBkYXRhPXtmdW5jdGlvbnM6W119LGZ1LGdsb2JhbHMsaW1wbGllZHM9W10sZixpLGosbWVtYmVycz1bXSxuLHVudXNlZD1bXSx2O2lmKGl0c2VsZi5lcnJvcnMubGVuZ3RoKXtkYXRhLmVycm9ycz1pdHNlbGYuZXJyb3JzO30KaWYoanNvbm1vZGUpe2RhdGEuanNvbj10cnVlO30KZm9yKG4gaW4gaW1wbGllZCl7aWYoaXNfb3duKGltcGxpZWQsbikpe2ltcGxpZWRzLnB1c2goe25hbWU6bixsaW5lOmltcGxpZWRbbl19KTt9fQppZihpbXBsaWVkcy5sZW5ndGg+MCl7ZGF0YS5pbXBsaWVkcz1pbXBsaWVkczt9CmlmKHVybHMubGVuZ3RoPjApe2RhdGEudXJscz11cmxzO30KZ2xvYmFscz10b19hcnJheShzY29wZSk7aWYoZ2xvYmFscy5sZW5ndGg+MCl7ZGF0YS5nbG9iYWxzPWdsb2JhbHM7fQpmb3IoaT0xO2k8ZnVuY3Rpb25zLmxlbmd0aDtpKz0xKXtmPWZ1bmN0aW9uc1tpXTtmdT17fTtmb3Ioaj0wO2o8ZnVuY3Rpb25pY2l0eS5sZW5ndGg7ais9MSl7ZnVbZnVuY3Rpb25pY2l0eVtqXV09W107fQpmb3IobiBpbiBmKXtpZihpc19vd24oZixuKSYmbi5jaGFyQXQoMCkhPT0nKCcpe3Y9ZltuXTtpZihpc19hcnJheShmdVt2XSkpe2Z1W3ZdLnB1c2gobik7aWYodj09PSd1bnVzZWQnKXt1bnVzZWQucHVzaCh7bmFtZTpuLGxpbmU6ZlsnKGxpbmUpJ10sJ2Z1bmN0aW9uJzpmWycobmFtZSknXX0pO319fX0KZm9yKGo9MDtqPGZ1bmN0aW9uaWNpdHkubGVuZ3RoO2orPTEpe2lmKGZ1W2Z1bmN0aW9uaWNpdHlbal1dLmxlbmd0aD09PTApe2RlbGV0ZSBmdVtmdW5jdGlvbmljaXR5W2pdXTt9fQpmdS5uYW1lPWZbJyhuYW1lKSddO2Z1LnBhcmFtPWZbJyhwYXJhbXMpJ107ZnUubGluZT1mWycobGluZSknXTtmdS5sYXN0PWZbJyhsYXN0KSddO2RhdGEuZnVuY3Rpb25zLnB1c2goZnUpO30KaWYodW51c2VkLmxlbmd0aD4wKXtkYXRhLnVudXNlZD11bnVzZWQ7fQptZW1iZXJzPVtdO2ZvcihuIGluIG1lbWJlcil7aWYodHlwZW9mIG1lbWJlcltuXT09PSdudW1iZXInKXtkYXRhLm1lbWJlcj1tZW1iZXI7YnJlYWs7fX0KcmV0dXJuIGRhdGE7fTtpdHNlbGYucmVwb3J0PWZ1bmN0aW9uKG9wdGlvbil7dmFyIGRhdGE9aXRzZWxmLmRhdGEoKTt2YXIgYT1bXSxjLGUsZXJyLGYsaSxrLGwsbT0nJyxuLG89W10scztmdW5jdGlvbiBkZXRhaWwoaCxhcnJheSl7dmFyIGIsaSxzaW5ndWxhcml0eTtpZihhcnJheSl7by5wdXNoKCc8ZGl2PjxpPicraCsnPC9pPiAnKTthcnJheT1hcnJheS5zb3J0KCk7Zm9yKGk9MDtpPGFycmF5Lmxlbmd0aDtpKz0xKXtpZihhcnJheVtpXSE9PXNpbmd1bGFyaXR5KXtzaW5ndWxhcml0eT1hcnJheVtpXTtvLnB1c2goKGI/JywgJzonJykrc2luZ3VsYXJpdHkpO2I9dHJ1ZTt9fQpvLnB1c2goJzwvZGl2PicpO319CmlmKGRhdGEuZXJyb3JzfHxkYXRhLmltcGxpZWRzfHxkYXRhLnVudXNlZCl7ZXJyPXRydWU7by5wdXNoKCc8ZGl2IGlkPWVycm9ycz48aT5FcnJvcjo8L2k+Jyk7aWYoZGF0YS5lcnJvcnMpe2ZvcihpPTA7aTxkYXRhLmVycm9ycy5sZW5ndGg7aSs9MSl7Yz1kYXRhLmVycm9yc1tpXTtpZihjKXtlPWMuZXZpZGVuY2V8fCcnO28ucHVzaCgnPHA+UHJvYmxlbScrKGlzRmluaXRlKGMubGluZSk/JyBhdCBsaW5lICcrCmMubGluZSsnIGNoYXJhY3RlciAnK2MuY2hhcmFjdGVyOicnKSsnOiAnK2MucmVhc29uLmVudGl0eWlmeSgpKyc8L3A+PHAgY2xhc3M9ZXZpZGVuY2U+JysKKGUmJihlLmxlbmd0aD44MD9lLnNsaWNlKDAsNzcpKycuLi4nOmUpLmVudGl0eWlmeSgpKSsnPC9wPicpO319fQppZihkYXRhLmltcGxpZWRzKXtzPVtdO2ZvcihpPTA7aTxkYXRhLmltcGxpZWRzLmxlbmd0aDtpKz0xKXtzW2ldPSc8Y29kZT4nK2RhdGEuaW1wbGllZHNbaV0ubmFtZSsnPC9jb2RlPiZuYnNwOzxpPicrCmRhdGEuaW1wbGllZHNbaV0ubGluZSsnPC9pPic7fQpvLnB1c2goJzxwPjxpPkltcGxpZWQgZ2xvYmFsOjwvaT4gJytzLmpvaW4oJywgJykrJzwvcD4nKTt9CmlmKGRhdGEudW51c2VkKXtzPVtdO2ZvcihpPTA7aTxkYXRhLnVudXNlZC5sZW5ndGg7aSs9MSl7c1tpXT0nPGNvZGU+PHU+JytkYXRhLnVudXNlZFtpXS5uYW1lKyc8L3U+PC9jb2RlPiZuYnNwOzxpPicrCmRhdGEudW51c2VkW2ldLmxpbmUrJzwvaT4gPGNvZGU+JysKZGF0YS51bnVzZWRbaV1bJ2Z1bmN0aW9uJ10rJzwvY29kZT4nO30Kby5wdXNoKCc8cD48aT5VbnVzZWQgdmFyaWFibGU6PC9pPiAnK3Muam9pbignLCAnKSsnPC9wPicpO30KaWYoZGF0YS5qc29uKXtvLnB1c2goJzxwPkpTT046IGJhZC48L3A+Jyk7fQpvLnB1c2goJzwvZGl2PicpO30KaWYoIW9wdGlvbil7by5wdXNoKCc8YnI+PGRpdiBpZD1mdW5jdGlvbnM+Jyk7aWYoZGF0YS51cmxzKXtkZXRhaWwoIlVSTHM8YnI+IixkYXRhLnVybHMsJzxicj4nKTt9CmlmKHhtb2RlPT09J3N0eWxlJyl7by5wdXNoKCc8cD5DU1MuPC9wPicpO31lbHNlIGlmKGRhdGEuanNvbiYmIWVycil7by5wdXNoKCc8cD5KU09OOiBnb29kLjwvcD4nKTt9ZWxzZSBpZihkYXRhLmdsb2JhbHMpe28ucHVzaCgnPGRpdj48aT5HbG9iYWw8L2k+ICcrCmRhdGEuZ2xvYmFscy5zb3J0KCkuam9pbignLCAnKSsnPC9kaXY+Jyk7fWVsc2V7by5wdXNoKCc8ZGl2PjxpPk5vIG5ldyBnbG9iYWwgdmFyaWFibGVzIGludHJvZHVjZWQuPC9pPjwvZGl2PicpO30KZm9yKGk9MDtpPGRhdGEuZnVuY3Rpb25zLmxlbmd0aDtpKz0xKXtmPWRhdGEuZnVuY3Rpb25zW2ldO28ucHVzaCgnPGJyPjxkaXYgY2xhc3M9ZnVuY3Rpb24+PGk+JytmLmxpbmUrJy0nKwpmLmxhc3QrJzwvaT4gJysoZi5uYW1lfHwnJykrJygnKwooZi5wYXJhbT9mLnBhcmFtLmpvaW4oJywgJyk6JycpKycpPC9kaXY+Jyk7ZGV0YWlsKCc8YmlnPjxiPlVudXNlZDwvYj48L2JpZz4nLGYudW51c2VkKTtkZXRhaWwoJ0Nsb3N1cmUnLGYuY2xvc3VyZSk7ZGV0YWlsKCdWYXJpYWJsZScsZlsndmFyJ10pO2RldGFpbCgnRXhjZXB0aW9uJyxmLmV4Y2VwdGlvbik7ZGV0YWlsKCdPdXRlcicsZi5vdXRlcik7ZGV0YWlsKCdHbG9iYWwnLGYuZ2xvYmFsKTtkZXRhaWwoJ0xhYmVsJyxmLmxhYmVsKTt9CmlmKGRhdGEubWVtYmVyKXthPXRvX2FycmF5KGRhdGEubWVtYmVyKTtpZihhLmxlbmd0aCl7YT1hLnNvcnQoKTttPSc8YnI+PHByZSBpZD1tZW1iZXJzPi8qbWVtYmVycyAnO2w9MTA7Zm9yKGk9MDtpPGEubGVuZ3RoO2krPTEpe2s9YVtpXTtuPWsubmFtZSgpO2lmKGwrbi5sZW5ndGg+NzIpe28ucHVzaChtKyc8YnI+Jyk7bT0nICAgICc7bD0xO30KbCs9bi5sZW5ndGgrMjtpZihkYXRhLm1lbWJlcltrXT09PTEpe249JzxpPicrbisnPC9pPic7fQppZihpPGEubGVuZ3RoLTEpe24rPScsICc7fQptKz1uO30Kby5wdXNoKG0rJzxicj4qLzwvcHJlPicpO30Kby5wdXNoKCc8L2Rpdj4nKTt9fQpyZXR1cm4gby5qb2luKCcnKTt9O2l0c2VsZi5qc2xpbnQ9aXRzZWxmO2l0c2VsZi5lZGl0aW9uPScyMDEwLTAxLTEyJztyZXR1cm4gaXRzZWxmO30oKSk7
LyoqCiAqIEBwcm9qZWN0ICAgICBPVFJTIChodHRwOi8vd3d3Lm90cnMub3JnKSAtIEFnZW50IEZyb250ZW5kCiAqIEBjb3B5cmlnaHQgICBPVFJTIEFHCiAqIEBsaWNlbnNlICAgICBBR1BMIChodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQpCiAqLwoKLyoqCiAqIEBwYWNrYWdlICAgICBTa2luICJEZWZhdWx0IgogKiBAc2VjdGlvbiAgICAgRnJlZCBDU1MKICovCgouRGV2ZWxGcmVkQ29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMzNweDsKICAgIHJpZ2h0OiAxNnB4OwogICAgei1pbmRleDogNTAwMDsKfQoKLkRldmVsRnJlZENvbnRhaW5lcjpob3ZlciB7CiAgICAtd2Via2l0LW9wYWNpdHk6IDEuMDsKICAgIC1tb3otb3BhY2l0eTogMS4wOwogICAgb3BhY2l0eTogMS4wOwp9CgouRGV2ZWxGcmVkQm94IHsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tb3otYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIC1tcy1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjNzc3OwogICAgLW8tYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzc3NzsKICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM3Nzc7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgbWFyZ2luLWJvdHRvbTogNXB4Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCB7CiAgICBtYXgtaGVpZ2h0OiAxNTBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5Owp9CgouRGV2ZWxGcmVkQm94Q29udGVudCAuRnJlZFF1aWNrU2VhcmNoIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOwogICAgcGFkZGluZzogNXB4OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAxcHggMXB4IDNweCAjNzc3LCBpbnNldCAtMXB4IC0xcHggM3B4ICM3Nzc7CiAgICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggM3B4ICM3NzcsIGluc2V0IC0xcHggLTFweCAzcHggIzc3NzsKICAgIC1tcy1ib3gtc2hhZG93OiBpbnNldCAxcHggMXB4IDNweCAjNzc3LCBpbnNldCAtMXB4IC0xcHggM3B4ICM3Nzc7CiAgICAtby1ib3gtc2hhZG93OiBpbnNldCAxcHggMXB4IDNweCAjNzc3LCBpbnNldCAtMXB4IC0xcHggM3B4ICM3Nzc7CiAgICBib3gtc2hhZG93OiBpbnNldCAxcHggMXB4IDNweCAjNzc3LCBpbnNldCAtMXB4IC0xcHggM3B4ICM3Nzc7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5EZXZlbEZyZWRCb3hDb250ZW50IC5GcmVkUXVpY2tTZWFyY2ggaW5wdXQgewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogOTglOwogICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTsKICAgIGZvbnQtc2l6ZTogMTFweDsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgLkZyZWRRdWlja1NlYXJjaCBpIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiAxMHB4OwogICAgdG9wOiA5cHg7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBjb2xvcjogI2NjYzsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLkRldmVsRnJlZEJveENvbnRlbnQgLkZyZWRRdWlja1NlYXJjaDpob3ZlciBpIHsKICAgIGNvbG9yOiAjMzMzOwp9CgouRGV2ZWxGcmVkQm94IC5zdHJvbmcsCi5EZXZlbEZyZWRCb3ggLnN0cm9uZyAqIHsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgouRGV2ZWxGcmVkQm94IGgxIHsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGJhY2tncm91bmQ6ICMyNTU1NjU7CiAgICBjb2xvcjogI2ZmZjsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogNnB4IDdweDsKICAgIGN1cnNvcjogbW92ZTsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5EZXZlbEZyZWRCb3ggaDEgLkZyZWRUb29sQmFyIHsKICAgIGZsb2F0OiByaWdodDsKfQoKLkRldmVsRnJlZEJveCBoMSAuRnJlZFRvb2xCYXIgaSB7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBtYXJnaW4tbGVmdDogNXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKfQoKI0ZyZWRKU0xpbnRTY3JpcHRzIHsKICAgIHBhZGRpbmc6IDVweDsKfQoKLkZyZWRKU0xpbnRTdWNjZXNzZnVsbCB7CiAgICBjb2xvcjogZ3JlZW47Cn0KCi5GcmVkSlNMaW50RXJyb3IgewogICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9Cgpib2R5ICNGcmVkSlNMaW50U2NyaXB0cyBwICwKYm9keSAjRnJlZEpTTGludFNjcmlwdHMgcHJlIHsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4Owp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgewogICAgcGFkZGluZzogMTVweDsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGgxIHsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIG1hcmdpbjogMHB4IDBweCAxMHB4IDBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLkRldmVsRnJlZFNldHRpbmdzIHVsIHsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyAuQ2FsbEZvckFjdGlvbiB7CiAgICBtYXJnaW46IDBweCBhdXRvOwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSB7CiAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaSBzcGFuIHsKICAgIGNvbG9yOiAjNzc3Nzc3OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBwYWRkaW5nLWxlZnQ6IDIzcHg7CiAgICBtYXJnaW4tYm90dG9tOiAzcHg7CiAgICBsaW5lLWhlaWdodDogMTMwJTsKfQoKLkRldmVsRnJlZFNldHRpbmdzIGxpIGxhYmVsIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcGFkZGluZzogM3B4IDIwcHggM3B4IDVweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCi5EZXZlbEZyZWRTZXR0aW5ncyBsaTpob3ZlciBsYWJlbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgouRGV2ZWxGcmVkU2V0dGluZ3MgbGkgYSB7CiAgICBjb2xvcjogIzAwMDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHJpZ2h0OiA2cHg7CiAgICB0b3A6IDZweDsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGQsCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdGggewogICAgcGFkZGluZzogNXB4IDVweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsKfQoKdGFibGUuRnJlZFRhYmxlRGVmYXVsdCB0aCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjYWFhOwp9Cgp0YWJsZS5GcmVkVGFibGVEZWZhdWx0IHRyOm50aC1jaGlsZChvZGQpIHRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCnRhYmxlLkZyZWRUYWJsZURlZmF1bHQgdHI6bGFzdC1jaGlsZCB0ZCB7CiAgICBib3JkZXItYm90dG9tOiAwcHg7Cn0KCi5EZXZlbEZyZWRCb3ggLkZyZWRFbGVtZW50TGlzdCB7CiAgICBwYWRkaW5nOiA1cHggM3B4IDNweCA1cHg7Cn0KCi5GcmVkRWxlbWVudExpc3Qgc3BhbiB7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAzcHggNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7CiAgICBtYXJnaW46IDBweCAzcHggM3B4IDBweDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7CiAgICAtbXMtYm9yZGVyLXJhZGl1czogM3B4OwogICAgLW8tYm9yZGVyLXJhZGl1czogM3B4OwogICAgYm9yZGVyLXJhZGl1czogM3B4Owp9CgouRnJlZE1vbm9TcGFjZSB7CiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgbGluZS1oZWlnaHQ6IDEzMCU7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgd2hpdGUtc3BhY2U6IHByZS1saW5lOwp9
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovUHJvZHVjZXIgKEFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1KQovQ3JlYXRpb25EYXRlIChEOjIwMTQwMzA0MDkxMDU2KzAxJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndYU+cex99zTvZgJCFsCHuGpUAAkRGmgAzZohCSAAESICQM90BUsKKoyFIEKYpYsFqG1IkoDori3g1SBJRarOLC0USep/X29t7b2+8f53ye3/v7vef9jfd5DgCkgEyuMBdWAUAokogj/L0ZsXHxDOwAgAEeYIA9ABxubrZXWFgwkCvQl83IlTuBf9GrmwBSvK8xFXuB/0+q3GyxBAAoTM6zePxcrpyL5JyZL8lW2CflTEvOUDCMUrBYfkA5ayg4dYatP/vMsKeCeUIRT86Rcs7mCXkK7pXzhjwpX86IIpfiPAE/X87X5WycKRUK5PxGESvkc+Q5oEgKu4TPTZOznZxJ4sgItpznAIAjpX7ByV+whF8gUSTFzsouFAtS0yQMc64Fw97FhcUI4Odn8iUSZhiHm8ER8xjsLGE2R1QIwEzOn0VR1JYhL7KTvYuTE9PBxv6LQv3Xxb8pRW9n6EX4555B9P4/bH/ll9UAAGtKXpstf9iSqwDoXAeAxt0/bMZ7AFCW963j8hf50BXzkiaRZLva2ubn59sI+FwbRUF/1/90+Bv64ns2iu1+Lw/Dh5/CkWZKGIq6cbMys6RiRm42h8tnMP88xP848K/PYR3BT+GL+SJ5RLR8ygSiVHm7RTyBRJAlYghE/6mJ/zDsT5qZa7mojR8BLdEGqFymAeTnfoCiEgGSsFu+Av3et2B8NFDcvBj90Zm5/yzo33eFyxSPXEHq5zh2RCSDKxXnzawpriVAAwJQBjSgCfSAETAHTOAAnIEb8AS+YB4IBZEgDiwGXJAGhEAM8sEysBoUg1KwBewA1aAONIJm0AoOg05wDJwG58AlcAXcAPeADIyAp2ASvALTEARhITJEhTQhfcgEsoIcIBY0F/KFgqEIKA5KglIhESSFlkFroVKoHKqG6qFm6FvoKHQaugANQnegIWgc+hV6ByMwCabBurApbAuz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v3j+0j8ZOznyXPz806+bXmi+2Pdy9sueqbCph6+Er6Zfl7zRfLP/Lett37uYd6PT+e+x7ys/WHzo/hj08f4n4adPvwHJ4vTiCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iagpbL0lDQ0Jhc2VkIDUgMCBSXQplbmRvYmoKNyAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDEzIDAgUgo+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj4KPGRjOmxhbmd1YWdlPgo8cmRmOkJhZz4KPHJkZjpsaT5lbjwvcmRmOmxpPgo8L3JkZjpCYWc+CjwvZGM6bGFuZ3VhZ2U+CjxkYzpkYXRlPgo8cmRmOlNlcT4KPHJkZjpsaT4yMDE0LTAzLTA0VDA5OjEwOjU2KzAxOjAwPC9yZGY6bGk+CjwvcmRmOlNlcT4KPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQREZWZXJzaW9uPjEuNDwvcGRmOlBERlZlcnNpb24+CjxwZGY6UHJvZHVjZXI+QXBhY2hlIEZPUCBWZXJzaW9uIDAuOTU8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAzLTA0VDA5OjEwOjU2KzAxOjAwPC94bXA6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YW0KZW5kb2JqCjQzIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0NvbnRlbnRzIDQ0IDAgUgo+PgoKZW5kb2JqCjQ1IDAgb2JqCjE4MjgKZW5kb2JqCjQ3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjc5LjYyOSAxMTcuMTkgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NiAwIFIKL0ggL0kKCj4+CmVuZG9iago0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzEuNjg3IDY3OS42MjkgNTM5Ljk5NyA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjY3LjYyOSAxNTMuNjQ5IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ5MiA2NjcuNjI5IDUzOS44NTIgNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NTUuNjI5IDE3Ni40OTUgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA1MyAwIFIKL0ggL0kKCj4+CmVuZG9iago1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgNjU1LjYyOSA1MzkuOTIxIDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAxNDUuOTQ1IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDY0My42MjkgNTM5LjkyIDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjMxLjYyOSAxNzYuMTM2IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDYzMS42MjkgNTM5LjkxOSA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxOS42MjkgMjA1LjEyMjAxIDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDYxOS42MjkgNTM5LjkxOSA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwNy42MjkgMTU1LjY2Njk5IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDYwNy42MjkgNTM5LjkyMSA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU5NS42MjkgMTY3Ljg4OSA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjEwNCA1OTUuNjI5IDUzOS45MjEgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODMuNjI5IDE4Ni4xMjcgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MSAwIFIKL0ggL0kKCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgNTgzLjYyOSA1MzkuOTIgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MSAwIFIKL0ggL0kKCj4+CmVuZG9iago3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzEuNjI5IDE2Ni42NTMgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNTcxLjYyOSA1MzkuOTE5IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1NTkuNjI5IDE0OS4yODUgNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NyAwIFIKL0ggL0kKCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYzOTYgNTU5LjYyOSA1MzkuOTI0IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQ3LjYyOSAxOTguNzg1IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ4NSA1NDcuNjI5IDUzOS44NDUgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MCAwIFIKL0ggL0kKCj4+CmVuZG9iago4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MzUuNjI5IDE5NC40MTkgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MyAwIFIKL0ggL0kKCj4+CmVuZG9iago4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg0IDUzNS42MjkgNTM5Ljg0NCA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTIzLjYyOSAxNjEuNjc5IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2Mzk2IDUyMy42MjkgNTM5LjkyNCA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxMS42MjkgMjYxLjk0OSA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA1MTEuNjI5IDUzOS45MiA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDk5LjYyOSAxMzYuNjYyIDUwOS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MiAwIFIKL0ggL0kKCj4+CmVuZG9iago5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTY1IDQ5OS42MjkgNTM5LjkyNSA1MDkuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDg3LjYyOSAxNDkuNDQxMDEgNDk3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA0ODcuNjI5IDUzOS45MiA0OTcuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0NzUuNjI5IDE1MC4wODIgNDg1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYzOTYgNDc1LjYyOSA1MzkuOTI0IDQ4NS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL0xlbmd0aCAxMDIgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nM2dy66jy5Gd5/UU+wWanZmRV8A4wFHryLBnggV40OiRL/CgZUOe+PUdK35msopkHX2cCULp1GWRzB38I3Llyrjkr+T/+6fs/zdW+fpvf/32t285/i5/jfJl/f5XrX9Zus3WU8pff/2KP+dbTvHnf3f4058O9v6nvv/t/k7nz//r679++9/f0td//Pav/+bQ//6Vbu3r/31Lrx/33Vv+l29//m6d+tf0D7vO71dqufwDr/Rv30a9HofSb3m1tdbXLF9l3EpKa00t/J//01/L1x//T/xcf/7xWem13HpuPz5D/ivbLdv9r/0vb6X55+tf//2r+AfVmlIqL38U7OlvWvzo139/+kPe3//1rZ6/iwvxu8vL7ZZW/+G313udP32ypB/fQsv5w1++/fOf3GI5ff3lf94X5q5Yb2NMX5jD29df/vr1r//Bv6OiX798/dvXX/7zt9/+8uNPUvOtuaf+Y1k6nqeiB6P26Q/H/Pq//yPe6m/fakvXz6rfzPzVS74/W3U/Wz88WSMC02Ut/zH9eZxJj+33RnODVX+cyzZYab98ZX90V8s225f/Tfqjv8ZfmM1//+sv8Vd2/cedoPTv/6aM62/TH/zXvwj/+H2u96/h3Xc3v8w/c+RY3rWSpJWM63N++fIfVb/T++uHWPf3Hvf3fDwE7Zbnkgu+vqGv8Z9y7bf49/r8wnWbZb5/4R+eP6WVmyMFIWCPCh2/87qZ0Xfu5dYSfefebn3gd563Wek7j3JLMvpA4PiC/MtA4HmzRtc83Z3xNzjrrS+65jlus9M1Lw9A+Btc1TcJtOA1bjamthMA9n+9teqLqAxtt5GXQhFCuwdNtOac0y01vGiPw0VfYGfofrOFF53XrXW26FJuw/CiS7utRB+kXNYt6VtsCG3lVuSF6LnzLexW9S0y89m8NfkhW4lvlaNRD8i13lahLpDr9B2b+m1u+VY6tnert2rY3m04HZzaGwi6Jycc/lOylXS7rYrt3cctZ2zv4QxiYnsPu9XGjD36rRfsCmPdxsL+O30P7djY0zdRRVW2kum7aMKusMqtDhwsl++jFced5RtpRsYuKd/WpMYuyffRRv2gJN9IC/WD4hy6Lhp3ihPI3qmxi9PQadQPSvHNNFE/KKXeMqY4xVmuYY5T/NTXMMkpZrc+sb3Nd9RGXaFU31QLjTul+uFmYXs7OzbMdIpz5oapTnHSPBjXKa3dJiY7xTlzco/MbBlOmkvGxnbWbJPGHd+Ybk1fJAIP31MLDTtl+DHNfXKyb92Jc2J0pzhtLv4lZrYM580V053ixLm5Q7IvZvl+itlOWb6fYrZTnD2nKfsRtB90/UROvcCcPVePrROtxJw9N8x2fBO7DffHjDYby76lYrZjTqCzYitbiRPoIpdkK3EOXTHbMefQ3V1yIifzfew2MNsx813Vv8vMVuIcOmPCY86hy6KBx5xDV0x4zDl0x4THqu+qCQYea8kxNPCYU2in6DDwmFNoY3zHnD/7+8LAY86fO+Y71n1HLTDw+IZ3W5jumNPnjOmOOYP2x4QGHmfQDdMdcwbdBw48s30g6fiSbynjwOMMOmO6Y86gQ9VhK3EGHbIOWkl1Et0x3anJN9VOA4/vex8oO9VJdEk08FQn0VzeqU6iG2Y8tfjGihlPLSZ5Bwae6iQ6UcZTnUMXzHiqc2jDjKc6h4YCTzXfVDHjqbV8IPBUJ9CJMh7fIT/Qd6qT4lTne+v9vrTtBLnP8daZrwuS9LgkeYieksSfPuaP18LOJ1qN3//2y1erR5+XNv8nf5X/53vl/uVlOd8/WhcLf3qj5t6P2a/L2G/y9Iq+T8Svr3iVdJcfiH/y9q/aq7OZS+4nYCczl9xPwNNPw3TNOZV9Gkbotk/DCD33aZigPbjdT8MI7Vxm4nVLIWh43VIICl63FIKF1y2FoON1SyEwvG6PbjoNI2jfp2GCljxQQ4VDaNunYYTu+zSM0M5mWjAlgpY8cG0OCN0U66D/ZikEnRlb8oBhY/e2j8MI7VTmUv8JWvrAtTsgdN3nYYR2KnOp/wQtiaBhP5BEULAfSCJY2H+lEXRsb2kEhu29hp+HqSsUaQSX+o/Qts/DCN39PEztXaQRTGrvIo2gIWMXCQSFukKRQLBo3CkSCDo2tgQCo3GnFN9UE3WFIoFg0LhTJBD8jJa8Qc84DROo1IGJjS11AHOdInWgUD8okgcWjTtF8kDHxpY8cB2HCbqnfRxGaNvHYYTu+zhM0CPt4zBC2z4OI3Tfx2GEXvs4TNCSCBaOO5IIruMwQq99HCZo59D34zBCt30cRui5j8MAbSnv4zBC130cRuh5Pw4TsBQCzHhMCsF1HEboEcdhApU8cB2HEdr2cRihx/04TMCSBzDhMSfQFRMekzwwaeAxKQSY8JgUgkIDj0khwITHJBF0GnjMOXTFhMecQ/dEA4+1qfxKGHis553ugNC+q2YaeMxpdMGEx5xG10YDjzmN7pjz2Bi3sXDgmWlnPCB03RkPCO0ba6KBx1l0xZTHnEX3igPP6pHwgKCOmTTwVKfQXN6pTqGtwMBTnUFXzHiqM+iOGU/NLRQeFng8oH2g8FQn0Rkznuokmis81Ul0w4ynOonumPFUq5fCw1biJDphxlOdR2fMeKrzaMOMpzqP5gpPdR49MOOprbsz5PcWfK931q40nfLejf/4uhV/KSb/HT3XfSxk29Bnq/9q6Ure1stU8yCBV79+9d/PVxHRj/6r6fF9/aynD3iVH/3oqHPV6yvfSIT+4PfOoP7UW9RkILQ/9akpyBB08ad+9Pc/7lvtcdaoG0Fof+plcfZTquhldj31CO1PfcPrNn/qC153TX7iwPau5icObG/3v6Tvkv2U7n9F32VlaPMTR5eeg9BOJyu2d3M6mbG9e/ETB3YFP8emxh6S7lyyNHEbgh7FzxtNeg5CNz9vYGMP55L6ItmPOB2TsCv4ITbpi2Qrmc4lKzb28oib2TJW9QMH9oPlRLJRP5D2uAr1g+JBOemLRE9fScMPHNTYJTuTNOoHJdtVbsdWkrsfOGjckfy4KrV38VOs7wzU3qX7gQPbuzibbNQVijmbLDTuSH4cC9vbmdPq2N5+jM1GXaFU31fhQ1KnHzdo3ClNF7807kh+nBkbuw0nWTTuFMfkhl2h+6ZadJXB0MOZEjb28E3Vo+tkX/vwTRVTnuJnWNXsZbYSP8PmgV1h+qaq6Mq++embqr5L5vBTSQ3YFZZvqu6Uk63ED7EJU57i59js32VGz6Al31cx5bHUVKMqhQGhfV/FlEf648SUx1SHK79kYN9WMeMx59HmbjmRo5nz6MYYj+TH4d9jZstQYTdmPOYkOnlwZV+Mc+iCCY85h66Y8Jhz6DZo4JH8ODDhkfy4Mg085hw6Yc7jJ5BbaTTwuPFuFXMeU2XsooFH8uPoNPBIflyY85jT6Jxo4DGn0QVzHnMaXSsOPMqowpxH8uOYOPBM31gx5zGn0RlzHlON7KKBx4l0xZSnOpHuRgOPFMjJfFLy4xo08FRn0RlTnuos2jIMPH5auVXMeCQ/dsx4JD9OzHgkP3KFpzqJzpjxVCfRXOSpTqIbZjySHztmPJIfJ2Y81Ul0woynOo/mIk91Hm2Y8dSmPN71nqP/rnInFbL1/H5V71RIZ6c/onSJ94MKqR4ODxVSSuMf0iNbVG0lXrJF9aa1vb738xs+vWr60uORfH3hi4k8fA7rCFlvK8V5h4DnLY3wfQD2wHlXKwi4hlhBkGNrFQDs/7q1CoR2TImAjNBDzV6EIWiPm6XjdXvcrIbX7YHzrlUg9NpaBUF74LxrFQjdt1aB0GtrFQTtgfOuVSB021oFQs+tVRC0B867VoHQbWsVCD1DqyBQj5p3rQKh69YqEHpsrYKge9paBULXrVUg9LhZCY2UoEfaWgVC2613tozRt1BB0DPdUsJ+MG0LFQjdb1ZDI0XodWsZG3uVLVQgdLu6i7GVrLWFCoAuqez+ZAjdtlCB0L6XGrW3OgzchQqErluoQGjfUSu1tzoM3JUKhK43m9QV1GFASgWBmm+qhcYdtRe4KxUI7Ztqx8auaUsVCG1bqkDofmuDxh21FxiY7ai9wGJ0p7S+dQqEXlunIOhetk6B0G3rFAg9t05B0CNvnQKh29YpEHpunYKgnTrfdQqErlunQOixdQqCXmnrFAhdt06B0OOuUwCwWgxUTHfUYuCuUyB0D50CQdfWKQhajRIx3VF/gUunQOC1dQqCdgLdMdtRe4G7ToHQJxOFoK1snQKhTzIKQs+tUxB0zVunQOi6dQqEnlunIOh2klEQum6dAqFPMgpBdyWj0MCjFgMTEx7rSkahgcfGSUZB6JOMgtBKRqGBZ5xcFIKeykXBgWdeuSgIqlwUHHjWyUVB6BayDvti1klFAWi1F1iY7tTUQtthgUftBbi4o/YCNdPAo/YCXOFRe4GBGY/aCyzMeGqpl8KD3F3tBQpmPOovUDHjUX+BjhmP+gtwhUctBhZmPLXaBwqPWgwUzHjUY4ArPLWVDxSeyFm9yg0+FF5DNL7k5tdXvhONZ3sWjd+lrqr5QXQMDsG4+a/f/Nef3KXS9Svn3VO4+JuVl54HSmC960ovn/j8Mc+vnE7R5puXvRELs/OzEW3CCbo6ZugTEXqqW4/CO0Hr4j16OzN0dY6G1+2u2xtet+7eC163fwv+7NB1+/k3d7xuP/+a4XXr8l3fZWfo7hxtyBkReqlEUc5I0Lp813fZGLqrRFEncYReztHme7d4oy4WlSgyaHOCNhQHEHo6QcPGVltqw8bWzbu+SPYAqjH1mApsBK3O1BUbWzfvGRtbvaknM586UzfsB7p2L9gP1J5aXyR6+pTA2jo1tornh1E/UPH8StQPlMCaBo07SmAtlcYdJbA6lYL2VgJrm9Teqp8fjbqC6udXoa6gBNa0sL3VpLpje6tJtVFXUAJrT9QVVEKvCRAI6ptqpXFHCaw5Y2OrQ/XExlaH6oZdQR2q9UWyB1Adqhc2tjpUu1NO9rWrQzXjO8peNf8WM1uGE8KK+Y6K57t7JLOHn31nxrZWg+qJ3SC6Tw3o69F9CkedaD81dAhHaPWfwlHnakClczhAWzSgoo5g0YBqqswPodWAauggTtBXAyoYdSwaUI3F9kmLBlQ06tjVgEplfgitBlQ08Fg0oJo66hF0NKCigceiAdXUQRyh1YOKBh67elDBwGPRg4oGHoseVGzR0YCKBh6LBlQ08Fg0oIKBx6L/FA08drWggoHHogUVDDx2daCCgceiAxUNPBYdqGjgsehAhQNPdKDCgSc6UOHAEx2ocOC5OlDRwBMdqHDguTpQwcBTowMVDTw1OlDRwFOjAxUNPDU6UNHAU6MDFQ08NZpQ0cBTryZUMPDUaEJFA0+NJlRs0dGBigaeGh2oaOCp0YEKBp4aDaho4KlXDyoYeGr0oIKBp14tqGDgqdGCigaeK3d1vF/274p2lww53/4I71TI9dw9tdiTClkk7ekPoUJqglnte1Sa+jooe1X9TktNj0ap5ZIj499+S1FfXyReprcSpX4YPyy6s70s53kNrzpYS0tn9NdXvtXBgkYaQ5tzJv2cDO3fmPTYdz/DG/Up3SJH+M0X8F4Hk4KbMkP3WysxLw6hl9pp6UEiaBVyd2xvFXIbtrdqufWAsJWollvPBFuJarlbPEAIPZ02YXv7Rj4ntrdqua9rAoSe6qclkkDQK2t+2Hs/equGtYHtrXLuSu0d5dyZekOUc0/qDVHOzVahUu5MbS0lTIGT2TpKuRv1hCjlLtQTopQ70cgTpdwD21ql3BXbWqXcmXpClHIP6glRyl1p5IlS7oztXdstOigze6uau1NPiGpuw56gau5EI09Ucw9sb1VzR0cbhq6aIEa9QdXckoXZSlTNXWnkiWrugu091EaIPlQq5u7YGVTM7W452UJUzM2AvqcOsSKEVh234bijOu5MHxCVcWPCE2XcmPBEGXdWV1WGnreOCU+UcStzGJk7yrgx4Yk6bnkYW4mukzHhiTruoMEMPdRNS+dAgtZ1MiY8UcrtDjmRs0ctNyY8ksKiZRhbia6TMeGJWm6jYUdq2MSEJ2q5MeGJWm6jD5VKuTHfiVLuQcNOlHIzU6uMu9C4ozLuhPlOlHF3+oSoihvTnajixnQnqrg7jjuq4sZ0J6q4E447uk7GdCfKuBuNO1HGjemOlDA1v2RxJyq5G407UcmN6Y4qufXFs7gTpdyY7kQpN6Y7UcqN6U6UcmO6E6XcmO5EKTemOxLDKqU7UcmN6U5UcmO6Uyuzs26SMdmJEm5MdiSDZW2Rn+pCDxXs9YXvVLCcnrtNKtb9IIO57ez6KMlgf3CEfmi95O8k4E0VD443H/H8vk8vmzrlvnnVi5Wig1s86Ahd9ykXoZ2i9AifBJ117DcIVdIsXnWOHm5xWERwnfwrX7e6uF3HXAbv+5zL4GsfdBFcp/8STwSDO09ZfO06/19nXQSXAHBFfwZv2yEZfO7jLoJHOzdu9+jnxh+x6OmGPSNHU7fYAxi87jMvg3vcWtzuUgKufYDBq0dh7h593OA6oqsbN7mEAOMmj75uQYoQPBq7BQtlcNvHXwaXzM5NLk1gcZNLFOjcM6K7G/eMaO+GI1KJ/m7Y7iUavGG7q8xaEOgZqrO+n4MZXHo7jkiqtL6fhBE82rxhu5fo84bdo0SvN+weJZq94YhUJBEMbndpBJXbXQ3fMnYPFV23id1DVdeDLkT93rjNo+Ebt7lUgo4fl+j4xj2jl30wZvC2T8YMPvfRGMGj61ucjRm87cMxg899OkbwaPzGI5I0g+t8zOBjH5ARXKoB50glmr/FEZnBxz4jE7iqsO+HZAa3fUpm8L6PyQgeXeBwRFIxtnGOZNEIjj5hKsfunCJZdIKLszKDMx81KQfXaRnBowscjkYqxm4ZPyrRBg5HI1VjT86PLBrB4WikeuzM+ZFFKzgcjVSR3Tg/Ukl2uBxcTE87K4LBpc3jaKSq7JJwNFJZtnF+pLrsVnE0UmH24PxIpdlz8WjkFDxxfqTi7GI8GilFnfMjVWg3zo9Uoj0MP2Fr7gQJAq/KUh84GqlKG4pHKtGuBQck1Wh/IB+pSHtgeqQi7cXpUS15p0kweA0JCQYk1Wl/ICGpULtzeqRK7Q8kJJVqL06PfN07WYLB7ZKQ4GKcfFdOj1Su/YGEpHrtwelRFGxfmaafKqzftfl889K3MnF5bgeq/M8fZGIN5QuFuD8yIJXbFBmR8rO/oxarV5qe0JdP+u7tX0XXqpNZffeqN0qqB3zx/nc/zju4B/xO39qtKLoyGVy9d5Qf2CFceU584Wq/U+HC1Xwn84UXD/XSrQaEe6yXINIYXP13dPNsEO6xXt8ntKIp16nGQ0/gasFjNeQTBFe2U42Aj+C6nbk2TQJXF57K7a42PJnbvSnjyYIeELga8SjZAy5GnXgKt3v3sLa43YfSnrjd1YzH4M+pVjyJ+8ZQ7hN3anXjqdzoasejlDe4GGd8eXLfUE+exiOpmvIUHpCWUqDYW5fkZ62OjS7FNRl2DCmuJWHHkOJqAwcktbZsFRu9qDNPxo7he6hvkNgxpLimhh1DimspOCBJcbXF7e6kr3Vud/XnMewbRQ16Eg5IUlzT4HZXi57K7a4ePZnb3Ulfm/DnbMqH4r7RlBRV45BI4N1PWosbvSstCgckaa5VXylDDyVG4Xjk5MjPFBaHRARXahR86+k7r3+dmcL9qMUJkvTW6k4Kv6HlGy/nR2UpN4qHo+Ubb7f1noO/lVsz50eSW/2XqsAYXPlROByp9WV3H81sQ7Lsey/nR0qzXYq8cDHOv7PcFC6mKEkKhyM1wKzuppP5nTpgds6PzHz79W81w8U4BU+cIkl3zQNHJOmuximS2mA2TpHMKXifNCJZ892XMyTJrqngiCTZNdMf0+m3dRyR1AizcYZkTr9HohHJ+rpNTpAkuSZOkCS5lswjkhNw4wRJ7TBb4xFp+ubLCZLNeZuLRyQn4IkTJEmuxXhEcgJeE45IaozZOEGqyXffiiNSTb77coIk3TVNHJGkuxbOkSS8Vs6R1B6zcY5Ui0lCohGpln6pSAztFDxzjiTdtXCOJN2VikhqkNk5R6q1fCIiaa7SwhxJmusHGpI01w80pKhOv2c9cJ3ye7n19VVv5Vb1RFT6rx259XmuUllPWbkpLlfvv56q0P23qfzqv96IhdEWPcLay4c+f9LzS+e5EXl96RsxMJ+MWgSvkVGLoPNchxC4c5x72SiD13MdguDjZNQSeE3nOgTB7WTUIvg41yEErinrV/Eog9vJqEXwfq5DEHydjFoC9+PrzqhF8H4yahF8nYxaAh/lZNQieDsZtQg+T0YtgWvk+uJ2d6KzM2oRfJ6MWgJf+QbXserJqEXwcTJqAVw6486oRfB6MmoRfJyMWgLP6WTUIridjFoE7yejlsCd4+yMWgQ//VgYvJ+MWgRfJ6OWwK2cjFoEbyejFsHXyaglcOc5O6MWwdvJqEXweTJqCbzlk1GL4PVk1CL4PBm1BO6E6H6UQuh6EmoRfOwaUwQfKRJqEdR2lSmDj5NQS+Az7YRahLaTUIvg/STUIvg6CbUEvspJqEXwfhJqEXydhFoAVzH/TqhF8HYSahF8noRaAvfT606oRfB2EmoRfJ6EWgIv+STUIng9CbUIPk5CLYFbOgm1CF5PQi2Cj5NQS+DK2Z/4Cat2EmoRvJ+EWgJvCeLsJNQieD8JtQi+dkItQStfn9MjFfZPTo+kMu6EWgJXvj6nR6rv3wm1CD5PQi2Ba9Jw4tFo1pNQi+DzJNQSuEYOJx6NVj0JtQg+TkItgKvQf3B6FAPbF45GUhkTp0eq9d8JtQhuJ6EWwftJqEXwtRNqCVoDiDk9ksiYOD1SwX+BJtf8YU6PYnI7p0cq+B+YHqngf3F6VB+zbRh8noRaAtccYk6PQmRc/ScB6Xclue9G8bx56VulUerqj0rjv6QflUZ1i76edSmNf7pUxfLHv6cs6vje7M0HPL/r08tUoFnie3595eupPwo03/0Y77CqzsxhHAT3B06NLd/+DG+E1HybimdwMarOrBTrj1vmC4/SzBIBAcFVmskXHqWZEBt1mXzhqssUF+8QPjxm59grCVwcTzQCfp+qy9T3CRejuszKjR61mfzhitpM7hWqzVSLsgXhKs7MIeEQuJo4LW73KM7kdldxpqg7XEwUZ5bgKAiu4kxudxVnVm73KM6EvqHKzMl9IyozuW+oMvNqLMzgqszkRldlZse+oZ6o3bBvlKjMxAEpZgQNiI2yTGx0Ca2WsdFjRtDEjqHWqL1hxyhRl8mNrr5Oixtd5ZkdO0aJ8kzsGBJaW8IBKUYFDRyQNCtoVm73qM/kdld95sS+UaI+EwekEvWZ3O6aGeSxd8KHIOozoW+oONO/0gxXEsWZ3DdUnKnAC5+AKM7MkbGC4L77Zu4bKs50R51wMVGcyQOSijPduSd8AqI4k8ckFWe6o8JtpkRxJvcNVWcq9rLFxAwhOSoLA9JaCydJ0lqrO+pknhdjhDhJ0hyh4d9qhouJEk0ck2KSkIdfuJao0MQhSVJr5RzJokIzw+Abs4Q4RdIwoVVxRLIo0GTPbswSmjgiWVRn4oikFqq94IgUE4UWjkgaKbQ4RZLcmg1HJOmtxilSjBUaOCKpm2rnLEmThWbGESlGC3GWJL01Nx6RnIJb4RFJ04U4S1JT1d55RFq+/XKWJL1Vo41pRNKEIc6SpLdapRFJcmvjJClmDHGSpCFDs9GIJLU1cY4UU4Y4R5LaSiUkaa2NcyT1Vh2cI8WkIc6RpLcmzpGktxbOkWLaEOdIElw/UJE0b2hwjhQThzhHkuCaOEcKwfV+v/ShWvlot/rmlS9667y6G/6Ays+Jndb2WBqJsb+lM2ZI44U0ZigKL9+OHHr+vOEUXfds9c3nPn/Y00oV0q8H9/WVLwaciujXd0/QEdARdN2D+WJoxfIrHhK0QvkVVABavQZ2KEdwhXK8cjV53aGcwPMVyunaNd8l87VnxXK+9nyP5XDt5RHMEbyf+wAEvwdzgrVy7gMQ/BHMEVzB/FLgCLwqmF8bKII/gjmCz3MlQODtEcwRvF5XAgj7iOQE3vO5EkDweq4EEHycKwECH+lcCSC4nSsBBO/nSoDAZzpXAghu50oAwfu5EkDwda4ECHyVcyWA4O1cCSD4OlcCAK4er/tKAMHbuRJA8HldCRBszudKAMHruRJA8HmuBAi85HMlgOD1XAkg+DhXAgSui8SEA1KJu2+KHedKgMA1AoYzI/Ua2FcCCN7PlQCCr3MlQOCtnCsBBPet937YRfB1rgQIXLeI98MugrdzJYDgvvteh12C1kCYzM0+2rkRQHDffK/DLkE79W6cH6nhwL4QQPBxXQgQrLPvfSGA4PVcCCD4OBcCAK52A/tCAMHtXAggeD8XAgTu/DtxfqTurvtCAMH7uRBA8HUuBAi8lHMhgODtXAgg+DoXAgTuFLxwiqR2A/tCAMHnuRAg8JrPhQCC13MhgOBzXwgQtDPwwhmS2g1UzpDUbuB+IUDQPZ0LAQS3cyGA4OO6ECDYkc6FAILbuRBA8H4uBBB8nQsBAp/lXAggeD8XAgi+zoUAga9yLgQQvJ0LAQSf50IAwNVuYHGOpBav+0IAwee5ECBw5+CVcyS1G+icI6ndwAcqkvq8Js6R1Of1AxVJfV4NcyS1G2icI6ndQOccSe0GJuZI6vL6gYakLq+ZcyR1eaUaktoNNM6RosUr50ghTFv/ydP1uwLu1XPA3jtVXq/7dpQ4PwvYT9J0qd/1HCh/2v1co/r310uIlgj9E/xdyg4ZW8nwqqBRdYFk7F/1d++0v3HXr18X9/QJz+pb9q98RMR6fekbsc7fRwUsHcKHf+sjjtIErhp/5dwbhNttjhk7BYL7Q6KBxXAxqvHPM3YKBLebTWhFPzA2lV4uCPcNtFwNjAncD4xTX2mD8H5LnRvdMUXFLnAxKvDX0wsX4yfGpq8ULsZPjCNmUDO4Cvwzt/tstzS53WMeH/cNDeUr3Dc0lW9xu8dYPmz3EmP5sG9ElX/CvqEqfz/cM2zM5cMBKUr8Mza6Mk/HxEZX5ulq2DeixL/ggFRiLh83eszl40aPuXzQijGUDztGiaF82DFU358rDkhR35+50TWUb2LHUNppb9wxYigfDkhKO3WzBIMi8BjKx+0eQ/lmkCgE9903cd/QZD7FXrgYTebTtwofRxX5Z253TeZzR4U7aonJfNw3YjLfjBpJBNdkPh6TYjLfjBpJBPcNmJOkqPJX7GWLUeapyVfZYpR52jhJiip/99XJnM9iMh9ceIzlm3GmQ3CN5cMxSWmnfvyGxEFpp41zJKWdDs6RosJffgrRGsqHI5LFUD4ckaLAn1Mki6F8OCJZDOXDEUmZp6vgiKRC/7RwRLIYzIcjkjJPq+GIFJX+nCIp83QMHJEsJvPhiBSV/hlHJFX6F86SLCbz8Yik4q/CI1JM5uMRSfVfnUekmMwHF64y/8QjUozlwxGpxlg+GpGiyp+TpBpT+XBEUpV/bjQiRZE/50hKO62cI9WYyocjkjJPJ+dIUeXPOVKN4Xw4Iinz1DhHikp/zpGUedo5R6oxnQ9HJJX6J86RakznwxFJmafGOVIIfPfrsg8VLgl8ddaQ8F9e+l7gk0zwBHsW+Pr3E5yirv/XS6GTcmfpFZq37PdewCu+6159dV4+/LzNq+g3689e80aKS+LfEY0Q3I+yc8aZDcG7+HfsGAi+1BsmwhGB+wGyqzMjXIw/uVN9/wzCl/PvFSISgasTboJGb36UHTOcAsGnyHcEIwL3J3tkbnQ/PU51hoGLcYqR2goxg8BHdv69YptG8KrGMBGMENyPsh0a3Y+Ow7jR/ei4EneMqUjEHWMlp98z9mkENw8E3Oh+dGyTO4YfHUfDjqGEv1WwY6i+PC0ckNyHRL+p3Uv2EGnY7hrq3hP2DeX8jYEDknL+VsV2V4l5ztzuZaq7MLa7ZQ1bhNjq3Bv7hnL+xsIBSTl/q3Oj16rWwjQg+SlWrYWpb5SW1FqYBiRNde8VByTl/M0Mje4nRzdinBsIvPvW27hjdN963Uvhw+IUqC4cj5Tw1zu3uR8cnXxHMgaCr1uQJriYWUS+4+CA4L75coJUpm++7qQZPgB+cOycICnpbyr0wsWsKfIdBwcAt6RbXByPLOkWd8bBAcF1i4vjkZL+HBIHBwSPW1waklRentxPM1xMiVtcGpKs6BYXhyQrfVe1IbTucXFEUs6fXGmyOKD68gQpkpkucXFEshqXuDQiaa57GzQiKd9vcIakhL/FGZLKy9PEEcnPMLfCGZLpbFlwRNJY98YZkjL+RscRSUl/izMklZfnhCOSjbjDxRFp6hqXR6Spa1wekaaucXlEmrrG5RFpxTUujkhL17g8Iq24xqURSXPdOydJSvqbiUYk5fwtzpFq1kUujkg16yIXriTrFhdHJCX8dc6RlPA3MUdSvt/iHKkqhYpzpGpxiUsjUlUKFedIyvjrnCMp4+8DEUnl5YlzpNrSJyJSVQoV50ihCd7nklHR7C4Gvv+IVzFwxoH8CfWc7KevX8Jj/92h7oFIoBZdd83jCm0vn/38gT++0inmnkfy+soX86ms5D6OBKBV1t0g0s44EgTvZxwJgauiJPNla4A8XIiqSSpft6pJ8jXOg8A1P37xdZd2RpEg+DqjSAhc8+MXX7u1M4oEwecZRULgqia5jyJB8HpGkSD4PKNICFzlJIXbXfPjJ7e7R6zddZjAVU9SuGtofvy91zaCjzOKhMBVUlK53VVSknEwihHyk7uHSkrgQlROkrnNNT5+cptPdf3mrqFyksJdQ+UkV6RncImY2Oaa7LSHkSC4REzsGjFBfmDXUEl3rTgkqaR7DyNB8KHzArW7Jjutjl1DJd17GAmCj31TieCWzjASBDedF7DdVU+SsHvEBPmB3UNV3XsYCYL3M4wEwaVlcru3cqaRILi0TO4eDRq8lzONBMHbmUaC4HNPIyFoTY8f3C1GPdNIEHyeblEErgHynCGpnntPI0HwcaaREPhKZxoJgtuZRoLg40wjAXCVdO9pJAhuZxoJgvczjQTB15lGQuCaIH+fRoLg/UwjQfB1ppEQuCbIc4akku7GGZImyN+nkRC05TONBMHbmUaC4DOmkRBozWcaCYLXM40EwceeRkLQLZ1pJAhezzQSBB9nGgmB93SmkSC4b7wJB6SYH8/5kUY7rYYDkiq6M+dHMUB+8YDk9Ls2HpBmOfNsEbzdxuIBaUrD5AFpScPkAckp+J5ni+CSMXFAUkV35/xIA+Qn50cxQH7SJ0wF3R/IRyrotoIDkgq6mcU1Or5zgqTR8R/oR9J2EyZIMTqeEyTVchsnSKrlbpwgxfR4TpA0PX5ygqRi7g8kJNVzF06QVM/9gYQU0q7I91uv+10R9Pt67jfa7eumHQfbp094knjX8mdXf/jtl69R4nf9Fz9Uxu/GVddt+fr1UwE47yrwyBhVTf73v+x6z0ed+K78No9V1t7pDvcEpDfLP2t+1gd8u9Qs7/nuRW/kBHVFNR3JCVwlpLWF4Rnct0vNtjUI9+1SakWHcLePZnLCxUgmDktDuJ9TReAzhPt2eTFDBJdUXLndJRVnbndnqUvfamVwScWtasthcN8uC7e709S6uN2dqvbO7S6p2ODPKZ04Yd9QFWnWVwofR+nElRtdOrFIClyME9WurxSifcPUNwrXIpnY/XTCB2D4jkl/TCep5l9npnDfLo37hTRid1L4rDhHnYOHI8nElYcjycTuoxN+Rc5RbXK3cI7arotQBvdzasHhSLll0300v90p38D9oNpxOFIBabG4kEVwycRyU7gYJ6lt4HCk3LLhbjqZ3ym3bGUcjlREmvxbzXAxzlRLwxFJRaTVI2+Gi3Gq2haOSEouGx1HJOWXLaMRSUWkOeGIpCJSDx00IqmItFb41pKIM45ISi4bnCEpuWw1GpFUQJo5QVIBaeEESQWkteOIpNElnRMk5ZbNhCOScssWJ0gqIM2VRyQpxZwgqYD0niKC4CtpfCuOSFKKOUFSbpkDaERSDWnmBElFpGY4IqmItHGOpNklfeCIpOSyyTmSqkgT50iqIs2YI6mI1DhH0viSxjmSxpd0+mP6OXdyjqQK0sQ5kipIC+ZIKiA1zpE0uqRxjqTcssE5knLLJudI1Rl44hxJAoSt+pPF/OR8/d1Q6dcXvUoPM66lf0TpMuN75UEd0ezMlE7SFO41ptIVoivc2ENPnt+/1z234/Vznt/86ZW6VenvXvZiqGjv1eJHJmhdqLQ4NRG0EsMlpyB09PZibxx9vVpsNwStq5QWLgXQ0dWr/8Tqr2glhMf1CELrLgWvO0dPL7zwHD298Mpz9PTCS8/R1ouvPdp68bVHWy++9mjrxdcebb342qOtF/aJHG29+NqjrRf2ihydvZhb5GjrxRcebb2wN+do69Vif0dw3aS04FUEHm29eqI/arT16rHBI7gywrnRo60XXEn09OIPV/T04o4RPb1acF8EVzp4ix0ewXWZwo0ePb16cF8E120Kd4zo6cWdOnp6cbtHTy9u9+jpxe0ePb2wb5To6dVDlEVw9fTCdi/R0wvbvURPL+wbJdp6sQemRE8vHJBK9PTCAalEUy9u9GjqhQNSiaZe2DdKdPXCAalEVy9u9OjqBVcSLb2wY5Ro6YUdo0RLL+wYJVp64YBUoqVXU2ICg6ulF3eMaOnV4jCO4GrphQNSiZZePU56BB4tvbjdo6VXj8M4gqulF/eNaOnFA1K09Gr0CYuOXjweRUevFic9BFffIIpVR6+u1AQCt+joheORRUuvDh8Xi45eOBxZdPTC4ciipVeL8y+Cq6UXDkcWLb2aUhMQPFp64Yhk0dKrhzyI4GrphSOSRUuvHroTgqulF45IFi29cESyaOmFI5JFSy8ckSxaeuGIZNHSC0ckJe81wxFJyXuDUyQl701OkVSZnSqNSCrMLpwhqTDbJo5Iyt1rkCEpcW8UHpHGuk3OkFSVnTqOSE7ACydIKsqunCApb0/aEY1Iq30iHilvb2UckVSU/YGCpKJspyY0Iqkqu3KOpMS9EJFYEFDi3uAcSYl7i3MkFWZnzpFUmP2BiqTsvco5ktL3PlCRlL43OEdS+t7iHEmV2ZlzJFVmF8yRlL33gYik7L3OOZKy96iIVJturNJPbP67svOVutfe+2yx1407WuI/fcJzdbab8TEl/JHAF2l5Su4e13+jN+NbGX3okcuxqNdPe/qIJ+FYk4qj/+ubV74Tpe/jRhB6xrQRAl15DxtB6LpnjSC0hhRH51eCzklDimNcB4NrSDFeuRTpmvDSpUjfR40wuO1RIwze96gRBC9pjxphcA0p5msvGlLM117WHjWC4Fb2qBEGb3vUCIOvPWoEwWuJUSMM2/aoEQafe9QIgre8R40weN2jRhh87lEjCN7zHjXC4HWPGmHwEaNGEHakPWqEwZXDzR1jjD1qBMFn2qNGGNz2qBEG73vUCIOvPWoEwZeGFHOnXn2PGmFwDSnGdpcifR81wuAaUox9Q4r0rNjuahV6HzXC4JpSjH1DovR91AiCF40pZr4hRfo+Z4TBNaOYG93ynjPC4BpTjH1DirQNHJCkSN/njDC4xhRzo9cec0YQtmlGMXYMKdKFEyQp0tecEYZee84Igvey54wweLvPGWHoteeMIPgoe84Ig7c9Z4TB554zguAz7zkjDF73nBEGn3vOCIKvvOeMMHjdc0YYfOw5IwQuTfo+Z4TBbc8ZYfCx54wgeE57zgiD254zwuB9zxlh8LXnjCB4KXvOCIP3mDPCsGvPGUFwK3vOCIO3+5wRhp57zgiC17znjDB4u88ZYei554wgeMt7zgiD1z1nhMHHnjOC4D3vOSMMXvecEQYfe84Igo+054wwuO05Iwze95wRBJ9pzxlhcNtzRhi87zkjDL72wFoEXxpTzCPSarc5eERyDp44R5IoXTKOSBKlqYQkRbo1HJGkSH8gIkmRnpgjqVNo4hxJgnThHEmCdMUcSXr0BxqS9OjBOZL06A80JHUKTZwjSY8unCNJj66cI0mQbpwjSZD+QEOSIL04RwpNutlPvqbf1XC/z+l+eemrJj2jRvUJ1Z8kadXInpxuXSOqH9TO647ug+O1XvxFlnYvUC+I/OYTnz/mRZbu9zzf11e+k6V3EgtBK4fluhcD6PVIYSHoK4MFrluNOBpet5TpXvDCpUyPe4ovgj8yWAhcnTjuKb4Ifs9gQVhlsPCFqxdHvbLSEPzKYKELL0phgQu3R/4Kgit/hS/cHvkrCK78FbiS+kheQXAlr2Cf0OyqnbxC4GrDcc/vRXAlr3Cjt0fyCoF3Ja9wr+iP5BUEV/IKt/t4JK8guJJXuN3HI3mFwOcjeQXBlbzC7T4f2SsEvpS9wn1j3bNXEFbZKzwarUf2CoCrw0jq2OjqMLLTVxD8kb5C4FnpKzggSZPe6SsIPq/iJ4Itj9wVBG+n/AnBH7krBG7KXcEBSZr06Nzo9shdIfCaTwUUgj9yVxB8nAooAm+P3BUEV+4Kt3t75K4QeH/kriD4yV1B6EfuCoI/clcIfNxzVxBWVZtXNh2Cr1MAReBOvO3K70XoduqfEHye+icCX7733vN7Ebye+icE9733nt8L4OowYpwiaXpVu+f3Ivg4JVAEnn3vvef3Irjvvff8XgQfpwSKwJ1/2z2/F8HtlEAhePdD75VNh+DrlEARuFPwdM/vRfB+SqAQfJ0SKAJ3Ft4qjUiSpQdnSNKl58QRSU1GEmRI6jBSCo5I6jBinCFZJNzRiCRNenCCJE16cYKkDiNp4IikDiOFEyR1GKmZRyQn4I1zJGnSo/GINPupgSJwJ+Bp8YjkBHzXQCF4PzVQCL5ODRSAS5P+QD6SJr1roBB8fSIgqcPIroFC8HZqoBB8nhooAi9510AhdP1EQVKHkcw5kpqMUAVJ46sq50gSpTvnSBKlJ+ZI0qQX50jqMPKBhqQOI8Y5kqZXfaAhRYvTqwf8pwLudy1O36jN8/5Jv/3l25+//X86IYycCmVuZHN0cmVhbQplbmRvYmoKNDggMCBvYmoKWwo0NyAwIFIKNDkgMCBSCjUxIDAgUgo1MiAwIFIKNTQgMCBSCjU1IDAgUgo1NyAwIFIKNTggMCBSCjYwIDAgUgo2MSAwIFIKNjMgMCBSCjY0IDAgUgo2NiAwIFIKNjcgMCBSCjY5IDAgUgo3MCAwIFIKNzIgMCBSCjczIDAgUgo3NSAwIFIKNzYgMCBSCjc4IDAgUgo3OSAwIFIKODEgMCBSCjgyIDAgUgo4NCAwIFIKODUgMCBSCjg3IDAgUgo4OCAwIFIKOTAgMCBSCjkxIDAgUgo5MyAwIFIKOTQgMCBSCjk2IDAgUgo5NyAwIFIKOTkgMCBSCjEwMCAwIFIKXQplbmRvYmoKMTggMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMSAwIFIKICAvQW5ub3RzIDQ4IDAgUgogIC9Db250ZW50cyAxMDEgMCBSCj4+CgplbmRvYmoKMTAyIDAgb2JqCjEyNzY2CmVuZG9iagoxMDQgMCBvYmoKPDwgL0xlbmd0aCAxMDUgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nM1VyW4bMQy9z1foB6KQ1DYCjAB2bBftLaiBHoKcuqCHuEV66e+XlDSTkTROU/QSBMpI4hPXRxoV8N8V8r8QSX0+D08DpjtUgZTx5cp5ZUCPzgOgOqt0Ro2Qzo8Mb04ztpz8JCua5vN39Wn4MYB6N9w/MPSLAu3U7wF6cwuVH4e7hZ8ihTfr59JTg/SGPX0ags10IK8xuhijGklR0AQQ4yiOX78/k9r/THHd1VzxlrRHV3OIFxqNplzzpSbH9kX6qIgNWQsA1B0F1ty4FHr+Xgyy6O9VtbXIiBfdQ6ch+mqbdc2nf3GpViHu7E7D9ZEzhqBO34pj3IpWGz+yYwx36nRW9xsOI96oB3X6MBxOdRQWteMufVtZTlwiIYXlSLwd1a+vSdXTYB3kOGUzovKEhVd24lXFqpCGUs4Uh0lVpjhLoA3aKUt4y2vLa5+/RDeKr8Gkj4nLEzGpyRQsL7D1XuRmu3whEiOvMFsim/dZU6nPWkFHZUjHaKWhiqfWF/wMwhUUHth44MWxAL/gXG3KTWSpyXsDs5dXo0nbI0sFFVqJPEnvx6IDchxw7JAyGai8SPpahMQO4+ttw+FGyrlpY+n9n2xLlsW+WDK+s+9yDJIdXPWDsHvDmi3j7Y6vd60UXfY92Tadxm3J2e2qJ32822euSL5Fq3BF0va3DOToVzhibcsRTpBxhQ0XLEqkEztXmiiADmhiDJf6CPf/2Ue27SNh9tQ7Zvu8n2Ne76NotJHow4t91KFIrImV3TLzyea+rwAPav9avs7Yhm3TfZoTK/fT7EhyKj3pV3C7wvFj4XlYt9123Gz/kLOPIVXOZK6a5Vw51p0wWz4UHpiCKVNHjuZ2xRLVU2T2rspdqjE1Wn3dbfPLeCke/mKvJ7H+Uh4LxwQ+z7ywwh0E15CnKe1iEKTiHPuGrrB9caYxPJU1Lho0/bz/AdgBShgKZW5kc3RyZWFtCmVuZG9iagoxMDMgMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMSAwIFIKICAvQ29udGVudHMgMTA0IDAgUgo+PgoKZW5kb2JqCjEwNSAwIG9iago3MTQKZW5kb2JqCjEwNiAwIG9iago8PAogIC9UeXBlIC9Gb250RGVzY3JpcHRvcgogIC9Gb250TmFtZSAvRUFBQUFDK0RlamFWdVNhbnNNb25vCiAgL0ZvbnRCQm94IFstNTU3IC0zNzQgNzE3IDEwNDFdCiAgL0ZsYWdzIDM1CiAgL0NhcEhlaWdodCA3MjkKICAvQXNjZW50IDEwNDEKICAvRGVzY2VudCAtMzc0CiAgL0l0YWxpY0FuZ2xlIDAKICAvU3RlbVYgMAogIC9NaXNzaW5nV2lkdGggNTAwCiAgL0ZvbnRGaWxlMiAxMDcgMCBSCiAgL0NJRFNldCAxMDggMCBSCj4+CgplbmRvYmoKMTA3IDAgb2JqCjw8CiAgL0xlbmd0aDEgNjA2OAogIC9MZW5ndGggMTI0IDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nN1Ye3hTVbbf+6yzT5qkTc5JkzZ9pWlDSnm0pCmlFooN76eIgFJAsEIpiFZQQMROpdopr7YGBm0p9GpFLA8dpsNgCRQjj6I8dBiEooIzyIijhcowWopCupl1UsDHN/e7f9w/7vfdpGufvffZZ611fuu3114poYQQLXERIHmznllkr5pFniWE/pYQwVWwYE7hQxnESQjswlVvz3liaUH6JOEIIfqrKL65sx/N/1cFCcF7tSj95uKE1ILaCDmN0m1u4aJnZ1aTGOz/gPLEE/NnPUrCSAQ++zyOFxQ++uwCdll9nubj2L7g6dkL9OvJZ4SIeYRoYojqmzDpuUf0224+Ysy+RuJVU4QcXROedud6c3UnZf6QB3Go3qTBBdhqCnkc6jl5c/UtM/Pfnv/pEyOeJHPVDl7vSAFKC8ohlCKUOpRclAMoO2/Pq2tWofhRCsWTtBUlH/tlKKUo6nje7efVdR0o3qD1GCGU9CKPE4kIRCY1qrdsMlUIIyLxkeNB2U7X4rUAV/vICmEZrrzz9ZFDeF8IrvPR43QV3Yv9ehLAtpR8R3XwAc3Enh+fzRUTcNaLMVGf9MLXZDHsI6fIUXIOe1/TLMBn6SmSQM+jtlU/WQE/jg5hWwR+yKXxtJBspjtQYxHanE+WCXgVJqDmj1TEyEdkBX7Xkc1kPvZVz0rR/7+SXaSctJP1QiuZiv295DD6w4mhywZtIR2oabswUCjAdYdR2waygZaSFrJQJFSHKy+wFqEXat0VZNVMUsta2HoVD7y2sKt4h5A4ySeZNQ58CxW3erqPpgnjyCl8vohMgofhKThHy0SHuARaiVcgkEfmkROsRTITr8ZBvFIBXSrmBb9F6vsJS8Q8up20os6Z8AOOE9Cz2uAbE7JLmMDGsXFq9HGuNth6u1pJJh/BDcR9rcDpSHE45OCdInEsWU824ZPdERlC5kMGWp9Pilhl15dsx28Kq4Qq1B9Eg6YLA0mtUEDL0dsORHM+DCWZaCOOXSFldBf6TTTFZCFrIcRMdmskJoJASW+73CA4R+U3eB7ItR+ZkpDS+1dDu6yxN5DxDWFL7b5bt8bnijFsSgOLbQBnSIPodFz4725eSOk9Znyu3Ucjhw29rXZY3lCcnJiLXXWE0zg/bGjwnmq1gTnxb1Reg33WXPtqebWj/2p5dv+UPUIJtex8eTobFEstpIoAtiVEpGYMNNDwYGsiJmyVYF8OtkYkBVBDsB+28/IINshJw0gxjkIxHQHVEze2uqA+bXBVCBIMqCbYl4JrWLAvBuchOCMEZ6hnCgfOobMYAhxucrjhhh+b4IdiuN5Rwa5zuL5f7Lg2hXVUQEeJeK09iV2bAtc8YnsSfP9dH/b9DfiuD/yLw1UO/3TDFTN8WwVt6GIbhzbfrZOeW+LlEXCpNZ9dqoLWfPiGw9f/iGFfc/hHDHzF4eLj8CWHvzfBhS+i2IUb8EUUnK+Cv3H4K4fPz1nY5xzOWeBsFXz2qYV9xuHTSj371AKfFMOZ/tCCg5b+cJrDqY917BSHj3VwksNfOJxYrbATsfDnCPiIw4dVcLzcyY5zOMbhaDEc4fABh/c5HN4Qxpo5HOJwkMMBDvtR334zvBcK/nebmJ/Du/ums3eb4N0ScV+Tk+2bDvs8YpMT9nLYUwU+7yC2m0MjXhpvwDuoaxeHP+XDznz4owEaTPAHDju4pxN+z+FtDm+ZYDuHbVsNbJsbthpgS73CtiRDvQJvbk5hbxbD5hR4g8MmDq9zqHstitXlw2uvyuy1KHhVhv/SQS2HjWhkI4cNYVCzPpXVcFifCtVov7oKql5pYlUcXkFuvdIEr5SIL69xspenw8secR2H33FYi+O1TbDGCV4EwzsIXsK3fckMlXqowImKfChH0MqdsFqBVRxWcljBYXmZwpZzKFPgtxxKObyoDGYvToQXOJQ8C8ueL2bLODxfDMU2+A2HIgM8x2EJh2c4LF4UyhYbYbGPEs9ZcVEoLNovLjTBQo/4NIenOCzgMP/JiWx+FTxZmMyenAiFyfAEh8fdMI/DY26YewPmNEEBh9kc8jnMmmljszjMJDKbaYNHOeRxeITDjKl6NsMA0/Ph4SMwDQfTzDBVD8joXDNM5vAQhwdjotiDbpjEYSKHCRweKIbxHO43wzgO99EUdh+HsU0wJhlGj7Ky0ZkwaoiJjbLCyGFWNpLDCByNyIfhOBreBMOsMBQnhmbCkMEKG2KCIT7B49GKgwcZ2WAFBvsEgqNBHgMbZIRBProfR56cUOYxgMdHS3CUE6plOaGQ46MeT754L4eB6MLAG5DNYUAy9OeQhQBn5cM9adHsnjGQyaFfipn145AxBvq6olnfMZCOl3QOblzo5pCGt9OiwRUNfbDXxwqp2giW2gQpvcNZihlSfIJqtressN7h0Ft1t0rs1dPJenHoiSt7OqGH0J/14JDMoTuHJCM4IwYz5zDoZgQHh0SjkSVySLCnsIRisKdA/BiwoWUbhzgOsYhtLIcYjEpMFERziOJg5RCJGiKHQ4QlhUUMBotZZpYUMMsQjuvCzWDC500cFHxzZTDIaEFWQO7CzmgIZUYjGLuwM4TpmCEUDF3YhSF2YToIQ+x2iaFaCFW5lSnqOejwTXQctBEQIoOGg4SqJQ7MDIAvBzfwcEhhQn+g6ABNASID9dH8skra6//Ph/xfO/C//MT9VI2O/ZVg9U0XoHyB5e9KFLxCMooP61Q7yhqUZqwfs1H+Qoj0OVYHWE9q+mIRjPdDXka5iGX9IkJ0Igqu1ceqFbtaT5O5vEqcyzZjxa8h8fuCZzHqoOZGGsJKBZH0aT7dlkbk022n21zhSoLiTFAS5ooksBBiAl/xKo3hh++elnp01dkFtwaLmViVALF69JSsFKlNIDYQg0+jkvZml5Y6KHWCyR/4lrX8WCitU59rufWlKGHt1Z0s9njCQgWDPjLeFqIVNLpIW7xtcJzNqtPb4kULKaf7RXO5Zb+1QhErnH6lJjlOp4+P0ZD7YyTDKI1kThyWjFbaAm0XFVMWftDoxfY2mV+7Il+7YorMwlkXli0a2fCtEpmlCbZTEqkllToSJYs5Ip7aqMUsORKTumfYaLq7X0bfPkIqzejbL92Nh+n9dROLix7ePXpVZdvHExvnzdk36bnl10KGvfa7s8em1otZu1JTH5g4ZrTDEF1bXN/kcPgzMmZNKUkTDPHrlr3+h4QgRocwWjFYwYWT3h6r1gBqhVKh+EM36qggkdFhWkk/3Cy3t7kDiFif7Lb2NnQxy0UVh9I3SXUSO+nKvehbhBizZ95TL5T7fGlbF761TWjsHC00Vr+0+63OFZK5c3PerAtqfIsQ21zE1kJiyTBPEonASqlcWylFNKLdMHogqiLcH1YTB0KsrI2QyKhYkzwyDu0H2ppVCLsAvChfwW/7FVOWgq5YEhApxCbTYqAOO1Fkku42aYIQasTcwJfv7cjdX/jYoWn8Jj9L7VfPXPeJa1eWvS0LM6ZKu4/ck7W7Vy+aRcNpKPXwvx3etK2hFnGpQ1x0Ujz+IkzyhGsJ6BpDD0MjA0kkkn6s1oAcCnyo+tMHXVNURMwRA6gFI5WhJGQkCMumTfmk9c13+Gf0PK36zfO1pw/Cj2tQby6pFJeKS/CXVoLHJDEQCBN30N9rJCFZJN01ciC7TX3J9rbILFd4BrXQDIo/mW6ehwlwoJHPqOczdtOBiOMBFUeMmx5xdHmirZiBK4zaCkuN0R+zMYqYTCOsoZIUPVzFzt0VvDaVeleCvnaFLogaVWNnUmRBJZkFgwlVK8uWr169vGxl55e9NxYc+6b1eH5Nqs8n9Dlz9lzL6c/PCs9OyOVH+T/5ZX548sRKtfwXyE7Eayh2tYhYqicqpJGENus2koOS0CjCWD2V2FgyRqdB3LIvtuFLqv64LwbQIRfFLWxBzJQEmm5xUEI/oYWBJ2khv0DjfT4xL9DH64XBwpDWu3xF/vyarwf/M18v/ke+Wv4Hvop5W4N0/XUOEYI5hAi/zCE0nTpgqT9w5T01hSAWqzA2I9FHPYkkDk+4VGEiFaF+U41VazIOBZPlXmuQ0LeTAQJwJxYZfZO6346FoMgmYW7FmjUVlWvWVLZe77jU2tEB58+eaTl3ruXM2Vr+Mf87v8BP0RSqJolUNQZ+/pA4Ce3KyIl0Tywj5ugKg7kixG+ooYfgYJxi0o+IRP4KP2OFfPHiXVo472Jzmw+/4MmSPXtSa/KPf/3NsYIaenVFF0dWVHYelXTeiZP5+/wSUuLoZHrtNk26cnAhxms++pRI3vB0t5qMWlFD4mIkjSW0wg7+mINRsoYoxpD7pHHKfcZxsdb7ooc55PYxDaGTxjQok6bl7iHRt/bfMyWQHVD3mUndcNkY1ew2t4KbPwuD6/KMcIku5pJcGleIS+vSufQ5ETmROdacqJzonJic2Jy4HFsJlIglrEQq0ZSElGhLdCV6b4Q30mv1RnmjvTHeWG+c1+ag04ObISKK/owsv2aNsDnxsdEr5m/NGD5+wNas0aOytmxJmJUzdjZcGTnsJD/fuUR44duFRV91LhNeuLpAvYp5edk5wxELigQWvqJpyCW5kWwSaBxRaaTuBOSQ4qCtgQBN4ydU3Gg+PQ+FQimuVRpJnSBSdW1z8OTDDWNJoPmCtvO6ULoZ416GfHME+daDPOnpqdOQaHuo1aghjVZNhSmh3P5eXEU3lX9h1CpGGXRS6FC7KFnu7YksaA4gEZRgImu+2B5QqaCSQckyBQ8nT5wr3mV3JbgS60gdrRPqdHX6TRF1kXXWuqi6aMN0epcfmRmZiiMDMzBmwL79BtCMrgScEQQt0kYF/8DX33juifU76J49A/5U8taHN7+/Tpevm7F/WkFTbvnhgUl2If2pBbMXnNrbY2znC/X5jxzY1HQwbvnSfn193btPmOBe18WnUuRTCHsV93+ax2pgIUZoJAo9GNKoC9FrsT6QZJPBjEmmOZDd7O7Kz+3ZzSpb1CSAwCm/yNOKUEA38RkzFp+4cGI7b6G92Kv8oLez7jcz19UfF/K89F60iXETc5n6v8NuuJurRaEa88AfQxhN04CN9NXJiGGgOWhK3c7hqhVVHK0wv/NhYXbnxuOsZTsfub0zMxjbeaivFOOlkPtRn0aPMYZqg197UKOTJBJiwkC3uVEdbszTH6qxcHmcMpGprNiJndoVF0G+yC7FQzx0iOxRxpPxdLw8XjFNp12Fw09sjRRLBzw36u1G3LvvlQ59ph8sTe356Yedp8S8c0uWJXYj5M6ZbMLcLXedJXfzRo3BTzdCMGOMwNxx+xx2u395luDx3xV3NWWhSXonlaEnMNXnU5NG66Vjszdw48qysvLysrKVcFIY8mNb5cTJFENBFZo5mevPnP38dMu5s2qM1fyZya6SZDLC04OEV1uwQqgPq5biy+31sdWOKqnGsq1HRDgBc5QtSbZBYrxZG99DDjQjmU+r+R63ieqg6mIH0hmdVMso8edlVFIvmnHXzS6WilhpQci6Wn752pwzcwren1m/c+f6DRvKa9cun+Kfu/TdUWcpWwXx3T945c+Xk7odzehbVfliTf1zhQuLkpP32u3n3ina3MXRDozvcOSLDmsHM6h8YSs1pFob4pBsQBxUj5u4uetIdrerhSwWsSzDma6Shhpof76Djj9G+wWObBcXj/WNvtGyvUuvF3FJQb1xZKAnUdTERVdrlHL5JXN1mMrIsBrNdhvyEfeaLpHI8TYEJNCMEAST/G0seDNu6iBB1TcmFjP5BSgqFieE9s7mXpN7f0Nl/uX1JYfHPbz30S3vNG15YMNwlcVrZSO/cqmNX7XbP3KnNWyq2+l0/vyf1/8GHZKl2wplbmRzdHJlYW0KZW5kb2JqCjEwOCAwIG9iago8PCAvTGVuZ3RoIDEyNSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic+8DwqsHBgYGRd+Z3BgAgogR5CmVuZHN0cmVhbQplbmRvYmoKMTA5IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnQKICAvU3VidHlwZSAvVHlwZTAKICAvQmFzZUZvbnQgL0VBQUFBQytEZWphVnVTYW5zTW9ubwogIC9FbmNvZGluZyAvSWRlbnRpdHktSAogIC9Ub1VuaWNvZGUgMTExIDAgUgogIC9EZXNjZW5kYW50Rm9udHMgWzExMCAwIFJdCj4+CgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9CYXNlRm9udCAvRUFBQUFDK0RlamFWdVNhbnNNb25vIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciAxMDYgMCBSCi9EVyAwCi9XIFsgMCBbNjAyIDAgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIF0gXSAKPj4KZW5kb2JqCjExMSAwIG9iago8PCAvTGVuZ3RoIDEyNiAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZLLboMwEEX3+Qov00UEhgCJFEWqUlVi0YdK+wHGHlKkYiwDC/6+xtclSi3xODN3Rr72RJfyqdTtyKJ328uKRta0Wlka+slKYjVdW73hCVOtHAP5t+yE2USuuJqHkbpSNz1LoVKTCUrGog/3M4x2ZttH1df0wBQ1S/zNKrKtvrLt16Vao9VkzA91pEcW+xhp5b/R5UWYV9ERi3yfXamcqB3nnSu/KT5nQyzxzLEH2SsajJBkhb7S5hS7dWanZ7fOS/d/+SRDWd3Ib2FXeePW2RO/o+SOUkcuFoP2njIJyjwVKSj3lB9ABSgDHUCh7ugpJZBALgHVoCNIgoJSYS/YGY+RUyCOHJQ8AYUcPOQcBA/FHgQP+xwEDwX2woOHoISHFG558BB6wkOa+eMP58z/Tv12S+RlcYO+TVAjv9zbMn/rUMjJWjcPfvz8ICwj0Gpa59j0Zqnyzy+micyrCmVuZHN0cmVhbQplbmRvYmoKMTEyIDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCiAgL0ZvbnROYW1lIC9FQUFBQUErRGVqYVZ1U2FucwogIC9Gb250QkJveCBbLTEwMjAgLTQxNSAxNjgwIDExNjZdCiAgL0ZsYWdzIDMzCiAgL0NhcEhlaWdodCA3MjkKICAvQXNjZW50IDExNjYKICAvRGVzY2VudCAtNDE1CiAgL0l0YWxpY0FuZ2xlIDAKICAvU3RlbVYgMAogIC9NaXNzaW5nV2lkdGggNTAwCiAgL0ZvbnRGaWxlMiAxMTMgMCBSCiAgL0NJRFNldCAxMTQgMCBSCj4+CgplbmRvYmoKMTEzIDAgb2JqCjw8CiAgL0xlbmd0aDEgMTU3MjgKICAvTGVuZ3RoIDEyNyAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJzVu3l8lEXWL15V56ln673TnX0l6YQQlpAQIIDQRkA2MSogoGiAEJBRARERAhMWSYiArAmCCBEBERAjMphAVNQgso06gDMM+DIKio4ReX0ZdUJS3FNPJ4DOzO9371/3c+lU97PWds75nu85VRBKCDFIJgFSMP6pJxPrisksQtgQQqgomjrxsceukVRCFDwnOyc+Oqvo79PsfkJsGwjp/NGkCWMLf7qD6HgPz0nXSXjBPso6P4UlZdJjTz7d5ydyFx7/gvV1eXTK+LG2h8hQQsxCPO/+2Ninp/JM+Txrj88kTn1iwlRbJ1KK7TUSwicR2Tc2bPbIiKqyh129/kESZNWEHFkR1rX19+fPmnY7njCG46m8Sa0H8Ft7TMQR4vjy588a73E80XL95r+7lBOkSB6wHViWYLlACpWT5AgMIvuVBjKNfUo6KZdIsVKEx0vIWfUSOcIjyBfKenwmmXTjXrJbmUGOsFzynpJBpqgKOaJcuN7IK8l0vLdf2Uz24/OV7MHrldxHyuQ1PN+gpmM9TizL8fmvyDS8Nw2vF8p68Fg+s1EdgnVEkOVYtmvH8Fro+hKljtzGHsR3ZxG3fI/tIVfUvS3Pz8X68L66hIzA6wSPe8pnIIFUY9mCY9ioZpPpLPf6WX6W7FGyyUilD1mN759h2eQQ7CaHtG9JX6WGZvM+2EaTNd75WMq09VhPDs2xZvEuGEYyyCRiJ4y4yTo564qfheOvgk/UkGP4eY/sIBvoNjyTczwNr1RhnxaRGXjlA3qMlrMOeG0buUJO4pNl5BjsUAgdRLLxKiFnOCNX6TCyF+vIpT6aq+HkKkOVvcq9So1yCSXXTZmunFAKlOk0GzbzEXwbllw4xLzkCEkgNfQ8mU72w7eQDXVKX8VJzsMJ2EG+wlYUrP8YWU62kGLsi49OISWsmN2LVw7zE2Q9fqbg/RN0Iz2JvdtPF5LT5HlQ2ACykZ7GcR0jP5GFMIyVEALZrAj7fxjrOoHvryfTFcJPU5MIloHX9lo2Mc76joMO/LT1uUJKsOVhZItao/q0ZGxFztg2+gFtUFeTKnISHoRpcJYuUpKV7coAsjw0A1CA2nCarpfvqEV0Fo5dfopl7WymUkB3kG+VAm0c1n1Ijgjb3Mvu5VLH67DMVN04pp50EZRjT+XdOHJCG6R0wvexBm0ujpqQKZBDJuNRMdlN9pAOUEmWY03WeNVu/Cd8c4PyBY55OV3GfiInoC9JJ0XKZZxr4iOkkpC3NJUrwChpn+iuZoGBhdXBe0YmfjQqqUP735wmurXEapJf7ZiVWHP9ev5IJYaPquax1RDQq5VA8hf/6eYXHdoPzh+ZWN3cr29Lrf0K+uK1+0bioTzDy3i9X1/rnmy0mgfwb2BBdeL4SYnPup9N7vGse0KPDjjcGjYveP2agEYf/DMAv2TBz5XwkxP+IeCqgP8JwI9O+O9KuBKAH569nf8g4HIlfF8JDY3wXSP8XcC3PeCbPLgk4Oss+OriffyrSriID168Dy582YlfaIQvO8EXAv4m4HwW/JcPPq+EcwLOeuGvc+HMAfiLgM/w8c/mwulTd/LTc+HUnXDyTzH8pIA/xcCnAj4R8LGAPwo4UQnHj8Xz4wKOxcPRLDgi4MNFHv5hLBwKh3oBHwh4X8B7Ag4KeFfAOwLeFlAn4ICA/R6oLQ3wWgE1bx3gNQLe2jeGv3UA3pqn7PtDgO8bE7wO+4LKHwKwV8CblbBHwBsCqgW8LmB3IbzmhF07A3xXIezc4eU7A7DDC69ip19thO0CXhGwTcBWL2wR8PJmJ385CzY74aVCqMJHqiphk4CNL9r5RgEv2mHDC1F8QyG8sN7NX4iC9W5YZ8LzAtZWOvhaAZUOqMCXKiphzWonX9MWVjthVSOsXHGArxSwYvkYvuIArJinLH8uwJePgeVB5bkALBOwdElHvlTAko7wLA7z2duhfLGNl/tgsQ3K8EJZIZTiTJUGYJEHnhGwcIGHLxSwwAPzBcwTUCIgeP33c+fy3wuYOxfmFELxMD8vDsBsAbMEPO2EmXZ4yoQZAp5shOmN8EQjTGuEqQKmCHhcwKNJ8DsBkz15fPJ98IiASXNhIp4UCZggoFDAeAHjBIztAQWN8JAdxgh4QMBoAaNGmnxUI4w04f7wKH5/FowQMBxbHp4Hw/xwH3Xz+yLhXh/cMyiM3yMg3wZ3Cxh6l5sPFXCXG4YIGIx3BgsYNNDNB4XBwDgHH+iGAQ64U0D/SuhXCX0F3ME68DsaIe8A3D4YggL6COh9m5f39sFtvVz8Ni/06ungvYLXXdDTAT0E5Aro3s3HuzdCt65u3s0HXXNsvKsbcmzQJR6yHZDV2cazBHS2QWYnG890QCcbdOxg8I5u6GBA+yzIaBfgGYXQLt3L2wUg3Qtt0wK87e2QFoDUgI2nuiBggxQByQLauCAJx5nkhcRCSGiEeBxCfCHEOSAWZzBWQEwjROdBFJ5ECYgshAicqQgB4fhSeBT4BfgEhAnw4gNeAR4cqycP3HPBVQhOAQ57OHcIsOPT9nCwCTDdYAjQ8TFdgOYDtRAUvKmgBvgBr4JA3HJz1gGoG4gAWkMLFy2jGf8v/CP/tzvw//kv7gbn6vubMhXLFSRrBejDumA5jj4VeaKyAksN8r+9hKgpWJ7GchW9FP5qdUjz7EhYH8XyEfLI7lg+QT46gBA7HjuwHscWQpzo1VzolFxNhLjnYDlHiAfb8q4hJOxB9FeRWIZhaSDEv4uQcKw7Ih8LPhdZRUhUkJBofD8G64yZR0gs1hGH53H4Tjxy1XjsX8IkQpKwveSRWLDNQFss2KdUfCcVx5CKx2k4xjRsoy3+pvcipB3W0Q6fb4dtZmAf2iNP7oDXOuK9jhcJ6YT1ZuJx50LJr5FhFYlKpYhvQXaukeigXblG1GtU5yVMIZ3qTzV0Ju5TDacaMsM8SZ5AkiepSCFN0yGm6StRqTl/+fEJZJuUFNLzrIQtxDo8+8gGplCiuM8dt17NDEvyJxWymOav2EIcAkP+RJRl/DSyuTDSIxhJK9ykwpjvdZs6tsijHH08JNZQfO6mhqymBk9EbmfS6arsQNDm8if4+/gf9r/u53QM9WRndc3pkpocSMpS/D4lg3qS6WqxbP36ZaI7/egapQJd71HeqfnjVWWlq7ZdOPv5l83bsa/7UQcGIa/xkMygT7VpxINQ7qwx6jRT1Yne3+tuqm/IwlYvXm2oP3Xc483N3JsftimMYZsdaXIb1e9J9mT7e9PsrPAIGJQwsP2GV2pre+xfFNYxFvZ6Pcfead6jFOwuGs+5JP9k2vULSgm25yMxZGowhfipUaov5v5XKa+10wORtd4a+9LYGD/T/ToZzLyufrE4dmwbW8YZxF5cdF/Gz9XLsivB9D5xU+Oq4j6JuxKHJLoP7cP6+PvE8PZaJ72T0d6cQqbQKWyKf0qMMWYa9tifFI8d7drN76TJicTjJtlZRLOGoSklTXvsJ96afHjc+E9+J66KwzS96Uuq1bCti9fXOtlDo9853KXL7nbtaXdq0jB6h/i8fu3e3Rtl7NMJB/aL6kMJjgrGcje166+qtIysdap1JgvTiGZw3eGyDUEpDq42h42sJTYS7D5qcLXTOr5+sPuoXvVNverrvblSvhdR0u7LWXiSSfcF/fn+Kj9g17GTcRS1B+c7OSc7p0vXbPZL9fi7aCfxaW119e63Vd+6/Enjlzd1gk+XDz2wE+e6GOe6A861SQKkLpgWlWCLMJzk1Qi11ulJLE3YH1ubXONZGmEnERDpMHRbAui+fqk43cdPNWRleazO1F+82nS1wf0hzrkn15Mr5/zxzLjM+MyEzMTMpMw2fdKCccH4YEIwMZgUbJMflx+fn5CfmJ+U3yY/bWraoriy+LKEssSypEVtVqRVpV1Ji299tfWl1hcK4gsSChILkqbGT02Ymjg1aV78vIR5ifOSIseg3FDNfOEouNtoNxw8Cq9NqpyAJKnxKLscS/3YO+d3zZ+yrrampk/d4l3Hmq9R9sragn3DJrwz+n+usOyi4nHTz+xNH9I8f0fR2Pc2v33QW7KkY8cdaWlNUoaol3AJ5yqK9AnGkFK6WHGWOhabtR6lNgInKVrzOsgAX79od9PFrIaQIrrF1cvuf1yWphjjjpkXsyKmKkaaoj9kF1aHLU1rIzUtKSscLg19Mf/NDz98M//FoXdtHdMsPqMdqDp8s5KzKyPjwokTFzIydqSk0N7USb20R7IVV5/Fr91ESCx5iyxkNIpEKighlExDZrdsf/LZkyeFwOcQR9QExBE7eTfYBTyarjEPZbr8AWaYBvWYppFnagx0IK/rNm7o6IC5qcYqvc1Yojiw0laA6YUWj0eZyPI1N/9ec+sthX8/qs2eqU5KxwRHgObSXQYz/cynhZmpLFVL1FLNRLOLlmM+wuawYm2WOY8t0BaYK1i4Qm0QRmMgmbaHNL2t0YX2ghH6KGOCPtl4Sp9lzKfLoIK+AL4xZExYkkGlktNkxLAjOENzaQntcEiUHBMl9fx0kw6/NGbwhCaikMYvrDnCb2U0jt0kwaA/D6oUVsXna6TK0BPUWCAJ1OY+NbjaJY2NSsNrqA9NYJaFpDjKUW3oXhe4FDamW5KH5wSyPWhngg4S6+iEo3RQ05YdyvQBNQMaT++w2pOYnYztGSQ96FUrFFZB5iuv6ZxqgDNpSqw+VS8bQB25nLnHZcMJk7jvsaz3CIxunsrym6uP8tM7xIAdzd1knfjFfuQbEUO6B6OcXHfBq8RD6/Qy06Yb6Ap0t9fZHwHEAoosyzQbrlqCQpjY87qfSh8g6/eF95RYkZojUcJDZ9JisWjw9LffPr25rAxjg/eXN1eVD12/6U+sYDntbSVkyG7EiZGo+2GIyj2DsWAQcFK1zOlZatI6X40dscFnG8p00t8vsTg35A8uZl2tb/B4UU/2TvEf9KNDCPNkeyytz8GDFjOlu2vmzKl4rabmjjdmvPcR/ZjuZ9uax27a9M4WVnytalfR+CuwvXVOJ+OcchII2q0JpbHQgygqtiiFdRFdnpGp5WvzYJ6iYFuWjI4cZX9uepiflpJh5D2saBbisPTdGUGn+o7yBqljnOoK6a/j1IX63SSdp9sIGvlGgTHV4FZd0oclv1eD/5SCa1Wq71vZpymICYdxXtLIpWAvh505bfclxKM0NPO+hIT4PNMWn6D4ESvKFV+pvzxSYkUAsaJtvGlLiNHIvTG6U9N9bfq1lT70VMNF9Fi5ubmt4PEPCR7eVjNzfo8Wp1nfaGMkTdrYY7FmrC3W3hEdWXtbe3tPo6fZ09bTbkskiTSFtTXb2tqFdfJ18rcLbxvfNiE9MT0pJa3ULLWV2ksdXqmpjKmmagM7OMAJLnBDFERDDMQqcUZap/Q+6Q+nl6TPS1+RXpV+JT0STW/aTexKoPHU71NRgmk5ls9EqO2EHl/CLiLZkqHbR5eXj1vTp37rz38Z/cGjRR+OXbB0ws7gzuf/9seivUqf3W3bDhsWHJjkbLeufMO+5OR3cnJG3TM4P+BKqViwcVc8abUj3hNlbiPtgz69gr2mkPmmikbEuxsULckeYj1Sar2kU8zck++gIdFLBfNIYzrK/uvo0eY2aEvNG1hhYwY73JyLdV9vRH36FuvWyCDUhJBCBdE8g1x3n7rYdNHiUVmZ1HLIbyP9CmKHkPCgM/Z06z4qGEaMBOKmbpagSV2ZamwyjDEQcr9JqvJD8+VjzZfRgBtP8ww5lunXL/A0fgX9R9dgtOMl526zwkNfIruVioiV0n1EOUimzx0tR9TiPiQ4/HQ5c68rJiGGtbiNxJCnuIWgoNvgaUWXFlwn4gp1U7LgUtHk758Rr4nZtJTeV/o9H3f64YfEYfEXcUYcfujhkwMG0E10Ip1EN91pzTHyO6XQ4iZdglE3LbvGvtZE90CGSr/f36KXV6WZ9WpoNeo9BSFMSfZYPtaieR7LzyqF0qR31dbmvTnjvQ/ZluYH2cZNG9/Z0lym+po3Tij8obXdDdiuicwjXfdwlWseVeXgUbjCPJwreTpnAHVkraFyqqg6RXixhaDTYzmhhouttqF8H3JDsijSBbnt0jweVpiph7M0ls4z9BGsiE3Up7OZfAEr58/pq1klX6u/zLwGN1RmA1NrC2lKW56hZmhB+yQosJfDIqWcL1OXa+thrbYDXuH7tEPaZ9rPcAV+Vq4o0WOmEalrNNuwXNH+Whb4rnk3+92V5sO1qq/pEXqh+WrzLpbc/DmOtxLHOwjlH0vWI9OKjoHIWA9XiDVS90ueNY4q30qFVDHiNhk1YyPcoMZJOugfNrg6fNgDg6t9wx5A/wSSDGKccfCgxXctH3W14YYn5iF8oMGs4coIPkKbrczmT8WURWkKUaKUaCWGxz5JnlJnRE+PeTJ2ASmNWhC9IGZB7HayPcaD9h1A/c3pSrr1prcSJ4wXVE0ltJy91zRkOl2WPfauV0ofPvn07FMjv6G+fg9Eias7duyYSVf2eGztwJmVeXcc75z1zfsPbp0aJ76TOna9UhTR1ZYd5wXDbIxoFbyazLdzXc1tMePB1W7pfYnlfS+GMBDZhmS4QUemI+jIdxQ4ljs2OVQ54241g+ZIyDly9MSFu/qUPo4Av1r8eHVH5fuWTpehv9qMc51Gft+Cyyy+BZjZTWCmxP+Sb01khUepIGsCK2/icpuYKGcHLcrXpq37XD2Snltx+aJllO4PPb/GZXcrMLvSUfP2JaR3Sr87Hcb8Fi6VpH+FyxRpMQOmH39465szt83+8s/ic3Fp8g/zihueeK2ubH3xl0dpxD8e+Svfcqhb13lPjZ+QEJVxZt+Zv2V2+qRf/8W/f3xOQmSHgzs/vJh6w5YtP93117Zc9+9t+eINB13g/1g66F9bs///x5oxbJPGTMkGnO/pON9tMWLrSPxhZqmRUJoYVuV3VBmr1diqxNXJK9Wl/pfTw2PDCPiiYlMT3bHgSzDUdCn68GGt2m1Y2o3qfVUyTTnjDdaUf33ZiumskI4GjcL4sQljEwuTFDLm30xri278RoGhz8qXxSfim4cOTx720WPvHK7duntfxcaXn7/vnSemHxn1NbU/B4GE+hWf/xgIfNA5q3L5MxXbZk6dXpySujcx8dM9c3a2xOK82orFPaRj0C8DcYzHdeY2ZSSeJQNxrxWMekL6Igke4mSYhZPZIbgOJFm/qCarr9IcmiC+EMdEHmLyHlopJol8MZZ3ujaTRqJutKcR28RaMU/8XlTe4JVLLDvC1lt4pV6hvGZyaljU0h7CR4tbtpDLBMet5FJSIqhujpZekP3S1FsyzP47mi/sIK3jG4b1hyFKvRHMMXQNTNUDCnCPokCeqhA/KP4Kw1fhmG9TuAoeg8SGO7kZFaV4+vjMWLsSZ7nkeik+T2gOekkS7c2Vn5sBQwtO7QnGS6DOmx1GOeGUMxU0ZEx+6mPhEKEESIAGWCqkqalaqp5qJMZ3pV1Zf9qfTeIzlBl8ZthidbH2vPq8ljDGUoWIsGToSGVuw5OUGI5Sv5H2gGW3F/c+cebdQUuePneUfkRJ08LmcrGqomIVqwtf8XsxiZZUjmsu56c/+8uy/ezu5stlCxcuas1HzECbspEIZAphaq2X1NprvEsjDa/rHvD6+0VaEm8hbRjsJfeJKibFaolWopcYJWaJrdhe4ihxlrhK3CWeYm9V1JUozy0RK3YuLUtqRCgKZNPX7NpZsXrXrtVXqFdcvvLf4gfqgfOXjhy59M1Hh7/dID4SDeJ7cZjm0jDqo91DORMxQhlt9bEt9jE5yh5neEvDwmtdUJuaXJNWZ9S63o6OS40iuv1O1etN7JcuCSfSmywrgG+QOOAWp6V55WbuK2g3r11VO8A+hqDA6maEm900stuopO7M4/bKpE5ONmzeWrFm69Y1FVtrhGgcu+ueezbe+4e9uXvm/LGp6Y9z9uTWsNs+Onfuo8Pnzn0nvhTfxsW/2b7d2+8+MH4c7UGBKrTHuPFy0ZcUon5vQf1jxEHmB+OoAxwEwJFHwKZVcQrzDWo3SayqK3an+9zgahsCh8MCDrsEjlOhcEdy+FPI5Vv1TTmC+nZEOsV2NtKODCCjyCNkJnmWaOE0g6TSDOhKh9K77Xc7RtAiOoPOhkXUgfqEUSZkS9ovtSkHVMGoyBGnTx9pfogHmi7Aiabs7aKKFnxg2ebN2KLNW2Qtk2zlRhwedLh5kOfzAj6VX+FqKKDAYEL1/bNBjns/6tgWfNeGdofRHdTaXUZtpH+pqyZmbRTxeu+MtKt6dH/LtkLQHRLZh5dRWvHz4qvifyMtKlEP1YlJeo4DyIavXlm16hVZmp/r8UbxcXL9+vHiN3rU1rJOxy5dOoaF3Vs4VtSJX/BTN7ZwO/aGko3Yr0KURxx5KJisRGueUndcdJXmq3KXO1gVme9Yqm2Jj4ilJmKP6Vbj3U30VjR3S6G0xNVu6dkR2N31l6WpSFtBUBf1IUy38Mnqs99HfgXmEsM/h6jmqvYj2zfSFHFK/PDQB5NGH/zda0ePvnbPS8MkgK1yucTlv/+3+Edi4rHOmfs2bNiXkmrZxXTxCz+DfsmGI7g32A7nw0XtDruTOhz2PFe8Xa3wkorIld6ljnhHjMsORlRMNkT53fGhXEdurlQmd71l2L+BL4tltWnJEOJ3GE1Ou0HJ5TeDtHOimcK5czK12oeaVz9PSnaLQ6KMzqI9UfGf/pQPETXiK/G1qKEDaDSNoQMaPxaf/8AY3UrH0nF0q3hAbBRN4jk5luUoi0prLClkZDAlTCWOUjupClerYsO3uqvs5W1Wxi4N2NsYsVHxYbGQlBATkJHx1YaLId7SdPGmCw36jpFj9AQ7ASeUY/yYilLcE8/G/BqVQtyFQatYboQbbMviTZsWY6HGkBeGfHTS1XPP776gXFz5UjSLyzSfxgx5AXru3/zSgQMvbd7PZtWkpIofxQ/3jxE/fPe1+DtdhhOAg2uJ8TC4VyahjqlkfDCSexgwKwTI46hfwCU6EFVzNx2vD6Ubb+G6VrbJUjiMzzQrPtOI1hqfeUcyqkI0z+UD+ESoJtWqZuWO/MjVk7bDweYvT1LRnM1Pj2icLyO0Fv6kxSGOtiGjg6mq14h0ETVO89vL4hKhJqYuyq0Rj0vX1XyP7sqPjUSTTLbcXRMqi8XGeyGlskBIkqpgWGZKfsrUlBUpVfh5N+V8yvUUA+fYYlX+W5nWv1Cu9H4HF7z+Tu0TM5Zvq31i5rJttbV9qmfN3gnlc576x5eSgL20QRIwtnHzC+++bBGxiePmhHI1+9EXbMExuBFLegdjomuJ01fL9RrnUvo21MV5vLY7IxSis1vQBM3RgpN69F5GCE/+Fq/QMYEbPWqBkl9BzPTa2ptIwrq34sv25t2queMWLKHftSCM7B+QJajHSyw9TiadyB3BQCRqcZpaFd+hyrsyfmnay5mR9pR2sf6UWJcR64+Jh1hXUkym5a+wi1aWuYUXWmcyQrhFaQOtjFqGLBY1TG6TktOla1jrA9h/tmTF1q0rVmzbKrYuWEmu/9d5sXL+qpfFzz//LH7eMmDlwgWrVy9YuJIdWl9Wtv6F0rL1IxL3zHvzk0/enLcnsc2Hy898882Z5R/SsU8uWPAkFktvbkMdLlEKUIevBdNaIljKuPwBphJkIYSoeQzIuxjmyqyqQjSZcTRvxDwSMmWsJ2GTWCQ4IhTd/YckKw0+N4BNZsWshJWyeWwl28J02ZABhsWfoiFaSUXflg7pSqKeQ3JoD+ihZOr9SX86EAYq/fkANaiPICPoKBil5OtFpIg+Ao8oE/kktUCfQZ6kxVCMDGu2uogsouVQjpFwqVpJKulath6eV57na9Xt/BW1Wj+on9ev672lbWEcnE2Tb/uAPkQf+kA82KgUNA2DXdeqWrmrFQMC6fgWeZ3JuE/5Tdxn+UoZ77U4y+V8E7fiveQjR49iiJdBrB1OhE+yOIJJ3g/eTjyUtGYMqMcEk3gYcgZTw+BalRcND5i6vIEsQquQHIIjr1WtXTEGN23uU6Gp7nVRstRbAukbP/ot2QVdZhcSrexCnou6mEsmuclI8hSZSpYSQ6M6UlhDCadRbAQdyfLtE+kk9jR9is2BJ5SZ2tN6GV3M5tmfZ+ugUokIkQw5aZAEyaxOXGYBUfwVy/3T4uaHF5/mzuYo2N2YQUvE/BtrY6PRM7tDPKHVtpc6a+hasKz6TrTvfnEWI7XIXUOrYd/CE27kXpnlvcLpLbYBm2tqerwx59h1cv3YnDeaD6NFb9+OVg372EP/bNheOJb2pTp++o4V/lazZtaa8QdKspVXjQ061YXKNrKQIWFTSOSNvKqMheSChGRUV06elMsSSrKwxrURzSOCv4PvJ5CCYOcYGynTlDgDYypWFhHm8nsS4mNjoiPQqMO8HrfTYZcSDG1sijYj1UR0DyEZnurVq6mX/K7PwvFnBj02amM2u83hU6I90V5fgo7jT4IkG00Ky5bJOqskh1klJ8kqSoT4fBgN9J1EUx6pmki7i5fupb3FC5OqJoqzE1+aJA7RgmHiHfpIESwSe6BMjKWbxNj1Ys86MY5ulGUdHbqebrL4x/ULLfwjgiRj7CDphn2ljB2iXBbRiLSIxo3Y4VZCkXaTSpBfUYlzkjuIxeLDEJf4VxKxxaINm8QDdAv6WfS0Fu7K2LGhJXZNRNxNjiIVplHhxQjWfC3BY9NZWFQCJ87YcB4V2xHjOq+SFEqvnrJi8dwbMWVu5h5Xm9ByQkhtbhwEkm4F3iS6mvZ9+cUXXxZ1NGPNypVrhI0plxrnzanYKq5ca/6GHWn+vGzJ0kWsSPSe8sS0qdsOvlG+2Zd47PmP/ioxFf2YxFQXXRK8Q9OZ4SEu02MzCXE5PS7icnjsDiJ/nA7TZto9NpuZ57AZbmLjZfC201Yn9cQ0VCC6S3HZ3CG8HVytWxhrawXd1vXV+npract9MUtG755fsT39FhDQJSZEZEkEvqISrqsGOMLNCIfbkezIcQw07zaHOkYbo83JZpljnmO1w2sS7ISN221OmyuC+plbcfMI02fz2aOd0a40kkJTWKKSyNP1tkbATLGl2NMc7ZztXImebojaOSxTyeTdza62rvbujlxnrivTczsJ0iALQlAJ8qAa1IJ6ntHPvNMx0DnQFfQMI/fQe9hwyFfy+Qh1uDZCv9+43xxuG24f5RzlyvcU0SI2yXzE+YirwFOsP+182lVOnjUW2RbZyx3lznLXOqPCVmFf71zv2mLbYt/p3Omq9nzsOe+57pmAcMWdNJRe6UNl2jObrR66Zs7qR4cMy04SPUPAP+mj2esHlA5ThjatgUdDvGoE2ncOytJOvwsO5MNVbpiGMtw0YDiKjg2nDIWnyiVJjr6zZUnSjk+j27TnmZwBSvFdm263mYYesnubRhytEvXI7KhXfoXJL1vIiUoBIzm0h0JE6Wdu+NYWsECE+PdrmDd+WxGfBq9zFs7CeRszxxzIBvL+ZtB8gD3Ah5v55uPscV5kzkJPPIuX8DK2jj3P15h1rI7/kR2Gj3kcZwaoio2bus3AH7ufRUG4Es1j9BjDZ/PbZZYjmaVBkhLgbdQ2WkBPM1LMJFuyPRe6Kl31XHumsz8bAP2VINLikMT7Gn3NvragM+iUPnwEy1fu4feq92r5+n3GMJT2eFJIJ7DJMEGZzCerk7XHjbG2ifYpzhlkBp3F5sLTylz07SXqbK0EndIso8QoNp+yzbWXscV8uXMtWUvXsNWwQXmBy+zKOj3YqdK+ybmNbKNb2BbYqezkr6qvajv1LfbXnX9gb8DbygFeY7zrrGcfwHHlKJ9l8YEYKv9oso0mj6j5+qszX39VI86e+e8fzyAzqITJslyrgsqmyXIf8/U8tsfiBx2CPhJNGWXRQCCPbSLzFUYodKq3iN+/BABYP9N3NP+yg5/+52MhfeuJWDcL9c1G7wj25x4V3b0HFE3+IEtgFDwYY9k8+KTpMUwqf2wmqp/hQeXLMzWFKjpyNdZyhNTK3qpsrhZdstQOFUq9BUjUUG6+3tOqX/9Jvf6VzT1vKooZrfjNVPM2pbM5XLlfG2kWmU/R2cpT2pPmMmWBuU7ZpKzVVpkrzG30VeV1Zav2slllxpqgcLQnWzT4ud+ItqVDKg8Y7WyJjh40F7rxLlpXI9eW6RgI/Xk/Y5At6BglWR8bBfcjPoxCfBhhjLLlO6Y4nqYljhfoGm0n3aJVOz52nHdcd3SSFIUlGxT/0N6VQvE7uuOM2C/2n6FviifO0HSarhQ0n29+j9aIAWwQCxfT6PJf56SsOKQ1p1HjWhrzdlRdnJXRuJN4vbewldY45MPfxCG3EhR6C3GJyEEmQzu1chQ2/SZz6VFTcyOz0bz7FtpSuOOfP1k6Ui1+ZMWqlzhIt6BLfZ6sdTo0Al6VhJlWbilMStS8JYNhSklfzGoIxR9NyFRV5vd5I5JTWU4XbzdWXLpg4aKqyoo1a1Xv16L3pUui51ff0Q//dp7WN2B7W7C9KVZ7CUGXJtvTKLF5lTCdYHu9rt6sNyw73Ov3MS25qzenC9uCVVZUVi1auFD1Nohe5/8menz3FT106RINrXVsvO6lHxBBOIkK2mEjWaiCIjeByHXxU8dDNSLtQoJz5eSW+feKXeIgDbasR8o4LI7kBhMJj6EVEFOhe1/y7PZXOFfqS+MZifV0UbIjo2yhfMjFpvob65LilAzDMgMeJEweVWlNDSgRt65RKh+Ifcw7Q3xdJTaLGXQJfWgV1aZMbVoiLovvaRj1/m77abpyW3PJfcPpOvoYfZyuG9D/zw8XiD+KT8WfxB8DkhtePytGWHk1G3GRvsFYG9OI8x27VsbfJnX2N9y6m6t3O6huJ/3dFtO8mOu9GR9aCc2gze0JevI9BZ6pntBivq91/Si0qP/yH/p3fmSItbK/9LODG8auU9t+a83tHpyjdMQkDwkGw3XmsRFe4VxqkPlePdbsjiHM7d6bIYxUlRYyl9WyApBJ9yWELQ/bFAZWq607H0K0bs+x3R+8v/uYOI/c7Stxnp9umoG0+AosaXpQnBOf0XY0RfZhJJK3s4hlBnkxGK2H8iMIVXn6q6QOXuU6YPxDVbM1HWoPoVJIby0dthCqPqslf9LwL/gZzJO+LZXdyQZq3Ka7bJEQo2foibaukKtn2iTX6GdxjTv0+2GU/rCtgBawIihQCvg4vcQ2z/a6LaYlsyJXD2nSNJjcPITtbZrL9jZPUAq2N51dvR0CEhNW41iqUeeApJAJwYyUeENVzLgwhfhKwxa7KyJWYtQQF+0wuGLGU0dstBKLMQRJjQ4LyOHZ5WjCLIyVpNTKBKCAQ5mXyz/JzVYn8FKEnPZZxmxzdiKMCaCAw5JzuiBf+fWapuSpLgQTzUn9tOzYsUPvdh89Ojd74aN3vzn2ofcm1pwfMHpkpzRdVYWgK9dPWDBiVM5DnUc93v+Outzu728aUj5iRKecKH+vLlb8coYW8LOwuSX+cZANTN2g6JwqJFmGP/VZN3aF4gzJzxnOGoUssHn7ldCeoUOwg06x/F+3oEmfQadHOAuFyN5hFrXB0TNLyUJeEAPl1pzyCl6FgbJc9aBT0A02n2YZVr+wTvatVadG8oIuTp9RyHxd4aqsWv83VTedsyrvJTc+BF2ZN/bAVBnvGprVQFKoEZbS0k5LW1TuH9a2yf1ltBg5XnSI40Ujx4uWHC/6f4vjvf5vON7/MVnbQ6z9Zz+qTEUPjrBtes22PMVMNHuz3ryLmWkOYXfxPGRwo9hk9js+0SwwZR5lDrK3eWYlq+BxGjGYDkRROcKqSjXkAEgOiKGYpp040dMqfj3K7nYmKkk8UU3UEvVkZGwBW6Iz0dmL9YAcJZtn6tLv9pHcjfSng1hQ6ceDPE/NQ9MN6kHkb3fZJX8byUboo+z5ziI2EcYq43iBWqAV6IVGoVlom0meosXsaZipPMlnqbO0mfpU/Wl7ib3EWcrKYLFSzhcZz9qQrymbnK87H2jNwVhpGHTZfY9jqJh7QX6dEOUC48X3BT99zatclqUxg7sbr0jZ4eOfwiIlCTHW+5ZxGOzqgwQJT2gvcya1NvSEtvrQ7Nd+P2fnrrlzd7HGOTt3zpm7a1frPp3J1v66H4Jt//NeDvJ661aOWKL8eitH1n/cyoEAh9Jc5WNUYYYeztrytno31pV30e9k/RGThrOJ7Ck2ky+UzFVfw17QLzG/CnJXRwxEadwEU4sEua+jnYZsmndVc7RM++1gyUNyafs4xLJJfKI2k0+1L4El/Dl1ubbcvh5eVF/U9sEftENwSPszfKZ9A98q3/C/qz/DL/yfanu5+2Oa3P4htyNSa6fRRqo0x0C0+Kk5W+43Kmczmwc0XWAfN3e+uZ8p29oXOCsYr3kkx5XkNE9jcsslR01jsUpXrWWPYFOIEsjZyb1ldqxZSZBbBoOZXVl3bQC7U3uEFWnzmKZSQ/XTaLU/HajeT0eqE+gj6ix1EX1WraDr1U02t4XTMgFkdZi6WWW9uNI8uR61IkH5ojFD+eJaAuLG/OsXlDLE6UhrrSFZS4iipSSqytyqVJHy8IQq98rwpQEtNjYpLJ60aRPrsJYa0OG2ZjK+lnvXQisN4fVR70cfjDkYezDu/fj6BG2Ht877rRfG0DHdrDUeb5i1/zWnC2lZH0cla+V6fl/4F0M2DP7opKvHnkf/Jq5R95cUqEe8Ib4asoH2blmFSKhJSaUO6h3xIHV99zUNF9NFqcx+xLO1rWsQEgvlnpDlt+RiqrykKpSLiXXFQ6w/5jfruLRlfdPrcbNfLdAu2fDii/j34ovXqCF+vnZN/EwNni9OiONYTqAtZdMuNLvK6kaZmG4td8ymy1D0Mn+npbf2gaSRbFIe7JriCqQGUl1pKWl5ZJU9flXHZZGrUtRV9mWp3qVtU1Z2SUuKCRjg8DsNhyvJkeGMcbg627pI8DaGWdGu5fStNTe5YfyB1iXRzpanbNlF5slt2R6fdbVXyxaWy7/hAb9akG6xd3Scv8quI66E3XKPf3r/+PH3Dx8/fvjG/QderNp/oGntiPHj7r9/fCF0rmoaXZWwse7Apk21+9nKNc8sqKhYsLCi5NyBA2fPHqg7y8ZWLHhmzZpn5leW/PN/VMfZA2//9Wzd/nPWGgbNkQKz/JZBcpAtk4XKfIaeQyYUiSmHbrtBuSzrsLZtHke/T2yJtnxbyO+jmkMy0Jxjx475NvsFQl/zNPECnfCb/3j8vwBrMPDtCmVuZHN0cmVhbQplbmRvYmoKMTE0IDAgb2JqCjw8IC9MZW5ndGggMTI4IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJz7t/P/n/X//y/g////D8MooDpoAAChtwqJCmVuZHN0cmVhbQplbmRvYmoKMTE1IDAgb2JqCjw8CiAgL1R5cGUgL0ZvbnQKICAvU3VidHlwZSAvVHlwZTAKICAvQmFzZUZvbnQgL0VBQUFBQStEZWphVnVTYW5zCiAgL0VuY29kaW5nIC9JZGVudGl0eS1ICiAgL1RvVW5pY29kZSAxMTcgMCBSCiAgL0Rlc2NlbmRhbnRGb250cyBbMTE2IDAgUl0KPj4KCmVuZG9iagoxMTYgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUErRGVqYVZ1U2FucyAKL0NJRFRvR0lETWFwIC9JZGVudGl0eSAKL1N1YnR5cGUgL0NJREZvbnRUeXBlMgovQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PgovRm9udERlc2NyaXB0b3IgMTEyIDAgUgovRFcgMAovVyBbIDAgWzYwMCAwIDMzMyAzMTcgMzYwIDYwMyA0MTEgNjE1IDM1MiA2MTIgNTQ5IDMxNyA4NjIgNjM2IDU3NSAzOTIgNjMzIDU1NyAyNzcgNTIwIDc1MSA2MTAgNjk4IDYzMyA1NzkgNjM2IDI5NCA2MzQgNjMzIDYzNiA3NzAgNjMxIDY5NCA2MTEgNjM0IDYzNiAyNzcgNjM0IDYzNiA3ODcgNjM2IDYzNiA5NzQgNjM0IDYzNiA1OTEgMjk0IDY4NCA2MzQgMzM2IDgzNyA3ODcgNjg2IDU5MSA4MTcgMzM2IDU5MSA2MzQgMzkwIDM5MCAzMTcgNzc0IDI3NyA3MzEgNTI0IDUzMCA4MzcgMjc0IDQ1OSA5ODggNTg5IDY1NSA3NDggNjM2IDYzNiA5NTAgNDAwIF0gXSAKPj4KZW5kb2JqCjExNyAwIG9iago8PCAvTGVuZ3RoIDEyOSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZTbjpswEIbv8xS+3F6swB4DWWkVqUpVKRc9qGkfgGCTIjWACLnI2xf8TbPaIuXw4/H4/8ZjZ/vDp0PfzSb7Pg3NMc6m7fowxetwm5poTvHc9RvrTOiaWVX6bi71uMmWycf7dY6XQ98ORogKt1Ejjcl+LH+u83Q3Tx/DcIofTIjt+v7bFOLU9Wfz9Gt/fLw93sbxT7zEfjZ5ehf7kH6z/Zd6/FpfoslSnudDWIK6+f68TH+L+Hkfo3FJWzw0Q4jXsW7iVPfnuHnNl2dnXj8vz27N/t94WTHt1Da/6+kR3i7PLin7Trl3Sha1vMtRHhVQRVKFjpVJVQ71klRpUTVKUCeyRFSTlNecISnReZGxMilrUQ3KkfMFhc+KFSw+/RalPj0Kn14jK7Jo5BZ1QsEgEFkYfI2CodAsMJQQWWVgzOVEksXBUFJdpwwVCgbBp4OhhNbBUGoWGKRAwVBQM6e1pp4OnxV75PAp0Dp8VlTXaa2pp2tR5BQYSpwJDEIlBAYHrcDg4RPdB1wLDBUriPYL7AKD03nsQ4VPYR8q9QKDoy4Cg9csMJTqDIaCKnkYKsa8MrCeh0GomdeeJ6fXnofBay/p2MrgHmMweLrHw+DpCa+9BLtnj4Rd8Xoe1Kfy2XSU9cwW/07w24lnsVw7lrk5xFZRteEpitUd1e5inlNbtICoLfWzVQesud4r6/34uLSa2zQt91W6HtNFtV5RXR8f9+w4jOus9PkLnpNTMgplbmRzdHJlYW0KZW5kb2JqCjExOCAwIG9iago8PAogIC9UeXBlIC9Gb250RGVzY3JpcHRvcgogIC9Gb250TmFtZSAvRUFBQUFCK0RlamFWdVNhbnMtQm9sZAogIC9Gb250QkJveCBbLTEwNjkgLTQxNSAxOTc1IDExNzRdCiAgL0ZsYWdzIDMzCiAgL0NhcEhlaWdodCA3MjkKICAvQXNjZW50IDExNzQKICAvRGVzY2VudCAtNDE1CiAgL0l0YWxpY0FuZ2xlIDAKICAvU3RlbVYgMAogIC9NaXNzaW5nV2lkdGggNTAwCiAgL0ZvbnRGaWxlMiAxMTkgMCBSCiAgL0NJRFNldCAxMjAgMCBSCj4+CgplbmRvYmoKMTE5IDAgb2JqCjw8CiAgL0xlbmd0aDEgMTIzMTIKICAvTGVuZ3RoIDEzMCAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJzdenl8FFX277116lZ3V+/7kqSXhE4MEBICIYRFWmQNiBEZJiyBZguLAlGIiBAD4gIoAwwSQ0BZf4gYYwyMskREjI6yCIwJjgsyjmF0tGUYH8NgSC7vVHUC6Gd+n9/7533e5/O6cm9V3bpVde5Zv+dUCCWE6EgWARKd9sjC4L9fJxsJEURsY4pLZs4dO4SECRELcVb1zAcXF5/sq51HiHEbIckPzpoxZfq1BKLFa1uw9ZqFA6aoet6IrdOsuQsfpV+Rvnh8DVvswfnTprCnSD9CDDV4fnnulEdLpDplPm3G82DJwzNK7von7UwIw/drXiYKbcKYxyY17Pxgsrnfv0hAeTQhH62z+zv2/364tcZ8SjcD5yoXqToBe81cnkSIJfTvh3/ONp9qH7/16yueIsXKgbAX20eEwGgyX9pF6lk5KRSPkEJWR7Zpx5K9bK56XA2fkARWTAqFI6SaLSL18BPuD5GJUnciK2Pie2QOnlcrc1kuCajHucQLMjmrzGHrySps32J7Sblf8uIzepCLeL4D21RsE1kpkWEJSWMXSDE7j7TgHORPveYqHo8m1ULLjTXsPbJBSsdz5d24BryvvP3ZZco6hBa8Zz95VrkmxJCT68kcdfV9YRTpQh4lBiIQC4ko3GI/CiHci7SY9qDFpJ78HVnXn+wgLRDAWQIpxlFlX03HkBhen4ozl4tP0TG4nyvuIgJeL0dO4mtpDzKVPIRHYXEXrSeHyEW8ezldw4ax8cpslevKs66y9+hllifkIZ/niv3FOnG5WIczSsVicTmpxT5POCtuEZeIp8UlpFChjI5UmkIHqaL5NIVUCVV0EPXSQcIp8i7SXEwH0Cral51gJ0gTaaIFOLOaLBJk+kf6E82khbQO77pKrtIAnuUIOfQS/RYpriRnoZDJpIqspTY8qyenkO6L5CeyQMSnkrWsSejCmsh75GvyKY4TMocK2CdBBmvC7TLZg9yNka+pwJokhyYkFgvXSIyuEHYL12gKFXCz0QBycxKcEqPiH8VVeBW5QwXoAQEYiP1EZQZrolVIxddSMV2M85RtiWIxwnvCAVzjEXIe14VvFyYKS4Qqcp7W0ENIMSFP0RoxqpkqJpAqqQqt9JLCG3JWOIX8KFD58SzqQndyVZTIZRhJo+IehWMkzN6lhIY0+ZKNVNB8zQpcCYFcsoQ4FMOihL0b33CWVkoiFWIavIS0C0JZB9/oYnJKyIOpaPvKtoEeIBvIAbKA4CMg9S2NxEQQKOkatNQK4eHTayP3FQY/HBfK6Pqr06BFE6wlBbXGxcEDN24UFIoJbFwtS6yFsLZWDKd8/d9d/Dqj64iCwuABesfgQe2PHRwdhIP3F+KhcobDOD54kHpNeWstC+Pf8GhtcNqs4GrL6pQ+qy0z+mTc9aSwjKYSToCGiRX7TjRE+hBGO5EWPEshLuyT28eS1XnKMdCgej1ADmPvJ9OxT1KvJhIv9gnEj71PHfGqvUft3WrvUnsndRATPtWpninHQO3qsU3tzdREyvC6WT1TjoEaqYE8h2NGdcxIjqIFG6iejMMx5QpgvwzH9FQmqTimXAHsIzimjADVqXdq1V6DHkHplTukuhe6sbvsVFLXxdReVGeBuiJBHaFqTyI3yuDGncA5tF7vylo5XO8KLRx+vjaU/VwG14bCv1vgKod/cbjC4X8dhp84/JPDZQ7/8MMlDj/GZPYjh5gMsYj4w/cy+yEbvpfh7y3w3XoX+47Dty3wtxa4iCcXOTRz+IbDXzl8zeEvHC5w+KoFzn/pYeenw5ce+GKbn30xHT7/LMw+b4HPwvDns2H25xb49JyDfeqCc00Wds4BTRZo/ETPGoPwiR7+hDP+1AJn8flnw3DmeQM7kwKnP3aw06nw8Skb+9gBp2xwEi+fTIITDjj+0WF2nMNHHxaxjw7DR8vEDyM3/hhmHxbBhxHxj2H4gMP706FhnYU1cHgvEY5xeJfD0Xf6sKMt8M5rCeydPnDkbR87kg1v11vZ2z6oP2xm9VY4fMjADpvhkAEO4ssOcjjA4S0nvGmDP3DYz2Efhzo3vOGFWhe8js95vQVqcFfTAq/h/NcSoBp31WXwKoe9qfAKhz0cXuawm8N/ybCLw84dJraTww4T7IiI25FR21tgG96yzQ9bcbe1BV7Cxb+UCC9y2LL5MNvCYXNVEdt8GDYvE6vWhllVEVRFxE0cKlE7Kjm80A0q8MYKf+QGbMRbNwbheQNswKENI+D3uPs9h/XIh/UuWGeBtWH4HYc1HJ7j8CyH1RxWcVj5TJit5PBMGJ7m8BSHJ7NhRQU8wWE5h2VeKJfhcQ5lHJZyWNICj7XAYg6LHtnNFnF4ZDeULkxgpS2wMAEWtMDDZfAQh5L5Xdn8rjCvBea2wIMt8ACHORxmc5g1zcBmZcNMDsXZMGO6zGZwmC7D9Ig4barMphlgqgxTok42pQKi1MqiTpgswyQORRw9s5VN5DBhfAKbwGE8no1PgHEcClvgtxzG4nnkxlgOv+Ewxg/3O2D0fV42ugXuwwv3eaHgXi8raIF7R1nZvV4YZYV7/DByhIONdMKIfCsb4YD84SaWb4XhJhjWAkOHONhQJwxxwOAWGHS3iQ0yw90mGHhXmA1sgbvwmXeFITLAzCIcBtxpYgPMcKcJ+vczsv4u6GeEvtOhD4c8B/TmkGuHXjk+1isMOT0dLMcHOUfFnrKR9XRAz2Vij2wD6+GAHhEx2wDds3az7hyy8PlZuyHTAN3skNG1D8toga7OMOvaB7pMh87TIZ3DHU5Ic1tZmh9SgxD2Q6cUZECXTn5IsUIyMbLkFgiZIRQRgw4IyOD3Q1KilyWFIdFsZ4leSDyAPmO9mGAEn3cE85WBF1/qHQEeDm4ruPBtrhZw4pgzDI7pYLeCjYMVz60cLNPBbLIwsx3MR0WTBUzLRCNeMbaAIRv0uDS9C/TLRNkIckTUcdBy0HCQmMwkDkwGFhHFFoDpGJCsTODovYyMWoEYgR6g059aQ7v8//Ej/68J+L/4S7qF3kf+qi1FDIgZA12HELMTtv2IZZ7HrCWC7UPEuXhdwmsSZhkazD40eF1bgGnPc9jwuj6IrR6zkkGY2SjtL4SYMeMxP4kZRE9srYRY8dyKWYxtIiH2RGzTEecMw3aSECfS4ET85MJnuzDzceOz3Sux4X1exNlenONDWhJmEZI4BuEjvi8Jsbkfs6iAAdt38RbMwnaFkBDeGzqgZFgqZi7mFWIx24UZmoYE6jFMp+KwRFPfpFq2CjO1zIbGWHdiaYw1xrLs1pA1HLKGikXSugASWi/yCo3p2k8PY8qg5kXzab3wjXABn2V7S3iV7BUpES2NDXj7FbwZb5wvLGx7TrjAz8fxOnJFykMErCVu0i3iJEd1a+hRl1ZwyYRlWLoRlw48ltZYa8yah7/uJDOGz6kr8FJaRK09snvl9ExNoaGg6HbZnA5BI4npVOi/OvbztR/b/kUrMJG4Z9Hs4uLZj/Ja3OaIda0PfX/hq+9oypSFM/i1l1/h/56xcIpCR+GNb1gaYmI90pERsUvbbWS74bit0qMbaB4JA51941TgOpqvxCyXst7MtQ/wDrUDkpEsOR2uOCkQJFYLCam98O6isrJFpUuXltIQHcwP8wv8K36QDoUlr27f/qrSKOEf8hhuH9Le1IFb7zgPkRYxB2nxktyIj5ykjaLppLFR3m4Vt7uPWyt9moFG4ujrs7Q2ZHcQxK9csvzrUtb+yQnlCYLCmm40pYOuXKuJpsQJy3aJOcM33Fvx8ssVY16IjHntt/ws30vH0szCV8X+/MvsrNdffPH17O78i0CA5iJ2dNLcQJymbcgfSYwiTX0jCWYg1PCF44y70kL32SSB2M1G61DBSCxIFAoo22pTRNWcfaVZlVvW/mjCMoUu1B6UEpLl9lOFY6hMoRykLjl1G50lmKyuod1KltFiXnXfH+YeO0H3C9UlE/iP3Z5ZlJCSWr1JSL++bcfUoksKPXsVK0MehcnsSHqC06YTNSQoaTzmL4IIs4779yXaNcRhM2iN0jCH0TYskGBMsqRaWkfUmscUHiRJJNJ7XGs/RaR5cWL79Wu+0q8ZSc/DzZ2XRSPmQFpWWkFaSdqytHVpr6dpiuidSLTLiUTfSRW9S5Y0eKweKIMhp3pdPDTocMm7x3klpUNGFc8XeGVk9MwSPJ018NWZC+tg96y5l75pGysMMyb6Fj2wZ2vb58KwQw+88mLbZ2J01+RoSdwuFH2URSVbSiB3R0LE+WeqO6ltZFsN9FPPVttxQ2ViglPQOo1kkGA0901U+d6gLkVRiGZVIy4h5zOTBiQpGuEMqSy/TRmChMUXweTWw8Ytzz30Y1k5L+dn+Ot0BGYjWtqfr1sUnfWERehR/Pjjdw/isazuNIe6MZ/sw49tKC4rnRfXjWr0gDak1U1yIh4jJrbyF7YzzuOWfSaKOjHUajSaLYr5ZF+JKYxuvqUV3mVeVVtDOcjGtLjO3uIks/FKo8U5DHWCV9Hi+96cd+wjYW/b2Pl08/p5vpS01zapPFM1QqEjAb3yLvYSsZO5EZ+Jac2w3Ur3abcTWavXCTqRGC020xhHXAlG1FrGTBhRa1U625gJqBMmRSf6NbT2a2iwqa6mIXaln6IQijJ4BpABdqW8AGaL2VogFECBMypEQVdEFPpxc7j64kFyao41xdrDKvSgD/G1d048wE81vlFXx17ix24QHh6Ve4O80Ui/wKz3zg45i+8j72TU5BcjnXUS8Qb05E/u09JW0xlr8GTgROLWFDR6A0lxg8eoM+r7B8Do6IuqHGtAS1PIU23tSiu6gb9dunopz6ZodFZkZGZa/2D/0IC0e4L3hIqCRaF5wXmhx4OPh0rSngs+F3ox+GLoteBrobeDb4ec2f6swN3+SOB+f0Fgmj8aeMq/LLDBvy6ww78tUOevDViKbvNz/Wm4w2pzenYK9egwBZRZUBR2lDw04b4Zq+ls/sKw/ctrPsMMM/mTp3+34IPfLPhuIc3E5PLayPxB96yfm/5M2/LdxUUndrx/IPE393brRq2JSf9QeYL6JNgkhxqP0iMm6TzZJ+4UMB8ViUVraUWZtMeBiK5AF9WV6JbpRPQtIVUMoWrFfyhNjF7fJjn4l6puYJwRT2Cc0ZEuEat4VDoiHCVrtIxqAHNvWVFOJUhlXlEe+6ZFX6Av0cOtZ1pD9aK57WFhZtsmXs6a+Hn+PT/f9kxc9yGG8rOir3ZZTTpJQ+Co/nnTcd0+jSwZidZiU/TNrjgd7Y2jvcc1qNSjDbQ2WFVB0V+rvRtimUWZqzcqqxi8r8zW+Q7IdDnf+K+2VjF6YN4MYAqPJqJ/MCGPLCSR9I4kuLeTMybrdnZGW2k6TneCA5VdiPgG6vsmxT2yyjLF8izNGCbu9Uf9ccNrl6TiEPDVEA+oqqRhN53FK/PrSk/zq1Q+vXDfjgWLFy94ePFiqBcKf47tmDaRDqeYuNPhRa0f7dm2bY/SVPnJGNPTkNcaPOKRCEmSmCZJQrCcpEW8zHTKsZAkAsWmTQIR5CSdLIoQlkVSoxXXSIKs02qYKFCik0BvaawLoCwa3Kqbbm6MIdNG3F+osWh/1FjYj5r4n3J0a2RcMo0s88iZ8li5WC4n5bRcW65bKK+Wt8rv4HYatwuyxaZN1AUMYW1nXdAwXBzChmqH6QphnDiW/VaaBbMRFM2UooaFZAl9TCxlS7QLdavEp9nT2lW6TWIF26it0r2pPag7Qd6n7wsnNMe0p3SfkXP0nPCZpkn7uS5TcQ0hCFF1A3FI2+7JvExIpyeEdF7WtoduOkkt/DJraukihIXRN31pu+773yI7BYoxVbQouCNTVXcWZSVsGWtXd1XVJcfPsfi9c9CXTEVdTCNfRiJGg2DS9/IH/EzSaHVMlHsFAv6wrPcHRKeKKRwnnY2erVZxaxjdyx1+WR9I0JD7E0abHJqC5HvuUPxLY6wZNVR1MHGU8S8FZdjc7fw3/YiBsn03LrlOq0dQFpmk0+lknV5v0Bt1ZpbiM/iMPpPH3FXbTddN7qbvZuhmTA/mafvq+sp99X0MfYwjdPlyvj7fMMy4yLDIeEh7SHdIPqQ/ZDhkDJskk8akNelMslGfaxyQPjk97m47wE2Aii6nQ0Snm2aNA4qeqZloTzk9eymB2L3g3OTiaSOmDKD2I/wab5n/Y9kDXy+cPWf43AH/OHqlddrniHkuZ2X1yOnSTa9L2fbqvv0pKdTSs2efvKxMo9a/47/qqv2qP+Jj2STkq2JrfSNJt2ztuKmSfgX7ktDOIqrFWRRry1bjnKW5+dfmFr5p44q5ofu03wYdBZti7/n7S09TmV89Xbp/14IlSxagye1o2y/JGOT4W7wNt7eKIPeVrVtfUa2tPfaivvw69u78z7E39j/HXuv/EHs3beiIvZKjbU88+FKCMJF5ER9K5JNIGiSJaL1JVGDKDgQJswnMrqSwAOQCegDMkplINJbG/VvxRqHdtGPZ7XrVYclxa1ZMealS2bfgFhSyhIgwVigWlgnrhG1Cbft2FLczuP1F3S7j5mUErQdk1HY7TQSfmEo60S6QLvYiPWke5IlZ2iFkCB0Ow8Wo9lHpGboSnmErpQpSQTfBJnEjq5L2wJv0IHRClbOHdIoNB2gxwh8XncmH8kVitLUFpOvb4nitGv3xJJSDPu6Ppe2GM2ay3VlpPp6w03PGCwNtEY9BZ/TdpiGZzbFmNWbfUpDb3e9tepLmRLkAUfwvKsWS25QkXxHOt4ouKDohNN2mJlN3SI64X/DyIYjPosRMe0XuNicRMxP1BiOYklA8vxaVGWehqMxhkyxYGJG3aj8Hss9iNul1WkVuiKIslsYRtfIYFTaNqHWo2Iko2EkVowVRP6oYgpD/KE2lodPQqmLddUusEaFAmCEsFJ5GwT6vinb/baJtbBetR6Q6YAxVSMO0LupkTsmp6cQ6SZ00OSSH9oZeUi9NninPPJgMpvmQLw5mg6WZwgzpaQH9trTSuNL0glDBKqRNxk2mPcJe2Cu+YnrF/AdaDwfEWl2t/I7+oPGg6UPhhPGE6SPzOeGikHdT/CbaheagsQ6gXtSDDIRwxTx96NubT5dMuN8ti9E2rXDteq/DG3/oMyKg8v0sKkYeXYG+3PoW2SNQzJNu+nLFfZ9VAixdwctwbkfMlMiKX9sP+YX9vPsL+1n7f2Y/XYnK5FpB1FAtuKkHPKKbBbRB7VAylA6DYciofOm3tBDWaq239F2mK+hz9Fm6ou1TnsOarteJo1q6xHVqFcaaS+wyuYOMjHQhzmq7rkJ+w1gtBSsCbyRW22tTtkiV6S67FxGK15VqcUHAEQjq/OmW1uaG1pgSw6229rjS3NoeWjBdoX76a4ceZ/ovQKbTIcGhF17k1fzQgm8ferBp5qadL++s2rH+d6sfLzoy6eG/PEhTaGg1hNPe3fjVt+EwTe+VO2da8exrE4rGTuqcTn3B4DtHV7ysruNb5Vsw8l0md0ScUCMKNWyNhtTotB7JB8TDKMKPhlhDXGqo2Y2q6JhaA7GGLtMxfCedQOfRMddjVIb3h1Fp2PUcflV99kvoEwR8dhLpH0kWNUkbfdUaS4V1o6NaU2cUXidrjJV+SCbU7ZIDxOK3fImvabBcag+2f1NYwpsR7Njbw0aQOB3kF7xRWPIZvN32SNdxWdRKs/gf+OflPy957Ispz23f/tz99Q8iVr34rcHI/3HlJ36pezbNHDJkVekjK7tkdGDir5E+PcnC8NWBiY/KlOlUWGyIw+KGONpWgbGxwFhi/AUwvg0aC7uuf9EBjvlepcIDyjvYKrW+YyVBUhAJ28hB8xHpoG+N7qBHIhqw+Q1mnSdBxDf6DS6nRePyQkh9MfIagYW1Q1PiNGBioyPJluTM5IJkREG0XUWs9o6DuAalY1yL64ltwqRJE5r+urB0YelfhWFLV/Iv+bm25cJAmkvdxbChYNQ99/GGtgVTp02ZwhcL3k7H1vy5kTXVn567SfXrF7Ebhb5TyUUSIyZhD+YieyRGBZHYf5GLdHDkopL5KE2M8jK+G41b1YUdyOsLaC8e8mwknSj2jYHEo3jgMPMQ0zqzvtq2RSSvCx4nIyaty0kTTOC1fDmi1qikDqCmDq2NSvC25t3URSU3vR2Kxa09VXB3dnV2AxCTm3ncbrcnmSS7kz3oIt05noEknw1xD/GYVXiKJNNb1YwO69IIo4T1198TQsOHrCkdf+6xJ/hj1EDTHz9OE/hFmkC/Hvj4oNnL7hlJh3XJiH3y2CdvqLyaivqeiWtUamgpEbuu2gzVzi3mSg9xGdySy+b4VQ2NWpS3Wi0KAqIdZTPsoWb20qVz5ixdMocu50f55/wzfpRGaBpNpREhRj0XL/Lv+MXvvqMevobPpRvoArqQbuBz1bwI9a0H6ptAjOTuSJCGjGAkIQBjmIBeU8MorNFRg0x8klY0OEyW1sZ+DUqOr4TjRpRmR24htvtOnYLgMZ9PUaUr/MTH090RWt3UxJ9vmyNWtq2FmtbR/O/8MrXQ/LgfZ3PU3KcHZq6KQYkYllykN9N2hE2TGjGZEjFVbmDSmZ1F6yK6W2Ylsyi38nJuUczp+iixTtWhNDSoNRjU7eS+SKKFUYN2u0S3kp0maZ8s2DVEo2NG42Cz3hFXm4436dW6RuxWXaM5uxXZj0tVChtsmWaZViiiThRFEo2/P8XaQ4HQsOaDkf1oNv+YV9XVnTwnOX7IHTTqBmndBlFKRr31ukJTMcp8IspcqQv6DBYdcYERPX4NWGp0W6DSZ88wEKnLL2uVDZb341adtT8zYbJSFwzfVqF0q/BecDpsSrmKTZzztzL+LB9J99PSsr/NeeDMgo9jsY8XnHlgdG5vup3OwFC8vXcuPzF8EL/23bf82qDhHXVl1e/IyK3uEZehRqOvIWt0diMGQEuGqNeif3PE3UxHZVl17nXESRU5KGYghlDqN6vM9UI5TaLd+Wn+DefldHlTyWOPlbCmtu9/aGtrEY/wyXOnT3+Q3O5XGXFH9HEVcAEBCZkQh33tzqKeLo+7zOuj0Fmq97Grqj++M2IXjmqPiGSNLKFjZDp60x2rDqfflX5K+cNpBrNoZmbJrDFrC4xR9M1bjfKvvDO+pDfaUXnbh0rpou2PQh7mm4vbniEdtGqU+ruBfBzpAb00Wo3QiwpaZQcCJnK0lyzrwrIGkYcWwYee6bQK+pCl7qLcnaCsW+NuWk0ushus7v8Gg9SZQckOi3WCWWvWBQSnJqAN6JxyF2GAMEy4VxipGSn/VhinGSfPEuZr5ssbhXXadbpXhFpNrewTqYi+zEW9YDF1pmHoQ3PgXhqBodqx2nG6AtMsOhNmaOfooqantKt1L2g9HRBG8W4pVGHC93QMHUv/zp/ne67wPXwDa2r9GgItXcRBrV9A+Hp9Rx1zMdqXTJ6LOLRMANhHdurQ2YuSVknE9fF4aI0vthmXGol6wSt6mVfqq8FMQjMeiqRCzWTNfJjJyuER8RFpiWYlPCU+w57VbIWNCDw3aw6CzyW4WB/tIGEoy9eOFYq0M4WoMIMtEkqER9hS7TPCSvas9vfCC2yz1lmkSpOqeExN+OkWuq3tvDCKj+IjlOS/9Q26GQH/DvoJzyD0xhpeLPRXdeiuiF0vEM1RdoysMTCtRF2SqkM3i583YXusHYmpH1myKEb5CMZ5UF6MFpmiGgCqET/LT43q9+gS1tRSjx4vRlOefkLVoQ3oAzLQB6SRlyOdSVh0eKzxOgN9T3S+56mxijXhLbdqDAlek0PjTb7D8qVSYWj4ZYXhouXizaCfFRlTkk7zkvL8eYG8YL4/P5AfLJSLkib6JwUmBceH5iTOT5rvnx+YFZwfnBdaqF9oWGhcGlgaXBqq0L9g2OyvCmwJVoV263cbdhv3Ju317w3sDe4N3VFEf1FCaEecndKsLvH2EkKnULYonljy/azVT44r3fXzn/gX/JPf8b+uXUv1Sx9/esLKjX85TYPUtISKbDdvyO09sqDf3Z5Q9sn6f/+zVw4dPPKeMaOGjPSHsv5Ud+Fy+Oa3LqJioUTyTCQ7wSckepNcboQBbrcr7HXJdgSeUo1hjVt22T1gSfRKRDSi/bstOo1LD0lx/UMpufPaTU7xWXm2vNuMjrVXYzyJir0FEjwJXp8vIcGX2MvZyzXYOdg11jnWVeCf4ZzhivrNNwGUVwi1IyaNn7rtIUAGCRcWz569eAcvF0Zi8LWvXXdvWeQsL34z96FJMGD8zOJCvpxfbTvBmj449/yRDFv5cl5IF5SMVtc6EXNOk7gYV3oHGRFJTTQDcZ50NXq32pIwNdYdN+5L2W77nJyBVAMxmiLO4ECpb3pHTVtxks3xaiWCYEVBMEXuHO3cHimSSU5PpVrpzlEV9BYghts/xe3Orys9xa9Qw6nSunzMtF7l9bMbpk3aP6F2V2z+0kcXlCxdemTqRHp3y3V618Rpu1ut/Cf+TTBE3b1yqnaBtKuiauuujRW71O+jTVIx6reZJJCpEZ/RVUMsNZotpNKUaJKp0e7NkHPtGWKXxI4PlYqHsDSoIAeVuKvWQJK8BktSGslMGmu431hsiKq1rhKjUWMYpx9nHOco9MzRzzY+atCicrKb32esDkGDdq8EQ1yVLaenAGv9fC0vppvoTPoA3fjpcZrB1/Nvao8d2f/GsWMJtJI+iONb+Cy+vpU/P5HXSiJvjV2+QcUfYlTEtZSjraawS+gfOpHcSMBOql1SdaKhwrjRUp28JbEybND5vBC2+7zuQKewsqBmy6UG1TqVNO3SOSVJu43N7ZakUasVSnrSEcaFizPwVzxjBn1k8p6C6qOWgVUTLlIv/4Bfw+zgXVpKB888Jny9ov0nnOKxjC7v1Hfvzq98dplfoKvobPowfTmo5JoYTy+pufHgiJt5BRBEL4AQZphCARMBKObCX550x4P47aaAdqBR445eAz6WCjkwBBj6NaeS3a4SZ7Qd4quEtLburOmz66J4CFF+GfLHpmLYFJJJhkbu8BjSqolU7Se1GYjQ/ZVZHqfOAJ185s4+Z6rOl5AGPnNqqFMWJrYxpdJuuWTLu+0znJLV/pJj4bhz6bA1xfkEOyHcsndMQHYKHz24cOGDDzz8MF+6cjX1YVZjpr5nV1ZuRij8FbLv080/TZs4furU8ROnCVsemTevtHTe/NLy9L3lb3/w/pHyvemd31731TfffLXubfqbcdHouHGTo+2xXo0NQLq+Rd4VFEwh/od4EC9QYBhgEVbA1DCgoAgFPSjZv0CeRT+Wzo6gNQTQtrt7Gf19oltjN+t/73fqgKy1GgP+pMQEn8ftstusFrPJaJB12vh/a/okR9DSeLK9lp/d2A9RQ3ufRSFk7wEhZ0htKXa15YTUpsBwWBul2innp1Anf3MwTeS10fNRfi16Icr/TocNwcRkdJQW8GtDqJYdURAaL2/ilz7ly2m50j6ltia6vG0vv6T+z8ONb1SbVnKV7IhdqrGRGsMW5Xt/hjkXMpxdfpWrRPTE67ZbvJneAbjeItoOUFWbvO2jPxTXHjtWi6b4Bp1FK9EMK/kmPpNuEj9DM/yBt8btkLr5dL6RV/DpGM3nKAYb/5/yGwOFmCof+1sCokaBUMhsUGPjlZNZtAd6ZNNXbf88z5p+VnOdOco3ILRlT9yWNd5qmVTQjWK1Sw5UW7a4KsOJYY3P7ibJPqNqyw2trc3xFTV0FFxy464zt8Ottttvciq9rRZ5auKe0dVHrYOqxl/k39I8qqGdaISv5odmH6XlM4rRyIuLQ9TRBe03O5vqP/8nTeaP4NJ/x8cFhEsrVjzx5JNPrFjxy3+Q/98/bSAYCmVuZHN0cmVhbQplbmRvYmoKMTIwIDAgb2JqCjw8IC9MZW5ndGggMTMxIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJz7xPD/D//d/Q78v7+fUAAAOBgHwgplbmRzdHJlYW0KZW5kb2JqCjEyMSAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUIrRGVqYVZ1U2Fucy1Cb2xkCiAgL0VuY29kaW5nIC9JZGVudGl0eS1ICiAgL1RvVW5pY29kZSAxMjMgMCBSCiAgL0Rlc2NlbmRhbnRGb250cyBbMTIyIDAgUl0KPj4KCmVuZG9iagoxMjIgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUIrRGVqYVZ1U2Fucy1Cb2xkIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciAxMTggMCBSCi9EVyAwCi9XIFsgMCBbNjAwIDAgMzMzIDM0OCA0MTUgODMwIDY4NyA1OTIgNzExIDEwNDEgNjc4IDcxMSA0NzggNjc0IDM0MiA2ODMgNDkzIDcxNSA3NzMgMzQyIDU5NSA3MTUgNzExIDY1MSA3MTUgNjUxIDM3OSA3NzMgNjk1IDY5NSA2OTUgNjgzIDc2MiAzOTkgNjk1IDY5NSA2OTUgNjgyIDQzNSA3MzMgNzMyIDYzNyA4MzYgOTk1IDY2NSAzNzIgNzIwIDc3MCA3MTUgODUwIDY5NSA2OTUgNjk1IDM0OCAzNzIgODM3IDg1MCAzNjUgNjk1IF0gXSAKPj4KZW5kb2JqCjEyMyAwIG9iago8PCAvTGVuZ3RoIDEzMiAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZTLbtswEEX3/gouk0Ug8yEpAQIDhYsCXvSBuv0AiaRcAbEkyPLCf1+KZ+IiFWAnh+SQ9zAZFfvD58PQL6r4MY/+GBfV9UOY42W8zj6qNp76YaONCr1fhPK3PzfTpkjFx9tliefD0I3KsipcJ1mpVPEz/XJZ5pt6+BTGNj6qELt1/Psc4twPJ/Xwe3+8jx6v0/QWz3FY1DaPxSHkn8X+azN9a85RFXmfp0NIi/rl9pTK/634dZuiMpk1GfwY4mVqfJyb4RQ3r9v07NTrl/Ts1t3/my8rytrO/2nm+/IuPbtM+gOZD2QTpbEt5KAAlZmcg6pMldTVkIWeM9Ul9MKc7NJAMtdCEfLUyQmBOQ1F6AXqyFJl0lvqDKRZyS7asJJdNH6Vh/CrSa3xq3HX4vcM4VfLefhVch5+Nck0fgYjjV8pdfhZOQ8/K8nws9yLFj/I4Oc4z+BnGwg/K3P4WRwMfpabMPiVQuJHMoOfI5nBr5Rd8HPcmcHPcS8GP8ff1uBXtRB+TnLiV8oJ+JWktvhVNYRfyb1YUjdksaR23LUltWFPS2rHf6QltREidRpcG0Y6Q7/3yb2vrHm/MMVhrGZ+7bT1jXFvY3+d59TB+YWRW3dt2n6I9zfPNE5rVf78BcmLItQKZW5kc3RyZWFtCmVuZG9iagoxMjQgMCBvYmoKNDM3MwplbmRvYmoKMTI1IDAgb2JqCjIwCmVuZG9iagoxMjYgMCBvYmoKMzUwCmVuZG9iagoxMjcgMCBvYmoKMTEzODgKZW5kb2JqCjEyOCAwIG9iagoyNwplbmRvYmoKMTI5IDAgb2JqCjU1OAplbmRvYmoKMTMwIDAgb2JqCjg4NDQKZW5kb2JqCjEzMSAwIG9iagoyMgplbmRvYmoKMTMyIDAgb2JqCjQ4NAplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0NvdW50IDEwCi9LaWRzIFs4IDAgUiAxOCAwIFIgMTkgMCBSIDI2IDAgUiAyOSAwIFIgMzQgMCBSIDM3IDAgUiA0MCAwIFIgNDMgMCBSIDEwMyAwIFIgXSA+PgplbmRvYmoKMiAwIG9iago8PAogIC9UeXBlIC9DYXRhbG9nCiAgL1BhZ2VzIDEgMCBSCiAgL0xhbmcgKGVuKQogIC9NZXRhZGF0YSA3IDAgUgogIC9QYWdlTGFiZWxzIDkgMCBSCj4+CgplbmRvYmoKMyAwIG9iago8PAovRm9udCA8PAogIC9GMTkgMTA5IDAgUgogIC9GMTUgMTE1IDAgUgogIC9GMTYgMTIxIDAgUgo+PgovUHJvY1NldCBbIC9QREYgL0ltYWdlQiAvSW1hZ2VDIC9UZXh0IF0KL1hPYmplY3QgPDwKICAvSW00IDIxIDAgUgogIC9JbTIgMTEgMCBSCiAgL0ltMyAyMCAwIFIKICAvSW0xIDEwIDAgUgo+PgovQ29sb3JTcGFjZSA8PAogIC9EZWZhdWx0UkdCIDYgMCBSCj4+Cj4+CmVuZG9iago5IDAgb2JqCjw8IC9OdW1zIFswIDw8IC9QICgxKSA+PgogMSA8PCAvUCAoaWkpID4+CiAyIDw8IC9QIChpaWkpID4+CiAzIDw8IC9QICgxKSA+PgogNCA8PCAvUCAoMikgPj4KIDUgPDwgL1AgKDMpID4+CiA2IDw8IC9QICg0KSA+PgogNyA8PCAvUCAoNSkgPj4KIDggPDwgL1AgKDYpID4+CiA5IDw8IC9QICg3KSA+PgpdID4+CgplbmRvYmoKNDYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMTkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKNTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA2NTguNCBudWxsXQo+PgplbmRvYmoKNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA2MDQuMCBudWxsXQo+PgplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA1NjEuNiBudWxsXQo+PgplbmRvYmoKNjUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA1MTkuMiBudWxsXQo+PgplbmRvYmoKNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA0NzYuOCBudWxsXQo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCA0MzQuNCBudWxsXQo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjYgMCBSIC9YWVogNzIuMCAzOTIuMCBudWxsXQo+PgplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKODAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjkgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjkgMCBSIC9YWVogNzIuMCA2MDIuNCBudWxsXQo+PgplbmRvYmoKODYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKOTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA2NzkuMDY1IG51bGxdCj4+CmVuZG9iago5OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagp4cmVmCjAgMTMzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDE3Nzg2NCAwMDAwMCBuIAowMDAwMTc3OTg3IDAwMDAwIG4gCjAwMDAxNzgwOTIgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTEyIDAwMDAwIG4gCjAwMDAwMDI3OTAgMDAwMDAgbiAKMDAwMDAwMjgyMyAwMDAwMCBuIAowMDAwMTA2MDk5IDAwMDAwIG4gCjAwMDAxNzgzMTkgMDAwMDAgbiAKMDAwMDAwMzY5MiAwMDAwMCBuIAowMDAwMDUyMjE5IDAwMDAwIG4gCjAwMDAxMDU0ODEgMDAwMDAgbiAKMDAwMDEwNTUwMiAwMDAwMCBuIAowMDAwMTA1NTIyIDAwMDAwIG4gCjAwMDAxMDU1NDQgMDAwMDAgbiAKMDAwMDEwNTU2NiAwMDAwMCBuIAowMDAwMTA2MjY2IDAwMDAwIG4gCjAwMDAxNDcwNDIgMDAwMDAgbiAKMDAwMDEyMDE3NyAwMDAwMCBuIAowMDAwMTA2Mjg2IDAwMDAwIG4gCjAwMDAxMTI0NTcgMDAwMDAgbiAKMDAwMDExOTYzNyAwMDAwMCBuIAowMDAwMTE5NjU4IDAwMDAwIG4gCjAwMDAxMTk2NzkgMDAwMDAgbiAKMDAwMDEyMDM0NSAwMDAwMCBuIAowMDAwMTIxNTk5IDAwMDAwIG4gCjAwMDAxMjAzNjUgMDAwMDAgbiAKMDAwMDEyMTc2NyAwMDAwMCBuIAowMDAwMTIzMjMzIDAwMDAwIG4gCjAwMDAxMjE3ODggMDAwMDAgbiAKMDAwMDEyMzIwNiAwMDAwMCBuIAowMDAwMTIxOTk4IDAwMDAwIG4gCjAwMDAxMjM0MTggMDAwMDAgbiAKMDAwMDEyNDA5MCAwMDAwMCBuIAowMDAwMTIzNDM5IDAwMDAwIG4gCjAwMDAxMjQyNTggMDAwMDAgbiAKMDAwMDEyNTU3OSAwMDAwMCBuIAowMDAwMTI0Mjc4IDAwMDAwIG4gCjAwMDAxMjU3NDcgMDAwMDAgbiAKMDAwMDEyNjYxOCAwMDAwMCBuIAowMDAwMTI1NzY4IDAwMDAwIG4gCjAwMDAxMjY3ODYgMDAwMDAgbiAKMDAwMDEyODcxMCAwMDAwMCBuIAowMDAwMTI2ODA2IDAwMDAwIG4gCjAwMDAxMjg4NzggMDAwMDAgbiAKMDAwMDE3ODUxMiAwMDAwMCBuIAowMDAwMTI4ODk5IDAwMDAwIG4gCjAwMDAxNDY3NjkgMDAwMDAgbiAKMDAwMDEyOTAzNSAwMDAwMCBuIAowMDAwMTc4NTkwIDAwMDAwIG4gCjAwMDAxMjkxNzUgMDAwMDAgbiAKMDAwMDEyOTMxMiAwMDAwMCBuIAowMDAwMTc4NjY4IDAwMDAwIG4gCjAwMDAxMjk0NTIgMDAwMDAgbiAKMDAwMDEyOTU5MCAwMDAwMCBuIAowMDAwMTc4NzQ2IDAwMDAwIG4gCjAwMDAxMjk3MzIgMDAwMDAgbiAKMDAwMDEyOTg3MCAwMDAwMCBuIAowMDAwMTc4ODI0IDAwMDAwIG4gCjAwMDAxMzAwMDggMDAwMDAgbiAKMDAwMDEzMDE0NiAwMDAwMCBuIAowMDAwMTc4OTAyIDAwMDAwIG4gCjAwMDAxMzAyODggMDAwMDAgbiAKMDAwMDEzMDQyOCAwMDAwMCBuIAowMDAwMTc4OTgwIDAwMDAwIG4gCjAwMDAxMzA1NzAgMDAwMDAgbiAKMDAwMDEzMDcxMCAwMDAwMCBuIAowMDAwMTc5MDU4IDAwMDAwIG4gCjAwMDAxMzA4NTIgMDAwMDAgbiAKMDAwMDEzMDk5MCAwMDAwMCBuIAowMDAwMTc5MTM2IDAwMDAwIG4gCjAwMDAxMzExMzIgMDAwMDAgbiAKMDAwMDEzMTI3MCAwMDAwMCBuIAowMDAwMTc5MjE0IDAwMDAwIG4gCjAwMDAxMzE0MDggMDAwMDAgbiAKMDAwMDEzMTU0NiAwMDAwMCBuIAowMDAwMTc5MjkyIDAwMDAwIG4gCjAwMDAxMzE2ODggMDAwMDAgbiAKMDAwMDEzMTgyNSAwMDAwMCBuIAowMDAwMTc5MzcwIDAwMDAwIG4gCjAwMDAxMzE5NjcgMDAwMDAgbiAKMDAwMDEzMjEwNSAwMDAwMCBuIAowMDAwMTc5NDQ4IDAwMDAwIG4gCjAwMDAxMzIyNDUgMDAwMDAgbiAKMDAwMDEzMjM4MyAwMDAwMCBuIAowMDAwMTc5NTI2IDAwMDAwIG4gCjAwMDAxMzI1MjMgMDAwMDAgbiAKMDAwMDEzMjY2MCAwMDAwMCBuIAowMDAwMTc5NjA0IDAwMDAwIG4gCjAwMDAxMzI4MDIgMDAwMDAgbiAKMDAwMDEzMjk0MCAwMDAwMCBuIAowMDAwMTc5NjgyIDAwMDAwIG4gCjAwMDAxMzMwNzggMDAwMDAgbiAKMDAwMDEzMzIxNyAwMDAwMCBuIAowMDAwMTc5NzYwIDAwMDAwIG4gCjAwMDAxMzMzNTkgMDAwMDAgbiAKMDAwMDEzMzUwMSAwMDAwMCBuIAowMDAwMTc5ODQwIDAwMDAwIG4gCjAwMDAxMzM2NDEgMDAwMDAgbiAKMDAwMDEzMzc4MCAwMDAwMCBuIAowMDAwMTMzOTI1IDAwMDAwIG4gCjAwMDAxNDcyMjggMDAwMDAgbiAKMDAwMDE0ODA0MyAwMDAwMCBuIAowMDAwMTQ3MjUxIDAwMDAwIG4gCjAwMDAxNDgyMTMgMDAwMDAgbiAKMDAwMDE0ODIzNCAwMDAwMCBuIAowMDAwMTQ4NDk3IDAwMDAwIG4gCjAwMDAxNTI5NjggMDAwMDAgbiAKMDAwMDE1MzA2NiAwMDAwMCBuIAowMDAwMTUzMjMxIDAwMDAwIG4gCjAwMDAxNTM1NjUgMDAwMDAgbiAKMDAwMDE1Mzk5MyAwMDAwMCBuIAowMDAwMTU0MjU0IDAwMDAwIG4gCjAwMDAxNjU3NDEgMDAwMDAgbiAKMDAwMDE2NTg0NiAwMDAwMCBuIAowMDAwMTY2MDA3IDAwMDAwIG4gCjAwMDAxNjY1MzcgMDAwMDAgbiAKMDAwMDE2NzE3MyAwMDAwMCBuIAowMDAwMTY3NDM5IDAwMDAwIG4gCjAwMDAxNzYzODIgMDAwMDAgbiAKMDAwMDE3NjQ4MiAwMDAwMCBuIAowMDAwMTc2NjQ4IDAwMDAwIG4gCjAwMDAxNzcxMTIgMDAwMDAgbiAKMDAwMDE3NzY3NCAwMDAwMCBuIAowMDAwMTc3Njk2IDAwMDAwIG4gCjAwMDAxNzc3MTYgMDAwMDAgbiAKMDAwMDE3NzczNyAwMDAwMCBuIAowMDAwMTc3NzYwIDAwMDAwIG4gCjAwMDAxNzc3ODAgMDAwMDAgbiAKMDAwMDE3NzgwMSAwMDAwMCBuIAowMDAwMTc3ODIzIDAwMDAwIG4gCjAwMDAxNzc4NDMgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxMzMKL1Jvb3QgMiAwIFIKL0luZm8gNCAwIFIKL0lEIFs8RTlFMzQ4RDA1MzcyRDVDRDUyN0MyRTlDQkNDNjYxMjQ+IDxFOUUzNDhEMDUzNzJENUNENTI3QzJFOUNCQ0M2NjEyND5dCj4+CnN0YXJ0eHJlZgoxNzk5MTgKJSVFT0YK