REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 130.83 KB
Close
/proc/thread-self/root/usr/share/locale/en/LC_MESSAGES/lynx.mo
Text
Base64
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DKsBACgAAAAaqwEAKAAAAEOrAQBLAAAAbKsBABQAAAC4qwEAEgAAAM2rAQAqAAAA4KsBAAkAAAALrAEAMAAAABWsAQAvAAAARqwBABUAAAB2rAEADwAAAIysAQAUAAAAnKwBACYAAACxrAEAJQAAANisAQAVAAAA/qwBABYAAAAUrQEAGAAAACutAQATAAAARK0BACYAAABYrQEAMwAAAH+tAQA8AAAAs60BAEUAAADwrQEACgAAADauAQAOAAAAQa4BABwAAABQrgEAFgAAAG2uAQAzAAAAhK4BACgAAAC4rgEAFgAAAOGuAQARAAAA+K4BABEAAAAKrwEADAAAAByvAQAaAAAAKa8BABUAAABErwEALAAAAFqvAQA5AAAAh68BACIAAADBrwEADQAAAOSvAQARAAAA8q8BABIAAAAEsAEAHQAAABewAQAhAAAANbABABoAAABXsAEAIAAAAHKwAQAvAAAAk7ABAC4AAADDsAEAGwAAAPKwAQAaAAAADrEBAA0AAAApsQEALQAAADexAQAbAAAAZbEBABMAAACBsQEACQAAAJWxAQAWAAAAn7EBACYAAAC2sQEACAAAAN2xAQA+AAAA5rEBADMAAAAlsgEALwAAAFmyAQAUAAAAibIBABkAAACesgEAFAAAALiyAQAMAAAAzbIBABUAAADasgEAFgAAAPCyAQARAAAAB7MBAAkAAAAZswEAPQAAACOzAQA9AAAAYbMBAD0AAACfswEAHAAAAN2zAQATAAAA+rMBABoAAAAOtAEAJQAAACm0AQAUAAAAT7QBAAgAAABktAEAUAAAAG20AQAQAAAAvrQBAAcAAADPtAEAJAAAANe0AQAgAAAA/LQBADMAAAAdtQEAMgAAAFG1AQA/AAAAhLUBADQAAADEtQEAFgAAAPm1AQASAAAAELYBABIAAAAjtgEABwAAADa2AQAXAAAAPrYBABcAAABWtgEAFQAAAG62AQAXAAAAhLYBABUAAACctgEAFwAAALK2AQAJAAAAyrYBAA8AAADUtgEAMgAAAOS2AQAHAAAAF7cBAAwAAAAftwEAMQAAACy3AQAbAAAAXrcBABAAAAB6twEAEAAAAIu3AQAKAAAAnLcBAAsAAACntwEADgAAALO3AQALAAAAwrcBABAAAADOtwEADgAAAN+3AQAaAAAA7rcBABoAAAAJuAEA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CUFsaWduPSVkLCAlZCB0YWJzLiAoJS4wZiBiZWZvcmUsICUuMGYgYWZ0ZXIpCgAJSW5kZW50czogZmlyc3Q9JS4wZiBvdGhlcnM9JS4wZiwgSGVpZ2h0PSUuMWYgRGVzYz0lLjFmCgAKCiBQbGVhc2UgZW50ZXIgeW91ciBtZXNzYWdlIGJlbG93LgAKCiBQbGVhc2UgcHJvdmlkZSBvciBlZGl0IHRoZSBPcmdhbml6YXRpb246IGhlYWRlcgoACgogUGxlYXNlIHByb3ZpZGUgb3IgZWRpdCB0aGUgU3ViamVjdDogaGVhZGVyCgAKCiBQbGVhc2UgcHJvdmlkZSB5b3VyIG1haWwgYWRkcmVzcyBmb3IgdGhlIEZyb206IGhlYWRlcgoACgpVc2UgQ3RybC1HIHRvIGNhbmNlbCBpZiB5b3UgZG8gbm90IHdhbnQgdG8gc2VuZCBhIG1lc3NhZ2UKAAogRW50ZXIgYSBtYWlsIGFkZHJlc3MgZm9yIGEgQ0Mgb2YgeW91ciBtZXNzYWdlLgoACiBQbGVhc2UgZW50ZXIgYSBtYWlsIGFkZHJlc3Mgb3Igc29tZSBvdGhlcgoACiBQbGVhc2UgZW50ZXIgYSBzdWJqZWN0IGxpbmUuCgAKIFBsZWFzZSBlbnRlciB5b3VyIG1lc3NhZ2UgYmVsb3cuAAogUGxlYXNlIGVudGVyIHlvdXIgbmFtZSwgb3IgbGVhdmUgaXQgYmxhbmsgdG8gcmVtYWluIGFub255bW91cwoACiBQbGVhc2UgcmV2aWV3IHRoZSBtZXNzYWdlIGJvZHk6CgoACiBXaGVuIHlvdSBhcmUgZG9uZSwgcHJlc3MgZW50ZXIgYW5kIHB1dCBhIHNpbmdsZSBwZXJpb2QgKC4pAAogV2l0aCBjb3BpZXMgdG86CiAgAAogV2l0aCBjb3B5IHRvOgogIAAKIG9uIGEgbGluZSBhbmQgcHJlc3MgZW50ZXIgYWdhaW4uAApBIEZhdGFsIGVycm9yIGhhcyBvY2N1cnJlZCBpbiAlcyBWZXIuICVzCgAKQ29kZSByZWNvcmQsIGNhbid0IGRpc3BsYXkKAApDb25maWd1cmF0aW9uIGZpbGUgIiVzIiBpcyBub3QgYXZhaWxhYmxlLgoKAApFbnRlciB0aGUgJ3MnZWFyY2ggY29tbWFuZCBhbmQgdGhlbiBzcGVjaWZ5IHNlYXJjaCB3b3Jkcy4KAApIZWFkbGluZSByZWNvcmQsIGNhbid0IGRpc3BsYXkKAApMb25nIEhlYWRlciByZWNvcmQsIGNhbid0IGRpc3BsYXkKAApMeW54IGNoYXJhY3RlciBzZXRzIG5vdCBkZWNsYXJlZC4KCgAKTHlueCBmaWxlICIlcyIgaXMgbm90IGF2YWlsYWJsZS4KCgAKTm8gYXJ0aWNsZXMgaW4gdGhpcyBncm91cC4KAApObyBhcnRpY2xlcyBpbiB0aGlzIHJhbmdlLgoAClBsZWFzZSBlbnRlciBzZWFyY2gga2V5d29yZHMuCgAKUGxlYXNlIG5vdGlmeSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNvbmZpcm0gYSBidWcsIGFuZCBpZgpjb25maXJtZWQsIHRvIG5vdGlmeSB0aGUgbHlueC1kZXYgbGlzdC4gIEJ1ZyByZXBvcnRzIHNob3VsZCBoYXZlIGNvbmNpc2UKZGVzY3JpcHRpb25zIG9mIHRoZSBjb21tYW5kIGFuZC9vciBVUkwgd2hpY2ggY2F1c2VzIHRoZSBwcm9ibGVtLCB0aGUKb3BlcmF0aW5nIHN5c3RlbSBuYW1lIHdpdGggdmVyc2lvbiBudW1iZXIsIHRoZSBUQ1BJUCBpbXBsZW1lbnRhdGlvbiwgdGhlClRSQUNFQkFDSyBpZiBpdCBjYW4gYmUgY2FwdHVyZWQsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgaW5mb3JtYXRpb24uCgAKUHJlc3MgUkVUVVJOIHRvIGNsZWFuIHVwOiAAClByZXNzIFJFVFVSTiB0byBjb250aW51ZTogAApQcmVzcyB0aGUgJ3MnIGtleSBhbmQgZW50ZXIgc2VhcmNoIGtleXdvcmRzLgoAClRleHQgcmVjb3JkCgAKVGhlIGtleXdvcmRzIHRoYXQgeW91IGVudGVyIHdpbGwgYWxsb3cgeW91IHRvIHNlYXJjaCBvbiBhAApUaGVyZSBhcmUgYWJvdXQgJWQgYXJ0aWNsZXMgY3VycmVudGx5IGF2YWlsYWJsZSBpbiAlcywgSURzIGFzIGZvbGxvd3M6CgoAClRoaXMgaXMgYSBzZWFyY2hhYmxlIEdvcGhlciBpbmRleC4KAApUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleCBvZiBhIENTTyBkYXRhYmFzZS4KACAgICAgICAgICAgIEVudGVyIHRleHQgaW50byB0aGUgZmllbGQgYnkgdHlwaW5nIG9uIHRoZSBrZXlib2FyZCAgICAgICAgICAgICAgACAgICAgICAgIEVkaXRpbmcgQm9va21hcmsgREVTQ1JJUFRJT04gYW5kIEZJTEVQQVRIACAgICAgICBTZWxlY3QgQm9va21hcmsAICAgICAgJXMgdG8gZGVsZXRlIHRleHQgaW4gZmllbGQsIFtCYWNrc3BhY2VdIHRvIGRlbGV0ZSBhIGNoYXJhY3RlciAgICAAICAgICAgQ3RybC1VIHRvIGRlbGV0ZSB0ZXh0IGluIGZpZWxkLCBbQmFja3NwYWNlXSB0byBkZWxldGUgYSBjaGFyYWN0ZXIgICAgACAgICAgIEV4aXRpbmcuLi4AICAgICBUaGlzIGZpbGUgYWxzbyBtYXkgYmUgZWRpdGVkIHdpdGggYSBzdGFuZGFyZCB0ZXh0IGVkaXRvciB0byBkZWxldGUKICAgICBvdXRkYXRlZCBvciBpbnZhbGlkIGxpbmtzLCBvciB0byBjaGFuZ2UgdGhlaXIgb3JkZXIuACAgICAgVGhpcyBmaWxlIGlzIGFuIEhUTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIFggTW9zYWljIGhvdGxpc3QgZmlsZS4KICAgICBPdXRkYXRlZCBvciBpbnZhbGlkIGxpbmtzIG1heSBiZSByZW1vdmVkIGJ5IHVzaW5nIHRoZQogICAgIHJlbW92ZSBib29rbWFyayBjb21tYW5kLCBpdCBpcyB1c3VhbGx5IHRoZSAnUicga2V5IGJ1dCBtYXkgaGF2ZQogICAgIGJlZW4gcmVtYXBwZWQgYnkgeW91IG9yIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IuACAgICAgWW91IGNhbiBkZWxldGUgbGlua3MgYnkgdGhlICdSJyBrZXk8YnI+CjxvbD4KACAgICAgWW91IGNhbiBkZWxldGUgbGlua3MgdXNpbmcgdGhlIHJlbW92ZSBib29rbWFyayBjb21tYW5kLiAgSXQgaXMgdXN1YWxseQogICAgIHRoZSAnUicga2V5IGJ1dCBtYXkgaGF2ZSBiZWVuIHJlbWFwcGVkIGJ5IHlvdSBvciB5b3VyIHN5c3RlbQogICAgIGFkbWluaXN0cmF0b3IuACAgICAlcyB0byBkZWxldGUgYWxsIHRleHQgaW4gZmllbGQsIFtCYWNrc3BhY2VdIHRvIGRlbGV0ZSBhIGNoYXJhY3RlciAgICAAICAgIEN0cmwtVSB0byBkZWxldGUgYWxsIHRleHQgaW4gZmllbGQsIFtCYWNrc3BhY2VdIHRvIGRlbGV0ZSBhIGNoYXJhY3RlciAgICAAICBBcnJvdyBrZXlzOiBVcCBhbmQgRG93biB0byBtb3ZlLiAgUmlnaHQgdG8gZm9sbG93IGEgbGluazsgTGVmdCB0byBnbyBiYWNrLiAgCgAgIEMpcmVhdGUgIEQpb3dubG9hZCAgRSlkaXQgIEYpdWxsIG1lbnUgIE0pb2RpZnkgIFIpZW1vdmUgIFQpYWcgIFUpcGxvYWQgICAgIAoAICBPKXRoZXIgY21kcyAgQilhY2sgIEUpZGl0ICBEKW93bmxvYWQgXlIpZWxvYWQgXlcpaXBlIHNjcmVlbiAgc2VhcmNoIGRvYzogLyAKACAgTyl0aGVyIGNtZHMgIEgpZWxwICBLKWV5bWFwICBHKW90byAgUClyaW50ICBNKWFpbiBzY3JlZW4gIG8pcHRpb25zICBRKXVpdCAgCgAgJz4nIHRvIHNhdmUsIG9yICdyJyB0byByZXR1cm4gdG8gTHlueCAAICdyJyB0byByZXR1cm4gdG8gTHlueCAAIChGcm9tIEhpc3RvcnkpACAoTGVhdmUgYmxhbmsgaWYgeW91IGRvbid0IHdhbnQgYSBjb3B5LikKACAoUHJlc3MgJ3onIHRvIGFib3J0KQAgKFdBSVMgSW5kZXgpACAoYmFkIGZpbGUgbmFtZSkAIChpbiAAIChpbnRlcm5hbCkAIChvciB2aWEgcHJveHkgc2VydmVyLCBpZiBkZWZpbmVkKQAgKHN0YWxsZWQgZm9yICVzKQAgKHdhcyBpbnRlcm5hbCkAICoqKiBNRU1PUlkgRVhIQVVTVEVEICoqKgAgSCllbHAgTylwdGlvbnMgUClyaW50IEcpbyBNKWFpbiBzY3JlZW4gUSl1aXQgLz1zZWFyY2ggW2RlbGV0ZV09aGlzdG9yeSBsaXN0IAoAIE5PVCBHSVZFTiBpbiBzb3VyY2UgZmlsZTsgACBQcmludCBqb2IgY29tcGxldGUuCgAgU2VhcmNoIFJlc3VsdHMAIFNlbGVjdCBCb29rbWFyayAoc2NyZWVuICVkIG9mICVkKQAgVXNlIENvbnRyb2wtVSB0byBlcmFzZSB0aGUgZGVmYXVsdC4KACBWZXJzaW9uIAAgV0FJUyBJbmRleC4KACBXQUlTIHNvdXJjZSBmaWxlACBjb250YWlucyB0aGUgZm9sbG93aW5nICVkIGl0ZW0lcyByZWxldmFudCB0byAiACBkZXNjcmlwdGlvbgAgZGlyZWN0b3J5ACBmaXJzdAAgaW5kZXgAIG1lYW5zIHRvIGNvbnRhY3QgeW91LCBpZiB5b3UgZGVzaXJlIGEgcmVzcG9uc2UuCgAgb2Ygb3B0aW9uIGxpbmUsACBvciAAIHBlcnNvbidzIG5hbWUgaW4gdGhlIGRhdGFiYXNlLgoAIHRvIAAgdG8gcmV0dXJuIHRvIEx5bnguACB0byBzYXZlLAAiIGluOiAAJXMgIEQpb3dubG9hZCwgb3IgQylhbmNlbAAlcyBWZXJzaW9uICVzICglcykAJXMgY29va2llOiAlLipzPSUuKnMgIEFsbG93PyAoWS9OL0Fsd2F5cy9uZVZlcikAJXMsICBBcnRpY2xlcyAlZC0lZAAlczogSW52YWxpZCBPcHRpb246ICVzCgAnJXMnIG5vdCBmb3VuZCEAJ0EnbHdheXMgYWxsb3dpbmcgZnJvbSBkb21haW4gJyVzJy4AJ1Ancm9tcHRpbmcgdG8gYWxsb3cgZnJvbSBkb21haW4gJyVzJy4AKENoZWNrYm94ICIlcyIpOyAgIFVzZSByaWdodC1hcnJvdyBvciA8cmV0dXJuPiB0byB0b2dnbGUuAChDaGVja2JveCBGaWVsZCkgICBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gdG9nZ2xlLgAoQ2hvaWNlIGVudHJ5ICIlcyIpOyBVc2UgYXJyb3cga2V5cyBhbmQgcmV0dXJuIHRvIHNlbGVjdCBvcHRpb24uAChDaG9pY2UgbGlzdCkgSGl0IHJldHVybiBhbmQgdXNlIGFycm93IGtleXMgYW5kIHJldHVybiB0byBzZWxlY3Qgb3B0aW9uLgAoQ29va2llcyBhbGxvd2VkIHZpYSBwcm9tcHQuKQAoQ29va2llcyBhbHdheXMgYWxsb3dlZC4pAChDb29raWVzIG5ldmVyIGFsbG93ZWQuKQAoRW5kIG9mIHNlc3Npb24uKQAoRmlsZSBlbnRyeSBmaWVsZCkgRW50ZXIgZmlsZW5hbWUuICBVc2UgVVAgb3IgRE9XTiBhcnJvd3Mgb3IgdGFiIHRvIG1vdmUgb2ZmLgAoRm9ybSBmaWVsZCkAKEZvcm0gZmllbGQpIEVudGVyIHRleHQuICBVc2UgPHJldHVybj4gdG8gc3VibWl0ICglcyBmb3Igbm8gY2FjaGUpLgAoRm9ybSBmaWVsZCkgRW50ZXIgdGV4dC4gIFVzZSA8cmV0dXJuPiB0byBzdWJtaXQsIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAChGb3JtIGZpZWxkKSBFbnRlciB0ZXh0LiAgVXNlIDxyZXR1cm4+IHRvIHN1Ym1pdC4AKEZvcm0gZmllbGQpIEluYWN0aXZlLiAgVXNlIDxyZXR1cm4+IHRvIGVkaXQgKCVzIHRvIHN1Ym1pdCB3aXRoIG5vIGNhY2hlKS4AKEZvcm0gZmllbGQpIEluYWN0aXZlLiAgVXNlIDxyZXR1cm4+IHRvIGVkaXQuAChGb3JtIGZpZWxkKSBJbmFjdGl2ZS4gUHJlc3MgPHJldHVybj4gdG8gZWRpdCwgcHJlc3MgPHJldHVybj4gdHdpY2UgdG8gc3VibWl0LgAoRm9ybSByZXNldCBidXR0b24pICAgVXNlIHJpZ2h0LWFycm93IG9yIDxyZXR1cm4+IHRvIHJlc2V0IGZvcm0gdG8gZGVmYXVsdHMuAChGb3JtIHN1Ym1pdCBidXR0b24pIFVzZSByaWdodC1hcnJvdyBvciA8cmV0dXJuPiB0byBzdWJtaXQgKCd4JyBmb3Igbm8gY2FjaGUpLgAoRm9ybSBzdWJtaXQgYnV0dG9uKSBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gc3VibWl0LgAoTk9STUFMIExJTkspICAgVXNlIHJpZ2h0LWFycm93IG9yIDxyZXR1cm4+IHRvIGFjdGl2YXRlLgAoTm8gbWVzc2FnZXMgeWV0KQAoTm8gbmFtZS4pAChObyB0aXRsZS4pAChObyB2YWx1ZS4pAChPcHRpb24gbGlzdCAiJXMiKTsgSGl0IHJldHVybiB0byBzZWxlY3Qgb3B0aW9uLgAoT3B0aW9uIGxpc3QpIEhpdCByZXR1cm4gYW5kIHVzZSBhcnJvdyBrZXlzIGFuZCByZXR1cm4gdG8gc2VsZWN0IG9wdGlvbi4AKFBhc3N3b3JkIGVudHJ5IGZpZWxkKSBFbnRlciB0ZXh0LiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AKFBhc3N3b3JkIGVudHJ5IGZpZWxkKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGFjdGl2YXRlLgAoUGVyc2lzdGVudCBDb29raWVzLikAKFJhZGlvIEJ1dHRvbiAiJXMiKTsgICBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gdG9nZ2xlLgAoUmFkaW8gQnV0dG9uKSAgIFVzZSByaWdodC1hcnJvdyBvciA8cmV0dXJuPiB0byB0b2dnbGUuAChTY3JpcHQgYnV0dG9uICIlcyIpOyAgIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAChTY3JpcHQgYnV0dG9uKSAgIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAChTaG9ydCBIZWFkZXIgcmVjb3JkLCBjYW4ndCBkaXNwbGF5KQAoVGV4dCBlbnRyeSBmaWVsZCkgSW5hY3RpdmUuICBQcmVzcyA8cmV0dXJuPiB0byBhY3RpdmF0ZS4AKFRleHRhcmVhICIlcyIpOyBFbnRlciB0ZXh0LiBVc2UgVVAvRE9XTiBhcnJvd3Mgb3IgVEFCIHRvIG1vdmUgb2ZmICglcyBmb3IgZWRpdG9yKS4AKFRleHRhcmVhICIlcyIpOyBFbnRlciB0ZXh0LiBVc2UgVVAvRE9XTiBhcnJvd3Mgb3IgVEFCIHRvIG1vdmUgb2ZmLgAoVGV4dGFyZWEgIiVzIik7IEluYWN0aXZlLiAgUHJlc3MgPHJldHVybj4gdG8gYWN0aXZhdGUgKCVzIGZvciBlZGl0b3IpLgAoVGV4dGFyZWEgIiVzIik7IEluYWN0aXZlLiAgUHJlc3MgPHJldHVybj4gdG8gYWN0aXZhdGUuAChUZXh0YXJlYSkgRW50ZXIgdGV4dC4gVXNlIFVQL0RPV04gYXJyb3dzIG9yIFRBQiB0byBtb3ZlIG9mZiAoJXMgZm9yIGVkaXRvcikuAChUZXh0YXJlYSkgRW50ZXIgdGV4dC4gVXNlIFVQL0RPV04gYXJyb3dzIG9yIFRBQiB0byBtb3ZlIG9mZi4AKFRleHRhcmVhKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGFjdGl2YXRlICglcyBmb3IgZWRpdG9yKS4AKFRleHRhcmVhKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGFjdGl2YXRlLgAoVGV4dGZpZWxkICIlcyIpOyBFbnRlciB0ZXh0LiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AKFRleHRmaWVsZCAiJXMiKTsgSW5hY3RpdmUuICBQcmVzcyA8cmV0dXJuPiB0byBhY3RpdmF0ZS4AKGFwcHJveGltYXRlbHkpAChhc3N1bWVkKQAoYmFkIGRvYyBpZCkAKGJ5dGVzKQAoZnJvbSBhIHByZXZpb3VzIHNlc3Npb24pAChtYWlsdG8gZm9ybSBmaWVsZCkgRW50ZXIgdGV4dC4gIFVzZSA8cmV0dXJuPiB0byBzdWJtaXQsIGFycm93cyB0byBtb3ZlIG9mZi4AKG1haWx0byBmb3JtIGZpZWxkKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGNoYW5nZS4AKG1haWx0byBmb3JtIGZpZWxkKSBNYWlsIGlzIGRpc2FsbG93ZWQgc28geW91IGNhbm5vdCBzdWJtaXQuAChtYWlsdG8gZm9ybSBzdWJtaXQgYnV0dG9uKSBNYWlsIGlzIGRpc2FsbG93ZWQgc28geW91IGNhbm5vdCBzdWJtaXQuAChtYWlsdG8gZm9ybSBzdWJtaXQgYnV0dG9uKSBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gc3VibWl0LgAobm8gYWRkcmVzcykAKG5vIG5hbWUpAChub25lKQAob3B0aW9ucyBtYXJrZWQgd2l0aCAoISkgd2lsbCBub3QgYmUgc2F2ZWQpACh1bmtub3duKQAqKiBCYWQgSFRNTCEhICBObyBmb3JtIGFjdGlvbiBkZWZpbmVkLiAqKgAqKiBCYWQgSFRNTCEhICBVc2UgLXRyYWNlIHRvIGRpYWdub3NlLiAqKgAqKiogWW91IGhhdmUgbWFpbC4gKioqACoqKiBZb3UgaGF2ZSBuZXcgbWFpbC4gKioqACoqKiBZb3UgaGF2ZSB1bnJlYWQgbWFpbC4gKioqACoqKiogSFRBY2Nlc3M6IEludGVybmFsIHNvZnR3YXJlIGVycm9yLiAgUGxlYXNlIG1haWwgbHlueC1kZXZAbm9uZ251Lm9yZyEKACoqKiogSFRBY2Nlc3M6IFN0YXR1cyByZXR1cm5lZCB3YXM6ICVkCgAqKioqIEhUQWNjZXNzOiBzb2NrZXQgb3IgZmlsZSBudW1iZXIgcmV0dXJuZWQgYnkgb2Jzb2xldGUgbG9hZCByb3V0aW5lIQoALCAlcy9zZWMALCBFVEEgJXMALCBJU01BUCBzY3JpcHQALCBib29rbWFyayBmaWxlACwgZ3Vlc3NpbmcuLi4ALCBoZWxwIG9uIAAsIG5vLWNhY2hlACwgc2FmZQAsIHZpYSBpbnRlcm5hbCBsaW5rAC0tIHByZXNzIHNwYWNlIGZvciBtb3JlLCB1c2UgYXJyb3cga2V5cyB0byBtb3ZlLCAnPycgZm9yIGhlbHAsICdxJyB0byBxdWl0LgAtLSBwcmVzcyBzcGFjZSBmb3IgbmV4dCBwYWdlIC0tAC0tTW9yZS0tICBUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gIFVzZSAlcyB0byBzZWFyY2guAC1pbmRleC0ALW1vcmUtAEEgVVJMIHNwZWNpZmllZCBieSB0aGUgdXNlcgBBIGNvbXBvbmVudCBvZiBwYXRoIGlzIG5vdCBhIGRpcmVjdG9yeQBBRFZBTkNFRABBTFdBWVMAQUxXQVlTIE9GRgBBTFdBWVMgT04AQWNjZXB0IENoYW5nZXMAQWNjZXB0IGFsbCB0eXBlcwBBY2NlcHQgaW52YWxpZCBjb29raWUgZG9tYWluPSVzIGZvciAnJXMnPwBBY2NlcHQgaW52YWxpZCBjb29raWUgcGF0aD0lcyBhcyBhIHByZWZpeCBvZiAnJXMnPwBBY2NlcHQgbHlueCdzIGludGVybmFsIHR5cGVzAEFjY2VzcyBQZXJtaXNzaW9ucwBBY2Nlc3MgZm9yYmlkZGVuIGJ5IHJ1bGUAQWNjZXNzIGxpbmtzAEFjY2VzcyB0byBkb3QgZmlsZXMgaXMgZGlzYWJsZWQhAEFjY2VzcyB0byBsb2NhbCBmaWxlcyBkZW5pZWQuAEFjY2VzcyB3aXRob3V0IGF1dGhvcml6YXRpb24gZGVuaWVkIC0tIHJldHJ5aW5nAEFjdGlvbjoAQWN0aXZhdGUgbGlua3MgdG8gZ29iYmxlIHVwIGNvb2tpZXMgb3IgZW50aXJlIGRvbWFpbnMsAEFkZCB0byBMWU5YTUVTU0FHRVMAQWRkIHRvIHRyYWNlLWZpbGUAQWRkcmVzcyBMaXN0IFBhZ2UAQWRkcmVzcyBoYXMgaW52YWxpZCBwb3J0AEFkZHJlc3MgbGVuZ3RoIGxvb2tzIGludmFsaWQAQWR2YW5jZWQAQWxlcnQhOiAlcwBBbGwAQWxsIGF2YWlsYWJsZSBhcnRpY2xlcyBpbiAAQWxsIGNvb2tpZXMgaW4gdGhlIGRvbWFpbiBoYXZlIGJlZW4gZWF0ZW4hAEFsbCBvZiB0aGUgY29va2llcyBpbiB0aGUgamFyIGhhdmUgYmVlbiBlYXRlbiEAQWxsb3dpbmcgdGhpcyBjb29raWUuAEFscmVhZHkgaW4gdGFyZ2V0IGRpcmVjdG9yeTogJXMAQWxzbyBhY2NlcHQgbHlueC5jZmcncyB0eXBlcwBBbHNvIGFjY2VwdCBzeXN0ZW0ncyB0eXBlcwBBbHNvIGFjY2VwdCB1c2VyJ3MgdHlwZXMAQW4gZXhjZWxsZW50IGh0dHAgc2VydmVyIGZvciBWTVMgaXMgYXZhaWxhYmxlIHZpYQBBcHBlbmQgJyVzJz8AQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHF1aXQ/AEFzIFZpc2l0IFRyZWUAQXNzdW1lZCBkb2N1bWVudCBjaGFyYWN0ZXIgc2V0AEF1dGhvcml6YXRpb24gZmFpbGVkLiAgUmV0cnk/AEF1dGhvcml6YXRpb24gaW5mbyBjbGVhcmVkLgBBdXRvIFNlc3Npb24AQilvb2ttYXJrIGZpbGU6IABCYWQgSFRNTCBtZXNzYWdlcwBCYWQgSFRNTCEhICBVbmFibGUgdG8gY3JlYXRlIHBvcHVwIHdpbmRvdyEAQmFkIHBhcnRpYWwgcmVmZXJlbmNlISAgU3RyaXBwaW5nIGxlYWQgZG90cy4AQmFkIHJlcXVlc3QhAEJhZCBydWxlAEJhZGx5IGZvcm1lZCBhZGRyZXNzICVzAEJlIHN1cmUgeW91ciBwcmludGVyIGlzIG9uLWxpbmUuICBQcmVzcyA8cmV0dXJuPiB0byBzdGFydCBwcmludGluZzoAQm9va21hcmsgZGVsZXRpb24gZmFpbGVkLgBCb29rbWFyayBmZWF0dXJlcyBhcmUgY3VycmVudGx5IGRpc2FibGVkLgBCb29rbWFyayBmaWxlAEJvb2ttYXJrIGZpbGUgaXMgbm90IGRlZmluZWQuIFVzZSAlcyB0byBzZWUgb3B0aW9ucy4AQm9va21hcmsgZmlsZXMgY2Fubm90IGJlIHRyYXZlcnNlZCAob25seSBodHRwIFVSTHMpLgBCb29rbWFya3MgZmlsZQBCdWlsZGluZyBkaXJlY3RvcnkgbGlzdGluZy4uLgBCdWlsdCBvbiAlcyVzLgoAQnkgRGF0ZQBCeSBGaXJzdCBWaXNpdABCeSBGaXJzdCBWaXNpdCBSZXZlcnNlZABCeSBHcm91cABCeSBMYXN0IFZpc2l0AEJ5IExhc3QgVmlzaXQgUmV2ZXJzZWQAQnkgTW9kZQBCeSBOYW1lAEJ5IFNpemUAQnkgVHlwZQBCeSBVc2VyAEJ5dGVTaXplOgBCeXRlcyBhbGxvY2F0ZWQAQ0pLIG1vZGUAQ1NPIFNlYXJjaCBSZXN1bHRzAENTTyBpbmRleABDU08vUEggcmVxdWVzdCBzZW50OyB3YWl0aW5nIGZvciByZXNwb25zZS4AQ2FjaGUgSmFyAENhY2hlLUNvbnRyb2w6AENhbid0IEFjY2VzcwBDYW4ndCBhY2Nlc3MgcmVxdWVzdGVkIGZpbGUuAENhbid0IGNvbnZlcnQgZm9ybWF0IG9mIFdBSVMgZG9jdW1lbnQAQ2FuJ3QgZmluZCBjb21tb24gbmFtZSBpbiBjZXJ0aWZpY2F0ZQBDYW4ndCBvcGVuIGZpbGUgZm9yIHJlYWRpbmcuAENhbid0IG9wZW4gZmlsZSBmb3IgdXBsb2FkaW5nAENhbid0IG9wZW4gb3V0cHV0IGZpbGUhICBDYW5jZWxsaW5nIQBDYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlIQBDYW4ndCBwcm9jZWVkIHdpdGhvdXQgYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuAENhbid0IHJlYWQgbmV3cyBpbmZvLCBlbXB0eSByZXNwb25zZSBmcm9tIGhvc3QgJXMAQ2FuJ3QgcmVhZCBuZXdzIGluZm8uICBOZXdzIGhvc3QgJS4yMHMgcmVzcG9uZGVkOiAlLjIwMHMAQ2FuJ3QgcmV0cnkgd2l0aCBhdXRob3JpemF0aW9uISAgQ29udGFjdCB0aGUgc2VydmVyJ3MgV2ViTWFzdGVyLgBDYW4ndCByZXRyeSB3aXRoIHByb3h5IGF1dGhvcml6YXRpb24hICBDb250YWN0IHRoZSBzZXJ2ZXIncyBXZWJNYXN0ZXIuAENhbid0IHNhdmUgZGF0YSB0byBmaWxlIC0tIHBsZWFzZSBydW4gV1dXIGxvY2FsbHkAQ2FuY2VsbGVkISEhAENhbmNlbGxpbmcgZmlsZS4AQ2FuY2VsbGluZyEAQ2Fubm90IFBPU1QgdG8gdGhpcyBob3N0LgBDYW5ub3QgZmluZCBIT01FIGRpcmVjdG9yeQBDYW5ub3QgbG9jYXRlIGp1bXAgZmlsZSEAQ2Fubm90IG9wZW4ganVtcCBmaWxlIQBDYW5ub3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZSBmb3IgbmV3cyBQT1NULgBDYW5ub3Qgc2F2ZSBmb3JtIGZpZWxkcy9saW5rcwBDYW5ub3Qgd3JpdGUgdG8gZmlsZS4AQ2FzZSBpbnNlbnNpdGl2ZQBDYXNlIHNlbnNpdGl2ZQBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnk6ICVzAENoYW5nZSBwYXNzd29yZD8AQ2hhbmdlIHVzZXJuYW1lPwBDaGFuZ2luZyBvZiB0aGUgVXNlci1BZ2VudCBzdHJpbmcgaXMgZGlzYWJsZWQhAENoYW5naW5nIHdvcmtpbmctZGlyZWN0b3J5IGlzIGN1cnJlbnRseSBkaXNhYmxlZC4AQ2hhcnNldDoAQ2xlYXIgYWxsIGF1dGhvcml6YXRpb24gaW5mbyBmb3IgdGhpcyBzZXNzaW9uPwBDbGllbnQtc2lkZSBpbWFnZSBNQVAgaXMgbm90IGFjY2Vzc2libGUhAENsaWVudC1zaWRlIGltYWdlIE1BUCBpcyBub3QgYXZhaWxhYmxlIQBDb2xsYXBzZSBCUiB0YWdzAENvbG9yIHN0eWxlAENvbW1hbmQ6IABDb21tYW5kczogVXNlIGFycm93IGtleXMgdG8gbW92ZSwgJz8nIGZvciBoZWxwLCAncScgdG8gcXVpdCwgJzwtJyB0byBnbyBiYWNrLgBDb25maWd1cmF0aW9uIERlZmluaXRpb25zAENvbm5lY3RpbmcgdG8gTmV3c0hvc3QgLi4uAENvbm5lY3Rpb24gY2xvc2VkID8/PwBDb25uZWN0aW9uIGZhaWxlZCAodG9vIG1hbnkgcmV0cmllcykuAENvbm5lY3Rpb24gaW50ZXJydXB0ZWQuAENvbnRhaW5zOgBDb250ZW50LUxlbmd0aDoAQ29udGVudC10eXBlOiAlcwBDb252ZXJ0ZWQgTW9zYWljIEhvdGxpc3QAQ29va2llIEphcgBDb29raWVzAENvcHkgdG8gY2xpcGJvYXJkIGZhaWxlZC4AQ29weXJpZ2h0cyBoZWxkIGJ5IHRoZSBMeW54IERldmVsb3BlcnMgR3JvdXAsAENvdWxkIG5vdCBhY2Nlc3MgJXMuAENvdWxkIG5vdCBhY2Nlc3MgZGlyZWN0b3J5LgBDb3VsZCBub3QgYWNjZXNzIGZpbGUuAENvdWxkIG5vdCBhY2Nlc3MgZmluZ2VyIGhvc3QuAENvdWxkIG5vdCBjb25uZWN0IHRvIFdBSVMgc2VydmVyLgBDb3VsZCBub3QgZWRpdCBmaWxlICclcycuAENvdWxkIG5vdCBmaW5kIHN1aXRhYmxlIHJlcHJlc2VudGF0aW9uIGZvciB0cmFuc21pc3Npb24uAENvdWxkIG5vdCBsb2FkIGRhdGEgKG5vIHNpdGVuYW1lIGluIGZpbmdlciBVUkwpAENvdWxkIG5vdCBsb2FkIGRhdGEuAENvdWxkIG5vdCBtYWtlIGNvbm5lY3Rpb24gbm9uLWJsb2NraW5nLgBDb3VsZCBub3Qgb3BlbiBXQUlTIGNvbm5lY3Rpb24gZm9yIHJlYWRpbmcuAENvdWxkIG5vdCBvcGVuIGZpbGUgZm9yIGRlY29tcHJlc3Npb24hAENvdWxkIG5vdCByZXN0b3JlIHNvY2tldCB0byBibG9ja2luZy4AQ291bGQgbm90IHNldCB1cCBmaW5nZXIgY29ubmVjdGlvbi4AQ3JlYXRlIGZpbGUgb3IgZGlyZWN0b3J5IChmIG9yIGQpOiAAQ3JlYXRpb24gZGF0ZToAQ3VycmVudCBFZGl0LUtleSBNYXAAQ3VycmVudCBLZXkgTWFwAEN1cnJlbnQgVVJMIGlzIGVtcHR5LgBDdXJyZW50IGRpcmVjdG9yeSBpcyAAQ3VycmVudCBkaXJlY3Rvcnk6AEN1cnJlbnQgZG9jdW1lbnQgaGFzIFBPU1QgZGF0YS4AQ3VycmVudCBzZWxlY3Rpb246AEN1cnJlbnRseSB2aWV3aW5nIGRvY3VtZW50IHNvdXJjZS4gIFByZXNzICdcJyB0byByZXR1cm4gdG8gcmVuZGVyZWQgdmVyc2lvbi4ARCllbGV0ZSBjYWNoZWQgZG9jdW1lbnQgb3IgQylhbmNlbD8gKGQsYyk6IABEKWVsZXRlIGRvbWFpbidzIGNvb2tpZXMsIHNldCBhbGxvdyBBKWx3YXlzL1Apcm9tcHQvbmVWKWVyLCBvciBDKWFuY2VsPyAARCllbGV0ZSBkb21haW4sIHNldCBhbGxvdyBBKWx3YXlzL1Apcm9tcHQvbmVWKWVyLCBvciBDKWFuY2VsPyAARElTQUJMRUQgU2NyaXB0IGJ1dHRvbi4gIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAERJU0FCTEVEIGZvcm0gcmVzZXQgYnV0dG9uLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4ARElTQUJMRUQgZm9ybSBzdWJtaXQgYnV0dG9uLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4ARGF0YSB0cmFuc2ZlciBjb21wbGV0ZQBEYXRhIHRyYW5zZmVyIGludGVycnVwdGVkLgBEYXRlOgBEZWZhdWx0IEJvb2ttYXJrIEZpbGUARGVmYXVsdCBjb2xvcnMARGVsZXRlIGFsbCBjb29raWVzIGluIHRoaXMgZG9tYWluPwBEZWxldGUgdGhpcyBjb29raWU/AERlbGV0ZSB0aGlzIGVtcHR5IGRvbWFpbj8ARGVzY3JpcHRpb246AERlc3RpbmF0aW9uIGhhcyBkaWZmZXJlbnQgb3duZXIhICBSZXF1ZXN0IGRlbmllZC4ARGVzdGluYXRpb24gaXMgbm90IGEgdmFsaWQgZGlyZWN0b3J5ISAgUmVxdWVzdCBkZW5pZWQuAERpYWdub3N0aWMgY29kZSBpcyAARGlyZWN0IGFjY2VzcwBEaXJlY3RvcmllcyBmaXJzdABEaXJlY3RvcnkARGlyZWN0b3J5IGJyb3dzaW5nIGlzIG5vdCBhbGxvd2VkLgBEaXJlY3RvcnkgdGhhdCB5b3UgYXJlIGN1cnJlbnRseSB2aWV3aW5nAERpcmVjdG9yeSB0aGF0IHlvdSBoYXZlIGN1cnJlbnRseSBzZWxlY3RlZABEaXJlY3RvcnkvRmlsZSBNYW5hZ2VyIG5vdCBhdmFpbGFibGUARGlzY2FyZGluZyBQT1NUIGRhdGEuLi4ARGlzcGxheSBhbmQgQ2hhcmFjdGVyIFNldABEaXNwbGF5IGNoYXJhY3RlciBzZXQARGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChWZXJzaW9uIDIpLgBEbyBub3Qgc2hvdyByYXRlAERvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBsaW5rIGZyb20geW91ciBib29rbWFyayBmaWxlPwBEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZ28gdG8gdGhlIE1haW4gc2NyZWVuPwBEbyB5b3Ugd2FudCB0byBleGVjdXRlICIlcyI/AERvIHlvdSB3YW50IHRvIGdvIGJhY2sgdG8gdGhlIHByZXZpb3VzIGRvY3VtZW50PwBEbyB5b3Ugd2lzaCB0byBpbmNsdWRlIHRoZSBvcmlnaW5hbCBtZXNzYWdlPwBEbyB5b3Ugd2lzaCB0byBpbmNsdWRlIHRoZSBwcmVwYXJzZWQgc291cmNlPwBEbyB5b3Ugd2lzaCB0byBzZW5kIGEgY29tbWVudD8ARG9jdW1lbnQgQXBwZWFyYW5jZQBEb2N1bWVudCBVUkwgcHV0IHRvIGNsaXBib2FyZC4ARG9jdW1lbnQgZnJvbSBGb3JtIHdpdGggUE9TVCBjb250ZW50LiAgUmVzdWJtaXQ/AERvY3VtZW50IGZyb20gUE9TVCBhY3Rpb24sIEhFQUQgbWF5IG5vdCBiZSB1bmRlcnN0b29kLiAgUHJvY2VlZD8ARG9jdW1lbnQgaGFzIG5vIFRvb2xiYXIgbGlua3Mgb3IgQmFubmVyLgBEb2N1bWVudCBoYXMgb25seSBoaWRkZW4gbGlua3MuICBVc2UgdGhlICdsJ2lzdCBjb21tYW5kLgBEb2N1bWVudCB3aWxsIG5vdCBiZSByZWxvYWRlZCEARG9jdW1lbnQgd2l0aCBQT1NUIGNvbnRlbnQgbm90IGZvdW5kIGluIGNhY2hlLiAgUmVzdWJtaXQ/AERvY3VtZW50OgBEb2N1bWVudHMgZnJvbSBmb3JtcyB3aXRoIFBPU1QgY29udGVudCBjYW5ub3QgYmUgc2F2ZWQgYXMgYm9va21hcmtzLgBEb25lIQBEb3dubG9hZCBPcHRpb25zAERvd25sb2FkIGRvY3VtZW50IFVSTCBwdXQgdG8gY2xpcGJvYXJkLgBEb3dubG9hZCBvcHRpb25zOgBEb3dubG9hZGVkIGxpbms6AEVSUk9SIC0gVW5hYmxlIHRvIGFsbG9jYXRlIGZpbGUgc3BhY2UhISEARVJST1IgLSBVbmFibGUgdG8gbWFpbCBmaWxlAEVSUk9SIC0gdW5hYmxlIHRvIG9wZW4gYm9va21hcmsgZmlsZS4ARVJST1IhIC0gZG93bmxvYWQgY29tbWFuZCBpcyBtaXNjb25maWd1cmVkLgBFUlJPUiEgLSBwcmludGVyIGlzIG1pc2NvbmZpZ3VyZWQhAEVSUk9SISAtIHVwbG9hZCBjb21tYW5kIGlzIG1pc2NvbmZpZ3VyZWQARWFybGllciBhcnRpY2xlcwBFZGl0IGEgcHJldmlvdXMgR290byBVUkw6IABFZGl0IGEgcHJldmlvdXMgZmlsZW5hbWU6IABFZGl0IGEgcHJldmlvdXMgcXVlcnk6IABFZGl0IGEgcHJldmlvdXMgc2hvcnRjdXQ6IABFZGl0IHRoZSBjdXJyZW50IEdvdG8gVVJMOiAARWRpdCB0aGUgY3VycmVudCBsaW5rJ3MgVVJMOiAARWRpdCB0aGUgY3VycmVudCBxdWVyeTogAEVkaXQgdGhlIGN1cnJlbnQgc2hvcnRjdXQ6IABFZGl0IHRoZSBmb3JtJ3Mgc3VibWl0LVVSTDogAEVkaXQgdGhlIHByZXZpb3VzIEdvdG8gVVJMOiAARWRpdCB0aGUgcHJldmlvdXMgZmlsZW5hbWU6IABFZGl0IHRoZSBwcmV2aW91cyBxdWVyeTogAEVkaXQgdGhlIHByZXZpb3VzIHNob3J0Y3V0OiAARWRpdCB0aGlzIGRvY3VtZW50J3MgVVJMOiAARWRpdGluZyBCb29rbWFyayBERVNDUklQVElPTiBhbmQgRklMRVBBVEggKCVkIG9mIDIpAEVkaXRvcgBFZGl0b3Iga2lsbGVkIGJ5IHNpZ25hbABFZGl0b3IgcmV0dXJuZWQgd2l0aCBlcnJvciBzdGF0dXMgJXMARW1hY3Mga2V5cwBFbmN0eXBlIG11bHRpcGFydC9mb3JtLWRhdGEgbm90IHlldCBzdXBwb3J0ZWQhICBDYW5ub3Qgc3VibWl0LgBFbmN0eXBlOgBFbnRlciBMeW54IGtleXN0cm9rZSBjb21tYW5kOiAARW50ZXIgV0FJUyBxdWVyeTogAEVudGVyIGEgZGF0YWJhc2UgcXVlcnk6IABFbnRlciBhIGZpbGVuYW1lOiAARW50ZXIgYSBuZXcgZmlsZW5hbWU6IABFbnRlciBhIHRlcm1pbmFsIHR5cGU6AEVudGVyIGEgd2hlcmVpcyBxdWVyeTogAEVudGVyIG5hbWUgZm9yIG5ldyBkaXJlY3Rvcnk6IABFbnRlciBuYW1lIG9mIGZpbGUgdG8gY3JlYXRlOiAARW50ZXIgbmV3IGxvY2F0aW9uIGZvciBkaXJlY3Rvcnk6IABFbnRlciBuZXcgbG9jYXRpb24gZm9yIGZpbGU6IABFbnRlciBuZXcgbG9jYXRpb24gZm9yIHRhZ2dlZCBpdGVtczogAEVudGVyIG5ldyBuYW1lIGZvciBkaXJlY3Rvcnk6IABFbnRlciBuZXcgbmFtZSBmb3IgZmlsZTogAEVudGVyIHBhc3N3b3JkIGZvciB1c2VyICVzQCVzOgBFbnRlciB0ZXh0LiAgVXNlIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYgb2YgZmllbGQuAEVudHJ5IGludG8gbWFpbiBzY3JlZW4ARXJyb3IgYnVpbGRpbmcgaW5zdGFsbCBhcmdzAEVycm9yIHByb2Nlc3NpbmcgbGluZSAlZCBvZiAlcwoARXJyb3IgcmVhZGluZyBqdW1wIGZpbGUhAEVycm9yIHJlbmFtaW5nIHNjcmF0Y2ggZmlsZS4ARXJyb3IgcmVuYW1pbmcgdGVtcG9yYXJ5IGZpbGUuAEVycm9yIHNwYXduaW5nIGVkaXRvciwgY2hlY2sgeW91ciBlZGl0b3IgZGVmaW5pdGlvbiBpbiB0aGUgb3B0aW9ucyBtZW51AEVycm9yIHN0YXJ0aW5nIGVkaXRvciwgJXMARXJyb3IgdW5jb21wcmVzc2luZyB0ZW1wb3JhcnkgZmlsZSEARXhjZWxsZW50ISEhAEV4ZWN1dGFibGUgbGluayByZWplY3RlZCBkdWUgdG8gYCVjJyBjaGFyYWN0ZXIuAEV4ZWN1dGFibGUgbGluayByZWplY3RlZCBkdWUgdG8gbG9jYXRpb24gb3IgcGF0aC4ARXhlY3V0YWJsZSBsaW5rIHJlamVjdGVkIGR1ZSB0byBtYWxmb3JtZWQgcmVxdWVzdC4ARXhlY3V0YWJsZSBsaW5rIHJlamVjdGVkIGR1ZSB0byByZWxhdGl2ZSBwYXRoIHN0cmluZyAoJy4uLycpLgBFeGVjdXRpbmcgJXMgAEV4ZWN1dGluZyBzeXN0ZW0gY29tbWFuZC4gVGhpcyBtaWdodCB0YWtlIGEgd2hpbGUuAEV4ZWN1dGlvbiBjYXBhYmlsaXRpZXMgYXJlIG5vdCBjb21waWxlZCBpbnRvIHRoaXMgdmVyc2lvbi4ARXhlY3V0aW9uIGlzIGRpc2FibGVkLgBFeGVjdXRpb24gaXMgbm90IGVuYWJsZWQgZm9yIHRoaXMgZmlsZS4gIFNlZSB0aGUgT3B0aW9ucyBtZW51ICh1c2UgJXMpLgBFeGVjdXRpb24gbGlua3MARXhlY3V0aW9uIHZpYSBib29rbWFya3MgaXMgZGlzYWJsZWQuAEV4aXRpbmcgdmlhIGludGVycnVwdDoARXhwaXJlczoARXh0ZXJuYWwgZWRpdGluZyBpcyBjdXJyZW50bHkgZGlzYWJsZWQuAEV4dGVybmFsIHN1cHBvcnQgaXMgY3VycmVudGx5IGRpc2FibGVkLgBGT1IgTE9DQUwgRklMRVMgT05MWQBGVFAgc29ydCBjcml0ZXJpYQBGYWlsZWQgdG8gY2xlYXIgRElTUExBWSB2YXJpYWJsZSEARmFpbGVkIHRvIG9idGFpbiBzdGF0dXMgb2YgY3VycmVudCBsaW5rIQBGYWlsZWQgdG8gc2V0IERJU1BMQVkgdmFyaWFibGUhAEZhdGFsIGVycm9yIC0gY291bGQgbm90IG9wZW4gb3V0cHV0IGZpbGUgJXMKAEZldGNoaW5nIFdBSVMgZG9jdW1lbnQuLi4ARmlsZSBNYW5hZ2VtZW50IE9wdGlvbnMARmlsZSBQZXJtaXNzaW9uIE9wdGlvbnMARmlsZSBkb2VzIG5vdCBleGlzdCAtIHJlZW50ZXIgb3IgY2FuY2VsOgBGaWxlIGRvZXMgbm90IGV4aXN0LgBGaWxlIGV4aXN0cy4gIENyZWF0ZSBoaWdoZXIgdmVyc2lvbj8ARmlsZSBleGlzdHMuICBPdmVyd3JpdGU/AEZpbGUgaW5zZXJ0IGNhbmNlbGxlZCEhIQBGaWxlIGlzICVkIHBhZ2VzIGxvbmcuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJpbnQ/AEZpbGUgaXMgJWQgc2NyZWVucyBsb25nLiAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByaW50PwBGaWxlIGlzIG5vdCByZWFkYWJsZSAtIHJlZW50ZXIgb3IgY2FuY2VsOgBGaWxlIGlzIG5vdCByZWFkYWJsZS4ARmlsZSBtYW5hZ2VtZW50IHN1cHBvcnQgaXMgZGlzYWJsZWQhAEZpbGUgbWF5IGJlIHJlY292ZXJhYmxlIGZyb20gJXMgZHVyaW5nIHRoaXMgc2Vzc2lvbgBGaWxlIG5hbWUgbWF5IG5vdCBiZWdpbiB3aXRoIGEgZG90LgBGaWxlIHNpemU6AEZpbGUgdGhhdCB5b3UgYXJlIGN1cnJlbnRseSB2aWV3aW5nAEZpbGUgdGhhdCB5b3UgaGF2ZSBjdXJyZW50bHkgc2VsZWN0ZWQARmlsZU5hbWU6AEZpbGVwYXRoOgBGaWxlcyBmaXJzdABGaWxlczoARm9sbG93IGxpbmsgKG9yIGdvdG8gbGluayBvciBwYWdlKSBudW1iZXI6IABGb3JtIGZpZWxkIHZhbHVlIGV4Y2VlZHMgYnVmZmVyIGxlbmd0aCEgIFRyaW0gdGhlIHRhaWwuAEZvcm0gZmllbGRzIGFyZSBudW1iZXJlZABGb3JtIGhhcyBhIG1haWx0byBhY3Rpb24hICBDYW5ub3QgZG93bmxvYWQuAEZvcm0gc3VibWl0IGFjdGlvbiBpcyBQT1NULCBIRUFEIG1heSBub3QgYmUgdW5kZXJzdG9vZC4gIFByb2NlZWQ/AEZ0cCBhY2Nlc3MgaXMgZGlzYWJsZWQhAEZ1bGwgbmFtZToAR2VuZXJhbCBQcmVmZXJlbmNlcwBHZXR0aW5nICVzAEdpdmUgbmFtZSBvZiBmaWxlIHRvIHNhdmUgaW4AR251VExTIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHZlcmlmeSBjZXJ0aWZpY2F0ZS4AR29vZCBBZHZpY2UAR29waGVyIE1lbnUAR29waGVyIGluZGV4AEdvcGhlciByZXF1ZXN0IHNlbnQ7IHdhaXRpbmcgZm9yIHJlc3BvbnNlLgBHb3QgdW5leHBlY3RlZCAzMDQgTm90IE1vZGlmaWVkIHN0YXR1cy4AR290IHVuZXhwZWN0ZWQgSW5mb3JtYXRpb25hbCBTdGF0dXMuAEdvdG8gYSBub24taHR0cCBVUkwgaXMgZGlzYWxsb3dlZCEAR290byBhIHJhbmRvbSBVUkwgaXMgZGlzYWxsb3dlZCEAR290byBtdWx0aS1ib29rbWFyayBtZW51AEdyb3VwAEdyb3VwIG5hbWU6AEdyb3VwOgBIRUxQIQBIUkVGIGluIEJBU0UgdGFnIGlzIG5vdCBhbiBhYnNvbHV0ZSBVUkwuAEhUTUwgZXJyb3IgcmVjb3ZlcnkASFRUUCAxLjAASFRUUCAxLjEASFRUUCBwcm90b2NvbABIVFRQIHJlcXVlc3Qgc2VudDsgd2FpdGluZyBmb3IgcmVzcG9uc2UuAEhUV0FJUzogUmVxdWVzdCB0b28gbGFyZ2UuAEhUV0FJUzogUmVxdWVzdCB0b28gbG9uZy4ASFRXQUlTOiBSZXR1cm4gbWVzc2FnZSB0b28gbGFyZ2UuAEhhbmcgRGV0ZWN0OiBUZXh0QW5jaG9yIHN0cnVjdCBjb3JydXB0ZWQgLSBzdWdnZXN0IGFib3J0aW5nIQBIYXZlIFBPU1QgY29udGVudC4gIFRyZWF0aW5nIFBlcm1hbmVudCBSZWRpcmVjdGlvbiBhcyBUZW1wb3JhcnkuCgBIZWFkZXJzIFRyYW5zZmVycmVkIHRvIFJlbW90ZSBTZXJ2ZXJzAEhlbHAgU2NyZWVuAEhpZGRlbiBsaW5rczoASGlzdG9yaWNhbCBjb21tZW50IHBhcnNpbmcgT0ZGIChNaW5pbWFsIGlzIGluIGVmZmVjdCkhAEhpc3RvcmljYWwgY29tbWVudCBwYXJzaW5nIE9GRiAoVmFsaWQgaXMgaW4gZWZmZWN0KSEASGlzdG9yaWNhbCBjb21tZW50IHBhcnNpbmcgT04gKE1pbmltYWwgaXMgb3ZlcnJpZGRlbikhAEhpc3RvcmljYWwgY29tbWVudCBwYXJzaW5nIE9OIChWYWxpZCBpcyBvdmVycmlkZGVuKSEASGlzdG9yeSBQYWdlAEhpc3RvcnksIHNob3dpbmZvLCBtZW51IGFuZCBsaXN0IGZpbGVzIGNhbm5vdCBiZSBzYXZlZCBhcyBib29rbWFya3MuAEhpdCBSRVRVUk4gdG8gYWNjZXB0IGVudGVyZWQgZGF0YS4ASGl0IFJFVFVSTiB0byBhY2NlcHQgZW50ZXJlZCBkYXRhLiAgRGVsZXRlIGRhdGEgdG8gaW52b2tlIHRoZSBkZWZhdWx0LgBIaXQgYW55IGtleSB0byBjaGFuZ2UgdmFsdWU7IFJFVFVSTiB0byBhY2NlcHQuAEhvc3QASWYgY2FzZV9zZW5zaXRpdmVfc2VhcmNoaW5nIGlzICJvbiIgdGhlbiB3aGVuIHRoZSB1c2VyIGludm9rZXMgYSBzZWFyY2gKdXNpbmcgdGhlICdzJyBvciAnLycga2V5cywgdGhlIHNlYXJjaCBwZXJmb3JtZWQgd2lsbCBiZSBjYXNlIHNlbnNpdGl2ZQppbnN0ZWFkIG9mIGNhc2UgSU5zZW5zaXRpdmUuICBUaGUgZGVmYXVsdCBpcyB1c3VhbGx5ICJvZmYiLgoASWYgZW1hY3Nfa2V5cyBpcyB0byAib24iIHRoZW4gdGhlIG5vcm1hbCBFTUFDUyBtb3ZlbWVudCBrZXlzOgogIF5OID0gZG93biAgICBeUCA9IHVwCiAgXkIgPSBsZWZ0ICAgIF5GID0gcmlnaHQKd2lsbCBiZSBlbmFibGVkLgoASWYga2V5cGFkX21vZGUgaXMgc2V0IHRvICJMSU5LU19BTkRfRk9STV9GSUVMRFNfQVJFX05VTUJFUkVEIiwgdGhlbgpudW1iZXJzIHdpbGwgYXBwZWFyIG5leHQgdG8gZWFjaCBsaW5rIGFuZCB2aXNpYmxlIGZvcm0gaW5wdXQgZmllbGQuCk51bWJlcnMgYXJlIHVzZWQgdG8gc2VsZWN0IGxpbmtzLCBvciB0byBtb3ZlIHRoZSAiY3VycmVudCBsaW5rIiB0byBhCmZvcm0gaW5wdXQgZmllbGQgb3IgYnV0dG9uLiAgSW4gYWRkaXRpb24sIG9wdGlvbnMgaW4gcG9wdXAgbWVudXMgYXJlCmluZGV4ZWQgc28gdGhhdCB0aGUgdXNlciBtYXkgdHlwZSBhbiBvcHRpb24gbnVtYmVyIHRvIHNlbGVjdCBhbiBvcHRpb24gaW4KYSBwb3B1cCBtZW51LCBldmVuIGlmIHRoZSBvcHRpb24gaXNuJ3QgdmlzaWJsZSBvbiB0aGUgc2NyZWVuLiAgUmVmZXJlbmNlCmxpc3RzIGFuZCBvdXRwdXQgZnJvbSB0aGUgbGlzdCBjb21tYW5kIGFsc28gZW51bWVyYXRlIGZvcm0gaW5wdXRzLgoASWYga2V5cGFkX21vZGUgaXMgc2V0IHRvICJMSU5LU19BUkVfTlVNQkVSRUQiLCB0aGVuIG51bWJlcnMgd2lsbAphcHBlYXIgbmV4dCB0byBlYWNoIGxpbmsgYW5kIG51bWJlcnMgYXJlIHVzZWQgdG8gc2VsZWN0IGxpbmtzLgoASWYga2V5cGFkX21vZGUgaXMgc2V0IHRvICJOVU1CRVJTX0FTX0FSUk9XUyIsIHRoZW4gdGhlIG51bWJlcnMgb24KeW91ciBrZXlwYWQgd2hlbiB0aGUgbnVtbG9jayBpcyBvbiB3aWxsIGFjdCBhcyBhcnJvdyBrZXlzOgogICAgICAgICAgICA4ID0gVXAgQXJyb3cKICA0ID0gTGVmdCBBcnJvdyAgICA2ID0gUmlnaHQgQXJyb3cKICAgICAgICAgICAgMiA9IERvd24gQXJyb3cKYW5kIHRoZSBjb3JyZXNwb25kaW5nIGtleWJvYXJkIG51bWJlcnMgd2lsbCBhY3QgYXMgYXJyb3cga2V5cywKcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG51bWxvY2sgaXMgb24uCgBJZiBydW5fYWxsX2V4ZWN1dGlvbl9saW5rcyBpcyBzZXQgIm9uIiB0aGVuIGFsbCBsb2NhbCBleGVjdXRpb24gbGlua3MKd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZXkgYXJlIHNlbGVjdGVkLgoKV0FSTklORyAtIFRoaXMgaXMgcG90ZW50aWFsbHkgVkVSWSBkYW5nZXJvdXMuICBTaW5jZSB5b3UgbWF5IHZpZXcKICAgICAgICAgIGluZm9ybWF0aW9uIHRoYXQgaXMgd3JpdHRlbiBieSB1bmtub3duIGFuZCB1bnRydXN0ZWQgc291cmNlcwogICAgICAgICAgdGhlcmUgZXhpc3RzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZQogICAgICAgICAgd3JpdHRlbi4gIFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZSB3cml0dGVuIHRvIGVyYXNlIGZpbGVzCiAgICAgICAgICBvciBjb21wcm9taXNlIHNlY3VyaXR5LiAgVGhpcyBzaG91bGQgb25seSBiZSBzZXQgdG8gIm9uIiBpZgogICAgICAgICAgeW91IGFyZSB2aWV3aW5nIHRydXN0ZWQgc291cmNlIGluZm9ybWF0aW9uLgoASWYgcnVuX2V4ZWN1dGlvbl9saW5rc19vbl9sb2NhbF9maWxlcyBpcyBzZXQgIm9uIiB0aGVuIGFsbCBsb2NhbApleGVjdXRpb24gbGlua3MgdGhhdCBhcmUgZm91bmQgaW4gTE9DQUwgZmlsZXMgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZXkKYXJlIHNlbGVjdGVkLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBydW5fYWxsX2V4ZWN1dGlvbl9saW5rcyBpbiB0aGF0Cm9ubHkgZmlsZXMgdGhhdCByZXNpZGUgb24gdGhlIGxvY2FsIHN5c3RlbSB3aWxsIGhhdmUgZXhlY3V0aW9uIGxpbmsKcGVybWlzc2lvbnMuCgpXQVJOSU5HIC0gVGhpcyBpcyBwb3RlbnRpYWxseSBkYW5nZXJvdXMuICBTaW5jZSB5b3UgbWF5IHZpZXcKICAgICAgICAgIGluZm9ybWF0aW9uIHRoYXQgaXMgd3JpdHRlbiBieSB1bmtub3duIGFuZCB1bnRydXN0ZWQgc291cmNlcwogICAgICAgICAgdGhlcmUgZXhpc3RzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZQogICAgICAgICAgd3JpdHRlbi4gIFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZSB3cml0dGVuIHRvIGVyYXNlIGZpbGVzCiAgICAgICAgICBvciBjb21wcm9taXNlIHNlY3VyaXR5LiAgVGhpcyBzaG91bGQgb25seSBiZSBzZXQgdG8gIm9uIiBpZgogICAgICAgICAgeW91IGFyZSB2aWV3aW5nIHRydXN0ZWQgc291cmNlIGluZm9ybWF0aW9uLgoASWYgc3ViX2Jvb2ttYXJrcyBpcyBub3QgdHVybmVkICJvZmYiLCBhbmQgbXVsdGlwbGUgYm9va21hcmtzIGhhdmUKYmVlbiBkZWZpbmVkIChzZWUgYmVsb3cpLCB0aGVuIGFsbCBib29rbWFyayBvcGVyYXRpb25zIHdpbGwgZmlyc3QKcHJvbXB0IHRoZSB1c2VyIHRvIHNlbGVjdCBhbiBhY3RpdmUgc3ViLWJvb2ttYXJrIGZpbGUuICBJZiB0aGUgZGVmYXVsdApMeW54IGJvb2ttYXJrX2ZpbGUgaXMgZGVmaW5lZCAoc2VlIGFib3ZlKSwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZQpkZWZhdWx0IHNlbGVjdGlvbi4gIFdoZW4gdGhpcyBvcHRpb24gaXMgc2V0IHRvICJhZHZhbmNlZCIsIGFuZCB0aGUKdXNlciBtb2RlIGlzIGFkdmFuY2VkLCB0aGUgJ3YnaWV3IGJvb2ttYXJrIGNvbW1hbmQgd2lsbCBpbnZva2UgYQpzdGF0dXNsaW5lIHByb21wdCBpbnN0ZWFkIG9mIHRoZSBtZW51IHNlZW4gaW4gbm92aWNlIGFuZCBpbnRlcm1lZGlhdGUKdXNlciBtb2Rlcy4gIFdoZW4gdGhpcyBvcHRpb24gaXMgc2V0IHRvICJzdGFuZGFyZCIsIHRoZSBtZW51IHdpbGwgYmUKcHJlc2VudGVkIHJlZ2FyZGxlc3Mgb2YgdXNlciBtb2RlLgoASWYgdmVyYm9zZV9pbWFnZXMgaXMgIm9uIiwgbHlueCB3aWxsIHByaW50IHRoZSBuYW1lIG9mIHRoZSBpbWFnZQpzb3VyY2UgZmlsZSBpbiBwbGFjZSBvZiBbSU5MSU5FXSwgW0xJTktdIG9yIFtJTUFHRV0KU2VlIGFsc28gVkVSQk9TRV9JTUFHRVMgaW4gbHlueC5jZmcKAElmIHZpX2tleXMgaXMgc2V0IHRvICJvbiIsIHRoZW4gdGhlIG5vcm1hbCBWSSBtb3ZlbWVudCBrZXlzOgogIGogPSBkb3duICAgIGsgPSB1cAogIGggPSBsZWZ0ICAgIGwgPSByaWdodAp3aWxsIGJlIGVuYWJsZWQuICBUaGVzZSBrZXlzIGFyZSBvbmx5IGxvd2VyIGNhc2UuCkNhcGl0YWwgJ0gnLCAnSicgYW5kICdLIHdpbGwgc3RpbGwgYWN0aXZhdGUgaGVscCwganVtcCBzaG9ydGN1dHMsCmFuZCB0aGUga2V5bWFwIGRpc3BsYXksIHJlc3BlY3RpdmVseS4KAElnbm9yZQBJZ25vcmVkICVkIGNoYXJhY3RlcnMgZnJvbSBzdGFuZGFyZCBpbnB1dC4KAElsbGVnYWwgVVJMOiAlcwBJbGxlZ2FsIGNoYXJhY3RlciAiLyIgZm91bmQhIFJlcXVlc3QgaWdub3JlZC4ASWxsZWdhbCBjaGFyYWN0ZXIgKHBhdGgtc2VwYXJhdG9yKSBmb3VuZCEgUmVxdWVzdCBpZ25vcmVkLgBJbGxlZ2FsIGZpbGVuYW1lOyByZXF1ZXN0IGlnbm9yZWQuAElsbGVnYWwgcmVkaXJlY3Rpb24gIi4uLyIgZm91bmQhIFJlcXVlc3QgaWdub3JlZC4ASWxsZWdhbCByZWRpcmVjdGlvbiAiLy8iIGZvdW5kISBSZXF1ZXN0IGlnbm9yZWQuAElsbGVnYWwgcmVkaXJlY3Rpb24gVVJMIHJlY2VpdmVkIGZyb20gc2VydmVyIQBJbGxlZ2FsIHJlZGlyZWN0aW9uIHVzaW5nICJ+IiBmb3VuZCEgUmVxdWVzdCBpZ25vcmVkLgBJbWFnZSBtYXAgZnJvbSBQT1NUIHJlc3BvbnNlIG5vdCBhdmFpbGFibGUhAEluZGV4IABJbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBkb2N1bWVudABJbmxpbmVzIHdpdGhvdXQgYW4gQUxUIHN0cmluZyBzcGVjaWZpZWQgd2lsbCBiZSBpZ25vcmVkISAgUmVsb2FkaW5nLi4uAEluc3RhbGwgaW4gdGhlIHNlbGVjdGVkIGRpcmVjdG9yeSBub3QgcGVybWl0dGVkLgBJbnN0YWxsYXRpb24gY29tcGxldGUASW5zdWZmaWNpZW50IG9wZXJhbmRzOgBJbnRlcm1lZGlhdGUASW50ZXJuYWwASW50ZXJuYWwgZXJyb3I6IEludmFsaWQgbW91c2UgbGluayAlZCEASW52YWxpZCBoZWFkZXIgJyVzJXMlcyVzJXMnAEludmFsaWQgaG9zdG5hbWUgJXMASW52YWxpZCBtb2RlIGZvcm1hdC4ASW52YWxpZCBwb2ludGVyIGRldGVjdGVkLgBJbnZhbGlkIHBvcnQgbnVtYmVyIC0gd2lsbCBvbmx5IHVzZSBwb3J0IDc5IQBJbnZhbGlkIHN5bnRheCBmb3JtYXQuAEludmFsaWQtQ29va2llIFByb21wdGluZwBJdCBwcm92aWRlcyBzdGF0ZSBvZiB0aGUgYXJ0IENHSSBzY3JpcHQgc3VwcG9ydC4KAEl0ZW0gdGhhdCB5b3UgaGF2ZSBjdXJyZW50bHkgc2VsZWN0ZWQASnVtcCB0byAodXNlICc/JyBmb3IgbGlzdCk6IABKdW1waW5nIHRvIGEgc2hvcnRjdXQgVVJMIGlzIGRpc2FsbG93ZWQhAEp1c3QgYSBtb21lbnQsIC4uLgBLZXkgJyVjJyBpcyBub3QgbWFwcGVkIHRvIGEganVtcCBmaWxlIQBLZXlib2FyZCBJbnB1dABLZXlib2FyZCBsYXlvdXQAS2V5cGFkIG1vZGUATGFuZ3VhZ2U6AExhc3QgTW9kOgBMYXN0IGFjY2Vzc2VkOgBMYXN0IGF0dGVtcHRlZCBpbmNsdWRlIHdhcyAnJXMnLAoATGFzdCBtb2RpZmllZDoATGF0ZXIgYXJ0aWNsZXMATGVmdCBBcnJvdyBjYW5jZWxzIGNoYW5nZXMATGVmdCBtb3VzZSBidXR0b24gb3IgcmV0dXJuIHRvIHNlbGVjdCwgYXJyb3cga2V5cyB0byBzY3JvbGwuAExlbmd0aDoATGV0dGVyOiAATGluZSBlZGl0IHN0eWxlAExpbmVDb3VudDoATGluZXdyYXAgT0ZGIQBMaW5ld3JhcCBPTiEATGluayBVUkwgcHV0IHRvIGNsaXBib2FyZC4ATGluayBpcyBub3QgYnkgaXRzZWxmIGFsbCBvbiBvbmUgbGluZSBpbiBib29rbWFyayBmaWxlLgBMaW5rIG51bWJlciAlZCBhbHJlYWR5IGlzIGN1cnJlbnQuAExpbmsgdGhhdCB5b3UgY3VycmVudGx5IGhhdmUgc2VsZWN0ZWQATGlua25hbWU6AExpbmtzIGFuZCBmb3JtIGZpZWxkcyBhcmUgbnVtYmVyZWQATGlua3MgYXJlIG51bWJlcmVkAExpbmtzIHdpbGwgYmUgaW5jbHVkZWQgZm9yIGFsbCBpbWFnZXMhICBSZWxvYWRpbmcuLi4ATGlzdCBQYWdlAExpc3QgZnJvbSBkb2N1bWVudCB3aXRoIFBPU1QgZGF0YS4gIFJlbG9hZCAlcyA/AExpc3RpbmcgYW5kIEFjY2Vzc2luZyBGaWxlcwBMb2FkaW5nIGZhaWxlZCwgdXNlIGEgcHJldmlvdXMgY29weS4ATG9hZGluZyBpbmNvbXBsZXRlLgBMb2NhbCBhZGRpdGlvbnM6AExvY2FsIGRpcmVjdG9yeSBzb3J0IGNyaXRlcmlhAExvY2FsIGRpcmVjdG9yeSBzb3J0IG9yZGVyAExvY2F0aW9uIFVSTCBpcyBub3QgYWJzb2x1dGUuAExvY2F0aW9uOiAATG9va2luZyB1cCAATHlueCBUcmFjZSBMb2cATHlueCBVc2VyIERlZmF1bHRzIEZpbGUKCgBMeW54IGNhbm5vdCBjdXJyZW50bHkgKGUpZGl0IHJlbW90ZSBXV1cgZmlsZXMuAEx5bnguY2ZnIEluZm9ybWF0aW9uAEx5bng6IGNhbm5vdCBzdGFydCwgQ0VSTiBydWxlcyBmaWxlICVzIGlzIG5vdCBhdmFpbGFibGUKAEx5bng6IGlnbm9yaW5nIHVucmVjb2duaXplZCBjaGFyc2V0PSVzCgBMeW54Y2dpIGNhcGFiaWxpdGllcyBhcmUgbm90IGNvbXBpbGVkIGludG8gdGhpcyB2ZXJzaW9uLgBNYWlsIGFjY2VzcyBpcyBkaXNhYmxlZCEATWFpbCBkaXNhbGxvd2VkISAgQ2Fubm90IHN1Ym1pdC4ATWFpbCBpcyBkaXNhbGxvd2VkIHNvIHlvdSBjYW5ub3Qgc2VuZCBhIGNvbW1lbnQATWFpbCByZXF1ZXN0IGNhbmNlbGxlZCEhIQBNYWlsIHRoZSBmaWxlAE1haWxpbmcgZmlsZS4gIFBsZWFzZSB3YWl0Li4uAE1haWx0byBmb3JtIHN1Ym1pc3Npb24gQ2FuY2VsbGVkISEhAE1haWx0byBmb3JtIHN1Ym1pc3Npb24gZmFpbGVkIQBNYWludGFpbmVyAE1ha2luZyAlcyBjb25uZWN0aW9uIHRvICVzAE1hbGZvcm1lZCBhZGRyZXNzLgBNYWxmb3JtZWQgbWFpbHRvIGZvcm0gc3VibWlzc2lvbiEgIENhbmNlbGxlZCEATWF4aW11bSBHb2JibGUgRGF0ZToATWF4aW11bSBsZW5ndGggcmVhY2hlZCEgIERlbGV0ZSB0ZXh0IG9yIG1vdmUgb2ZmIGZpZWxkLgBNYXhpbXVtIGxpbmtzIHBlciBwYWdlIGV4Y2VlZGVkISAgVXNlIGhhbGYtcGFnZSBvciB0d28tbGluZSBzY3JvbGxpbmcuAE1heGltdW0gbmVzdGluZyBvZiBIVE1MIGVsZW1lbnRzIGV4Y2VlZGVkLgBNZW1vcnkgZXhoYXVzdGVkISAgQWJvcnRpbmcuLi4ATWVtb3J5IGV4aGF1c3RlZCEgIFByb2dyYW0gYWJvcnRlZCEATWVtb3J5IGV4aGF1c3RlZCwgZGlzcGxheSBpbnRlcnJ1cHRlZCEATWVtb3J5IGV4aGF1c3RlZCwgd2lsbCBpbnRlcnJ1cHQgdHJhbnNmZXIhAE1lbW9yeSBsZWFrIGRldGVjdGVkLgBNZXNzYWdlIGhhcyBubyBvcmlnaW5hbCB0ZXh0IQBNZXRob2Q6AE1pbmltYWwgY29tbWVudCBwYXJzaW5nIE9GRiAoSGlzdG9yaWNhbCBpcyBpbiBlZmZlY3QpIQBNaW5pbWFsIGNvbW1lbnQgcGFyc2luZyBPRkYgKFZhbGlkIGlzIGluIGVmZmVjdCkhAE1pbmltYWwgY29tbWVudCBwYXJzaW5nIE9OIChhbmQgaW4gZWZmZWN0KSEATWluaW1hbCBjb21tZW50IHBhcnNpbmcgT04gKGJ1dCBIaXN0b3JpY2FsIGlzIGluIGVmZmVjdCkhAE1pc2RpcmVjdGVkIGNsaWVudC1zaWRlIGltYWdlIE1BUCByZXF1ZXN0IQBNaXhlZCBzdHlsZQBNb2RpZmllZCB0YWlsIGNvbWJpbmVkIHdpdGggaGVhZCBvZiBmb3JtIGZpZWxkIHZhbHVlLgBNb2RpZnkgbmFtZSBvciBsb2NhdGlvbiAobiBvciBsKTogAE1vZGlmeSBuYW1lLCBsb2NhdGlvbiwgb3IgcGVybWlzc2lvbiAobiwgbCwgb3IgcCk6IABNb3JlIHRoYW4gJWQgbmVzdGVkIGx5bnguY2ZnIGluY2x1ZGVzIC0tIHBlcmhhcHMgdGhlcmUgaXMgYSBsb29wPyE/CgBNdWx0aS1ib29rbWFya3MATXVsdGlmb3JtYXQ6IGRpcmVjdG9yeSBzY2FuIGZhaWxlZC4ATXVsdGlwbGUgYm9va21hcmsgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlLgBORVZFUgBOT1RFOiBTb21lIGZpeGVkIGZvcm1hdCBkb2N1bWVudHMgbWF5IGxvb2sgZGlzZmlndXJlZCB3aGVuCiJMSU5LU19BUkVfTlVNQkVSRUQiIG9yICJMSU5LU19BTkRfRk9STV9GSUVMRFNfQVJFX05VTUJFUkVEIiBhcmUKZW5hYmxlZC4KAE5VTEwgVVJMIHBvaW50ZXIATmFtZSBvZiBvd25lcjoATmFtZToATmV3cyBQb3N0IENhbmNlbGxlZCEhIQBOZXdzIHBvc3RpbmcgaXMgZGlzYWJsZWQhAE5vIExpbmtzIG9uIHRoZSBjdXJyZW50IHBhZ2UATm8gTmFtZSBHaXZlbgBObyBVUkwgaW4gdGhlIGNsaXBib2FyZC4ATm8gV2luc29jayBmb3VuZCwgc29ycnkuAE5vIGNsaWVudC1zaWRlIGltYWdlIE1BUHMgYXJlIGF2YWlsYWJsZSEATm8gZWRpdG9yIGlzIGRlZmluZWQhAE5vIGVtYWlsIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBtYWlsdG8gVVJMIQBObyBpbmRleCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlLgBObyBqdW1wIGZpbGUgaXMgY3VycmVudGx5IGF2YWlsYWJsZS4ATm8gbWF0Y2hlcyBmb3I6ICVzAE5vIG5leHQgZG9jdW1lbnQgcHJlc2VudABObyBvd25lciBpcyBkZWZpbmVkIGZvciB0aGlzIGZpbGUgc28geW91IGNhbm5vdCBzZW5kIGEgY29tbWVudABObyBvd25lciBpcyBkZWZpbmVkLiBVc2UgJXM/AE5vIHByZXZpb3VzbHkgdmlzaXRlZCBsaW5rcyBhdmFpbGFibGUhAE5vIHJhbmRvbSBVUkxzIGhhdmUgYmVlbiB1c2VkIHRodXMgZmFyLgBObyByZXNwb25zZSBmcm9tIGZpbmdlciBzZXJ2ZXIuAE5vIHJlc3BvbnNlIGZyb20gc2VydmVyIQBObyByZXN0cmljdGlvbnMgc2V0LgoATm8gc3VibWl0IGJ1dHRvbiBmb3IgdGhpcyBmb3JtLCBzdWJtaXQgc2luZ2xlIHRleHQgZmllbGQ/AE5vIHN1Y2ggZGlyZWN0b3J5AE5vIHN5c3RlbSBtYWlsZXIgY29uZmlndXJlZABObyB0YXJnZXQgZm9yIHJhdyB0ZXh0IQBObyB0ZXh0IHdhcyByZXR1cm5lZCEKAE5vIHRyYWNlIGxvZyBoYXMgYmVlbiBzdGFydGVkIGZvciB0aGlzIHNlc3Npb24uAE5vbmUATm9ybWFsbHkgZGlzYWJsZWQuICBTZWUgRU5BQkxFX0xZTlhSQyBpbiBseW54LmNmZwoATm90IGEgc2VhcmNoYWJsZSBpbmRleGVkIGRvY3VtZW50IC0tIHByZXNzICcvJyB0byBzZWFyY2ggZm9yIGEgdGV4dCBzdHJpbmcATm90IGFuIGh0dHAgVVJMIG9yIGZvcm0gQUNUSU9OIQBOb3QgZW5vdWdoIG1lbW9yeSBmb3IgZmlsZSEATm90IGVub3VnaCBtZW1vcnkhAE5vdCBpbiBhIFRFWFRBUkVBOyBjYW5ub3QgdXNlIGNvbW1hbmQuAE5vdCBpbiBhIFRFWFRBUkVBOyBjYW5ub3QgdXNlIGV4dGVybmFsIGVkaXRvci4ATm90ZTogaWYgeW91IGVkaXQgdGhpcyBmaWxlIG1hbnVhbGx5CiAgICAgIHlvdSBzaG91bGQgbm90IGNoYW5nZSB0aGUgZm9ybWF0IHdpdGhpbiB0aGUgbGluZXMKICAgICAgb3IgYWRkIG90aGVyIEhUTUwgbWFya3VwLgogICAgICBNYWtlIHN1cmUgYW55IGJvb2ttYXJrIGxpbmsgaXMgc2F2ZWQgYXMgYSBzaW5nbGUgbGluZS4ATm90aGluZyBjdXJyZW50bHkgc2VsZWN0ZWQuAE5vdGhpbmcgdG8gZG93bmxvYWQuAE5vdGhpbmcgdG8gaW5zZXJ0IC0gZmlsZSBpcyAwLWxlbmd0aC4ATm92aWNlAE5vdyB1c2luZyBTb3J0YVNHTUwgcGFyc2luZyBvZiBIVE1MIQBOb3cgdXNpbmcgVGFnU291cCBwYXJzaW5nIG9mIEhUTUwuAE51bWJlciBvZiBsaW5lczoATnVtYmVyIG9mIHBhZ2VzOgBOdW1iZXJzIGFjdCBhcyBhcnJvd3MATyl0aGVyIGNtZHMgIEMpb21tZW50ICBIaXN0b3J5OiA8YmFja3NwYWNlPiAgQm9va21hcmtzOiBWKWlldywgQSlkZCwgUillbW92ZSAKAE9GRgBPSwBPTgBPZmZlbmRpbmcgbGluZToAT25lIHJhZGlvIGJ1dHRvbiBtdXN0IGJlIGNoZWNrZWQgYXQgYWxsIHRpbWVzIQBPbmx5IGZpbGVzIGFuZCBzZXJ2ZXJzIG9uIHRoZSBsb2NhbCBob3N0IGNhbiBiZSBhY2Nlc3NlZC4AT3B0aW9uIG51bWJlciAlZCBhbHJlYWR5IGlzIGN1cnJlbnQuAE9wdGlvbnMgTWVudQBPcHRpb25zIGFyZToKAE9wdGlvbnMgc2F2ZWQhAE90aGVyczoAT3V0IG9mIG1lbW9yeSByZWFkaW5nIGp1bXAgZmlsZSEAT3V0IG9mIG1lbW9yeSByZWFkaW5nIGp1bXAgdGFibGUhAE93bmVyKHMpOgBPd25lcjoAUClyb2NlZWQsIG9yIEMpYW5jZWwgAFApcm9jZWVkLCB1c2UgRylFVCBvciBDKWFuY2VsIABQT1NUIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgVVJMIC0gaWdub3JpbmcgUE9TVCBkYXRhIQBQYXJzaW5nIG5lc3RlZC10YWJsZXMgdG9nZ2xlZCBPRkYhICBSZWxvYWRpbmcuLi4AUGFyc2luZyBuZXN0ZWQtdGFibGVzIHRvZ2dsZWQgT04hICBSZWxvYWRpbmcuLi4AUGFzc3dvcmQgZm9yIGFub255bW91cyBmdHAAUGFzc3dvcmQgZm9yIG5ld3MgaG9zdCAnJXMnOgBQYXNzd29yZDogAFBhdXNlIHdoZW4gc2hvd2luZyBtZXNzYWdlAFBlYWsgYWxsb2NhdGlvbgBQZXJtaXNzaW9ucyBmb3IgAFBlcnNvbmFsIG1haWwgYWRkcmVzcwBQZXJzb25hbCBuYW1lIGZvciBtYWlsAFBsZWFzZSBlbnRlciBhIHZhbGlkIGludGVybmV0IG1haWwgYWRkcmVzczogAFBsZWFzZSByZWFkIHRoZSBkaXN0cmlidXRpb24AUGxlYXNlIHdhaXQuLi4AUG9pbnRlcjoAUG9pbnRzIHRvIGZpbGU6AFBvcHVwcyBmb3Igc2VsZWN0IGZpZWxkcwBQb3J0ICVsdSBub3QgcGVybWl0dGVkIGluIFVSTHMuAFBvcnQgMTkgbm90IHBlcm1pdHRlZCBpbiBVUkxzLgBQb3J0IDI1IG5vdCBwZXJtaXR0ZWQgaW4gVVJMcy4AUG9zdCBDb250ZW50IFR5cGU6AFBvc3QgRGF0YToAUG9zdCB0aGlzIG1lc3NhZ2U/AFBvc3QgdG8gAFBvc3RpbmcgdG8gbmV3c2dyb3VwKHMpLi4uAFByZWZlcnJlZCBjb250ZW50IHR5cGUAUHJlZmVycmVkIGRvY3VtZW50IGNoYXJhY3RlciBzZXQAUHJlZmVycmVkIGRvY3VtZW50IGxhbmd1YWdlAFByZWZlcnJlZCBlbmNvZGluZwBQcmVmZXJyZWQgbWVkaWEgdHlwZQBQcmVzcyA8cmV0dXJuPiB0byBiZWdpbjogAFByZXNzIDxyZXR1cm4+IHRvIGZpbmlzaDogAFByZXNzIDxyZXR1cm4+IHRvIHJldHVybiB0byBMeW54LgBQcmludCBvcHRpb25zOgBQcmludCBvdXQgb24gYSBwcmludGVyIGF0dGFjaGVkIHRvIHlvdXIgdnQxMDAgdGVybWluYWwAUHJpbnQgcmVxdWVzdCBjYW5jZWxsZWQhISEAUHJpbnQgdG8gdGhlIHNjcmVlbgBQcmludGluZyBPcHRpb25zAFByaW50aW5nIGZpbGUuICBQbGVhc2Ugd2FpdC4uLgBQcm9iYWJsZSBmYWlsdXJlIHRvICVzIGR1ZSB0byBzeXN0ZW0gZXJyb3IhAFByb2NlZWQgKCVzKT8AUHJvY2VlZCB3aXRob3V0IGEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkPwBQcm94eSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIC0tIHJldHJ5aW5nAFBzZXVkb19BTFRzIHdpbGwgYmUgaW5zZXJ0ZWQgZm9yIGlubGluZXMgd2l0aG91dCBBTFQgc3RyaW5ncyEgIFJlbG9hZGluZy4uLgBRdWVyeSBwYXJhbWV0ZXIgJWQ6IABSRUxPQUQgVEhFIENIQU5HRVMAUmFuZG9tIFVSTCBpcyBkaXNhbGxvd2VkISAgVXNlIGEgc2hvcnRjdXQuAFJhdyA4LWJpdABSYXcgOC1iaXQgb3IgQ0pLIG1vZGUgdG9nZ2xlZCBPRkYhICBSZWxvYWRpbmcuLi4AUmF3IDgtYml0IG9yIENKSyBtb2RlIHRvZ2dsZWQgT04hICBSZWxvYWRpbmcuLi4AUmVhZCAlcyBvZiAlcyBvZiBkYXRhAFJlYWQgJXMgb2YgZGF0YQBSZWFkaW5nIGRpcmVjdG9yeS4uLgBSZWFkaW5nIGxpc3Qgb2YgYXJ0aWNsZXMgaW4gbmV3c2dyb3VwLgBSZWFkaW5nIGxpc3Qgb2YgYXZhaWxhYmxlIG5ld3Nncm91cHMuAFJlYWRpbmcgbmV3cyBhcnRpY2xlLgBSZWFsbHkgZXhpdCBmcm9tIEx5bng/AFJlY2VpdmluZyBGVFAgZGlyZWN0b3J5LgBSZWNlaXZpbmcgRlRQIGZpbGUuAFJlZGlyZWN0aW9uIGxpbWl0IG9mIDEwIFVSTCdzIHJlYWNoZWQuAFJlZGlyZWN0aW9uIG9mIFBPU1QgY29udGVudCByZXF1aXJlcyB1c2VyIGFwcHJvdmFsLgBSZWRpcmVjdGlvbiBvZiBQT1NUIGNvbnRlbnQuICBQKXJvY2VlZCwgc2VlIFUpUkwsIG9yIEMpYW5jZWwAUmVkaXJlY3Rpb24gb2YgUE9TVCBjb250ZW50LiAgUClyb2NlZWQsIHNlZSBVKVJMLCB1c2UgRylFVCBvciBDKWFuY2VsAFJlZmVyZW5jZXMAUmVmZXJlbmNlcyBpbiAAUmVmcmVzaCBVUkwgaXMgbm90IGFic29sdXRlLgBSZWplY3RpbmcgdGhpcyBjb29raWUuAFJlbG9hZGluZyBkb2N1bWVudC4gIEFueSBmb3JtIGVudHJpZXMgd2lsbCBiZSBsb3N0IQBSZW1vdmUgYWxsIHRhZ2dlZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXM/AFJlbW92ZSBkaXJlY3RvcnkgJyVzJz8AUmVtb3ZlIGRpcmVjdG9yeT8AUmVtb3ZlIGZpbGUgJyVzJz8AUmVtb3ZlIGZpbGU/AFJlbW92ZSBzeW1ib2xpYyBsaW5rICclcyc/AFJlbW92ZSBzeW1ib2xpYyBsaW5rPwBSZXBhcnNpbmcgZG9jdW1lbnQgdW5kZXIgY3VycmVudCBzZXR0aW5ncy4uLgBSZXByb2R1Y2UgTClpbmsgaW4gdGhpcyBib29rbWFyayBmaWxlIG9yIEMpYW5jZWw/IChsLGMpOiAAUmVxdWVzdCBmdWxmaWxsZWQuICBSZXNldCBDb250ZW50LgBSZXNldCBDaGFuZ2VzAFJlc2V0dGluZyBmb3JtLi4uAFJlc3RyaWN0aW9ucyBzZXQ6CgBSZXN1Ym1pdCBQT1NUIGNvbnRlbnQgdG8gJXMgPwBSZXRyaWV2aW5nIGZpbGUuICAtIFBMRUFTRSBXQUlUIC0AUmV0cnlpbmcgYXMgSFRUUDAgcmVxdWVzdC4AUmV0cnlpbmcgY29ubmVjdGlvbiB3aXRob3V0IFRMUy4AUmV0cnlpbmcgd2l0aCBhY2Nlc3MgYXV0aG9yaXphdGlvbiBpbmZvcm1hdGlvbi4AUmV0cnlpbmcgd2l0aCBwcm94eSBhdXRob3JpemF0aW9uIGluZm9ybWF0aW9uLgBSZXZpZXcvZWRpdCBCb29rbWFya3MgZmlsZXMAUmxvZ2luIGFjY2VzcyBpcyBkaXNhYmxlZCEAU1NMIFByb21wdGluZwBTU0wgY2FsbGJhY2s6JXMsIHByZXZlcmlmeV9vaz0lZCwgc3NsX29rYXk9JWQAU1NMIGNsaWVudCBjZXJ0aWZpY2F0ZSBmaWxlAFNTTCBjbGllbnQga2V5IGZpbGUAU1NMIGVycm9yAFNTTCBlcnJvcjolcy1Db250aW51ZT8AU1NMIGVycm9yOmhvc3QoJXMpIT1jZXJ0KCVzKS1Db250aW51ZT8AU1RBTkRBUkQAU2F2ZSBEKW9jdW1lbnQgb3IgTClpbmsgdG8gYm9va21hcmsgZmlsZSBvciBDKWFuY2VsPyAoZCxsLGMpOiAAU2F2ZSBEKW9jdW1lbnQgdG8gYm9va21hcmsgZmlsZSBvciBDKWFuY2VsPyAoZCxjKTogAFNhdmUgTClpbmsgdG8gYm9va21hcmsgZmlsZSBvciBDKWFuY2VsPyAobCxjKTogAFNhdmUgb3B0aW9ucyB0byBkaXNrAFNhdmUgcmVxdWVzdCBjYW5jZWxsZWQhISEAU2F2ZSB0byBhIGxvY2FsIGZpbGUAU2F2ZSB0byBkaXNrAFNhdmUgdG8gZGlzayBkaXNhYmxlZABTYXZlIHRvIGRpc2sgZGlzYWJsZWQuAFNhdmluZyBPcHRpb25zLi4uAFNhdmluZy4uLgBTY3JlZW4gaGVpZ2h0IG11c3QgYmUgYXQgbGVhc3QgMjIgbGluZXMgZm9yIHRoZSBPcHRpb25zIG1lbnUhAFNjcmVlbiBoZWlnaHQgbXVzdCBiZSBhdCBsZWFzdCAyMyBsaW5lcyBmb3IgdGhlIE9wdGlvbnMgbWVudSEAU2NyZWVuIGhlaWdodCBtdXN0IGJlIGF0IGxlYXN0IDI0IGxpbmVzIGZvciB0aGUgT3B0aW9ucyBtZW51IQBTY3JlZW4gdG9vIHNtYWxsISAoOHgzNSBtaW4pAFNlYXJjaCBpbnRlcnJ1cHRlZC4AU2VhcmNoaW5nIFdBSVMgZGF0YWJhc2UuLi4AU2VjdXJlICVkLWJpdCAlcyAoJXMpIEhUVFAgY29ubmVjdGlvbgBTZWN1cml0eSBhbmQgUHJpdmFjeQBTZWUgYWxzbwBTZWUgaHR0cHM6Ly9seW54LmludmlzaWJsZS1pc2xhbmQubmV0LyBhbmQgdGhlIG9ubGluZSBoZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uLgBTZWVrIGZhaWwgb24gJXMKAFNlbGVjdCAAU2VsZWN0IGRlc3RpbmF0aW9uIG9yIF5HIHRvIENhbmNlbDogAFNlbGVjdCBvcHRpb24gKG9yIHBhZ2UpIG51bWJlcjogAFNlbGVjdCBzdWJib29rbWFyaywgJz0nIGZvciBtZW51LCBvciBeRyB0byBjYW5jZWw6IABTZWxlY3RpdmUgYWNjZXNzIGlzIG5vdCBlbmFibGVkIGZvciB0aGlzIGRpcmVjdG9yeQBTZW5kIEhFQUQgcmVxdWVzdCBmb3IgRClvY3VtZW50IG9yIEwpaW5rLCBvciBDKWFuY2VsPyAoZCxsLGMpOiAAU2VuZCBIRUFEIHJlcXVlc3QgZm9yIEQpb2N1bWVudCwgb3IgQylhbmNlbD8gKGQsYyk6IABTZW5kIFVzZXItQWdlbnQgaGVhZGVyAFNlbmQgdGhpcyBjb21tZW50PwBTZW5kIHRoaXMgbWVzc2FnZT8AU2VuZGluZwBTZW5kaW5nIENTTy9QSCByZXF1ZXN0LgBTZW5kaW5nIEdvcGhlciByZXF1ZXN0LgBTZW5kaW5nIEhUVFAgcmVxdWVzdC4AU2VuZGluZyBmb3JtIGNvbnRlbnQuLi4AU2VuZGluZyB5b3VyIGNvbW1lbnQ6AFNlbmRpbmcgeW91ciBtZXNzYWdlLi4uAFNlcXVlbmNlOgBTZXJ2ZXIgSGVhZGVyczoAU2VydmVyIGFza2VkIGZvciAlZCByZWRpcmVjdGlvbiBvZiBQT1NUIGNvbnRlbnQgdG8AU2VydmVyOgBTZXNzaW9uIGZpbGUAU2hpZnRpbmcgaXMgZGlzYWJsZWQgd2hpbGUgbGluZS13cmFwIGlzIGluIGVmZmVjdABTaG93ICVzL3NlYyAoMi1kaWdpdHMpLCBFVEEAU2hvdyAlcy9zZWMgcmF0ZQBTaG93ICVzL3NlYywgRVRBAFNob3cgY29sb3IAU2hvdyBjdXJzb3IAU2hvdyBkb3QgZmlsZXMAU2hvdyBpbWFnZXMAU2hvdyBwcm9ncmVzc2JhcgBTaG93IHNjcm9sbGJhcgBTaG93IHRoZSA0MDEgbWVzc2FnZSBib2R5PwBTaG93IHRoZSA0MDcgbWVzc2FnZSBib2R5PwBTaG93IHRyYW5zZmVyIHJhdGUAU2tpcHBpbmcgJXMAU29ja2V0IHJlYWQgZmFpbGVkICh0b28gbWFueSB0cmllcykuAFNvZnQgZG91YmxlLXF1b3RlIHBhcnNpbmcgT0ZGIQBTb2Z0IGRvdWJsZS1xdW90ZSBwYXJzaW5nIE9OIQBTb21lIHByaW50IGZ1bmN0aW9ucyBoYXZlIGJlZW4gZGlzYWJsZWQhAFNvcnJ5LCBjb3VsZCBub3QgbG9hZCByZXF1ZXN0ZWQgbmV3cy4AU29ycnksIGRvbid0IGtub3cgaG93IHRvIHBlcm1pdCBub24tVU5JWCBmaWxlcyB5ZXQuAFNvcnJ5LCBubyBrbm93biB3YXkgb2YgY29udmVydGluZyAlcyB0byAlcy4AU29ycnksIHRoZSBBQ1RJT04gZm9yIHRoaXMgZm9ybSBpcyBkaXNhYmxlZC4AU29ycnksIHRoZSBBQ1RJT04gZm9yIHRoaXMgZm9ybSBpcyBub3QgYW4gaHR0cCBVUkwuAFNvcnJ5LCB0aGUgZG9jdW1lbnQgaXMgbm90IGFuIGh0dHAgVVJMLgBTb3JyeSwgdGhlIGxpbmsgaXMgbm90IGFuIGh0dHAgVVJMLgBTb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFyZSB0aGUgc2FtZSBsb2NhdGlvbiEgIFJlcXVlc3QgaWdub3JlZCEAU291cmNlIGFuZCB0YXJnZXQgYXJlIHRoZSBzYW1lOiAlcwBTb3VyY2UgY2FjaGUgZXJyb3IgLSBkaXNrIGZ1bGw/AFNvdXJjZSBjYWNoZSBlcnJvciAtIG5vdCBlbm91Z2ggbWVtb3J5IQBTcGF3bmluZyBEQ0wgc3VicHJvY2Vzcy4gIFVzZSAnbG9nb3V0JyB0byByZXR1cm4gdG8gTHlueC4KAFNwYXduaW5nIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4AU3Bhd25pbmcgeW91ciBkZWZhdWx0IHNoZWxsLiAgVXNlICdleGl0JyB0byByZXR1cm4gdG8gTHlueC4KAFNwYXduaW5nIHlvdXIgc2VsZWN0ZWQgZWRpdG9yIHRvIGVkaXQgbWFpbCBtZXNzYWdlAFNwYXduaW5nIHlvdXIgc2VsZWN0ZWQgZWRpdG9yIHRvIGVkaXQgbmV3cyBtZXNzYWdlAFNwZWNpYWwgRmlsZXMgYW5kIFNjcmVlbnMAU3BlY2lhbCBVUkwgb25seSB2YWxpZCBmcm9tIGN1cnJlbnQgRmlsZSBQZXJtaXNzaW9uIG1lbnUhAFNwZWNpZnkgcGVybWlzc2lvbnMgYmVsb3c6AFN0YW5kYXJkIGRvd25sb2FkIG9wdGlvbnM6AFN0YW5kYXJkIGltYWdlIGhhbmRsaW5nIHJlc3RvcmVkISAgUmVsb2FkaW5nLi4uAFN0YW5kYXJkIHByaW50IG9wdGlvbnM6AFN0eWxlICVkIGAlcycgU0dNTDolcy4gIEZvbnQgJXMgJS4xZiBwb2ludC4KAFN1YmRpcmVjdG9yaWVzOgBTdWJqZWN0OiAAU3VibWl0ICgneCcgZm9yIG5vIGNhY2hlKSB0byAAU3VibWl0IG1haWx0byBmb3JtIHRvIABTdWJtaXQgdG8gAFN1Ym1pdHRpbmcgJXMAU3VibWl0dGluZyBmb3JtLi4uAFN1Z2dlc3RlZCBmaWxlIG5hbWU6AFN5bWJvbGljIExpbmsAU3ltYm9saWMgbGluayB0aGF0IHlvdSBoYXZlIGN1cnJlbnRseSBzZWxlY3RlZABTeW50YXggRXJyb3IgcGFyc2luZyBDT0xPUiBpbiBjb25maWd1cmF0aW9uIGZpbGU6ClRoZSBsaW5lIG11c3QgYmUgb2YgdGhlIGZvcm06CkNPTE9SOklOVEVHRVI6Rk9SRUdST1VORDpCQUNLR1JPVU5ECgpIZXJlIEZPUkVHUk9VTkQgYW5kIEJBQ0tHUk9VTkQgbXVzdCBiZSBvbmUgb2Y6ClRoZSBzcGVjaWFsIHN0cmluZ3MgJ25vY29sb3InIG9yICdkZWZhdWx0Jywgb3IKAFN5bnRheCBFcnJvciBwYXJzaW5nIHN0eWxlIGluIGxzcyBmaWxlOgpbJXNdClRoZSBsaW5lIG11c3QgYmUgb2YgdGhlIGZvcm06Ck9CSkVDVDpNT05POkNPTE9SIChpZSBlbTpib2xkOmJyaWdodGJsdWU6d2hpdGUpCndoZXJlIE9CSkVDVCBpcyBvbmUgb2YgRU0sU1RST05HLEIsSSxVLEJMSU5LIGV0Yy4KCgBTeW50YXggZXJyb3IgaW4gV0FJUyBVUkwAU3lzdGVtIEluZGV4AFN5c3RlbSBlcnJvciAtIGZhaWx1cmUgdG8gZ2V0IHN0YXR1cy4AVEFCTEUgY2VudGVyIGRpc2FibGUuAFRBQkxFIGNlbnRlciBlbmFibGUuAFRFUk1JTkFMIFRZUEUgSVMgU0VUIFRPAFRSQVZFUlNBTCBXQVMgSU5URVJSVVBURUQAVGVsbmV0IGFjY2VzcyBpcyBkaXNhYmxlZCEAVGVsbmV0IHBvcnQgc3BlY2lmaWNhdGlvbnMgYXJlIGRpc2FibGVkLgBUZW1wb3JhcnkgVVJMIG9yIGxpc3Qgd291bGQgYmUgdG9vIGxvbmcuAFRlcm1pbmFsID0AVGVybWluYWwgZG9lcyBub3Qgc3VwcG9ydCBjb2xvcgBUZXJtaW5hbCBpbml0aWFsaXNhdGlvbiBmYWlsZWQgLSB1bmtub3duIHRlcm1pbmFsIHR5cGU/AFRlcm1pbmFsIHJlaW5pdGlhbGlzYXRpb24gZmFpbGVkIC0gdW5rbm93biB0ZXJtaW5hbCB0eXBlPwBUaGF0IGtleSByZXF1aXJlcyBBZHZhbmNlZCBVc2VyIG1vZGUuAFRoZSAnZCdvd25sb2FkIGNvbW1hbmQgaXMgY3VycmVudGx5IGRpc2FibGVkLgBUaGUgJ2UnZGl0IGNvbW1hbmQgaXMgY3VycmVudGx5IGRpc2FibGVkLgBUaGUgJ3AncmludCBjb21tYW5kIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4AVGhlIENhY2hlIEphciBpcyBlbXB0eS4AVGhlIENvb2tpZSBKYXIgaXMgZW1wdHkuAFRoZSBjaGFyYWN0ZXJfc2V0IGRlZmluaXRpb24gY29udHJvbHMgdGhlIHJlcHJlc2VudGF0aW9uIG9mIDggYml0CmNoYXJhY3RlcnMgZm9yIHlvdXIgdGVybWluYWwuICBJZiA4IGJpdCBjaGFyYWN0ZXJzIGRvIG5vdCBzaG93IHVwCmNvcnJlY3RseSBvbiB5b3VyIHNjcmVlbiB5b3UgbWF5IHRyeSBjaGFuZ2luZyB0byBhIGRpZmZlcmVudCA4IGJpdApzZXQgb3IgdXNpbmcgdGhlIDcgYml0IGNoYXJhY3RlciBhcHByb3hpbWF0aW9ucy4KQ3VycmVudCB2YWxpZCBjaGFyYWN0ZXJzIHNldHMgYXJlOgoAVGhlIGNvb2tpZSBoYXMgYmVlbiBlYXRlbiEAVGhlIGN1cnJlbnQgbGluayBpcyBub3QgaW4gYSBGT1JNAFRoZSBkb21haW4gaGFzIGJlZW4gZWF0ZW4hAFRoZSBmaWxlX3NvcnRpbmdfbWV0aG9kIHNwZWNpZmllcyB3aGljaCB2YWx1ZSB0byBzb3J0IG9uIHdoZW4gdmlld2luZwpmaWxlIGxpc3RzIHN1Y2ggYXMgRlRQIGRpcmVjdG9yaWVzLiAgVGhlIG9wdGlvbnMgYXJlOgogICBCWV9GSUxFTkFNRSAtLSBzb3J0cyBvbiB0aGUgbmFtZSBvZiB0aGUgZmlsZQogICBCWV9UWVBFICAgICAtLSBzb3J0cyBvbiB0aGUgdHlwZSBvZiB0aGUgZmlsZQogICBCWV9TSVpFICAgICAtLSBzb3J0cyBvbiB0aGUgc2l6ZSBvZiB0aGUgZmlsZQogICBCWV9EQVRFICAgICAtLSBzb3J0cyBvbiB0aGUgZGF0ZSBvZiB0aGUgZmlsZQoAVGhlIGZpcnN0IGZpZ3VyZSBhZnRlciBlYWNoIGVudHJ5IGlzIGl0cyByZWxhdGl2ZSBzY29yZSwgAFRoZSBmb2xsb3dpbmcgYWxsb3cgeW91IHRvIGRlZmluZSBzdWItYm9va21hcmsgZmlsZXMgYW5kIGRlc2NyaXB0aW9ucy4KVGhlIGZvcm1hdCBpcyBtdWx0aV9ib29rbWFyazxjYXBpdGFsX2xldHRlcj49PGZpbGVuYW1lPiw8ZGVzY3JpcHRpb24+ClVwIHRvIDI2IGJvb2ttYXJrIGZpbGVzIChmb3IgdGhlIEVuZ2xpc2ggY2FwaXRhbCBsZXR0ZXJzKSBhcmUgYWxsb3dlZC4KV2Ugc3RhcnQgd2l0aCAibXVsdGlfYm9va21hcmtCIiBzaW5jZSAnQScgaXMgdGhlIGRlZmF1bHQgKHNlZSBhYm92ZSkuCgBUaGUgZm9sbG93aW5nIGRhdGEgd2VyZSBkZXJpdmVkIGR1cmluZyB0aGUgYXV0b21hdGljIGNvbmZpZ3VyYXRpb24vYnVpbGQKcHJvY2VzcyBvZiB0aGlzIGNvcHkgb2YgTHlueC4gIFdoZW4gcmVwb3J0aW5nIGEgYnVnLCBwbGVhc2UgaW5jbHVkZSBhIGNvcHkKb2YgdGhpcyBwYWdlLgBUaGUgZm9sbG93aW5nIGRhdGEgd2VyZSB1c2VkIGFzIGF1dG9tYXRpY2FsbHktY29uZmlndXJlZCBjb21waWxlLXRpbWUKZGVmaW5pdGlvbnMgd2hlbiB0aGlzIGNvcHkgb2YgTHlueCB3YXMgYnVpbHQuAFRoZSBmb2xsb3dpbmcgaXMgcmVhZCBmcm9tIHlvdXIgbHlueC5jZmcgZmlsZS4AVGhlIGxpbmsgICAlcyA6PzogJXMgCgBUaGUgbWF4aW11bSB0ZW1wb3JhcnkgZmlsZSBjb3VudCBoYXMgYmVlbiByZWFjaGVkIQBUaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhpcyB0aW1lLgBUaGUgc2VsZWN0ZWQgaXRlbSBpcyBub3QgYSBkaXJlY3RvcnkhICBSZXF1ZXN0IGlnbm9yZWQuAFRoZSBzZWxlY3RlZCBpdGVtIGlzIG5vdCBhIGZpbGUgb3IgYSBkaXJlY3RvcnkhICBSZXF1ZXN0IGlnbm9yZWQuAFRoZSBzcGVjaWZpZWQgbmFtZSBpcyBhbHJlYWR5IGluIHVzZSEgIFJlcXVlc3QgaWdub3JlZC4AVGhlIHZpc2l0ZWRfbGlua3Mgc2V0dGluZyBjb250cm9scyBob3cgTHlueCBvcmdhbml6ZXMgdGhlIGluZm9ybWF0aW9uCmluIHRoZSBWaXNpdGVkIExpbmtzIFBhZ2UuCgBUaGVyZSBhcmUgbm8gbGlua3MgYWJvdmUgdGhpcyBsaW5lIG9mIHRoZSBkb2N1bWVudC4AVGhlcmUgYXJlIG5vIGxpbmtzIGJlbG93IHRoaXMgbGluZSBvZiB0aGUgZG9jdW1lbnQuAFRoZXJlIGFyZSBubyBsaW5rcyBpbiB0aGlzIGJvb2ttYXJrIGZpbGUhAFRoZXJlIGFyZSBubyByZWZlcmVuY2VzIGZyb20gdGhpcyBkb2N1bWVudC4AVGhlcmUgYXJlIG9ubHkgaGlkZGVuIGxpbmtzIGZyb20gdGhpcyBkb2N1bWVudC4AVGhlcmUgaXMgYWxyZWFkeSBhIGRpcmVjdG9yeSB3aXRoIHRoYXQgbmFtZSEgIFJlcXVlc3QgaWdub3JlZC4AVGhlcmUgaXMgYWxyZWFkeSBhIGZpbGUgd2l0aCB0aGF0IG5hbWUhICBSZXF1ZXN0IGlnbm9yZWQuAFRoZXJlIGlzIG5vcm1hbGx5IG5vIG5lZWQgdG8gZWRpdCB0aGlzIGZpbGUgbWFudWFsbHksIHNpbmNlIHRoZSBkZWZhdWx0cwpoZXJlIGNhbiBiZSBjb250cm9sbGVkIGZyb20gdGhlIE9wdGlvbnMgU2NyZWVuLCBhbmQgdGhlIG5leHQgdGltZSBvcHRpb25zCmFyZSBzYXZlZCBmcm9tIHRoZSBPcHRpb25zIFNjcmVlbiB0aGlzIGZpbGUgd2lsbCBiZSBjb21wbGV0ZWx5IHJld3JpdHRlbi4KWW91IGhhdmUgYmVlbiB3YXJuZWQuLi4KCklmIHlvdSBhcmUgbG9va2luZyBmb3IgdGhlIGdlbmVyYWwgY29uZmlndXJhdGlvbiBmaWxlIC0gaXQgaXMgbm9ybWFsbHkKY2FsbGVkICJseW54LmNmZyIuICBJdCBoYXMgZGlmZmVyZW50IGNvbnRlbnQgYW5kIGEgZGlmZmVyZW50IGZvcm1hdC4KSXQgaXMgbm90IHRoaXMgZmlsZS4KAFRoaXMgY2xpZW50IGRvZXMgbm90IGNvbnRhaW4gc3VwcG9ydCBmb3IgSFRUUFMgVVJMcy4AVGhpcyBjbGllbnQgZG9lcyBub3QgY29udGFpbiBzdXBwb3J0IGZvciBTTkVXUyBVUkxzLgBUaGlzIGNsaWVudCBkb2VzIG5vdCBjb250YWluIHN1cHBvcnQgZm9yIHBvc3RpbmcgdG8gbmV3cyB3aXRoIFNTTC4AVGhpcyBjbGllbnQgZG9lc24ndCBrbm93IGhvdyB0byBjb21wb3NlIGF1dGhvcml6YXRpb24gaW5mb3JtYXRpb24gZm9yIHNjaGVtZQBUaGlzIGNsaWVudCBkb2Vzbid0IGtub3cgaG93IHRvIGNvbXBvc2UgcHJveHkgYXV0aG9yaXphdGlvbiBpbmZvcm1hdGlvbiBmb3Igc2NoZW1lAFRoaXMgZGlyZWN0b3J5IGlzIG5vdCByZWFkYWJsZS4AVGhpcyBmZWF0dXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQhAFRoaXMgZmllbGQgY2Fubm90IGJlIChlKWRpdGVkIHdpdGggYW4gZXh0ZXJuYWwgZWRpdG9yLgBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3BsYXllZCBvbiB0aGlzIHRlcm1pbmFsLgBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3BsYXllZCBvbiB0aGlzIHRlcm1pbmFsOiAgRClvd25sb2FkLCBvciBDKWFuY2VsAFRoaXMgZmlsZSBjb250YWlucyBvcHRpb25zIHNhdmVkIGZyb20gdGhlIEx5bnggT3B0aW9ucyBTY3JlZW4gKG5vcm1hbGx5CndpdGggdGhlICc+JyBrZXkpLgoKAFRoaXMgZmlsZSBjb250YWlucyBvcHRpb25zIHNhdmVkIGZyb20gdGhlIEx5bnggT3B0aW9ucyBTY3JlZW4gKG5vcm1hbGx5CndpdGggdGhlICdvJyBrZXkpLiAgVG8gc2F2ZSBvcHRpb25zIHdpdGggdGhhdCBzY3JlZW4sIHlvdSBtdXN0IHNlbGVjdCB0aGUKY2hlY2tib3g6CgBUaGlzIGlzIGEgbGluayBmb3Igc2VhcmNoaW5nIHRoZSAAVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguICBVc2UgJXMgdG8gc2VhcmNoLgBUaGlzIG1lc3NhZ2Ugd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5AFRoaXMgc3BlY2lhbCBVUkwgY2Fubm90IGJlIGEgZm9ybSBBQ1RJT04hAFRoaXMgc3BlY2lhbCBVUkwgY2Fubm90IGJlIGRvd25sb2FkZWQhAFRoaXMgc3BlY2lhbCBVUkwgaXMgbm90IGFsbG93ZWQgaW4gZXh0ZXJuYWwgZG9jdW1lbnRzIQBUaG91Z2h0IHlvdSBtaWdodCB3YW50IHRvIGtub3cuAFRpdGxlOiAAVG9vIG1hbnkgdGVtcGZpbGVzAFRvdGFsIGZyZWVzAFRvdGFsIG1hbGxvY3MAVG90YWwgbWVtb3J5IGxlYWthZ2UgdGhpcyBydW46AFRyYWNlIExvZyBvcGVuIGZhaWxlZC4gIFRyYWNlIG9mZiEAVHJhY2UgT0ZGIQBUcmFjZSBPTiEAVHJhY2Ugbm90IHN1cHBvcnRlZABUcmFuc2ZlcnJlZCAlZCBieXRlcwBUcmFuc2ZlcnJlZCAlZCBieXRlcyAoJTVkKQBUcmltIGJsYW5rIGxpbmVzAFR5cGUgRVhJVCB0byByZXR1cm4gdG8gTHlueC4KAFR5cGUgb2YgU2VhcmNoAFVOTU9ESUZJQUJMRSBjaG9pY2UgbGlzdC4gIFVzZSByZXR1cm4gb3IgYXJyb3cga2V5cyB0byByZXZpZXcgb3IgbGVhdmUuAFVOTU9ESUZJQUJMRSBmaWxlIGVudHJ5IGZpZWxkLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AVU5NT0RJRklBQkxFIGZvcm0gY2hlY2tib3guICBVc2UgVVAgb3IgRE9XTiBhcnJvd3Mgb3IgdGFiIHRvIG1vdmUgb2ZmLgBVTk1PRElGSUFCTEUgZm9ybSBmaWVsZC4gIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAFVOTU9ESUZJQUJMRSBmb3JtIHBhc3N3b3JkLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AVU5NT0RJRklBQkxFIGZvcm0gcmFkaW8gYnV0dG9uLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AVU5NT0RJRklBQkxFIGZvcm0gdGV4dCBmaWVsZC4gIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAFVOTU9ESUZJQUJMRSBvcHRpb24gbGlzdC4gIFVzZSByZXR1cm4gb3IgYXJyb3cga2V5cyB0byByZXZpZXcgb3IgbGVhdmUuAFVOVkVSSUZJRUQgY29ubmVjdGlvbiB0byAlcyAoY2VydD0lcykAVVJMIGhhcyBhIGJhZCBwb3J0IGZpZWxkLgBVUkwgaXMgbm90IGluIHN0YXJ0aW5nIHJlYWxtIQBVUkwgdG8gb3BlbjogAFVSTCB0b28gbG9uZwBVUkw6AFVSTDogJXMAVVNBR0U6ICVzIFtvcHRpb25zXSBbZmlsZV0KAFVTRU5FVCBuZXdzIGFjY2VzcyBpcyBkaXNhYmxlZCEAVW5hYmxlIHRvICVzIGR1ZSB0byBzeXN0ZW0gZXJyb3IhAFVuYWJsZSB0byBhY2Nlc3MgV1dXIGZpbGUhISEAVW5hYmxlIHRvIGFjY2VzcyBjZ2kgc2NyaXB0AFVuYWJsZSB0byBhY2Nlc3MgZG9jdW1lbnQhAFVuYWJsZSB0byBhY2Nlc3MgZG9jdW1lbnQuAFVuYWJsZSB0byBjb25uZWN0IHRvIEZUUCBob3N0LgBVbmFibGUgdG8gY29ubmVjdCB0byByZW1vdGUgaG9zdC4AVW5hYmxlIHRvIGNvcHkgdGVtcG9yYXJ5IGZpbGUgZm9yIGRlbGV0aW9uIG9mIGxpbmsuAFVuYWJsZSB0byBjcmVhdGUgcG9wdXAgd2luZG93IQBVbmFibGUgdG8gZG93bmxvYWQgZmlsZS4AVW5hYmxlIHRvIGZvbGxvdyBsaW5rAFVuYWJsZSB0byBnZXQgc3RhdHVzIG9mICclcycuAFVuYWJsZSB0byBsb2NhdGUgcmVtb3RlIGhvc3QgJXMuAFVuYWJsZSB0byBtYWtlIGNvbm5lY3Rpb24AVW5hYmxlIHRvIG9wZW4gYm9va21hcmsgZmlsZSBmb3IgZGVsZXRpb24gb2YgbGluay4AVW5hYmxlIHRvIG9wZW4gYm9va21hcmsgZmlsZSwgdXNlICdhJyB0byBzYXZlIGEgbGluayBmaXJzdABVbmFibGUgdG8gb3BlbiBjb21tYW5kIGZpbGUuAFVuYWJsZSB0byBvcGVuIHBlcm1pdCBvcHRpb25zIGZpbGUAVW5hYmxlIHRvIG9wZW4gcHJpbnQgb3B0aW9ucyBmaWxlAFVuYWJsZSB0byBvcGVuIHJlamVjdCBmaWxlLgBVbmFibGUgdG8gb3BlbiBzY3JhdGNoIGZpbGUgZm9yIGRlbGV0aW9uIG9mIGxpbmsuAFVuYWJsZSB0byBvcGVuIHRlbXBmaWxlAFVuYWJsZSB0byBvcGVuIHRlbXBmaWxlIGZvciBYIE1vc2FpYyBob3RsaXN0IGNvbnZlcnNpb24uAFVuYWJsZSB0byBvcGVuIHRlbXBvcmFyeSBmaWxlIGZvciBtYWlsdG8gVVJMIQBVbmFibGUgdG8gb3BlbiB0cmF2ZXJzYWwgZXJyb3JzIG91dHB1dCBmaWxlAFVuYWJsZSB0byBvcGVuIHRyYXZlcnNhbCBmaWxlLgBVbmFibGUgdG8gb3BlbiB0cmF2ZXJzYWwgZm91bmQgZmlsZS4AVW5hYmxlIHRvIHJlb3BlbiB0ZW1wb3JhcnkgZmlsZSBmb3IgZGVsZXRpb24gb2YgbGluay4AVW5hYmxlIHRvIHNhdmUgT3B0aW9ucyEAVW5hYmxlIHRvIHNldCB1cCBjb25uZWN0aW9uLgBVbmFibGUgdG8gdXBsb2FkIGZpbGUuAFVuZGVybGluZSBsaW5rcwBVbmV4cGVjdGVkIGFjY2VzcyBwcm90b2NvbCBmb3IgdGhpcyBVUkwgc2NoZW1lLgBVbmV4cGVjdGVkIGZhaWx1cmUgLSB1bmFibGUgdG8gZmluZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvcgBVbmV4cGVjdGVkIG5ldHdvcmsgcmVhZCBlcnJvcjsgY29ubmVjdGlvbiBhYm9ydGVkLgBVbmV4cGVjdGVkIG5ldHdvcmsgd3JpdGUgZXJyb3I7IGNvbm5lY3Rpb24gYWJvcnRlZC4AVW5rbm93biBvciBhbWJpZ3VvdXMgY29tbWFuZABVbmtub3duIHN0YXR1cyByZXBseSBmcm9tIHNlcnZlciEAVW5zdXBwb3J0ZWQgVVJMIHNjaGVtZSEAVW5zdXBwb3J0ZWQgZGF0YTogVVJMISAgVXNlIFNIT1dJTkZPLCBmb3Igbm93LgBVcCB0byAAVXBsb2FkIE9wdGlvbnMAVXBsb2FkIFRvOgBVcGxvYWQgb3B0aW9uczoAVXNlICItc3RkaW4iIG9yICItIiB0byB0ZWxsIGhvdyB0byBoYW5kbGUgcGlwZWQgaW5wdXQuCgBVc2UgIkxfeV9uX3giIG9yICJMeW54IiBpbiBVc2VyLUFnZW50LCBvciBpdCBsb29rcyBsaWtlIGludGVudGlvbmFsIGRlY2VwdGlvbiEAVXNlICVzIHRvIGludm9rZSB0aGUgT3B0aW9ucyBtZW51IQBVc2UgQ29udHJvbC1SIHRvIHJlc3VibWl0IHRoZSBjdXJyZW50IHF1ZXJ5LgBVc2UgSFRNTDUgY2hhcnNldCByZXBsYWNlbWVudHMAVXNlIFBhc3NpdmUgRlRQAFVzZSBhIGZpbGVwYXRoIG9mZiB5b3VyIGhvbWUgZGlyZWN0b3J5IQBVc2UgYSBmaWxlcGF0aCBvZmYgeW91ciBsb2dpbiBkaXJlY3RvcnkgaW4gU0hFTEwgc3ludGF4IQBVc2UgYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZiBvZiBmaWVsZC4AVXNlIGxvY2FsZS1iYXNlZCBjaGFyYWN0ZXIgc2V0AFVzZXIgbW9kZQBVc2VyLUFnZW50IGhlYWRlcgBVc2VyLUFnZW50IHN0cmluZyBkb2VzIG5vdCBjb250YWluICJMeW54IiBvciAiTF95X25feCIAVXNlci9wYXNzd29yZCBjb250YWlucyBvbmx5IHB1bmN0dWF0aW9uOiAlcwBVc2VyL3Bhc3N3b3JkIG1heSBiZSBjb25mdXNlZCB3aXRoIGhvc3RuYW1lOiAnJXMnIChlLmcsICclcycpAFVzZXJuYW1lIGZvciAnJXMnIGF0ICVzICclcyVzJzoAVXNlcm5hbWUgZm9yIG5ld3MgaG9zdCAnJXMnOgBVc2VybmFtZToAVXNlcm5hbWU6IABVc2luZyAlcwBWSSBrZXlzAFZhbHVlIGFjY2VwdGVkIQBWYWx1ZSBhY2NlcHRlZCEgLS0gV0FSTklORzogTHlueCBpcyBOT1QgY29uZmlndXJlZCBmb3IgWFdJTkRPV1MhAFZhbHVlIGFjY2VwdGVkISAtLSBXQVJOSU5HOiBMeW54IGlzIGNvbmZpZ3VyZWQgZm9yIFhXSU5ET1dTIQBWZXJib3NlIGltYWdlcwBWZXJpZmllZCBjb25uZWN0aW9uIHRvICVzIChjZXJ0PSVzKQBWZXJpZmllZCBjb25uZWN0aW9uIHRvICVzIChzdWJqPSVzKQBWZXJ5IGxvbmcgbGluZXMgaGF2ZSBiZWVuIHRydW5jYXRlZCEAVmlldyB0ZW1wb3JhcnkgZmlsZQBWaWV3IHRoZSBmaWxlIABWaWV3aW5nIHByZXBhcnNlZCBzb3VyY2UuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbWFpbCBpdD8AVmlzaWJsZSBsaW5rczoAVmlzaXRlZCBMaW5rcyBQYWdlAFZpc2l0ZWQgUGFnZXMAV0FJUyBJbmRleDogAFdBSVMgU2VhcmNoIG9mICIAV2FybiwgcG9pbnQgdG8gdHJhY2UtZmlsZQBXYXJuaW5nISAgQ29udHJvbCBjb2RlcyBpbiBtYWlsIGFkZHJlc3MgcmVwbGFjZWQgYnkgPwBXYXJuaW5nISAgVVVEZWNvZGVkIGZpbGUgd2lsbCBleGlzdCBpbiB0aGUgZGlyZWN0b3J5IHlvdSBzdGFydGVkIEx5bnguAFdhcm5pbmc6AFdhcm5pbmc6IENhbm5vdCB0cmFuc2NvZGUgZm9ybSBkYXRhIHRvIGNoYXJzZXQgJXMhAFdlbGNvbWUAV29ybGQ6AFdyYXAgbGluZXMgdG8gZml0IGRpc3BsYXllZCBhcmVhPwBYIERpc3BsYXkAWS9OL0EvVgBZb3UgTVVTVCBkZWZpbmUgYSB2YWxpZCBUTVAgb3IgVEVNUCBhcmVhIQBZb3UgYXJlIGFscmVhZHkgYXQgbWFpbiBzY3JlZW4hAFlvdSBhcmUgYWxyZWFkeSBhdCBwYWdlICVkIG9mIHRoaXMgZG9jdW1lbnQuAFlvdSBhcmUgYWxyZWFkeSBhdCBwYWdlICVkIG9mIHRoaXMgb3B0aW9uIGxpc3QuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZG9jdW1lbnQuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgb3B0aW9uIGxpc3QuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgZW5kIG9mIHRoaXMgZG9jdW1lbnQuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgZW5kIG9mIHRoaXMgb3B0aW9uIGxpc3QuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgZmlyc3QgZG9jdW1lbnQAWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIGJvb2ttYXJrIGZpbGUhAFlvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMgc2V0dGluZy4AWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2Ugd2hpY2ggZWRpdG9yIHRvIHVzZSEAWW91IGFyZSBub3QgYWxsb3dlZCB0byBnb3RvICIlcyIgVVJMcwBZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIGVkaXQgdGhpcyBmaWxlLgBZb3UgYXJlIG5vdCBvbiBhIGZvcm0gc3VibWlzc2lvbiBidXR0b24gb3Igbm9ybWFsIGxpbmsuAFlvdSBhcmUgc2VuZGluZyBhIGNvbW1lbnQgdG86CiAgAFlvdSBhcmUgc2VuZGluZyBhIG1lc3NhZ2Ugd2l0aCBib2R5IHRvOgogIABZb3UgY2Fubm90IGRvd25sb2FkIGEgbWFpbHRvOiBsaW5rLgBZb3UgY2Fubm90IGRvd25sb2FkIGEgcHJpbnRpbmcgb3B0aW9uLgBZb3UgY2Fubm90IGRvd25sb2FkIGFuIGlucHV0IGZpZWxkLgBZb3UgY2Fubm90IGRvd25sb2FkIGFuIHBlcm1pdCBvcHRpb24uAFlvdSBjYW5ub3QgZG93bmxvYWQgYW4gdXBsb2FkIG9wdGlvbi4AWW91IGNhbm5vdCBkb3dubG9hZCBjb29raWVzLgBZb3UgY2Fubm90IGVkaXQgRmlsZSBNYW5hZ2VtZW50IFVSTHMAWW91IGhhdmUgZW50ZXJlZCBhbiBpbnZhbGlkIGxpbmsgbnVtYmVyLgBZb3UgaGF2ZSBlbnRlcmVkIGFuIGludmFsaWQgb3B0aW9uIG51bWJlci4AWW91IG1heSBhbHNvIHVzZSB0aGUgY29tbWFuZC1saW5lIG9wdGlvbiAiLWZvcm1zX29wdGlvbnMiLCB3aGljaCBkaXNwbGF5cwp0aGUgc2ltcGxlciBPcHRpb25zIE1lbnUgaW5zdGVhZC4gIFNhdmUgb3B0aW9ucyB3aXRoIHRoYXQgdXNpbmcgdGhlICc+JyBrZXkuCgoAWW91IG11c3QgdGhlbiBzYXZlIHRoZSBzZXR0aW5ncyB1c2luZyB0aGUgbGluayBvbiB0aGUgbGluZSBhYm92ZSB0aGUKY2hlY2tib3g6CgBZb3UgbXVzdCB1c2UgYSB2dDEwMCwgMjAwLCBldGMuIHRlcm1pbmFsIHdpdGggdGhpcyBwcm9ncmFtLgBZb3Ugc2VsZWN0ZWQ6AFlvdSB2aXNpdGVkIChQT1NUcywgYm9va21hcmssIG1lbnUgYW5kIGxpc3QgZmlsZXMgZXhjbHVkZWQpOgBZb3Ugd2lsbCBiZSBwb3N0aW5nIHRvOgBZb3VyICclcycgdGVybWluYWwgZG9lcyBub3Qgc3VwcG9ydCBjb2xvci4AWW91ciBUZXJtaW5hbCB0eXBlIGlzIHVua25vd24hAFlvdXIgcHJpbWFyeSBjb25maWd1cmF0aW9uAFlvdXIgcmVjZW50IHN0YXR1c2xpbmUgbWVzc2FnZXMAYWNjZXB0IGFsbABhY2NlcHRfYWxsX2Nvb2tpZXMgYWxsb3dzIHRoZSB1c2VyIHRvIHRlbGwgTHlueCB0byBhdXRvbWF0aWNhbGx5CmFjY2VwdCBhbGwgY29va2llcyBpZiBkZXNpcmVkLiAgVGhlIGRlZmF1bHQgaXMgIkZBTFNFIiB3aGljaCB3aWxsCnByb21wdCBmb3IgZWFjaCBjb29raWUuICBTZXQgYWNjZXB0X2FsbF9jb29raWVzIHRvICJUUlVFIiB0byBhY2NlcHQKYWxsIGNvb2tpZXMuCgBhbm9uZnRwX3Bhc3N3b3JkIGFsbG93cyB0aGUgdXNlciB0byB0ZWxsIEx5bnggdG8gdXNlIHRoZSBwZXJzb25hbAplbWFpbCBhZGRyZXNzIGFzIHRoZSBwYXNzd29yZCBmb3IgYW5vbnltb3VzIGZ0cC4gIElmIG5vIHZhbHVlIGlzIGdpdmVuLApMeW54IHdpbGwgdXNlIHRoZSBwZXJzb25hbCBlbWFpbCBhZGRyZXNzLiAgU2V0IGFub25mdHBfcGFzc3dvcmQKdG8gYSBkaWZmZXJlbnQgdmFsdWUgaWYgeW91IGNob29zZS4KAGFzIGxhYmVscwBhcyBsaW5rcwBhc2sgdXNlcgBib29rbWFya19maWxlIHNwZWNpZmllcyB0aGUgbmFtZSBhbmQgbG9jYXRpb24gb2YgdGhlIGRlZmF1bHQgYm9va21hcmsKZmlsZSBpbnRvIHdoaWNoIHRoZSB1c2VyIGNhbiBwYXN0ZSBsaW5rcyBmb3IgZWFzeSBhY2Nlc3MgYXQgYSBsYXRlcgpkYXRlLgoAYnl0ZXMAYnppcDIAY2FsbGVkICIlcyIKAGNhcGl0YWwgbGV0dGVyAGNkIHRvOgBjZ2kgc3VwcG9ydCBoYXMgYmVlbiBkaXNhYmxlZC4AY2hhcnNldCBmb3IgdGhpcyBkb2N1bWVudCBzcGVjaWZpZWQgZXhwbGljaXRseSwgc29ycnkuLi4AY2hlY2tib3gAY2xvc2UgbWFzdGVyIHNvY2tldABjb2xsYXBzZQBjb2xvci1zdHlsZSBjb25maWd1cmF0aW9uAGNvbXBpbGUgdGltZSBvcHRpb25zAGNvbXByZXNzAGNvbm5lY3QgZm9yIGRhdGEAY29va2llX2FjY2VwdF9kb21haW5zIGFuZCBjb29raWVfcmVqZWN0X2RvbWFpbnMgYXJlIGNvbW1hLWRlbGltaXRlZApsaXN0cyBvZiBkb21haW5zIGZyb20gd2hpY2ggTHlueCBzaG91bGQgYXV0b21hdGljYWxseSBhY2NlcHQgb3IgcmVqZWN0CmFsbCBjb29raWVzLiAgSWYgYSBkb21haW4gaXMgc3BlY2lmaWVkIGluIGJvdGggb3B0aW9ucywgcmVqZWN0aW9uIHdpbGwKdGFrZSBwcmVjZWRlbmNlLiAgVGhlIGFjY2VwdF9hbGxfY29va2llcyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSBhbnkKc2V0dGluZ3MgbWFkZSBoZXJlLgoAY29va2llX2RvbWFpbl9mbGFnX3NldCBlcnJvciwgYWJvcnRpbmcgcHJvZ3JhbQBjb29raWVfZmlsZSBzcGVjaWZpZXMgdGhlIGZpbGUgZnJvbSB3aGljaCB0byByZWFkIHBlcnNpc3RlbnQgY29va2llcy4KVGhlIGRlZmF1bHQgaXMgfi8AY29va2llX2xvb3NlX2ludmFsaWRfZG9tYWlucywgY29va2llX3N0cmljdF9pbnZhbGlkX2RvbWFpbnMsIGFuZApjb29raWVfcXVlcnlfaW52YWxpZF9kb21haW5zIGFyZSBjb21tYS1kZWxpbWl0ZWQgbGlzdHMgb2Ygd2hpY2ggZG9tYWlucwpzaG91bGQgYmUgc3ViamVjdGVkIHRvIHZhcnlpbmcgZGVncmVlcyBvZiB2YWxpZGl0eSBjaGVja2luZy4gIElmIGEKZG9tYWluIGlzIHNldCB0byBzdHJpY3QgY2hlY2tpbmcsIHN0cmljdCBjb25mb3JtYW5jZSB0byBSRkMyMTA5IHdpbGwKYmUgYXBwbGllZC4gIEEgZG9tYWluIHdpdGggbG9vc2UgY2hlY2tpbmcgd2lsbCBiZSBhbGxvd2VkIHRvIHNldCBjb29raWVzCndpdGggYW4gaW52YWxpZCBwYXRoIG9yIGRvbWFpbiBhdHRyaWJ1dGUuICBBbGwgZG9tYWlucyB3aWxsIGRlZmF1bHQgdG8KcXVlcnlpbmcgdGhlIHVzZXIgZm9yIGFuIGludmFsaWQgcGF0aCBvciBkb21haW4uCgBkZWZsYXRlAGRldmVsb3BtZW50IHZlcnNpb24AZGlyX2xpc3Rfb3JkZXIgc3BlY2lmaWVzIHRoZSBkaXJlY3RvcnkgbGlzdCBvcmRlciB1bmRlciBESVJFRF9TVVBQT1JUCihpZiBpbXBsZW1lbnRlZCkuICBUaGUgZGVmYXVsdCBpcyAiT1JERVJfQllfTkFNRSIKAGRpcl9saXN0X3N0eWxlcyBzcGVjaWZpZXMgdGhlIGRpcmVjdG9yeSBsaXN0IHN0eWxlIHVuZGVyIERJUkVEX1NVUFBPUlQKKGlmIGltcGxlbWVudGVkKS4gIFRoZSBkZWZhdWx0IGlzICJNSVhFRF9TVFlMRSIsIHdoaWNoIHNvcnRzIGJvdGgKZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvZ2V0aGVyLiAgIkZJTEVTX0ZJUlNUIiBsaXN0cyBmaWxlcyBmaXJzdCBhbmQKIkRJUkVDVE9SSUVTX0ZJUlNUIiBsaXN0cyBkaXJlY3RvcmllcyBmaXJzdC4KAGZhaWxlZCB0byBjaGFuZ2UgZGlyZWN0b3J5AGZpbGUgZW50cnkgZmllbGQAZmlsZTogQUNUSU9OcyBhcmUgZGlzYWxsb3dlZCEAZmlsZTogVVJMcyB2aWEgYm9va21hcmtzIGFyZSBkaXNhbGxvd2VkIQBmaWxlOiBVUkxzIHZpYSBzZXJ2ZWQgbGlua3MgYXJlIGRpc2FsbG93ZWQhAGZpbGVfZWRpdG9yIHNwZWNpZmllcyB0aGUgZWRpdG9yIHRvIGJlIGludm9rZWQgd2hlbiBlZGl0aW5nIGxvY2FsIGZpbGVzCm9yIHNlbmRpbmcgbWFpbC4gIElmIG5vIGVkaXRvciBpcyBzcGVjaWZpZWQsIHRoZW4gZmlsZSBlZGl0aW5nIGlzIGRpc2FibGVkCnVubGVzcyBpdCBpcyBhY3RpdmF0ZWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBhbmQgdGhlIGJ1aWx0LWluIGxpbmUgZWRpdG9yCndpbGwgYmUgdXNlZCBmb3Igc2VuZGluZyBtYWlsLgoAZm9yIG1vcmUgY29tbWVudHMuAGZvciBydW50aW1lIG9wdGlvbnMAZm9yY2Ugbm8tcmVzcG9uc2UAZm9yY2UgeWVzLXJlc3BvbnNlAGZvcm0gdG8gcGVybWl0AGZvcm1zIG1vZGUAZ3ppcABoZXJlIGlzIGEgbGlzdCBvZiB0aGUgaGlzdG9yeSBzdGFjayBzbyB0aGF0IHlvdSBtYXkgcmVidWlsZABoaWRkZW4gZm9ybSBmaWVsZABpZ25vcmUAaW1hZ2Utc3VibWl0IGJ1dHRvbgBpbiB0aGUgZmlsZSAiJXMiIGNhbGxlZCAiJXMiCgBpbmNsdWRlZCBmcm9tICclcycuCgBpbnZhbGlkIGxpbmUtZWRpdG9yIHNlbGVjdGlvbiAlcyBmb3Iga2V5ICVzLCBzZWxlY3RpbmcgYWxsCgBpc3N1ZXIgaXMgbm90IGEgQ0EAa2V5IHJlbWFwcGluZyBvZiAlcyB0byAlcyBmYWlsZWQKAGtleSByZW1hcHBpbmcgb2YgJXMgdG8gJXMgZm9yICVzIGZhaWxlZAoAa2V5Z2VuIGZpZWxkAGxhdGVzdCByZWxlYXNlAGxpbmVlZGl0X21vZGUgc3BlY2lmaWVzIHRoZSBrZXkgYmluZGluZyB1c2VkIGZvciBpbnB1dHRpbmcgc3RyaW5ncyBpbgpwcm9tcHRzIGFuZCBmb3Jtcy4gIElmIGxpbmVlZGl0X21vZGUgaXMgc2V0IHRvICJEZWZhdWx0IEJpbmRpbmciIHRoZW4KdGhlIGZvbGxvd2luZyBjb250cm9sIGNoYXJhY3RlcnMgYXJlIHVzZWQgZm9yIG1vdmluZyBhbmQgZGVsZXRpbmc6CgogICAgICAgICAgICAgUHJldiAgTmV4dCAgICAgICBFbnRlciA9IEFjY2VwdCBpbnB1dAogICBNb3ZlIGNoYXI6IDwtICAgIC0+ICAgICAgICBeRyAgICA9IENhbmNlbCBpbnB1dAogICBNb3ZlIHdvcmQ6IF5QICAgIF5OICAgICAgICBeVSAgICA9IEVyYXNlIGxpbmUKIERlbGV0ZSBjaGFyOiBeSCAgICBeUiAgICAgICAgXkEgICAgPSBCZWdpbm5pbmcgb2YgbGluZQogRGVsZXRlIHdvcmQ6IF5CICAgIF5GICAgICAgICBeRSAgICA9IEVuZCBvZiBsaW5lCgpDdXJyZW50IGxpbmVlZGl0IG1vZGVzIGFyZToKAGxpbmVzAGx5bng6IENhbid0IGFjY2VzcyBzdGFydGZpbGUAbHlueDogUGFzc3dvcmQgcmVxdWlyZWQhISEAbHlueDogU3RhcnQgZmlsZSBjb3VsZCBub3QgYmUgZm91bmQgb3IgaXMgbm90IHRleHQvaHRtbCBvciB0ZXh0L3BsYWluAGx5bng6IFVzZXJuYW1lIGFuZCBQYXNzd29yZCByZXF1aXJlZCEhIQBtb2RlOgBtb3ZlICVzIHRvICVzAG5lJ1YnZXIgYWxsb3dpbmcgZnJvbSBkb21haW4gJyVzJy4AbmV4dCBzY3JlZW4Abm8Abm8gaXNzdWVyIHdhcyBmb3VuZABub3JtYWwAb3IgdG8gY2hhbmdlIGEgZG9tYWluJ3MgJ2FsbG93JyBzZXR0aW5nLgBwYWdlAHBhZ2VzAHBhc3N3b3JkIGVudHJ5IGZpZWxkAHBhc3N3b3JkIGZvciByZWFsbSAlcyB1c2VyICVzIGNoYW5nZWQAcGVyc2lzdGVudCBjb29raWVzIHN0YXRlIHdpbGwgYmUgY2hhbmdlZCBpbiBuZXh0IHNlc3Npb24gb25seS4AcGVyc29uYWxfbWFpbF9hZGRyZXNzIHNwZWNpZmllcyB5b3VyIHBlcnNvbmFsIG1haWwgYWRkcmVzcy4gIFRoZQphZGRyZXNzIHdpbGwgYmUgc2VudCBkdXJpbmcgSFRUUCBmaWxlIHRyYW5zZmVycyBmb3IgYXV0aG9yaXphdGlvbiBhbmQKbG9nZ2luZyBwdXJwb3NlcywgYW5kIGZvciBtYWlsZWQgY29tbWVudHMuCklmIHlvdSBkbyBub3Qgd2FudCB0aGlzIGluZm9ybWF0aW9uIGdpdmVuIG91dCwgc2V0IHRoZSBOT19GUk9NX0hFQURFUgp0byBUUlVFIGluIGx5bnguY2ZnLCBvciB1c2UgdGhlIC1ub2Zyb20gY29tbWFuZCBsaW5lIHN3aXRjaC4gIFlvdSBhbHNvCmNvdWxkIGxlYXZlIHRoaXMgZmllbGQgYmxhbmssIGJ1dCB0aGVuIHlvdSB3b24ndCBoYXZlIGl0IGluY2x1ZGVkIGluCnlvdXIgbWFpbGVkIGNvbW1lbnRzLgoAcGVyc29uYWxfbWFpbF9uYW1lIHNwZWNpZmllcyB5b3VyIHBlcnNvbmFsIG5hbWUsIGZvciBtYWlsLiAgVGhlCm5hbWUgaXMgc2VudCBmb3IgbWFpbGVkIGNvbW1lbnRzLiAgTHlueCB3aWxsIHByb21wdCBmb3IgdGhpcywKc2hvd2luZyB0aGUgY29uZmlndXJlZCB2YWx1ZSBhcyBhIGRlZmF1bHQgd2hlbiBzZW5kaW5nIG1haWwuClRoaXMgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIGEgbmFtZSBwcm92aWRlZCBhcyBwYXJ0IG9mIHRoZQpwZXJzb25hbF9tYWlsX2FkZHJlc3MuCkx5bnggZG9lcyBub3Qgc2F2ZSB5b3VyIGNoYW5nZXMgdG8gdGhhdCBkZWZhdWx0IHZhbHVlIGFzIGEgc2lkZS1lZmZlY3QKb2Ygc2VuZGluZyBlbWFpbC4gIFRvIHVwZGF0ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSBvcHRpb25zCm1lbnUsIG9yIG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkuCgBwb3B1cCBtZW51AHByZS1yZWxlYXNlIHZlcnNpb24AcHJlZmVycmVkX2NoYXJzZXQgc3BlY2lmaWVzIHRoZSBjaGFyYWN0ZXIgc2V0IGluIE1JTUUgbm90YXRpb24gKGUuZy4sCklTTy04ODU5LTIsIElTTy04ODU5LTUpIHdoaWNoIEx5bnggd2lsbCBpbmRpY2F0ZSB5b3UgcHJlZmVyIGluIHJlcXVlc3RzCnRvIGh0dHAgc2VydmVycyB1c2luZyBhbiBBY2NlcHQtQ2hhcnNldCBoZWFkZXIuICBUaGUgdmFsdWUgc2hvdWxkIE5PVAppbmNsdWRlIElTTy04ODU5LTEgb3IgVVMtQVNDSUksIHNpbmNlIHRob3NlIHZhbHVlcyBhcmUgYWx3YXlzIGFzc3VtZWQKYnkgZGVmYXVsdC4gIE1heSBiZSBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LgpJZiBhIGZpbGUgaW4gdGhhdCBjaGFyYWN0ZXIgc2V0IGlzIGF2YWlsYWJsZSwgdGhlIHNlcnZlciB3aWxsIHNlbmQgaXQuCklmIG5vIEFjY2VwdC1DaGFyc2V0IGhlYWRlciBpcyBwcmVzZW50LCB0aGUgZGVmYXVsdCBpcyB0aGF0IGFueQpjaGFyYWN0ZXIgc2V0IGlzIGFjY2VwdGFibGUuICBJZiBhbiBBY2NlcHQtQ2hhcnNldCBoZWFkZXIgaXMgcHJlc2VudCwKYW5kIGlmIHRoZSBzZXJ2ZXIgY2Fubm90IHNlbmQgYSByZXNwb25zZSB3aGljaCBpcyBhY2NlcHRhYmxlCmFjY29yZGluZyB0byB0aGUgQWNjZXB0LUNoYXJzZXQgaGVhZGVyLCB0aGVuIHRoZSBzZXJ2ZXIgU0hPVUxEIHNlbmQKYW4gZXJyb3IgcmVzcG9uc2UsIHRob3VnaCB0aGUgc2VuZGluZyBvZiBhbiB1bmFjY2VwdGFibGUgcmVzcG9uc2UKaXMgYWxzbyBhbGxvd2VkLgoAcHJlZmVycmVkX2xhbmd1YWdlIHNwZWNpZmllcyB0aGUgbGFuZ3VhZ2UgaW4gTUlNRSBub3RhdGlvbiAoZS5nLiwgZW4sCmZyLCBtYXkgYmUgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpbiBkZWNyZWFzaW5nIHByZWZlcmVuY2UpCndoaWNoIEx5bnggd2lsbCBpbmRpY2F0ZSB5b3UgcHJlZmVyIGluIHJlcXVlc3RzIHRvIGh0dHAgc2VydmVycy4KSWYgYSBmaWxlIGluIHRoYXQgbGFuZ3VhZ2UgaXMgYXZhaWxhYmxlLCB0aGUgc2VydmVyIHdpbGwgc2VuZCBpdC4KT3RoZXJ3aXNlLCB0aGUgc2VydmVyIHdpbGwgc2VuZCB0aGUgZmlsZSBpbiBpdHMgZGVmYXVsdCBsYW5ndWFnZS4KAHByZXZpb3VzAHByb21wdCBub3JtYWxseQByYWRpbyBidXR0b24AcmFuZ2UgZW50cnkgZmllbGQAcmVhbGxvY2VkOgByZWxheGVkIChUYWdTb3VwIG1vZGUpAHJlbW90ZSAlcyBzZXNzaW9uOgByZW1vdmUgJXMAcmVzZXQgYnV0dG9uAHJldmlldy9lZGl0IEIpb29rbWFya3MgZmlsZXMAc2NyaXB0IGJ1dHRvbgBzZWxlY3RfcG9wdXBzIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBPUFRJT05zIGluIGEgU0VMRUNUIGJsb2NrIHdoaWNoCmxhY2tzIGEgTVVMVElQTEUgYXR0cmlidXRlIGFyZSBwcmVzZW50ZWQgYXMgYSB2ZXJ0aWNhbCBsaXN0IG9mIHJhZGlvCmJ1dHRvbnMgb3IgdmlhIGEgcG9wdXAgbWVudS4gIE5vdGUgdGhhdCBpZiB0aGUgTVVMVElQTEUgYXR0cmlidXRlIGlzCnByZXNlbnQgaW4gdGhlIFNFTEVDVCBzdGFydCB0YWcsIEx5bnggYWx3YXlzIHdpbGwgY3JlYXRlIGEgdmVydGljYWwgbGlzdApvZiBjaGVja2JveGVzIGZvciB0aGUgT1BUSU9Ocy4gIEEgdmFsdWUgb2YgIm9uIiB3aWxsIHNldCBwb3B1cCBtZW51cwphcyB0aGUgZGVmYXVsdCB3aGlsZSBhIHZhbHVlIG9mICJvZmYiIHdpbGwgc2V0IHVzZSBvZiByYWRpbyBib3hlcy4KVGhlIGRlZmF1bHQgY2FuIGJlIG92ZXJyaWRkZW4gdmlhIHRoZSAtcG9wdXAgY29tbWFuZCBsaW5lIHRvZ2dsZS4KAHNldHRpbmcgb2YgbGluZS1lZGl0b3IgYmluZGluZyBmb3Iga2V5ICVzICgweCV4KSBmb3IgJXMgZmFpbGVkCgBzZXR0aW5nIG9mIGxpbmUtZWRpdG9yIGJpbmRpbmcgZm9yIGtleSAlcyAoMHgleCkgdG8gMHgleCBmb3IgJXMgZmFpbGVkCgBzaG93IGZpbGVuYW1lAHNob3dfY29sb3Igc3BlY2lmaWVzIGhvdyB0byBzZXQgdGhlIGNvbG9yIG1vZGUgYXQgc3RhcnR1cC4gIEEgdmFsdWUgb2YKIm5ldmVyIiB3aWxsIGZvcmNlIGNvbG9yIG1vZGUgb2ZmICh0cmVhdCB0aGUgdGVybWluYWwgYXMgbW9ub2Nocm9tZSkKYXQgc3RhcnR1cCBldmVuIGlmIHRoZSB0ZXJtaW5hbCBhcHBlYXJzIHRvIGJlIGNvbG9yIGNhcGFibGUuICBBIHZhbHVlIG9mCiJhbHdheXMiIHdpbGwgZm9yY2UgY29sb3IgbW9kZSBvbiBldmVuIGlmIHRoZSB0ZXJtaW5hbCBhcHBlYXJzIHRvIGJlCm1vbm9jaHJvbWUsIGlmIHRoaXMgaXMgc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5IHVzZWQgdG8gYnVpbGQgbHlueC4KQSB2YWx1ZSBvZiAiZGVmYXVsdCIgd2lsbCB5aWVsZCB0aGUgYmVoYXZpb3Igb2YgYXNzdW1pbmcKYSBtb25vY2hyb21lIHRlcm1pbmFsIHVubGVzcyBjb2xvciBjYXBhYmlsaXR5IGlzIGluZmVycmVkIGF0IHN0YXJ0dXAKYmFzZWQgb24gdGhlIHRlcm1pbmFsIHR5cGUsIG9yIHRoZSAtY29sb3IgY29tbWFuZCBsaW5lIHN3aXRjaCBpcyB1c2VkLCBvcgp0aGUgQ09MT1JURVJNIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldC4gIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGFsd2F5cyBpcwp1c2VkIGluIGFub255bW91cyBhY2NvdW50cyBvciBpZiB0aGUgIm9wdGlvbl9zYXZlIiByZXN0cmljdGlvbiBpcyBzZXQuClRoZSBlZmZlY3Qgb2YgdGhlIHNhdmVkIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIHZpYQp0aGUgLWNvbG9yIGFuZCAtbm9jb2xvciBjb21tYW5kIGxpbmUgc3dpdGNoZXMuClRoZSBtb2RlIHNldCBhdCBzdGFydHVwIGNhbiBiZSBjaGFuZ2VkIHZpYSB0aGUgInNob3cgY29sb3IiIG9wdGlvbiBpbgp0aGUgJ28ncHRpb25zIG1lbnUuICBJZiB0aGUgb3B0aW9uIHNldHRpbmdzIGFyZSBzYXZlZCwgdGhlICJvbiIgYW5kCiJvZmYiICJzaG93IGNvbG9yIiBzZXR0aW5ncyB3aWxsIGJlIHRyZWF0ZWQgYXMgImRlZmF1bHQiLgoAc2hvd19jdXJzb3Igc3BlY2lmaWVzIHdoZXRoZXIgdG8gJ2hpZGUnIHRoZSBjdXJzb3IgdG8gdGhlIHJpZ2h0IChhbmQKYm90dG9tLCBpZiBwb3NzaWJsZSkgb2YgdGhlIHNjcmVlbiwgb3IgdG8gcGxhY2UgaXQgdG8gdGhlIGxlZnQgb2YgdGhlCmN1cnJlbnQgbGluayBpbiBkb2N1bWVudHMsIG9yIGN1cnJlbnQgb3B0aW9uIGluIHNlbGVjdCBwb3B1cCB3aW5kb3dzLgpQb3NpdGlvbmluZyB0aGUgY3Vyc29yIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJyZW50IGxpbmsgb3Igb3B0aW9uIGlzCmhlbHBmdWwgZm9yIHNwZWVjaCBvciBicmFpbGxlIGludGVyZmFjZXMsIGFuZCB3aGVuIHRoZSB0ZXJtaW5hbCBpcwpvbmUgd2hpY2ggZG9lcyBub3QgZGlzdGluZ3Vpc2ggdGhlIGN1cnJlbnQgbGluayBiYXNlZCBvbiBoaWdobGlnaHRpbmcKb3IgY29sb3IuICBBIHZhbHVlIG9mICJvbiIgd2lsbCBzZXQgcG9zaXRpb25pbmcgdG8gdGhlIGxlZnQgYXMgdGhlCmRlZmF1bHQgd2hpbGUgYSB2YWx1ZSBvZiAib2ZmIiB3aWxsIHNldCAnaGlkaW5nJyBvZiB0aGUgY3Vyc29yLgpUaGUgZGVmYXVsdCBjYW4gYmUgb3ZlcnJpZGRlbiB2aWEgdGhlIC1zaG93X2N1cnNvciBjb21tYW5kIGxpbmUgdG9nZ2xlLgoAc2hvd19kb3RmaWxlcyBzcGVjaWZpZXMgdGhhdCB0aGUgZGlyZWN0b3J5IGxpc3Rpbmcgc2hvdWxkIGluY2x1ZGUKImhpZGRlbiIgKGRvdCkgZmlsZXMvZGlyZWN0b3JpZXMuICBJZiBzZXQgIm9uIiwgdGhpcyB3aWxsIGJlCmhvbm9yZWQgb25seSBpZiBlbmFibGVkIHZpYSB1c2VyZGVmcy5oIGFuZC9vciBseW54LmNmZywgYW5kIG5vdApyZXN0cmljdGVkIHZpYSBhIGNvbW1hbmQgbGluZSBzd2l0Y2guICBJZiBkaXNwbGF5IG9mIGhpZGRlbiBmaWxlcwppcyBkaXNhYmxlZCwgY3JlYXRpb24gb2Ygc3VjaCBmaWxlcyB2aWEgTHlueCBhbHNvIGlzIGRpc2FibGVkLgoAc2l6ZToAc29ja2V0IGZhaWxlZC4Ac29ja2V0IGZhaWxlZDogZmFtaWx5ICVkIGFkZHIgJXMgcG9ydCAlcy4Ac29ja2V0IGZvciBtYXN0ZXIgc29ja2V0AHNvdXJjZQBzdHJpY3QgKFNvcnRhU0dNTCBtb2RlKQBzdWJtaXQgYnV0dG9uAHRhZ2dlZCBpdGVtOgB0YWdnZWQgaXRlbXM6AHRleHQgZW50cnkgYXJlYQB0ZXh0IGVudHJ5IGZpZWxkAHRleHQtc3VibWl0IGZpZWxkAHRoZSBVbml2ZXJzaXR5IG9mIEthbnNhcywgQ0VSTiwgYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4AdGhlIGNlcnRpZmljYXRlIGhhcyBiZWVuIHJldm9rZWQAdGhlIGNlcnRpZmljYXRlIGhhcyBubyBrbm93biBpc3N1ZXIAdGhlIGNlcnRpZmljYXRlIGlzIG5vdCB0cnVzdGVkAHRoZSBzZWNvbmQgaXMgdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgaXRlbS4AdGhpcyBkb2N1bWVudDoAdGhpcyBsaW5rAHRvdWNoICVzAHRyaW0tbGluZXMAdW5rbm93biBmaWVsZCBvciBsaW5rAHVua25vd24gZm9ybSBmaWVsZAB1bmtub3duIHJlc3RyaWN0aW9uAHVzZXJfbW9kZSBzcGVjaWZpZXMgdGhlIHVzZXJzIGxldmVsIG9mIGtub3dsZWRnZSB3aXRoIEx5bnguICBUaGUKZGVmYXVsdCBpcyAiTk9WSUNFIiB3aGljaCBkaXNwbGF5cyB0d28gZXh0cmEgbGluZXMgb2YgaGVscCBhdCB0aGUKYm90dG9tIG9mIHRoZSBzY3JlZW4gdG8gYWlkIHRoZSB1c2VyIGluIGxlYXJuaW5nIHRoZSBiYXNpYyBMeW54CmNvbW1hbmRzLiAgU2V0IHVzZXJfbW9kZSB0byAiSU5URVJNRURJQVRFIiB0byB0dXJuIG9mZiB0aGUgZXh0cmEgaW5mby4KVXNlICJBRFZBTkNFRCIgdG8gc2VlIHRoZSBVUkwgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBsaW5rIGF0IHRoZQpib3R0b20gb2YgdGhlIHNjcmVlbi4KAHVzZXJuYW1lIGZvciByZWFsbSAlcyBjaGFuZ2VkIGZyb20gJXMgdG8gJXMAd2FzIHJlcXVlc3RlZCBidXQgd2FzIG5vdCBhdmFpbGFibGUuAHllcwB5b3VyAFByb2plY3QtSWQtVmVyc2lvbjogbHlueCAyLjguOXByZS4xClJlcG9ydC1Nc2dpZC1CdWdzLVRvOiAKUE9ULUNyZWF0aW9uLURhdGU6IDIwMTgtMDctMDggMTI6NDgtMDQwMApQTy1SZXZpc2lvbi1EYXRlOiAyMDE4LTA3LTA4IDEyOjQ4LTA0MDAKTGFzdC1UcmFuc2xhdG9yOiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZApMYW5ndWFnZS1UZWFtOiBub25lCkxhbmd1YWdlOiBlbgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9QVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTsKAAkJVGFiIGtpbmQ9JWQgYXQgJS4wZgoACUFsaWduPSVkLCAlZCB0YWJzLiAoJS4wZiBiZWZvcmUsICUuMGYgYWZ0ZXIpCgAJSW5kZW50czogZmlyc3Q9JS4wZiBvdGhlcnM9JS4wZiwgSGVpZ2h0PSUuMWYgRGVzYz0lLjFmCgAKCiBQbGVhc2UgZW50ZXIgeW91ciBtZXNzYWdlIGJlbG93LgAKCiBQbGVhc2UgcHJvdmlkZSBvciBlZGl0IHRoZSBPcmdhbml6YXRpb246IGhlYWRlcgoACgogUGxlYXNlIHByb3ZpZGUgb3IgZWRpdCB0aGUgU3ViamVjdDogaGVhZGVyCgAKCiBQbGVhc2UgcHJvdmlkZSB5b3VyIG1haWwgYWRkcmVzcyBmb3IgdGhlIEZyb206IGhlYWRlcgoACgpVc2UgQ3RybC1HIHRvIGNhbmNlbCBpZiB5b3UgZG8gbm90IHdhbnQgdG8gc2VuZCBhIG1lc3NhZ2UKAAogRW50ZXIgYSBtYWlsIGFkZHJlc3MgZm9yIGEgQ0Mgb2YgeW91ciBtZXNzYWdlLgoACiBQbGVhc2UgZW50ZXIgYSBtYWlsIGFkZHJlc3Mgb3Igc29tZSBvdGhlcgoACiBQbGVhc2UgZW50ZXIgYSBzdWJqZWN0IGxpbmUuCgAKIFBsZWFzZSBlbnRlciB5b3VyIG1lc3NhZ2UgYmVsb3cuAAogUGxlYXNlIGVudGVyIHlvdXIgbmFtZSwgb3IgbGVhdmUgaXQgYmxhbmsgdG8gcmVtYWluIGFub255bW91cwoACiBQbGVhc2UgcmV2aWV3IHRoZSBtZXNzYWdlIGJvZHk6CgoACiBXaGVuIHlvdSBhcmUgZG9uZSwgcHJlc3MgZW50ZXIgYW5kIHB1dCBhIHNpbmdsZSBwZXJpb2QgKC4pAAogV2l0aCBjb3BpZXMgdG86CiAgAAogV2l0aCBjb3B5IHRvOgogIAAKIG9uIGEgbGluZSBhbmQgcHJlc3MgZW50ZXIgYWdhaW4uAApBIEZhdGFsIGVycm9yIGhhcyBvY2N1cnJlZCBpbiAlcyBWZXIuICVzCgAKQ29kZSByZWNvcmQsIGNhbid0IGRpc3BsYXkKAApDb25maWd1cmF0aW9uIGZpbGUgIiVzIiBpcyBub3QgYXZhaWxhYmxlLgoKAApFbnRlciB0aGUgJ3MnZWFyY2ggY29tbWFuZCBhbmQgdGhlbiBzcGVjaWZ5IHNlYXJjaCB3b3Jkcy4KAApIZWFkbGluZSByZWNvcmQsIGNhbid0IGRpc3BsYXkKAApMb25nIEhlYWRlciByZWNvcmQsIGNhbid0IGRpc3BsYXkKAApMeW54IGNoYXJhY3RlciBzZXRzIG5vdCBkZWNsYXJlZC4KCgAKTHlueCBmaWxlICIlcyIgaXMgbm90IGF2YWlsYWJsZS4KCgAKTm8gYXJ0aWNsZXMgaW4gdGhpcyBncm91cC4KAApObyBhcnRpY2xlcyBpbiB0aGlzIHJhbmdlLgoAClBsZWFzZSBlbnRlciBzZWFyY2gga2V5d29yZHMuCgAKUGxlYXNlIG5vdGlmeSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNvbmZpcm0gYSBidWcsIGFuZCBpZgpjb25maXJtZWQsIHRvIG5vdGlmeSB0aGUgbHlueC1kZXYgbGlzdC4gIEJ1ZyByZXBvcnRzIHNob3VsZCBoYXZlIGNvbmNpc2UKZGVzY3JpcHRpb25zIG9mIHRoZSBjb21tYW5kIGFuZC9vciBVUkwgd2hpY2ggY2F1c2VzIHRoZSBwcm9ibGVtLCB0aGUKb3BlcmF0aW5nIHN5c3RlbSBuYW1lIHdpdGggdmVyc2lvbiBudW1iZXIsIHRoZSBUQ1BJUCBpbXBsZW1lbnRhdGlvbiwgdGhlClRSQUNFQkFDSyBpZiBpdCBjYW4gYmUgY2FwdHVyZWQsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgaW5mb3JtYXRpb24uCgAKUHJlc3MgUkVUVVJOIHRvIGNsZWFuIHVwOiAAClByZXNzIFJFVFVSTiB0byBjb250aW51ZTogAApQcmVzcyB0aGUgJ3MnIGtleSBhbmQgZW50ZXIgc2VhcmNoIGtleXdvcmRzLgoAClRleHQgcmVjb3JkCgAKVGhlIGtleXdvcmRzIHRoYXQgeW91IGVudGVyIHdpbGwgYWxsb3cgeW91IHRvIHNlYXJjaCBvbiBhAApUaGVyZSBhcmUgYWJvdXQgJWQgYXJ0aWNsZXMgY3VycmVudGx5IGF2YWlsYWJsZSBpbiAlcywgSURzIGFzIGZvbGxvd3M6CgoAClRoaXMgaXMgYSBzZWFyY2hhYmxlIEdvcGhlciBpbmRleC4KAApUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleCBvZiBhIENTTyBkYXRhYmFzZS4KACAgICAgICAgICAgIEVudGVyIHRleHQgaW50byB0aGUgZmllbGQgYnkgdHlwaW5nIG9uIHRoZSBrZXlib2FyZCAgICAgICAgICAgICAgACAgICAgICAgIEVkaXRpbmcgQm9va21hcmsgREVTQ1JJUFRJT04gYW5kIEZJTEVQQVRIACAgICAgICBTZWxlY3QgQm9va21hcmsAICAgICAgJXMgdG8gZGVsZXRlIHRleHQgaW4gZmllbGQsIFtCYWNrc3BhY2VdIHRvIGRlbGV0ZSBhIGNoYXJhY3RlciAgICAAICAgICAgQ3RybC1VIHRvIGRlbGV0ZSB0ZXh0IGluIGZpZWxkLCBbQmFja3NwYWNlXSB0byBkZWxldGUgYSBjaGFyYWN0ZXIgICAgACAgICAgIEV4aXRpbmcuLi4AICAgICBUaGlzIGZpbGUgYWxzbyBtYXkgYmUgZWRpdGVkIHdpdGggYSBzdGFuZGFyZCB0ZXh0IGVkaXRvciB0byBkZWxldGUKICAgICBvdXRkYXRlZCBvciBpbnZhbGlkIGxpbmtzLCBvciB0byBjaGFuZ2UgdGhlaXIgb3JkZXIuACAgICAgVGhpcyBmaWxlIGlzIGFuIEhUTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIFggTW9zYWljIGhvdGxpc3QgZmlsZS4KICAgICBPdXRkYXRlZCBvciBpbnZhbGlkIGxpbmtzIG1heSBiZSByZW1vdmVkIGJ5IHVzaW5nIHRoZQogICAgIHJlbW92ZSBib29rbWFyayBjb21tYW5kLCBpdCBpcyB1c3VhbGx5IHRoZSAnUicga2V5IGJ1dCBtYXkgaGF2ZQogICAgIGJlZW4gcmVtYXBwZWQgYnkgeW91IG9yIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IuACAgICAgWW91IGNhbiBkZWxldGUgbGlua3MgYnkgdGhlICdSJyBrZXk8YnI+CjxvbD4KACAgICAgWW91IGNhbiBkZWxldGUgbGlua3MgdXNpbmcgdGhlIHJlbW92ZSBib29rbWFyayBjb21tYW5kLiAgSXQgaXMgdXN1YWxseQogICAgIHRoZSAnUicga2V5IGJ1dCBtYXkgaGF2ZSBiZWVuIHJlbWFwcGVkIGJ5IHlvdSBvciB5b3VyIHN5c3RlbQogICAgIGFkbWluaXN0cmF0b3IuACAgICAlcyB0byBkZWxldGUgYWxsIHRleHQgaW4gZmllbGQsIFtCYWNrc3BhY2VdIHRvIGRlbGV0ZSBhIGNoYXJhY3RlciAgICAAICAgIEN0cmwtVSB0byBkZWxldGUgYWxsIHRleHQgaW4gZmllbGQsIFtCYWNrc3BhY2VdIHRvIGRlbGV0ZSBhIGNoYXJhY3RlciAgICAAICBBcnJvdyBrZXlzOiBVcCBhbmQgRG93biB0byBtb3ZlLiAgUmlnaHQgdG8gZm9sbG93IGEgbGluazsgTGVmdCB0byBnbyBiYWNrLiAgCgAgIEMpcmVhdGUgIEQpb3dubG9hZCAgRSlkaXQgIEYpdWxsIG1lbnUgIE0pb2RpZnkgIFIpZW1vdmUgIFQpYWcgIFUpcGxvYWQgICAgIAoAICBPKXRoZXIgY21kcyAgQilhY2sgIEUpZGl0ICBEKW93bmxvYWQgXlIpZWxvYWQgXlcpaXBlIHNjcmVlbiAgc2VhcmNoIGRvYzogLyAKACAgTyl0aGVyIGNtZHMgIEgpZWxwICBLKWV5bWFwICBHKW90byAgUClyaW50ICBNKWFpbiBzY3JlZW4gIG8pcHRpb25zICBRKXVpdCAgCgAgJz4nIHRvIHNhdmUsIG9yICdyJyB0byByZXR1cm4gdG8gTHlueCAAICdyJyB0byByZXR1cm4gdG8gTHlueCAAIChGcm9tIEhpc3RvcnkpACAoTGVhdmUgYmxhbmsgaWYgeW91IGRvbid0IHdhbnQgYSBjb3B5LikKACAoUHJlc3MgJ3onIHRvIGFib3J0KQAgKFdBSVMgSW5kZXgpACAoYmFkIGZpbGUgbmFtZSkAIChpbiAAIChpbnRlcm5hbCkAIChvciB2aWEgcHJveHkgc2VydmVyLCBpZiBkZWZpbmVkKQAgKHN0YWxsZWQgZm9yICVzKQAgKHdhcyBpbnRlcm5hbCkAICoqKiBNRU1PUlkgRVhIQVVTVEVEICoqKgAgSCllbHAgTylwdGlvbnMgUClyaW50IEcpbyBNKWFpbiBzY3JlZW4gUSl1aXQgLz1zZWFyY2ggW2RlbGV0ZV09aGlzdG9yeSBsaXN0IAoAIE5PVCBHSVZFTiBpbiBzb3VyY2UgZmlsZTsgACBQcmludCBqb2IgY29tcGxldGUuCgAgU2VhcmNoIFJlc3VsdHMAIFNlbGVjdCBCb29rbWFyayAoc2NyZWVuICVkIG9mICVkKQAgVXNlIENvbnRyb2wtVSB0byBlcmFzZSB0aGUgZGVmYXVsdC4KACBWZXJzaW9uIAAgV0FJUyBJbmRleC4KACBXQUlTIHNvdXJjZSBmaWxlACBjb250YWlucyB0aGUgZm9sbG93aW5nICVkIGl0ZW0lcyByZWxldmFudCB0byAiACBkZXNjcmlwdGlvbgAgZGlyZWN0b3J5ACBmaXJzdAAgaW5kZXgAIG1lYW5zIHRvIGNvbnRhY3QgeW91LCBpZiB5b3UgZGVzaXJlIGEgcmVzcG9uc2UuCgAgb2Ygb3B0aW9uIGxpbmUsACBvciAAIHBlcnNvbidzIG5hbWUgaW4gdGhlIGRhdGFiYXNlLgoAIHRvIAAgdG8gcmV0dXJuIHRvIEx5bnguACB0byBzYXZlLAAiIGluOiAAJXMgIEQpb3dubG9hZCwgb3IgQylhbmNlbAAlcyBWZXJzaW9uICVzICglcykAJXMgY29va2llOiAlLipzPSUuKnMgIEFsbG93PyAoWS9OL0Fsd2F5cy9uZVZlcikAJXMsICBBcnRpY2xlcyAlZC0lZAAlczogSW52YWxpZCBPcHRpb246ICVzCgAnJXMnIG5vdCBmb3VuZCEAJ0EnbHdheXMgYWxsb3dpbmcgZnJvbSBkb21haW4gJyVzJy4AJ1Ancm9tcHRpbmcgdG8gYWxsb3cgZnJvbSBkb21haW4gJyVzJy4AKENoZWNrYm94ICIlcyIpOyAgIFVzZSByaWdodC1hcnJvdyBvciA8cmV0dXJuPiB0byB0b2dnbGUuAChDaGVja2JveCBGaWVsZCkgICBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gdG9nZ2xlLgAoQ2hvaWNlIGVudHJ5ICIlcyIpOyBVc2UgYXJyb3cga2V5cyBhbmQgcmV0dXJuIHRvIHNlbGVjdCBvcHRpb24uAChDaG9pY2UgbGlzdCkgSGl0IHJldHVybiBhbmQgdXNlIGFycm93IGtleXMgYW5kIHJldHVybiB0byBzZWxlY3Qgb3B0aW9uLgAoQ29va2llcyBhbGxvd2VkIHZpYSBwcm9tcHQuKQAoQ29va2llcyBhbHdheXMgYWxsb3dlZC4pAChDb29raWVzIG5ldmVyIGFsbG93ZWQuKQAoRW5kIG9mIHNlc3Npb24uKQAoRmlsZSBlbnRyeSBmaWVsZCkgRW50ZXIgZmlsZW5hbWUuICBVc2UgVVAgb3IgRE9XTiBhcnJvd3Mgb3IgdGFiIHRvIG1vdmUgb2ZmLgAoRm9ybSBmaWVsZCkAKEZvcm0gZmllbGQpIEVudGVyIHRleHQuICBVc2UgPHJldHVybj4gdG8gc3VibWl0ICglcyBmb3Igbm8gY2FjaGUpLgAoRm9ybSBmaWVsZCkgRW50ZXIgdGV4dC4gIFVzZSA8cmV0dXJuPiB0byBzdWJtaXQsIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAChGb3JtIGZpZWxkKSBFbnRlciB0ZXh0LiAgVXNlIDxyZXR1cm4+IHRvIHN1Ym1pdC4AKEZvcm0gZmllbGQpIEluYWN0aXZlLiAgVXNlIDxyZXR1cm4+IHRvIGVkaXQgKCVzIHRvIHN1Ym1pdCB3aXRoIG5vIGNhY2hlKS4AKEZvcm0gZmllbGQpIEluYWN0aXZlLiAgVXNlIDxyZXR1cm4+IHRvIGVkaXQuAChGb3JtIGZpZWxkKSBJbmFjdGl2ZS4gUHJlc3MgPHJldHVybj4gdG8gZWRpdCwgcHJlc3MgPHJldHVybj4gdHdpY2UgdG8gc3VibWl0LgAoRm9ybSByZXNldCBidXR0b24pICAgVXNlIHJpZ2h0LWFycm93IG9yIDxyZXR1cm4+IHRvIHJlc2V0IGZvcm0gdG8gZGVmYXVsdHMuAChGb3JtIHN1Ym1pdCBidXR0b24pIFVzZSByaWdodC1hcnJvdyBvciA8cmV0dXJuPiB0byBzdWJtaXQgKCd4JyBmb3Igbm8gY2FjaGUpLgAoRm9ybSBzdWJtaXQgYnV0dG9uKSBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gc3VibWl0LgAoTk9STUFMIExJTkspICAgVXNlIHJpZ2h0LWFycm93IG9yIDxyZXR1cm4+IHRvIGFjdGl2YXRlLgAoTm8gbWVzc2FnZXMgeWV0KQAoTm8gbmFtZS4pAChObyB0aXRsZS4pAChObyB2YWx1ZS4pAChPcHRpb24gbGlzdCAiJXMiKTsgSGl0IHJldHVybiB0byBzZWxlY3Qgb3B0aW9uLgAoT3B0aW9uIGxpc3QpIEhpdCByZXR1cm4gYW5kIHVzZSBhcnJvdyBrZXlzIGFuZCByZXR1cm4gdG8gc2VsZWN0IG9wdGlvbi4AKFBhc3N3b3JkIGVudHJ5IGZpZWxkKSBFbnRlciB0ZXh0LiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AKFBhc3N3b3JkIGVudHJ5IGZpZWxkKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGFjdGl2YXRlLgAoUGVyc2lzdGVudCBDb29raWVzLikAKFJhZGlvIEJ1dHRvbiAiJXMiKTsgICBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gdG9nZ2xlLgAoUmFkaW8gQnV0dG9uKSAgIFVzZSByaWdodC1hcnJvdyBvciA8cmV0dXJuPiB0byB0b2dnbGUuAChTY3JpcHQgYnV0dG9uICIlcyIpOyAgIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAChTY3JpcHQgYnV0dG9uKSAgIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAChTaG9ydCBIZWFkZXIgcmVjb3JkLCBjYW4ndCBkaXNwbGF5KQAoVGV4dCBlbnRyeSBmaWVsZCkgSW5hY3RpdmUuICBQcmVzcyA8cmV0dXJuPiB0byBhY3RpdmF0ZS4AKFRleHRhcmVhICIlcyIpOyBFbnRlciB0ZXh0LiBVc2UgVVAvRE9XTiBhcnJvd3Mgb3IgVEFCIHRvIG1vdmUgb2ZmICglcyBmb3IgZWRpdG9yKS4AKFRleHRhcmVhICIlcyIpOyBFbnRlciB0ZXh0LiBVc2UgVVAvRE9XTiBhcnJvd3Mgb3IgVEFCIHRvIG1vdmUgb2ZmLgAoVGV4dGFyZWEgIiVzIik7IEluYWN0aXZlLiAgUHJlc3MgPHJldHVybj4gdG8gYWN0aXZhdGUgKCVzIGZvciBlZGl0b3IpLgAoVGV4dGFyZWEgIiVzIik7IEluYWN0aXZlLiAgUHJlc3MgPHJldHVybj4gdG8gYWN0aXZhdGUuAChUZXh0YXJlYSkgRW50ZXIgdGV4dC4gVXNlIFVQL0RPV04gYXJyb3dzIG9yIFRBQiB0byBtb3ZlIG9mZiAoJXMgZm9yIGVkaXRvcikuAChUZXh0YXJlYSkgRW50ZXIgdGV4dC4gVXNlIFVQL0RPV04gYXJyb3dzIG9yIFRBQiB0byBtb3ZlIG9mZi4AKFRleHRhcmVhKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGFjdGl2YXRlICglcyBmb3IgZWRpdG9yKS4AKFRleHRhcmVhKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGFjdGl2YXRlLgAoVGV4dGZpZWxkICIlcyIpOyBFbnRlciB0ZXh0LiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AKFRleHRmaWVsZCAiJXMiKTsgSW5hY3RpdmUuICBQcmVzcyA8cmV0dXJuPiB0byBhY3RpdmF0ZS4AKGFwcHJveGltYXRlbHkpAChhc3N1bWVkKQAoYmFkIGRvYyBpZCkAKGJ5dGVzKQAoZnJvbSBhIHByZXZpb3VzIHNlc3Npb24pAChtYWlsdG8gZm9ybSBmaWVsZCkgRW50ZXIgdGV4dC4gIFVzZSA8cmV0dXJuPiB0byBzdWJtaXQsIGFycm93cyB0byBtb3ZlIG9mZi4AKG1haWx0byBmb3JtIGZpZWxkKSBJbmFjdGl2ZS4gIFByZXNzIDxyZXR1cm4+IHRvIGNoYW5nZS4AKG1haWx0byBmb3JtIGZpZWxkKSBNYWlsIGlzIGRpc2FsbG93ZWQgc28geW91IGNhbm5vdCBzdWJtaXQuAChtYWlsdG8gZm9ybSBzdWJtaXQgYnV0dG9uKSBNYWlsIGlzIGRpc2FsbG93ZWQgc28geW91IGNhbm5vdCBzdWJtaXQuAChtYWlsdG8gZm9ybSBzdWJtaXQgYnV0dG9uKSBVc2UgcmlnaHQtYXJyb3cgb3IgPHJldHVybj4gdG8gc3VibWl0LgAobm8gYWRkcmVzcykAKG5vIG5hbWUpAChub25lKQAob3B0aW9ucyBtYXJrZWQgd2l0aCAoISkgd2lsbCBub3QgYmUgc2F2ZWQpACh1bmtub3duKQAqKiBCYWQgSFRNTCEhICBObyBmb3JtIGFjdGlvbiBkZWZpbmVkLiAqKgAqKiBCYWQgSFRNTCEhICBVc2UgLXRyYWNlIHRvIGRpYWdub3NlLiAqKgAqKiogWW91IGhhdmUgbWFpbC4gKioqACoqKiBZb3UgaGF2ZSBuZXcgbWFpbC4gKioqACoqKiBZb3UgaGF2ZSB1bnJlYWQgbWFpbC4gKioqACoqKiogSFRBY2Nlc3M6IEludGVybmFsIHNvZnR3YXJlIGVycm9yLiAgUGxlYXNlIG1haWwgbHlueC1kZXZAbm9uZ251Lm9yZyEKACoqKiogSFRBY2Nlc3M6IFN0YXR1cyByZXR1cm5lZCB3YXM6ICVkCgAqKioqIEhUQWNjZXNzOiBzb2NrZXQgb3IgZmlsZSBudW1iZXIgcmV0dXJuZWQgYnkgb2Jzb2xldGUgbG9hZCByb3V0aW5lIQoALCAlcy9zZWMALCBFVEEgJXMALCBJU01BUCBzY3JpcHQALCBib29rbWFyayBmaWxlACwgZ3Vlc3NpbmcuLi4ALCBoZWxwIG9uIAAsIG5vLWNhY2hlACwgc2FmZQAsIHZpYSBpbnRlcm5hbCBsaW5rAC0tIHByZXNzIHNwYWNlIGZvciBtb3JlLCB1c2UgYXJyb3cga2V5cyB0byBtb3ZlLCAnPycgZm9yIGhlbHAsICdxJyB0byBxdWl0LgAtLSBwcmVzcyBzcGFjZSBmb3IgbmV4dCBwYWdlIC0tAC0tTW9yZS0tICBUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gIFVzZSAlcyB0byBzZWFyY2guAC1pbmRleC0ALW1vcmUtAEEgVVJMIHNwZWNpZmllZCBieSB0aGUgdXNlcgBBIGNvbXBvbmVudCBvZiBwYXRoIGlzIG5vdCBhIGRpcmVjdG9yeQBBRFZBTkNFRABBTFdBWVMAQUxXQVlTIE9GRgBBTFdBWVMgT04AQWNjZXB0IENoYW5nZXMAQWNjZXB0IGFsbCB0eXBlcwBBY2NlcHQgaW52YWxpZCBjb29raWUgZG9tYWluPSVzIGZvciAnJXMnPwBBY2NlcHQgaW52YWxpZCBjb29raWUgcGF0aD0lcyBhcyBhIHByZWZpeCBvZiAnJXMnPwBBY2NlcHQgbHlueCdzIGludGVybmFsIHR5cGVzAEFjY2VzcyBQZXJtaXNzaW9ucwBBY2Nlc3MgZm9yYmlkZGVuIGJ5IHJ1bGUAQWNjZXNzIGxpbmtzAEFjY2VzcyB0byBkb3QgZmlsZXMgaXMgZGlzYWJsZWQhAEFjY2VzcyB0byBsb2NhbCBmaWxlcyBkZW5pZWQuAEFjY2VzcyB3aXRob3V0IGF1dGhvcml6YXRpb24gZGVuaWVkIC0tIHJldHJ5aW5nAEFjdGlvbjoAQWN0aXZhdGUgbGlua3MgdG8gZ29iYmxlIHVwIGNvb2tpZXMgb3IgZW50aXJlIGRvbWFpbnMsAEFkZCB0byBMWU5YTUVTU0FHRVMAQWRkIHRvIHRyYWNlLWZpbGUAQWRkcmVzcyBMaXN0IFBhZ2UAQWRkcmVzcyBoYXMgaW52YWxpZCBwb3J0AEFkZHJlc3MgbGVuZ3RoIGxvb2tzIGludmFsaWQAQWR2YW5jZWQAQWxlcnQhOiAlcwBBbGwAQWxsIGF2YWlsYWJsZSBhcnRpY2xlcyBpbiAAQWxsIGNvb2tpZXMgaW4gdGhlIGRvbWFpbiBoYXZlIGJlZW4gZWF0ZW4hAEFsbCBvZiB0aGUgY29va2llcyBpbiB0aGUgamFyIGhhdmUgYmVlbiBlYXRlbiEAQWxsb3dpbmcgdGhpcyBjb29raWUuAEFscmVhZHkgaW4gdGFyZ2V0IGRpcmVjdG9yeTogJXMAQWxzbyBhY2NlcHQgbHlueC5jZmcncyB0eXBlcwBBbHNvIGFjY2VwdCBzeXN0ZW0ncyB0eXBlcwBBbHNvIGFjY2VwdCB1c2VyJ3MgdHlwZXMAQW4gZXhjZWxsZW50IGh0dHAgc2VydmVyIGZvciBWTVMgaXMgYXZhaWxhYmxlIHZpYQBBcHBlbmQgJyVzJz8AQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHF1aXQ/AEFzIFZpc2l0IFRyZWUAQXNzdW1lZCBkb2N1bWVudCBjaGFyYWN0ZXIgc2V0AEF1dGhvcml6YXRpb24gZmFpbGVkLiAgUmV0cnk/AEF1dGhvcml6YXRpb24gaW5mbyBjbGVhcmVkLgBBdXRvIFNlc3Npb24AQilvb2ttYXJrIGZpbGU6IABCYWQgSFRNTCBtZXNzYWdlcwBCYWQgSFRNTCEhICBVbmFibGUgdG8gY3JlYXRlIHBvcHVwIHdpbmRvdyEAQmFkIHBhcnRpYWwgcmVmZXJlbmNlISAgU3RyaXBwaW5nIGxlYWQgZG90cy4AQmFkIHJlcXVlc3QhAEJhZCBydWxlAEJhZGx5IGZvcm1lZCBhZGRyZXNzICVzAEJlIHN1cmUgeW91ciBwcmludGVyIGlzIG9uLWxpbmUuICBQcmVzcyA8cmV0dXJuPiB0byBzdGFydCBwcmludGluZzoAQm9va21hcmsgZGVsZXRpb24gZmFpbGVkLgBCb29rbWFyayBmZWF0dXJlcyBhcmUgY3VycmVudGx5IGRpc2FibGVkLgBCb29rbWFyayBmaWxlAEJvb2ttYXJrIGZpbGUgaXMgbm90IGRlZmluZWQuIFVzZSAlcyB0byBzZWUgb3B0aW9ucy4AQm9va21hcmsgZmlsZXMgY2Fubm90IGJlIHRyYXZlcnNlZCAob25seSBodHRwIFVSTHMpLgBCb29rbWFya3MgZmlsZQBCdWlsZGluZyBkaXJlY3RvcnkgbGlzdGluZy4uLgBCdWlsdCBvbiAlcyVzLgoAQnkgRGF0ZQBCeSBGaXJzdCBWaXNpdABCeSBGaXJzdCBWaXNpdCBSZXZlcnNlZABCeSBHcm91cABCeSBMYXN0IFZpc2l0AEJ5IExhc3QgVmlzaXQgUmV2ZXJzZWQAQnkgTW9kZQBCeSBOYW1lAEJ5IFNpemUAQnkgVHlwZQBCeSBVc2VyAEJ5dGVTaXplOgBCeXRlcyBhbGxvY2F0ZWQAQ0pLIG1vZGUAQ1NPIFNlYXJjaCBSZXN1bHRzAENTTyBpbmRleABDU08vUEggcmVxdWVzdCBzZW50OyB3YWl0aW5nIGZvciByZXNwb25zZS4AQ2FjaGUgSmFyAENhY2hlLUNvbnRyb2w6AENhbid0IEFjY2VzcwBDYW4ndCBhY2Nlc3MgcmVxdWVzdGVkIGZpbGUuAENhbid0IGNvbnZlcnQgZm9ybWF0IG9mIFdBSVMgZG9jdW1lbnQAQ2FuJ3QgZmluZCBjb21tb24gbmFtZSBpbiBjZXJ0aWZpY2F0ZQBDYW4ndCBvcGVuIGZpbGUgZm9yIHJlYWRpbmcuAENhbid0IG9wZW4gZmlsZSBmb3IgdXBsb2FkaW5nAENhbid0IG9wZW4gb3V0cHV0IGZpbGUhICBDYW5jZWxsaW5nIQBDYW4ndCBvcGVuIHRlbXBvcmFyeSBmaWxlIQBDYW4ndCBwcm9jZWVkIHdpdGhvdXQgYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuAENhbid0IHJlYWQgbmV3cyBpbmZvLCBlbXB0eSByZXNwb25zZSBmcm9tIGhvc3QgJXMAQ2FuJ3QgcmVhZCBuZXdzIGluZm8uICBOZXdzIGhvc3QgJS4yMHMgcmVzcG9uZGVkOiAlLjIwMHMAQ2FuJ3QgcmV0cnkgd2l0aCBhdXRob3JpemF0aW9uISAgQ29udGFjdCB0aGUgc2VydmVyJ3MgV2ViTWFzdGVyLgBDYW4ndCByZXRyeSB3aXRoIHByb3h5IGF1dGhvcml6YXRpb24hICBDb250YWN0IHRoZSBzZXJ2ZXIncyBXZWJNYXN0ZXIuAENhbid0IHNhdmUgZGF0YSB0byBmaWxlIC0tIHBsZWFzZSBydW4gV1dXIGxvY2FsbHkAQ2FuY2VsbGVkISEhAENhbmNlbGxpbmcgZmlsZS4AQ2FuY2VsbGluZyEAQ2Fubm90IFBPU1QgdG8gdGhpcyBob3N0LgBDYW5ub3QgZmluZCBIT01FIGRpcmVjdG9yeQBDYW5ub3QgbG9jYXRlIGp1bXAgZmlsZSEAQ2Fubm90IG9wZW4ganVtcCBmaWxlIQBDYW5ub3Qgb3BlbiB0ZW1wb3JhcnkgZmlsZSBmb3IgbmV3cyBQT1NULgBDYW5ub3Qgc2F2ZSBmb3JtIGZpZWxkcy9saW5rcwBDYW5ub3Qgd3JpdGUgdG8gZmlsZS4AQ2FzZSBpbnNlbnNpdGl2ZQBDYXNlIHNlbnNpdGl2ZQBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnk6ICVzAENoYW5nZSBwYXNzd29yZD8AQ2hhbmdlIHVzZXJuYW1lPwBDaGFuZ2luZyBvZiB0aGUgVXNlci1BZ2VudCBzdHJpbmcgaXMgZGlzYWJsZWQhAENoYW5naW5nIHdvcmtpbmctZGlyZWN0b3J5IGlzIGN1cnJlbnRseSBkaXNhYmxlZC4AQ2hhcnNldDoAQ2xlYXIgYWxsIGF1dGhvcml6YXRpb24gaW5mbyBmb3IgdGhpcyBzZXNzaW9uPwBDbGllbnQtc2lkZSBpbWFnZSBNQVAgaXMgbm90IGFjY2Vzc2libGUhAENsaWVudC1zaWRlIGltYWdlIE1BUCBpcyBub3QgYXZhaWxhYmxlIQBDb2xsYXBzZSBCUiB0YWdzAENvbG9yIHN0eWxlAENvbW1hbmQ6IABDb21tYW5kczogVXNlIGFycm93IGtleXMgdG8gbW92ZSwgJz8nIGZvciBoZWxwLCAncScgdG8gcXVpdCwgJzwtJyB0byBnbyBiYWNrLgBDb25maWd1cmF0aW9uIERlZmluaXRpb25zAENvbm5lY3RpbmcgdG8gTmV3c0hvc3QgLi4uAENvbm5lY3Rpb24gY2xvc2VkID8/PwBDb25uZWN0aW9uIGZhaWxlZCAodG9vIG1hbnkgcmV0cmllcykuAENvbm5lY3Rpb24gaW50ZXJydXB0ZWQuAENvbnRhaW5zOgBDb250ZW50LUxlbmd0aDoAQ29udGVudC10eXBlOiAlcwBDb252ZXJ0ZWQgTW9zYWljIEhvdGxpc3QAQ29va2llIEphcgBDb29raWVzAENvcHkgdG8gY2xpcGJvYXJkIGZhaWxlZC4AQ29weXJpZ2h0cyBoZWxkIGJ5IHRoZSBMeW54IERldmVsb3BlcnMgR3JvdXAsAENvdWxkIG5vdCBhY2Nlc3MgJXMuAENvdWxkIG5vdCBhY2Nlc3MgZGlyZWN0b3J5LgBDb3VsZCBub3QgYWNjZXNzIGZpbGUuAENvdWxkIG5vdCBhY2Nlc3MgZmluZ2VyIGhvc3QuAENvdWxkIG5vdCBjb25uZWN0IHRvIFdBSVMgc2VydmVyLgBDb3VsZCBub3QgZWRpdCBmaWxlICclcycuAENvdWxkIG5vdCBmaW5kIHN1aXRhYmxlIHJlcHJlc2VudGF0aW9uIGZvciB0cmFuc21pc3Npb24uAENvdWxkIG5vdCBsb2FkIGRhdGEgKG5vIHNpdGVuYW1lIGluIGZpbmdlciBVUkwpAENvdWxkIG5vdCBsb2FkIGRhdGEuAENvdWxkIG5vdCBtYWtlIGNvbm5lY3Rpb24gbm9uLWJsb2NraW5nLgBDb3VsZCBub3Qgb3BlbiBXQUlTIGNvbm5lY3Rpb24gZm9yIHJlYWRpbmcuAENvdWxkIG5vdCBvcGVuIGZpbGUgZm9yIGRlY29tcHJlc3Npb24hAENvdWxkIG5vdCByZXN0b3JlIHNvY2tldCB0byBibG9ja2luZy4AQ291bGQgbm90IHNldCB1cCBmaW5nZXIgY29ubmVjdGlvbi4AQ3JlYXRlIGZpbGUgb3IgZGlyZWN0b3J5IChmIG9yIGQpOiAAQ3JlYXRpb24gZGF0ZToAQ3VycmVudCBFZGl0LUtleSBNYXAAQ3VycmVudCBLZXkgTWFwAEN1cnJlbnQgVVJMIGlzIGVtcHR5LgBDdXJyZW50IGRpcmVjdG9yeSBpcyAAQ3VycmVudCBkaXJlY3Rvcnk6AEN1cnJlbnQgZG9jdW1lbnQgaGFzIFBPU1QgZGF0YS4AQ3VycmVudCBzZWxlY3Rpb246AEN1cnJlbnRseSB2aWV3aW5nIGRvY3VtZW50IHNvdXJjZS4gIFByZXNzICdcJyB0byByZXR1cm4gdG8gcmVuZGVyZWQgdmVyc2lvbi4ARCllbGV0ZSBjYWNoZWQgZG9jdW1lbnQgb3IgQylhbmNlbD8gKGQsYyk6IABEKWVsZXRlIGRvbWFpbidzIGNvb2tpZXMsIHNldCBhbGxvdyBBKWx3YXlzL1Apcm9tcHQvbmVWKWVyLCBvciBDKWFuY2VsPyAARCllbGV0ZSBkb21haW4sIHNldCBhbGxvdyBBKWx3YXlzL1Apcm9tcHQvbmVWKWVyLCBvciBDKWFuY2VsPyAARElTQUJMRUQgU2NyaXB0IGJ1dHRvbi4gIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAERJU0FCTEVEIGZvcm0gcmVzZXQgYnV0dG9uLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4ARElTQUJMRUQgZm9ybSBzdWJtaXQgYnV0dG9uLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4ARGF0YSB0cmFuc2ZlciBjb21wbGV0ZQBEYXRhIHRyYW5zZmVyIGludGVycnVwdGVkLgBEYXRlOgBEZWZhdWx0IEJvb2ttYXJrIEZpbGUARGVmYXVsdCBjb2xvcnMARGVsZXRlIGFsbCBjb29raWVzIGluIHRoaXMgZG9tYWluPwBEZWxldGUgdGhpcyBjb29raWU/AERlbGV0ZSB0aGlzIGVtcHR5IGRvbWFpbj8ARGVzY3JpcHRpb246AERlc3RpbmF0aW9uIGhhcyBkaWZmZXJlbnQgb3duZXIhICBSZXF1ZXN0IGRlbmllZC4ARGVzdGluYXRpb24gaXMgbm90IGEgdmFsaWQgZGlyZWN0b3J5ISAgUmVxdWVzdCBkZW5pZWQuAERpYWdub3N0aWMgY29kZSBpcyAARGlyZWN0IGFjY2VzcwBEaXJlY3RvcmllcyBmaXJzdABEaXJlY3RvcnkARGlyZWN0b3J5IGJyb3dzaW5nIGlzIG5vdCBhbGxvd2VkLgBEaXJlY3RvcnkgdGhhdCB5b3UgYXJlIGN1cnJlbnRseSB2aWV3aW5nAERpcmVjdG9yeSB0aGF0IHlvdSBoYXZlIGN1cnJlbnRseSBzZWxlY3RlZABEaXJlY3RvcnkvRmlsZSBNYW5hZ2VyIG5vdCBhdmFpbGFibGUARGlzY2FyZGluZyBQT1NUIGRhdGEuLi4ARGlzcGxheSBhbmQgQ2hhcmFjdGVyIFNldABEaXNwbGF5IGNoYXJhY3RlciBzZXQARGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChWZXJzaW9uIDIpLgBEbyBub3Qgc2hvdyByYXRlAERvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBsaW5rIGZyb20geW91ciBib29rbWFyayBmaWxlPwBEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZ28gdG8gdGhlIE1haW4gc2NyZWVuPwBEbyB5b3Ugd2FudCB0byBleGVjdXRlICIlcyI/AERvIHlvdSB3YW50IHRvIGdvIGJhY2sgdG8gdGhlIHByZXZpb3VzIGRvY3VtZW50PwBEbyB5b3Ugd2lzaCB0byBpbmNsdWRlIHRoZSBvcmlnaW5hbCBtZXNzYWdlPwBEbyB5b3Ugd2lzaCB0byBpbmNsdWRlIHRoZSBwcmVwYXJzZWQgc291cmNlPwBEbyB5b3Ugd2lzaCB0byBzZW5kIGEgY29tbWVudD8ARG9jdW1lbnQgQXBwZWFyYW5jZQBEb2N1bWVudCBVUkwgcHV0IHRvIGNsaXBib2FyZC4ARG9jdW1lbnQgZnJvbSBGb3JtIHdpdGggUE9TVCBjb250ZW50LiAgUmVzdWJtaXQ/AERvY3VtZW50IGZyb20gUE9TVCBhY3Rpb24sIEhFQUQgbWF5IG5vdCBiZSB1bmRlcnN0b29kLiAgUHJvY2VlZD8ARG9jdW1lbnQgaGFzIG5vIFRvb2xiYXIgbGlua3Mgb3IgQmFubmVyLgBEb2N1bWVudCBoYXMgb25seSBoaWRkZW4gbGlua3MuICBVc2UgdGhlICdsJ2lzdCBjb21tYW5kLgBEb2N1bWVudCB3aWxsIG5vdCBiZSByZWxvYWRlZCEARG9jdW1lbnQgd2l0aCBQT1NUIGNvbnRlbnQgbm90IGZvdW5kIGluIGNhY2hlLiAgUmVzdWJtaXQ/AERvY3VtZW50OgBEb2N1bWVudHMgZnJvbSBmb3JtcyB3aXRoIFBPU1QgY29udGVudCBjYW5ub3QgYmUgc2F2ZWQgYXMgYm9va21hcmtzLgBEb25lIQBEb3dubG9hZCBPcHRpb25zAERvd25sb2FkIGRvY3VtZW50IFVSTCBwdXQgdG8gY2xpcGJvYXJkLgBEb3dubG9hZCBvcHRpb25zOgBEb3dubG9hZGVkIGxpbms6AEVSUk9SIC0gVW5hYmxlIHRvIGFsbG9jYXRlIGZpbGUgc3BhY2UhISEARVJST1IgLSBVbmFibGUgdG8gbWFpbCBmaWxlAEVSUk9SIC0gdW5hYmxlIHRvIG9wZW4gYm9va21hcmsgZmlsZS4ARVJST1IhIC0gZG93bmxvYWQgY29tbWFuZCBpcyBtaXNjb25maWd1cmVkLgBFUlJPUiEgLSBwcmludGVyIGlzIG1pc2NvbmZpZ3VyZWQhAEVSUk9SISAtIHVwbG9hZCBjb21tYW5kIGlzIG1pc2NvbmZpZ3VyZWQARWFybGllciBhcnRpY2xlcwBFZGl0IGEgcHJldmlvdXMgR290byBVUkw6IABFZGl0IGEgcHJldmlvdXMgZmlsZW5hbWU6IABFZGl0IGEgcHJldmlvdXMgcXVlcnk6IABFZGl0IGEgcHJldmlvdXMgc2hvcnRjdXQ6IABFZGl0IHRoZSBjdXJyZW50IEdvdG8gVVJMOiAARWRpdCB0aGUgY3VycmVudCBsaW5rJ3MgVVJMOiAARWRpdCB0aGUgY3VycmVudCBxdWVyeTogAEVkaXQgdGhlIGN1cnJlbnQgc2hvcnRjdXQ6IABFZGl0IHRoZSBmb3JtJ3Mgc3VibWl0LVVSTDogAEVkaXQgdGhlIHByZXZpb3VzIEdvdG8gVVJMOiAARWRpdCB0aGUgcHJldmlvdXMgZmlsZW5hbWU6IABFZGl0IHRoZSBwcmV2aW91cyBxdWVyeTogAEVkaXQgdGhlIHByZXZpb3VzIHNob3J0Y3V0OiAARWRpdCB0aGlzIGRvY3VtZW50J3MgVVJMOiAARWRpdGluZyBCb29rbWFyayBERVNDUklQVElPTiBhbmQgRklMRVBBVEggKCVkIG9mIDIpAEVkaXRvcgBFZGl0b3Iga2lsbGVkIGJ5IHNpZ25hbABFZGl0b3IgcmV0dXJuZWQgd2l0aCBlcnJvciBzdGF0dXMgJXMARW1hY3Mga2V5cwBFbmN0eXBlIG11bHRpcGFydC9mb3JtLWRhdGEgbm90IHlldCBzdXBwb3J0ZWQhICBDYW5ub3Qgc3VibWl0LgBFbmN0eXBlOgBFbnRlciBMeW54IGtleXN0cm9rZSBjb21tYW5kOiAARW50ZXIgV0FJUyBxdWVyeTogAEVudGVyIGEgZGF0YWJhc2UgcXVlcnk6IABFbnRlciBhIGZpbGVuYW1lOiAARW50ZXIgYSBuZXcgZmlsZW5hbWU6IABFbnRlciBhIHRlcm1pbmFsIHR5cGU6AEVudGVyIGEgd2hlcmVpcyBxdWVyeTogAEVudGVyIG5hbWUgZm9yIG5ldyBkaXJlY3Rvcnk6IABFbnRlciBuYW1lIG9mIGZpbGUgdG8gY3JlYXRlOiAARW50ZXIgbmV3IGxvY2F0aW9uIGZvciBkaXJlY3Rvcnk6IABFbnRlciBuZXcgbG9jYXRpb24gZm9yIGZpbGU6IABFbnRlciBuZXcgbG9jYXRpb24gZm9yIHRhZ2dlZCBpdGVtczogAEVudGVyIG5ldyBuYW1lIGZvciBkaXJlY3Rvcnk6IABFbnRlciBuZXcgbmFtZSBmb3IgZmlsZTogAEVudGVyIHBhc3N3b3JkIGZvciB1c2VyICVzQCVzOgBFbnRlciB0ZXh0LiAgVXNlIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYgb2YgZmllbGQuAEVudHJ5IGludG8gbWFpbiBzY3JlZW4ARXJyb3IgYnVpbGRpbmcgaW5zdGFsbCBhcmdzAEVycm9yIHByb2Nlc3NpbmcgbGluZSAlZCBvZiAlcwoARXJyb3IgcmVhZGluZyBqdW1wIGZpbGUhAEVycm9yIHJlbmFtaW5nIHNjcmF0Y2ggZmlsZS4ARXJyb3IgcmVuYW1pbmcgdGVtcG9yYXJ5IGZpbGUuAEVycm9yIHNwYXduaW5nIGVkaXRvciwgY2hlY2sgeW91ciBlZGl0b3IgZGVmaW5pdGlvbiBpbiB0aGUgb3B0aW9ucyBtZW51AEVycm9yIHN0YXJ0aW5nIGVkaXRvciwgJXMARXJyb3IgdW5jb21wcmVzc2luZyB0ZW1wb3JhcnkgZmlsZSEARXhjZWxsZW50ISEhAEV4ZWN1dGFibGUgbGluayByZWplY3RlZCBkdWUgdG8gYCVjJyBjaGFyYWN0ZXIuAEV4ZWN1dGFibGUgbGluayByZWplY3RlZCBkdWUgdG8gbG9jYXRpb24gb3IgcGF0aC4ARXhlY3V0YWJsZSBsaW5rIHJlamVjdGVkIGR1ZSB0byBtYWxmb3JtZWQgcmVxdWVzdC4ARXhlY3V0YWJsZSBsaW5rIHJlamVjdGVkIGR1ZSB0byByZWxhdGl2ZSBwYXRoIHN0cmluZyAoJy4uLycpLgBFeGVjdXRpbmcgJXMgAEV4ZWN1dGluZyBzeXN0ZW0gY29tbWFuZC4gVGhpcyBtaWdodCB0YWtlIGEgd2hpbGUuAEV4ZWN1dGlvbiBjYXBhYmlsaXRpZXMgYXJlIG5vdCBjb21waWxlZCBpbnRvIHRoaXMgdmVyc2lvbi4ARXhlY3V0aW9uIGlzIGRpc2FibGVkLgBFeGVjdXRpb24gaXMgbm90IGVuYWJsZWQgZm9yIHRoaXMgZmlsZS4gIFNlZSB0aGUgT3B0aW9ucyBtZW51ICh1c2UgJXMpLgBFeGVjdXRpb24gbGlua3MARXhlY3V0aW9uIHZpYSBib29rbWFya3MgaXMgZGlzYWJsZWQuAEV4aXRpbmcgdmlhIGludGVycnVwdDoARXhwaXJlczoARXh0ZXJuYWwgZWRpdGluZyBpcyBjdXJyZW50bHkgZGlzYWJsZWQuAEV4dGVybmFsIHN1cHBvcnQgaXMgY3VycmVudGx5IGRpc2FibGVkLgBGT1IgTE9DQUwgRklMRVMgT05MWQBGVFAgc29ydCBjcml0ZXJpYQBGYWlsZWQgdG8gY2xlYXIgRElTUExBWSB2YXJpYWJsZSEARmFpbGVkIHRvIG9idGFpbiBzdGF0dXMgb2YgY3VycmVudCBsaW5rIQBGYWlsZWQgdG8gc2V0IERJU1BMQVkgdmFyaWFibGUhAEZhdGFsIGVycm9yIC0gY291bGQgbm90IG9wZW4gb3V0cHV0IGZpbGUgJXMKAEZldGNoaW5nIFdBSVMgZG9jdW1lbnQuLi4ARmlsZSBNYW5hZ2VtZW50IE9wdGlvbnMARmlsZSBQZXJtaXNzaW9uIE9wdGlvbnMARmlsZSBkb2VzIG5vdCBleGlzdCAtIHJlZW50ZXIgb3IgY2FuY2VsOgBGaWxlIGRvZXMgbm90IGV4aXN0LgBGaWxlIGV4aXN0cy4gIENyZWF0ZSBoaWdoZXIgdmVyc2lvbj8ARmlsZSBleGlzdHMuICBPdmVyd3JpdGU/AEZpbGUgaW5zZXJ0IGNhbmNlbGxlZCEhIQBGaWxlIGlzICVkIHBhZ2VzIGxvbmcuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJpbnQ/AEZpbGUgaXMgJWQgc2NyZWVucyBsb25nLiAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByaW50PwBGaWxlIGlzIG5vdCByZWFkYWJsZSAtIHJlZW50ZXIgb3IgY2FuY2VsOgBGaWxlIGlzIG5vdCByZWFkYWJsZS4ARmlsZSBtYW5hZ2VtZW50IHN1cHBvcnQgaXMgZGlzYWJsZWQhAEZpbGUgbWF5IGJlIHJlY292ZXJhYmxlIGZyb20gJXMgZHVyaW5nIHRoaXMgc2Vzc2lvbgBGaWxlIG5hbWUgbWF5IG5vdCBiZWdpbiB3aXRoIGEgZG90LgBGaWxlIHNpemU6AEZpbGUgdGhhdCB5b3UgYXJlIGN1cnJlbnRseSB2aWV3aW5nAEZpbGUgdGhhdCB5b3UgaGF2ZSBjdXJyZW50bHkgc2VsZWN0ZWQARmlsZU5hbWU6AEZpbGVwYXRoOgBGaWxlcyBmaXJzdABGaWxlczoARm9sbG93IGxpbmsgKG9yIGdvdG8gbGluayBvciBwYWdlKSBudW1iZXI6IABGb3JtIGZpZWxkIHZhbHVlIGV4Y2VlZHMgYnVmZmVyIGxlbmd0aCEgIFRyaW0gdGhlIHRhaWwuAEZvcm0gZmllbGRzIGFyZSBudW1iZXJlZABGb3JtIGhhcyBhIG1haWx0byBhY3Rpb24hICBDYW5ub3QgZG93bmxvYWQuAEZvcm0gc3VibWl0IGFjdGlvbiBpcyBQT1NULCBIRUFEIG1heSBub3QgYmUgdW5kZXJzdG9vZC4gIFByb2NlZWQ/AEZ0cCBhY2Nlc3MgaXMgZGlzYWJsZWQhAEZ1bGwgbmFtZToAR2VuZXJhbCBQcmVmZXJlbmNlcwBHZXR0aW5nICVzAEdpdmUgbmFtZSBvZiBmaWxlIHRvIHNhdmUgaW4AR251VExTIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHZlcmlmeSBjZXJ0aWZpY2F0ZS4AR29vZCBBZHZpY2UAR29waGVyIE1lbnUAR29waGVyIGluZGV4AEdvcGhlciByZXF1ZXN0IHNlbnQ7IHdhaXRpbmcgZm9yIHJlc3BvbnNlLgBHb3QgdW5leHBlY3RlZCAzMDQgTm90IE1vZGlmaWVkIHN0YXR1cy4AR290IHVuZXhwZWN0ZWQgSW5mb3JtYXRpb25hbCBTdGF0dXMuAEdvdG8gYSBub24taHR0cCBVUkwgaXMgZGlzYWxsb3dlZCEAR290byBhIHJhbmRvbSBVUkwgaXMgZGlzYWxsb3dlZCEAR290byBtdWx0aS1ib29rbWFyayBtZW51AEdyb3VwAEdyb3VwIG5hbWU6AEdyb3VwOgBIRUxQIQBIUkVGIGluIEJBU0UgdGFnIGlzIG5vdCBhbiBhYnNvbHV0ZSBVUkwuAEhUTUwgZXJyb3IgcmVjb3ZlcnkASFRUUCAxLjAASFRUUCAxLjEASFRUUCBwcm90b2NvbABIVFRQIHJlcXVlc3Qgc2VudDsgd2FpdGluZyBmb3IgcmVzcG9uc2UuAEhUV0FJUzogUmVxdWVzdCB0b28gbGFyZ2UuAEhUV0FJUzogUmVxdWVzdCB0b28gbG9uZy4ASFRXQUlTOiBSZXR1cm4gbWVzc2FnZSB0b28gbGFyZ2UuAEhhbmcgRGV0ZWN0OiBUZXh0QW5jaG9yIHN0cnVjdCBjb3JydXB0ZWQgLSBzdWdnZXN0IGFib3J0aW5nIQBIYXZlIFBPU1QgY29udGVudC4gIFRyZWF0aW5nIFBlcm1hbmVudCBSZWRpcmVjdGlvbiBhcyBUZW1wb3JhcnkuCgBIZWFkZXJzIFRyYW5zZmVycmVkIHRvIFJlbW90ZSBTZXJ2ZXJzAEhlbHAgU2NyZWVuAEhpZGRlbiBsaW5rczoASGlzdG9yaWNhbCBjb21tZW50IHBhcnNpbmcgT0ZGIChNaW5pbWFsIGlzIGluIGVmZmVjdCkhAEhpc3RvcmljYWwgY29tbWVudCBwYXJzaW5nIE9GRiAoVmFsaWQgaXMgaW4gZWZmZWN0KSEASGlzdG9yaWNhbCBjb21tZW50IHBhcnNpbmcgT04gKE1pbmltYWwgaXMgb3ZlcnJpZGRlbikhAEhpc3RvcmljYWwgY29tbWVudCBwYXJzaW5nIE9OIChWYWxpZCBpcyBvdmVycmlkZGVuKSEASGlzdG9yeSBQYWdlAEhpc3RvcnksIHNob3dpbmZvLCBtZW51IGFuZCBsaXN0IGZpbGVzIGNhbm5vdCBiZSBzYXZlZCBhcyBib29rbWFya3MuAEhpdCBSRVRVUk4gdG8gYWNjZXB0IGVudGVyZWQgZGF0YS4ASGl0IFJFVFVSTiB0byBhY2NlcHQgZW50ZXJlZCBkYXRhLiAgRGVsZXRlIGRhdGEgdG8gaW52b2tlIHRoZSBkZWZhdWx0LgBIaXQgYW55IGtleSB0byBjaGFuZ2UgdmFsdWU7IFJFVFVSTiB0byBhY2NlcHQuAEhvc3QASWYgY2FzZV9zZW5zaXRpdmVfc2VhcmNoaW5nIGlzICJvbiIgdGhlbiB3aGVuIHRoZSB1c2VyIGludm9rZXMgYSBzZWFyY2gKdXNpbmcgdGhlICdzJyBvciAnLycga2V5cywgdGhlIHNlYXJjaCBwZXJmb3JtZWQgd2lsbCBiZSBjYXNlIHNlbnNpdGl2ZQppbnN0ZWFkIG9mIGNhc2UgSU5zZW5zaXRpdmUuICBUaGUgZGVmYXVsdCBpcyB1c3VhbGx5ICJvZmYiLgoASWYgZW1hY3Nfa2V5cyBpcyB0byAib24iIHRoZW4gdGhlIG5vcm1hbCBFTUFDUyBtb3ZlbWVudCBrZXlzOgogIF5OID0gZG93biAgICBeUCA9IHVwCiAgXkIgPSBsZWZ0ICAgIF5GID0gcmlnaHQKd2lsbCBiZSBlbmFibGVkLgoASWYga2V5cGFkX21vZGUgaXMgc2V0IHRvICJMSU5LU19BTkRfRk9STV9GSUVMRFNfQVJFX05VTUJFUkVEIiwgdGhlbgpudW1iZXJzIHdpbGwgYXBwZWFyIG5leHQgdG8gZWFjaCBsaW5rIGFuZCB2aXNpYmxlIGZvcm0gaW5wdXQgZmllbGQuCk51bWJlcnMgYXJlIHVzZWQgdG8gc2VsZWN0IGxpbmtzLCBvciB0byBtb3ZlIHRoZSAiY3VycmVudCBsaW5rIiB0byBhCmZvcm0gaW5wdXQgZmllbGQgb3IgYnV0dG9uLiAgSW4gYWRkaXRpb24sIG9wdGlvbnMgaW4gcG9wdXAgbWVudXMgYXJlCmluZGV4ZWQgc28gdGhhdCB0aGUgdXNlciBtYXkgdHlwZSBhbiBvcHRpb24gbnVtYmVyIHRvIHNlbGVjdCBhbiBvcHRpb24gaW4KYSBwb3B1cCBtZW51LCBldmVuIGlmIHRoZSBvcHRpb24gaXNuJ3QgdmlzaWJsZSBvbiB0aGUgc2NyZWVuLiAgUmVmZXJlbmNlCmxpc3RzIGFuZCBvdXRwdXQgZnJvbSB0aGUgbGlzdCBjb21tYW5kIGFsc28gZW51bWVyYXRlIGZvcm0gaW5wdXRzLgoASWYga2V5cGFkX21vZGUgaXMgc2V0IHRvICJMSU5LU19BUkVfTlVNQkVSRUQiLCB0aGVuIG51bWJlcnMgd2lsbAphcHBlYXIgbmV4dCB0byBlYWNoIGxpbmsgYW5kIG51bWJlcnMgYXJlIHVzZWQgdG8gc2VsZWN0IGxpbmtzLgoASWYga2V5cGFkX21vZGUgaXMgc2V0IHRvICJOVU1CRVJTX0FTX0FSUk9XUyIsIHRoZW4gdGhlIG51bWJlcnMgb24KeW91ciBrZXlwYWQgd2hlbiB0aGUgbnVtbG9jayBpcyBvbiB3aWxsIGFjdCBhcyBhcnJvdyBrZXlzOgogICAgICAgICAgICA4ID0gVXAgQXJyb3cKICA0ID0gTGVmdCBBcnJvdyAgICA2ID0gUmlnaHQgQXJyb3cKICAgICAgICAgICAgMiA9IERvd24gQXJyb3cKYW5kIHRoZSBjb3JyZXNwb25kaW5nIGtleWJvYXJkIG51bWJlcnMgd2lsbCBhY3QgYXMgYXJyb3cga2V5cywKcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG51bWxvY2sgaXMgb24uCgBJZiBydW5fYWxsX2V4ZWN1dGlvbl9saW5rcyBpcyBzZXQgIm9uIiB0aGVuIGFsbCBsb2NhbCBleGVjdXRpb24gbGlua3MKd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZXkgYXJlIHNlbGVjdGVkLgoKV0FSTklORyAtIFRoaXMgaXMgcG90ZW50aWFsbHkgVkVSWSBkYW5nZXJvdXMuICBTaW5jZSB5b3UgbWF5IHZpZXcKICAgICAgICAgIGluZm9ybWF0aW9uIHRoYXQgaXMgd3JpdHRlbiBieSB1bmtub3duIGFuZCB1bnRydXN0ZWQgc291cmNlcwogICAgICAgICAgdGhlcmUgZXhpc3RzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZQogICAgICAgICAgd3JpdHRlbi4gIFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZSB3cml0dGVuIHRvIGVyYXNlIGZpbGVzCiAgICAgICAgICBvciBjb21wcm9taXNlIHNlY3VyaXR5LiAgVGhpcyBzaG91bGQgb25seSBiZSBzZXQgdG8gIm9uIiBpZgogICAgICAgICAgeW91IGFyZSB2aWV3aW5nIHRydXN0ZWQgc291cmNlIGluZm9ybWF0aW9uLgoASWYgcnVuX2V4ZWN1dGlvbl9saW5rc19vbl9sb2NhbF9maWxlcyBpcyBzZXQgIm9uIiB0aGVuIGFsbCBsb2NhbApleGVjdXRpb24gbGlua3MgdGhhdCBhcmUgZm91bmQgaW4gTE9DQUwgZmlsZXMgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZXkKYXJlIHNlbGVjdGVkLiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBydW5fYWxsX2V4ZWN1dGlvbl9saW5rcyBpbiB0aGF0Cm9ubHkgZmlsZXMgdGhhdCByZXNpZGUgb24gdGhlIGxvY2FsIHN5c3RlbSB3aWxsIGhhdmUgZXhlY3V0aW9uIGxpbmsKcGVybWlzc2lvbnMuCgpXQVJOSU5HIC0gVGhpcyBpcyBwb3RlbnRpYWxseSBkYW5nZXJvdXMuICBTaW5jZSB5b3UgbWF5IHZpZXcKICAgICAgICAgIGluZm9ybWF0aW9uIHRoYXQgaXMgd3JpdHRlbiBieSB1bmtub3duIGFuZCB1bnRydXN0ZWQgc291cmNlcwogICAgICAgICAgdGhlcmUgZXhpc3RzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZQogICAgICAgICAgd3JpdHRlbi4gIFRyb2phbiBob3JzZSBsaW5rcyBjb3VsZCBiZSB3cml0dGVuIHRvIGVyYXNlIGZpbGVzCiAgICAgICAgICBvciBjb21wcm9taXNlIHNlY3VyaXR5LiAgVGhpcyBzaG91bGQgb25seSBiZSBzZXQgdG8gIm9uIiBpZgogICAgICAgICAgeW91IGFyZSB2aWV3aW5nIHRydXN0ZWQgc291cmNlIGluZm9ybWF0aW9uLgoASWYgc3ViX2Jvb2ttYXJrcyBpcyBub3QgdHVybmVkICJvZmYiLCBhbmQgbXVsdGlwbGUgYm9va21hcmtzIGhhdmUKYmVlbiBkZWZpbmVkIChzZWUgYmVsb3cpLCB0aGVuIGFsbCBib29rbWFyayBvcGVyYXRpb25zIHdpbGwgZmlyc3QKcHJvbXB0IHRoZSB1c2VyIHRvIHNlbGVjdCBhbiBhY3RpdmUgc3ViLWJvb2ttYXJrIGZpbGUuICBJZiB0aGUgZGVmYXVsdApMeW54IGJvb2ttYXJrX2ZpbGUgaXMgZGVmaW5lZCAoc2VlIGFib3ZlKSwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZQpkZWZhdWx0IHNlbGVjdGlvbi4gIFdoZW4gdGhpcyBvcHRpb24gaXMgc2V0IHRvICJhZHZhbmNlZCIsIGFuZCB0aGUKdXNlciBtb2RlIGlzIGFkdmFuY2VkLCB0aGUgJ3YnaWV3IGJvb2ttYXJrIGNvbW1hbmQgd2lsbCBpbnZva2UgYQpzdGF0dXNsaW5lIHByb21wdCBpbnN0ZWFkIG9mIHRoZSBtZW51IHNlZW4gaW4gbm92aWNlIGFuZCBpbnRlcm1lZGlhdGUKdXNlciBtb2Rlcy4gIFdoZW4gdGhpcyBvcHRpb24gaXMgc2V0IHRvICJzdGFuZGFyZCIsIHRoZSBtZW51IHdpbGwgYmUKcHJlc2VudGVkIHJlZ2FyZGxlc3Mgb2YgdXNlciBtb2RlLgoASWYgdmVyYm9zZV9pbWFnZXMgaXMgIm9uIiwgbHlueCB3aWxsIHByaW50IHRoZSBuYW1lIG9mIHRoZSBpbWFnZQpzb3VyY2UgZmlsZSBpbiBwbGFjZSBvZiBbSU5MSU5FXSwgW0xJTktdIG9yIFtJTUFHRV0KU2VlIGFsc28gVkVSQk9TRV9JTUFHRVMgaW4gbHlueC5jZmcKAElmIHZpX2tleXMgaXMgc2V0IHRvICJvbiIsIHRoZW4gdGhlIG5vcm1hbCBWSSBtb3ZlbWVudCBrZXlzOgogIGogPSBkb3duICAgIGsgPSB1cAogIGggPSBsZWZ0ICAgIGwgPSByaWdodAp3aWxsIGJlIGVuYWJsZWQuICBUaGVzZSBrZXlzIGFyZSBvbmx5IGxvd2VyIGNhc2UuCkNhcGl0YWwgJ0gnLCAnSicgYW5kICdLIHdpbGwgc3RpbGwgYWN0aXZhdGUgaGVscCwganVtcCBzaG9ydGN1dHMsCmFuZCB0aGUga2V5bWFwIGRpc3BsYXksIHJlc3BlY3RpdmVseS4KAElnbm9yZQBJZ25vcmVkICVkIGNoYXJhY3RlcnMgZnJvbSBzdGFuZGFyZCBpbnB1dC4KAElsbGVnYWwgVVJMOiAlcwBJbGxlZ2FsIGNoYXJhY3RlciAiLyIgZm91bmQhIFJlcXVlc3QgaWdub3JlZC4ASWxsZWdhbCBjaGFyYWN0ZXIgKHBhdGgtc2VwYXJhdG9yKSBmb3VuZCEgUmVxdWVzdCBpZ25vcmVkLgBJbGxlZ2FsIGZpbGVuYW1lOyByZXF1ZXN0IGlnbm9yZWQuAElsbGVnYWwgcmVkaXJlY3Rpb24gIi4uLyIgZm91bmQhIFJlcXVlc3QgaWdub3JlZC4ASWxsZWdhbCByZWRpcmVjdGlvbiAiLy8iIGZvdW5kISBSZXF1ZXN0IGlnbm9yZWQuAElsbGVnYWwgcmVkaXJlY3Rpb24gVVJMIHJlY2VpdmVkIGZyb20gc2VydmVyIQBJbGxlZ2FsIHJlZGlyZWN0aW9uIHVzaW5nICJ+IiBmb3VuZCEgUmVxdWVzdCBpZ25vcmVkLgBJbWFnZSBtYXAgZnJvbSBQT1NUIHJlc3BvbnNlIG5vdCBhdmFpbGFibGUhAEluZGV4IABJbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBkb2N1bWVudABJbmxpbmVzIHdpdGhvdXQgYW4gQUxUIHN0cmluZyBzcGVjaWZpZWQgd2lsbCBiZSBpZ25vcmVkISAgUmVsb2FkaW5nLi4uAEluc3RhbGwgaW4gdGhlIHNlbGVjdGVkIGRpcmVjdG9yeSBub3QgcGVybWl0dGVkLgBJbnN0YWxsYXRpb24gY29tcGxldGUASW5zdWZmaWNpZW50IG9wZXJhbmRzOgBJbnRlcm1lZGlhdGUASW50ZXJuYWwASW50ZXJuYWwgZXJyb3I6IEludmFsaWQgbW91c2UgbGluayAlZCEASW52YWxpZCBoZWFkZXIgJyVzJXMlcyVzJXMnAEludmFsaWQgaG9zdG5hbWUgJXMASW52YWxpZCBtb2RlIGZvcm1hdC4ASW52YWxpZCBwb2ludGVyIGRldGVjdGVkLgBJbnZhbGlkIHBvcnQgbnVtYmVyIC0gd2lsbCBvbmx5IHVzZSBwb3J0IDc5IQBJbnZhbGlkIHN5bnRheCBmb3JtYXQuAEludmFsaWQtQ29va2llIFByb21wdGluZwBJdCBwcm92aWRlcyBzdGF0ZSBvZiB0aGUgYXJ0IENHSSBzY3JpcHQgc3VwcG9ydC4KAEl0ZW0gdGhhdCB5b3UgaGF2ZSBjdXJyZW50bHkgc2VsZWN0ZWQASnVtcCB0byAodXNlICc/JyBmb3IgbGlzdCk6IABKdW1waW5nIHRvIGEgc2hvcnRjdXQgVVJMIGlzIGRpc2FsbG93ZWQhAEp1c3QgYSBtb21lbnQsIC4uLgBLZXkgJyVjJyBpcyBub3QgbWFwcGVkIHRvIGEganVtcCBmaWxlIQBLZXlib2FyZCBJbnB1dABLZXlib2FyZCBsYXlvdXQAS2V5cGFkIG1vZGUATGFuZ3VhZ2U6AExhc3QgTW9kOgBMYXN0IGFjY2Vzc2VkOgBMYXN0IGF0dGVtcHRlZCBpbmNsdWRlIHdhcyAnJXMnLAoATGFzdCBtb2RpZmllZDoATGF0ZXIgYXJ0aWNsZXMATGVmdCBBcnJvdyBjYW5jZWxzIGNoYW5nZXMATGVmdCBtb3VzZSBidXR0b24gb3IgcmV0dXJuIHRvIHNlbGVjdCwgYXJyb3cga2V5cyB0byBzY3JvbGwuAExlbmd0aDoATGV0dGVyOiAATGluZSBlZGl0IHN0eWxlAExpbmVDb3VudDoATGluZXdyYXAgT0ZGIQBMaW5ld3JhcCBPTiEATGluayBVUkwgcHV0IHRvIGNsaXBib2FyZC4ATGluayBpcyBub3QgYnkgaXRzZWxmIGFsbCBvbiBvbmUgbGluZSBpbiBib29rbWFyayBmaWxlLgBMaW5rIG51bWJlciAlZCBhbHJlYWR5IGlzIGN1cnJlbnQuAExpbmsgdGhhdCB5b3UgY3VycmVudGx5IGhhdmUgc2VsZWN0ZWQATGlua25hbWU6AExpbmtzIGFuZCBmb3JtIGZpZWxkcyBhcmUgbnVtYmVyZWQATGlua3MgYXJlIG51bWJlcmVkAExpbmtzIHdpbGwgYmUgaW5jbHVkZWQgZm9yIGFsbCBpbWFnZXMhICBSZWxvYWRpbmcuLi4ATGlzdCBQYWdlAExpc3QgZnJvbSBkb2N1bWVudCB3aXRoIFBPU1QgZGF0YS4gIFJlbG9hZCAlcyA/AExpc3RpbmcgYW5kIEFjY2Vzc2luZyBGaWxlcwBMb2FkaW5nIGZhaWxlZCwgdXNlIGEgcHJldmlvdXMgY29weS4ATG9hZGluZyBpbmNvbXBsZXRlLgBMb2NhbCBhZGRpdGlvbnM6AExvY2FsIGRpcmVjdG9yeSBzb3J0IGNyaXRlcmlhAExvY2FsIGRpcmVjdG9yeSBzb3J0IG9yZGVyAExvY2F0aW9uIFVSTCBpcyBub3QgYWJzb2x1dGUuAExvY2F0aW9uOiAATG9va2luZyB1cCAATHlueCBUcmFjZSBMb2cATHlueCBVc2VyIERlZmF1bHRzIEZpbGUKCgBMeW54IGNhbm5vdCBjdXJyZW50bHkgKGUpZGl0IHJlbW90ZSBXV1cgZmlsZXMuAEx5bnguY2ZnIEluZm9ybWF0aW9uAEx5bng6IGNhbm5vdCBzdGFydCwgQ0VSTiBydWxlcyBmaWxlICVzIGlzIG5vdCBhdmFpbGFibGUKAEx5bng6IGlnbm9yaW5nIHVucmVjb2duaXplZCBjaGFyc2V0PSVzCgBMeW54Y2dpIGNhcGFiaWxpdGllcyBhcmUgbm90IGNvbXBpbGVkIGludG8gdGhpcyB2ZXJzaW9uLgBNYWlsIGFjY2VzcyBpcyBkaXNhYmxlZCEATWFpbCBkaXNhbGxvd2VkISAgQ2Fubm90IHN1Ym1pdC4ATWFpbCBpcyBkaXNhbGxvd2VkIHNvIHlvdSBjYW5ub3Qgc2VuZCBhIGNvbW1lbnQATWFpbCByZXF1ZXN0IGNhbmNlbGxlZCEhIQBNYWlsIHRoZSBmaWxlAE1haWxpbmcgZmlsZS4gIFBsZWFzZSB3YWl0Li4uAE1haWx0byBmb3JtIHN1Ym1pc3Npb24gQ2FuY2VsbGVkISEhAE1haWx0byBmb3JtIHN1Ym1pc3Npb24gZmFpbGVkIQBNYWludGFpbmVyAE1ha2luZyAlcyBjb25uZWN0aW9uIHRvICVzAE1hbGZvcm1lZCBhZGRyZXNzLgBNYWxmb3JtZWQgbWFpbHRvIGZvcm0gc3VibWlzc2lvbiEgIENhbmNlbGxlZCEATWF4aW11bSBHb2JibGUgRGF0ZToATWF4aW11bSBsZW5ndGggcmVhY2hlZCEgIERlbGV0ZSB0ZXh0IG9yIG1vdmUgb2ZmIGZpZWxkLgBNYXhpbXVtIGxpbmtzIHBlciBwYWdlIGV4Y2VlZGVkISAgVXNlIGhhbGYtcGFnZSBvciB0d28tbGluZSBzY3JvbGxpbmcuAE1heGltdW0gbmVzdGluZyBvZiBIVE1MIGVsZW1lbnRzIGV4Y2VlZGVkLgBNZW1vcnkgZXhoYXVzdGVkISAgQWJvcnRpbmcuLi4ATWVtb3J5IGV4aGF1c3RlZCEgIFByb2dyYW0gYWJvcnRlZCEATWVtb3J5IGV4aGF1c3RlZCwgZGlzcGxheSBpbnRlcnJ1cHRlZCEATWVtb3J5IGV4aGF1c3RlZCwgd2lsbCBpbnRlcnJ1cHQgdHJhbnNmZXIhAE1lbW9yeSBsZWFrIGRldGVjdGVkLgBNZXNzYWdlIGhhcyBubyBvcmlnaW5hbCB0ZXh0IQBNZXRob2Q6AE1pbmltYWwgY29tbWVudCBwYXJzaW5nIE9GRiAoSGlzdG9yaWNhbCBpcyBpbiBlZmZlY3QpIQBNaW5pbWFsIGNvbW1lbnQgcGFyc2luZyBPRkYgKFZhbGlkIGlzIGluIGVmZmVjdCkhAE1pbmltYWwgY29tbWVudCBwYXJzaW5nIE9OIChhbmQgaW4gZWZmZWN0KSEATWluaW1hbCBjb21tZW50IHBhcnNpbmcgT04gKGJ1dCBIaXN0b3JpY2FsIGlzIGluIGVmZmVjdCkhAE1pc2RpcmVjdGVkIGNsaWVudC1zaWRlIGltYWdlIE1BUCByZXF1ZXN0IQBNaXhlZCBzdHlsZQBNb2RpZmllZCB0YWlsIGNvbWJpbmVkIHdpdGggaGVhZCBvZiBmb3JtIGZpZWxkIHZhbHVlLgBNb2RpZnkgbmFtZSBvciBsb2NhdGlvbiAobiBvciBsKTogAE1vZGlmeSBuYW1lLCBsb2NhdGlvbiwgb3IgcGVybWlzc2lvbiAobiwgbCwgb3IgcCk6IABNb3JlIHRoYW4gJWQgbmVzdGVkIGx5bnguY2ZnIGluY2x1ZGVzIC0tIHBlcmhhcHMgdGhlcmUgaXMgYSBsb29wPyE/CgBNdWx0aS1ib29rbWFya3MATXVsdGlmb3JtYXQ6IGRpcmVjdG9yeSBzY2FuIGZhaWxlZC4ATXVsdGlwbGUgYm9va21hcmsgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlLgBORVZFUgBOT1RFOiBTb21lIGZpeGVkIGZvcm1hdCBkb2N1bWVudHMgbWF5IGxvb2sgZGlzZmlndXJlZCB3aGVuCiJMSU5LU19BUkVfTlVNQkVSRUQiIG9yICJMSU5LU19BTkRfRk9STV9GSUVMRFNfQVJFX05VTUJFUkVEIiBhcmUKZW5hYmxlZC4KAE5VTEwgVVJMIHBvaW50ZXIATmFtZSBvZiBvd25lcjoATmFtZToATmV3cyBQb3N0IENhbmNlbGxlZCEhIQBOZXdzIHBvc3RpbmcgaXMgZGlzYWJsZWQhAE5vIExpbmtzIG9uIHRoZSBjdXJyZW50IHBhZ2UATm8gTmFtZSBHaXZlbgBObyBVUkwgaW4gdGhlIGNsaXBib2FyZC4ATm8gV2luc29jayBmb3VuZCwgc29ycnkuAE5vIGNsaWVudC1zaWRlIGltYWdlIE1BUHMgYXJlIGF2YWlsYWJsZSEATm8gZWRpdG9yIGlzIGRlZmluZWQhAE5vIGVtYWlsIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBtYWlsdG8gVVJMIQBObyBpbmRleCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlLgBObyBqdW1wIGZpbGUgaXMgY3VycmVudGx5IGF2YWlsYWJsZS4ATm8gbWF0Y2hlcyBmb3I6ICVzAE5vIG5leHQgZG9jdW1lbnQgcHJlc2VudABObyBvd25lciBpcyBkZWZpbmVkIGZvciB0aGlzIGZpbGUgc28geW91IGNhbm5vdCBzZW5kIGEgY29tbWVudABObyBvd25lciBpcyBkZWZpbmVkLiBVc2UgJXM/AE5vIHByZXZpb3VzbHkgdmlzaXRlZCBsaW5rcyBhdmFpbGFibGUhAE5vIHJhbmRvbSBVUkxzIGhhdmUgYmVlbiB1c2VkIHRodXMgZmFyLgBObyByZXNwb25zZSBmcm9tIGZpbmdlciBzZXJ2ZXIuAE5vIHJlc3BvbnNlIGZyb20gc2VydmVyIQBObyByZXN0cmljdGlvbnMgc2V0LgoATm8gc3VibWl0IGJ1dHRvbiBmb3IgdGhpcyBmb3JtLCBzdWJtaXQgc2luZ2xlIHRleHQgZmllbGQ/AE5vIHN1Y2ggZGlyZWN0b3J5AE5vIHN5c3RlbSBtYWlsZXIgY29uZmlndXJlZABObyB0YXJnZXQgZm9yIHJhdyB0ZXh0IQBObyB0ZXh0IHdhcyByZXR1cm5lZCEKAE5vIHRyYWNlIGxvZyBoYXMgYmVlbiBzdGFydGVkIGZvciB0aGlzIHNlc3Npb24uAE5vbmUATm9ybWFsbHkgZGlzYWJsZWQuICBTZWUgRU5BQkxFX0xZTlhSQyBpbiBseW54LmNmZwoATm90IGEgc2VhcmNoYWJsZSBpbmRleGVkIGRvY3VtZW50IC0tIHByZXNzICcvJyB0byBzZWFyY2ggZm9yIGEgdGV4dCBzdHJpbmcATm90IGFuIGh0dHAgVVJMIG9yIGZvcm0gQUNUSU9OIQBOb3QgZW5vdWdoIG1lbW9yeSBmb3IgZmlsZSEATm90IGVub3VnaCBtZW1vcnkhAE5vdCBpbiBhIFRFWFRBUkVBOyBjYW5ub3QgdXNlIGNvbW1hbmQuAE5vdCBpbiBhIFRFWFRBUkVBOyBjYW5ub3QgdXNlIGV4dGVybmFsIGVkaXRvci4ATm90ZTogaWYgeW91IGVkaXQgdGhpcyBmaWxlIG1hbnVhbGx5CiAgICAgIHlvdSBzaG91bGQgbm90IGNoYW5nZSB0aGUgZm9ybWF0IHdpdGhpbiB0aGUgbGluZXMKICAgICAgb3IgYWRkIG90aGVyIEhUTUwgbWFya3VwLgogICAgICBNYWtlIHN1cmUgYW55IGJvb2ttYXJrIGxpbmsgaXMgc2F2ZWQgYXMgYSBzaW5nbGUgbGluZS4ATm90aGluZyBjdXJyZW50bHkgc2VsZWN0ZWQuAE5vdGhpbmcgdG8gZG93bmxvYWQuAE5vdGhpbmcgdG8gaW5zZXJ0IC0gZmlsZSBpcyAwLWxlbmd0aC4ATm92aWNlAE5vdyB1c2luZyBTb3J0YVNHTUwgcGFyc2luZyBvZiBIVE1MIQBOb3cgdXNpbmcgVGFnU291cCBwYXJzaW5nIG9mIEhUTUwuAE51bWJlciBvZiBsaW5lczoATnVtYmVyIG9mIHBhZ2VzOgBOdW1iZXJzIGFjdCBhcyBhcnJvd3MATyl0aGVyIGNtZHMgIEMpb21tZW50ICBIaXN0b3J5OiA8YmFja3NwYWNlPiAgQm9va21hcmtzOiBWKWlldywgQSlkZCwgUillbW92ZSAKAE9GRgBPSwBPTgBPZmZlbmRpbmcgbGluZToAT25lIHJhZGlvIGJ1dHRvbiBtdXN0IGJlIGNoZWNrZWQgYXQgYWxsIHRpbWVzIQBPbmx5IGZpbGVzIGFuZCBzZXJ2ZXJzIG9uIHRoZSBsb2NhbCBob3N0IGNhbiBiZSBhY2Nlc3NlZC4AT3B0aW9uIG51bWJlciAlZCBhbHJlYWR5IGlzIGN1cnJlbnQuAE9wdGlvbnMgTWVudQBPcHRpb25zIGFyZToKAE9wdGlvbnMgc2F2ZWQhAE90aGVyczoAT3V0IG9mIG1lbW9yeSByZWFkaW5nIGp1bXAgZmlsZSEAT3V0IG9mIG1lbW9yeSByZWFkaW5nIGp1bXAgdGFibGUhAE93bmVyKHMpOgBPd25lcjoAUClyb2NlZWQsIG9yIEMpYW5jZWwgAFApcm9jZWVkLCB1c2UgRylFVCBvciBDKWFuY2VsIABQT1NUIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgVVJMIC0gaWdub3JpbmcgUE9TVCBkYXRhIQBQYXJzaW5nIG5lc3RlZC10YWJsZXMgdG9nZ2xlZCBPRkYhICBSZWxvYWRpbmcuLi4AUGFyc2luZyBuZXN0ZWQtdGFibGVzIHRvZ2dsZWQgT04hICBSZWxvYWRpbmcuLi4AUGFzc3dvcmQgZm9yIGFub255bW91cyBmdHAAUGFzc3dvcmQgZm9yIG5ld3MgaG9zdCAnJXMnOgBQYXNzd29yZDogAFBhdXNlIHdoZW4gc2hvd2luZyBtZXNzYWdlAFBlYWsgYWxsb2NhdGlvbgBQZXJtaXNzaW9ucyBmb3IgAFBlcnNvbmFsIG1haWwgYWRkcmVzcwBQZXJzb25hbCBuYW1lIGZvciBtYWlsAFBsZWFzZSBlbnRlciBhIHZhbGlkIGludGVybmV0IG1haWwgYWRkcmVzczogAFBsZWFzZSByZWFkIHRoZSBkaXN0cmlidXRpb24AUGxlYXNlIHdhaXQuLi4AUG9pbnRlcjoAUG9pbnRzIHRvIGZpbGU6AFBvcHVwcyBmb3Igc2VsZWN0IGZpZWxkcwBQb3J0ICVsdSBub3QgcGVybWl0dGVkIGluIFVSTHMuAFBvcnQgMTkgbm90IHBlcm1pdHRlZCBpbiBVUkxzLgBQb3J0IDI1IG5vdCBwZXJtaXR0ZWQgaW4gVVJMcy4AUG9zdCBDb250ZW50IFR5cGU6AFBvc3QgRGF0YToAUG9zdCB0aGlzIG1lc3NhZ2U/AFBvc3QgdG8gAFBvc3RpbmcgdG8gbmV3c2dyb3VwKHMpLi4uAFByZWZlcnJlZCBjb250ZW50IHR5cGUAUHJlZmVycmVkIGRvY3VtZW50IGNoYXJhY3RlciBzZXQAUHJlZmVycmVkIGRvY3VtZW50IGxhbmd1YWdlAFByZWZlcnJlZCBlbmNvZGluZwBQcmVmZXJyZWQgbWVkaWEgdHlwZQBQcmVzcyA8cmV0dXJuPiB0byBiZWdpbjogAFByZXNzIDxyZXR1cm4+IHRvIGZpbmlzaDogAFByZXNzIDxyZXR1cm4+IHRvIHJldHVybiB0byBMeW54LgBQcmludCBvcHRpb25zOgBQcmludCBvdXQgb24gYSBwcmludGVyIGF0dGFjaGVkIHRvIHlvdXIgdnQxMDAgdGVybWluYWwAUHJpbnQgcmVxdWVzdCBjYW5jZWxsZWQhISEAUHJpbnQgdG8gdGhlIHNjcmVlbgBQcmludGluZyBPcHRpb25zAFByaW50aW5nIGZpbGUuICBQbGVhc2Ugd2FpdC4uLgBQcm9iYWJsZSBmYWlsdXJlIHRvICVzIGR1ZSB0byBzeXN0ZW0gZXJyb3IhAFByb2NlZWQgKCVzKT8AUHJvY2VlZCB3aXRob3V0IGEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkPwBQcm94eSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIC0tIHJldHJ5aW5nAFBzZXVkb19BTFRzIHdpbGwgYmUgaW5zZXJ0ZWQgZm9yIGlubGluZXMgd2l0aG91dCBBTFQgc3RyaW5ncyEgIFJlbG9hZGluZy4uLgBRdWVyeSBwYXJhbWV0ZXIgJWQ6IABSRUxPQUQgVEhFIENIQU5HRVMAUmFuZG9tIFVSTCBpcyBkaXNhbGxvd2VkISAgVXNlIGEgc2hvcnRjdXQuAFJhdyA4LWJpdABSYXcgOC1iaXQgb3IgQ0pLIG1vZGUgdG9nZ2xlZCBPRkYhICBSZWxvYWRpbmcuLi4AUmF3IDgtYml0IG9yIENKSyBtb2RlIHRvZ2dsZWQgT04hICBSZWxvYWRpbmcuLi4AUmVhZCAlcyBvZiAlcyBvZiBkYXRhAFJlYWQgJXMgb2YgZGF0YQBSZWFkaW5nIGRpcmVjdG9yeS4uLgBSZWFkaW5nIGxpc3Qgb2YgYXJ0aWNsZXMgaW4gbmV3c2dyb3VwLgBSZWFkaW5nIGxpc3Qgb2YgYXZhaWxhYmxlIG5ld3Nncm91cHMuAFJlYWRpbmcgbmV3cyBhcnRpY2xlLgBSZWFsbHkgZXhpdCBmcm9tIEx5bng/AFJlY2VpdmluZyBGVFAgZGlyZWN0b3J5LgBSZWNlaXZpbmcgRlRQIGZpbGUuAFJlZGlyZWN0aW9uIGxpbWl0IG9mIDEwIFVSTCdzIHJlYWNoZWQuAFJlZGlyZWN0aW9uIG9mIFBPU1QgY29udGVudCByZXF1aXJlcyB1c2VyIGFwcHJvdmFsLgBSZWRpcmVjdGlvbiBvZiBQT1NUIGNvbnRlbnQuICBQKXJvY2VlZCwgc2VlIFUpUkwsIG9yIEMpYW5jZWwAUmVkaXJlY3Rpb24gb2YgUE9TVCBjb250ZW50LiAgUClyb2NlZWQsIHNlZSBVKVJMLCB1c2UgRylFVCBvciBDKWFuY2VsAFJlZmVyZW5jZXMAUmVmZXJlbmNlcyBpbiAAUmVmcmVzaCBVUkwgaXMgbm90IGFic29sdXRlLgBSZWplY3RpbmcgdGhpcyBjb29raWUuAFJlbG9hZGluZyBkb2N1bWVudC4gIEFueSBmb3JtIGVudHJpZXMgd2lsbCBiZSBsb3N0IQBSZW1vdmUgYWxsIHRhZ2dlZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXM/AFJlbW92ZSBkaXJlY3RvcnkgJyVzJz8AUmVtb3ZlIGRpcmVjdG9yeT8AUmVtb3ZlIGZpbGUgJyVzJz8AUmVtb3ZlIGZpbGU/AFJlbW92ZSBzeW1ib2xpYyBsaW5rICclcyc/AFJlbW92ZSBzeW1ib2xpYyBsaW5rPwBSZXBhcnNpbmcgZG9jdW1lbnQgdW5kZXIgY3VycmVudCBzZXR0aW5ncy4uLgBSZXByb2R1Y2UgTClpbmsgaW4gdGhpcyBib29rbWFyayBmaWxlIG9yIEMpYW5jZWw/IChsLGMpOiAAUmVxdWVzdCBmdWxmaWxsZWQuICBSZXNldCBDb250ZW50LgBSZXNldCBDaGFuZ2VzAFJlc2V0dGluZyBmb3JtLi4uAFJlc3RyaWN0aW9ucyBzZXQ6CgBSZXN1Ym1pdCBQT1NUIGNvbnRlbnQgdG8gJXMgPwBSZXRyaWV2aW5nIGZpbGUuICAtIFBMRUFTRSBXQUlUIC0AUmV0cnlpbmcgYXMgSFRUUDAgcmVxdWVzdC4AUmV0cnlpbmcgY29ubmVjdGlvbiB3aXRob3V0IFRMUy4AUmV0cnlpbmcgd2l0aCBhY2Nlc3MgYXV0aG9yaXphdGlvbiBpbmZvcm1hdGlvbi4AUmV0cnlpbmcgd2l0aCBwcm94eSBhdXRob3JpemF0aW9uIGluZm9ybWF0aW9uLgBSZXZpZXcvZWRpdCBCb29rbWFya3MgZmlsZXMAUmxvZ2luIGFjY2VzcyBpcyBkaXNhYmxlZCEAU1NMIFByb21wdGluZwBTU0wgY2FsbGJhY2s6JXMsIHByZXZlcmlmeV9vaz0lZCwgc3NsX29rYXk9JWQAU1NMIGNsaWVudCBjZXJ0aWZpY2F0ZSBmaWxlAFNTTCBjbGllbnQga2V5IGZpbGUAU1NMIGVycm9yAFNTTCBlcnJvcjolcy1Db250aW51ZT8AU1NMIGVycm9yOmhvc3QoJXMpIT1jZXJ0KCVzKS1Db250aW51ZT8AU1RBTkRBUkQAU2F2ZSBEKW9jdW1lbnQgb3IgTClpbmsgdG8gYm9va21hcmsgZmlsZSBvciBDKWFuY2VsPyAoZCxsLGMpOiAAU2F2ZSBEKW9jdW1lbnQgdG8gYm9va21hcmsgZmlsZSBvciBDKWFuY2VsPyAoZCxjKTogAFNhdmUgTClpbmsgdG8gYm9va21hcmsgZmlsZSBvciBDKWFuY2VsPyAobCxjKTogAFNhdmUgb3B0aW9ucyB0byBkaXNrAFNhdmUgcmVxdWVzdCBjYW5jZWxsZWQhISEAU2F2ZSB0byBhIGxvY2FsIGZpbGUAU2F2ZSB0byBkaXNrAFNhdmUgdG8gZGlzayBkaXNhYmxlZABTYXZlIHRvIGRpc2sgZGlzYWJsZWQuAFNhdmluZyBPcHRpb25zLi4uAFNhdmluZy4uLgBTY3JlZW4gaGVpZ2h0IG11c3QgYmUgYXQgbGVhc3QgMjIgbGluZXMgZm9yIHRoZSBPcHRpb25zIG1lbnUhAFNjcmVlbiBoZWlnaHQgbXVzdCBiZSBhdCBsZWFzdCAyMyBsaW5lcyBmb3IgdGhlIE9wdGlvbnMgbWVudSEAU2NyZWVuIGhlaWdodCBtdXN0IGJlIGF0IGxlYXN0IDI0IGxpbmVzIGZvciB0aGUgT3B0aW9ucyBtZW51IQBTY3JlZW4gdG9vIHNtYWxsISAoOHgzNSBtaW4pAFNlYXJjaCBpbnRlcnJ1cHRlZC4AU2VhcmNoaW5nIFdBSVMgZGF0YWJhc2UuLi4AU2VjdXJlICVkLWJpdCAlcyAoJXMpIEhUVFAgY29ubmVjdGlvbgBTZWN1cml0eSBhbmQgUHJpdmFjeQBTZWUgYWxzbwBTZWUgaHR0cHM6Ly9seW54LmludmlzaWJsZS1pc2xhbmQubmV0LyBhbmQgdGhlIG9ubGluZSBoZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uLgBTZWVrIGZhaWwgb24gJXMKAFNlbGVjdCAAU2VsZWN0IGRlc3RpbmF0aW9uIG9yIF5HIHRvIENhbmNlbDogAFNlbGVjdCBvcHRpb24gKG9yIHBhZ2UpIG51bWJlcjogAFNlbGVjdCBzdWJib29rbWFyaywgJz0nIGZvciBtZW51LCBvciBeRyB0byBjYW5jZWw6IABTZWxlY3RpdmUgYWNjZXNzIGlzIG5vdCBlbmFibGVkIGZvciB0aGlzIGRpcmVjdG9yeQBTZW5kIEhFQUQgcmVxdWVzdCBmb3IgRClvY3VtZW50IG9yIEwpaW5rLCBvciBDKWFuY2VsPyAoZCxsLGMpOiAAU2VuZCBIRUFEIHJlcXVlc3QgZm9yIEQpb2N1bWVudCwgb3IgQylhbmNlbD8gKGQsYyk6IABTZW5kIFVzZXItQWdlbnQgaGVhZGVyAFNlbmQgdGhpcyBjb21tZW50PwBTZW5kIHRoaXMgbWVzc2FnZT8AU2VuZGluZwBTZW5kaW5nIENTTy9QSCByZXF1ZXN0LgBTZW5kaW5nIEdvcGhlciByZXF1ZXN0LgBTZW5kaW5nIEhUVFAgcmVxdWVzdC4AU2VuZGluZyBmb3JtIGNvbnRlbnQuLi4AU2VuZGluZyB5b3VyIGNvbW1lbnQ6AFNlbmRpbmcgeW91ciBtZXNzYWdlLi4uAFNlcXVlbmNlOgBTZXJ2ZXIgSGVhZGVyczoAU2VydmVyIGFza2VkIGZvciAlZCByZWRpcmVjdGlvbiBvZiBQT1NUIGNvbnRlbnQgdG8AU2VydmVyOgBTZXNzaW9uIGZpbGUAU2hpZnRpbmcgaXMgZGlzYWJsZWQgd2hpbGUgbGluZS13cmFwIGlzIGluIGVmZmVjdABTaG93ICVzL3NlYyAoMi1kaWdpdHMpLCBFVEEAU2hvdyAlcy9zZWMgcmF0ZQBTaG93ICVzL3NlYywgRVRBAFNob3cgY29sb3IAU2hvdyBjdXJzb3IAU2hvdyBkb3QgZmlsZXMAU2hvdyBpbWFnZXMAU2hvdyBwcm9ncmVzc2JhcgBTaG93IHNjcm9sbGJhcgBTaG93IHRoZSA0MDEgbWVzc2FnZSBib2R5PwBTaG93IHRoZSA0MDcgbWVzc2FnZSBib2R5PwBTaG93IHRyYW5zZmVyIHJhdGUAU2tpcHBpbmcgJXMAU29ja2V0IHJlYWQgZmFpbGVkICh0b28gbWFueSB0cmllcykuAFNvZnQgZG91YmxlLXF1b3RlIHBhcnNpbmcgT0ZGIQBTb2Z0IGRvdWJsZS1xdW90ZSBwYXJzaW5nIE9OIQBTb21lIHByaW50IGZ1bmN0aW9ucyBoYXZlIGJlZW4gZGlzYWJsZWQhAFNvcnJ5LCBjb3VsZCBub3QgbG9hZCByZXF1ZXN0ZWQgbmV3cy4AU29ycnksIGRvbid0IGtub3cgaG93IHRvIHBlcm1pdCBub24tVU5JWCBmaWxlcyB5ZXQuAFNvcnJ5LCBubyBrbm93biB3YXkgb2YgY29udmVydGluZyAlcyB0byAlcy4AU29ycnksIHRoZSBBQ1RJT04gZm9yIHRoaXMgZm9ybSBpcyBkaXNhYmxlZC4AU29ycnksIHRoZSBBQ1RJT04gZm9yIHRoaXMgZm9ybSBpcyBub3QgYW4gaHR0cCBVUkwuAFNvcnJ5LCB0aGUgZG9jdW1lbnQgaXMgbm90IGFuIGh0dHAgVVJMLgBTb3JyeSwgdGhlIGxpbmsgaXMgbm90IGFuIGh0dHAgVVJMLgBTb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFyZSB0aGUgc2FtZSBsb2NhdGlvbiEgIFJlcXVlc3QgaWdub3JlZCEAU291cmNlIGFuZCB0YXJnZXQgYXJlIHRoZSBzYW1lOiAlcwBTb3VyY2UgY2FjaGUgZXJyb3IgLSBkaXNrIGZ1bGw/AFNvdXJjZSBjYWNoZSBlcnJvciAtIG5vdCBlbm91Z2ggbWVtb3J5IQBTcGF3bmluZyBEQ0wgc3VicHJvY2Vzcy4gIFVzZSAnbG9nb3V0JyB0byByZXR1cm4gdG8gTHlueC4KAFNwYXduaW5nIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4AU3Bhd25pbmcgeW91ciBkZWZhdWx0IHNoZWxsLiAgVXNlICdleGl0JyB0byByZXR1cm4gdG8gTHlueC4KAFNwYXduaW5nIHlvdXIgc2VsZWN0ZWQgZWRpdG9yIHRvIGVkaXQgbWFpbCBtZXNzYWdlAFNwYXduaW5nIHlvdXIgc2VsZWN0ZWQgZWRpdG9yIHRvIGVkaXQgbmV3cyBtZXNzYWdlAFNwZWNpYWwgRmlsZXMgYW5kIFNjcmVlbnMAU3BlY2lhbCBVUkwgb25seSB2YWxpZCBmcm9tIGN1cnJlbnQgRmlsZSBQZXJtaXNzaW9uIG1lbnUhAFNwZWNpZnkgcGVybWlzc2lvbnMgYmVsb3c6AFN0YW5kYXJkIGRvd25sb2FkIG9wdGlvbnM6AFN0YW5kYXJkIGltYWdlIGhhbmRsaW5nIHJlc3RvcmVkISAgUmVsb2FkaW5nLi4uAFN0YW5kYXJkIHByaW50IG9wdGlvbnM6AFN0eWxlICVkIGAlcycgU0dNTDolcy4gIEZvbnQgJXMgJS4xZiBwb2ludC4KAFN1YmRpcmVjdG9yaWVzOgBTdWJqZWN0OiAAU3VibWl0ICgneCcgZm9yIG5vIGNhY2hlKSB0byAAU3VibWl0IG1haWx0byBmb3JtIHRvIABTdWJtaXQgdG8gAFN1Ym1pdHRpbmcgJXMAU3VibWl0dGluZyBmb3JtLi4uAFN1Z2dlc3RlZCBmaWxlIG5hbWU6AFN5bWJvbGljIExpbmsAU3ltYm9saWMgbGluayB0aGF0IHlvdSBoYXZlIGN1cnJlbnRseSBzZWxlY3RlZABTeW50YXggRXJyb3IgcGFyc2luZyBDT0xPUiBpbiBjb25maWd1cmF0aW9uIGZpbGU6ClRoZSBsaW5lIG11c3QgYmUgb2YgdGhlIGZvcm06CkNPTE9SOklOVEVHRVI6Rk9SRUdST1VORDpCQUNLR1JPVU5ECgpIZXJlIEZPUkVHUk9VTkQgYW5kIEJBQ0tHUk9VTkQgbXVzdCBiZSBvbmUgb2Y6ClRoZSBzcGVjaWFsIHN0cmluZ3MgJ25vY29sb3InIG9yICdkZWZhdWx0Jywgb3IKAFN5bnRheCBFcnJvciBwYXJzaW5nIHN0eWxlIGluIGxzcyBmaWxlOgpbJXNdClRoZSBsaW5lIG11c3QgYmUgb2YgdGhlIGZvcm06Ck9CSkVDVDpNT05POkNPTE9SIChpZSBlbTpib2xkOmJyaWdodGJsdWU6d2hpdGUpCndoZXJlIE9CSkVDVCBpcyBvbmUgb2YgRU0sU1RST05HLEIsSSxVLEJMSU5LIGV0Yy4KCgBTeW50YXggZXJyb3IgaW4gV0FJUyBVUkwAU3lzdGVtIEluZGV4AFN5c3RlbSBlcnJvciAtIGZhaWx1cmUgdG8gZ2V0IHN0YXR1cy4AVEFCTEUgY2VudGVyIGRpc2FibGUuAFRBQkxFIGNlbnRlciBlbmFibGUuAFRFUk1JTkFMIFRZUEUgSVMgU0VUIFRPAFRSQVZFUlNBTCBXQVMgSU5URVJSVVBURUQAVGVsbmV0IGFjY2VzcyBpcyBkaXNhYmxlZCEAVGVsbmV0IHBvcnQgc3BlY2lmaWNhdGlvbnMgYXJlIGRpc2FibGVkLgBUZW1wb3JhcnkgVVJMIG9yIGxpc3Qgd291bGQgYmUgdG9vIGxvbmcuAFRlcm1pbmFsID0AVGVybWluYWwgZG9lcyBub3Qgc3VwcG9ydCBjb2xvcgBUZXJtaW5hbCBpbml0aWFsaXNhdGlvbiBmYWlsZWQgLSB1bmtub3duIHRlcm1pbmFsIHR5cGU/AFRlcm1pbmFsIHJlaW5pdGlhbGlzYXRpb24gZmFpbGVkIC0gdW5rbm93biB0ZXJtaW5hbCB0eXBlPwBUaGF0IGtleSByZXF1aXJlcyBBZHZhbmNlZCBVc2VyIG1vZGUuAFRoZSAnZCdvd25sb2FkIGNvbW1hbmQgaXMgY3VycmVudGx5IGRpc2FibGVkLgBUaGUgJ2UnZGl0IGNvbW1hbmQgaXMgY3VycmVudGx5IGRpc2FibGVkLgBUaGUgJ3AncmludCBjb21tYW5kIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4AVGhlIENhY2hlIEphciBpcyBlbXB0eS4AVGhlIENvb2tpZSBKYXIgaXMgZW1wdHkuAFRoZSBjaGFyYWN0ZXJfc2V0IGRlZmluaXRpb24gY29udHJvbHMgdGhlIHJlcHJlc2VudGF0aW9uIG9mIDggYml0CmNoYXJhY3RlcnMgZm9yIHlvdXIgdGVybWluYWwuICBJZiA4IGJpdCBjaGFyYWN0ZXJzIGRvIG5vdCBzaG93IHVwCmNvcnJlY3RseSBvbiB5b3VyIHNjcmVlbiB5b3UgbWF5IHRyeSBjaGFuZ2luZyB0byBhIGRpZmZlcmVudCA4IGJpdApzZXQgb3IgdXNpbmcgdGhlIDcgYml0IGNoYXJhY3RlciBhcHByb3hpbWF0aW9ucy4KQ3VycmVudCB2YWxpZCBjaGFyYWN0ZXJzIHNldHMgYXJlOgoAVGhlIGNvb2tpZSBoYXMgYmVlbiBlYXRlbiEAVGhlIGN1cnJlbnQgbGluayBpcyBub3QgaW4gYSBGT1JNAFRoZSBkb21haW4gaGFzIGJlZW4gZWF0ZW4hAFRoZSBmaWxlX3NvcnRpbmdfbWV0aG9kIHNwZWNpZmllcyB3aGljaCB2YWx1ZSB0byBzb3J0IG9uIHdoZW4gdmlld2luZwpmaWxlIGxpc3RzIHN1Y2ggYXMgRlRQIGRpcmVjdG9yaWVzLiAgVGhlIG9wdGlvbnMgYXJlOgogICBCWV9GSUxFTkFNRSAtLSBzb3J0cyBvbiB0aGUgbmFtZSBvZiB0aGUgZmlsZQogICBCWV9UWVBFICAgICAtLSBzb3J0cyBvbiB0aGUgdHlwZSBvZiB0aGUgZmlsZQogICBCWV9TSVpFICAgICAtLSBzb3J0cyBvbiB0aGUgc2l6ZSBvZiB0aGUgZmlsZQogICBCWV9EQVRFICAgICAtLSBzb3J0cyBvbiB0aGUgZGF0ZSBvZiB0aGUgZmlsZQoAVGhlIGZpcnN0IGZpZ3VyZSBhZnRlciBlYWNoIGVudHJ5IGlzIGl0cyByZWxhdGl2ZSBzY29yZSwgAFRoZSBmb2xsb3dpbmcgYWxsb3cgeW91IHRvIGRlZmluZSBzdWItYm9va21hcmsgZmlsZXMgYW5kIGRlc2NyaXB0aW9ucy4KVGhlIGZvcm1hdCBpcyBtdWx0aV9ib29rbWFyazxjYXBpdGFsX2xldHRlcj49PGZpbGVuYW1lPiw8ZGVzY3JpcHRpb24+ClVwIHRvIDI2IGJvb2ttYXJrIGZpbGVzIChmb3IgdGhlIEVuZ2xpc2ggY2FwaXRhbCBsZXR0ZXJzKSBhcmUgYWxsb3dlZC4KV2Ugc3RhcnQgd2l0aCAibXVsdGlfYm9va21hcmtCIiBzaW5jZSAnQScgaXMgdGhlIGRlZmF1bHQgKHNlZSBhYm92ZSkuCgBUaGUgZm9sbG93aW5nIGRhdGEgd2VyZSBkZXJpdmVkIGR1cmluZyB0aGUgYXV0b21hdGljIGNvbmZpZ3VyYXRpb24vYnVpbGQKcHJvY2VzcyBvZiB0aGlzIGNvcHkgb2YgTHlueC4gIFdoZW4gcmVwb3J0aW5nIGEgYnVnLCBwbGVhc2UgaW5jbHVkZSBhIGNvcHkKb2YgdGhpcyBwYWdlLgBUaGUgZm9sbG93aW5nIGRhdGEgd2VyZSB1c2VkIGFzIGF1dG9tYXRpY2FsbHktY29uZmlndXJlZCBjb21waWxlLXRpbWUKZGVmaW5pdGlvbnMgd2hlbiB0aGlzIGNvcHkgb2YgTHlueCB3YXMgYnVpbHQuAFRoZSBmb2xsb3dpbmcgaXMgcmVhZCBmcm9tIHlvdXIgbHlueC5jZmcgZmlsZS4AVGhlIGxpbmsgICAlcyA6PzogJXMgCgBUaGUgbWF4aW11bSB0ZW1wb3JhcnkgZmlsZSBjb3VudCBoYXMgYmVlbiByZWFjaGVkIQBUaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhpcyB0aW1lLgBUaGUgc2VsZWN0ZWQgaXRlbSBpcyBub3QgYSBkaXJlY3RvcnkhICBSZXF1ZXN0IGlnbm9yZWQuAFRoZSBzZWxlY3RlZCBpdGVtIGlzIG5vdCBhIGZpbGUgb3IgYSBkaXJlY3RvcnkhICBSZXF1ZXN0IGlnbm9yZWQuAFRoZSBzcGVjaWZpZWQgbmFtZSBpcyBhbHJlYWR5IGluIHVzZSEgIFJlcXVlc3QgaWdub3JlZC4AVGhlIHZpc2l0ZWRfbGlua3Mgc2V0dGluZyBjb250cm9scyBob3cgTHlueCBvcmdhbml6ZXMgdGhlIGluZm9ybWF0aW9uCmluIHRoZSBWaXNpdGVkIExpbmtzIFBhZ2UuCgBUaGVyZSBhcmUgbm8gbGlua3MgYWJvdmUgdGhpcyBsaW5lIG9mIHRoZSBkb2N1bWVudC4AVGhlcmUgYXJlIG5vIGxpbmtzIGJlbG93IHRoaXMgbGluZSBvZiB0aGUgZG9jdW1lbnQuAFRoZXJlIGFyZSBubyBsaW5rcyBpbiB0aGlzIGJvb2ttYXJrIGZpbGUhAFRoZXJlIGFyZSBubyByZWZlcmVuY2VzIGZyb20gdGhpcyBkb2N1bWVudC4AVGhlcmUgYXJlIG9ubHkgaGlkZGVuIGxpbmtzIGZyb20gdGhpcyBkb2N1bWVudC4AVGhlcmUgaXMgYWxyZWFkeSBhIGRpcmVjdG9yeSB3aXRoIHRoYXQgbmFtZSEgIFJlcXVlc3QgaWdub3JlZC4AVGhlcmUgaXMgYWxyZWFkeSBhIGZpbGUgd2l0aCB0aGF0IG5hbWUhICBSZXF1ZXN0IGlnbm9yZWQuAFRoZXJlIGlzIG5vcm1hbGx5IG5vIG5lZWQgdG8gZWRpdCB0aGlzIGZpbGUgbWFudWFsbHksIHNpbmNlIHRoZSBkZWZhdWx0cwpoZXJlIGNhbiBiZSBjb250cm9sbGVkIGZyb20gdGhlIE9wdGlvbnMgU2NyZWVuLCBhbmQgdGhlIG5leHQgdGltZSBvcHRpb25zCmFyZSBzYXZlZCBmcm9tIHRoZSBPcHRpb25zIFNjcmVlbiB0aGlzIGZpbGUgd2lsbCBiZSBjb21wbGV0ZWx5IHJld3JpdHRlbi4KWW91IGhhdmUgYmVlbiB3YXJuZWQuLi4KCklmIHlvdSBhcmUgbG9va2luZyBmb3IgdGhlIGdlbmVyYWwgY29uZmlndXJhdGlvbiBmaWxlIC0gaXQgaXMgbm9ybWFsbHkKY2FsbGVkICJseW54LmNmZyIuICBJdCBoYXMgZGlmZmVyZW50IGNvbnRlbnQgYW5kIGEgZGlmZmVyZW50IGZvcm1hdC4KSXQgaXMgbm90IHRoaXMgZmlsZS4KAFRoaXMgY2xpZW50IGRvZXMgbm90IGNvbnRhaW4gc3VwcG9ydCBmb3IgSFRUUFMgVVJMcy4AVGhpcyBjbGllbnQgZG9lcyBub3QgY29udGFpbiBzdXBwb3J0IGZvciBTTkVXUyBVUkxzLgBUaGlzIGNsaWVudCBkb2VzIG5vdCBjb250YWluIHN1cHBvcnQgZm9yIHBvc3RpbmcgdG8gbmV3cyB3aXRoIFNTTC4AVGhpcyBjbGllbnQgZG9lc24ndCBrbm93IGhvdyB0byBjb21wb3NlIGF1dGhvcml6YXRpb24gaW5mb3JtYXRpb24gZm9yIHNjaGVtZQBUaGlzIGNsaWVudCBkb2Vzbid0IGtub3cgaG93IHRvIGNvbXBvc2UgcHJveHkgYXV0aG9yaXphdGlvbiBpbmZvcm1hdGlvbiBmb3Igc2NoZW1lAFRoaXMgZGlyZWN0b3J5IGlzIG5vdCByZWFkYWJsZS4AVGhpcyBmZWF0dXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQhAFRoaXMgZmllbGQgY2Fubm90IGJlIChlKWRpdGVkIHdpdGggYW4gZXh0ZXJuYWwgZWRpdG9yLgBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3BsYXllZCBvbiB0aGlzIHRlcm1pbmFsLgBUaGlzIGZpbGUgY2Fubm90IGJlIGRpc3BsYXllZCBvbiB0aGlzIHRlcm1pbmFsOiAgRClvd25sb2FkLCBvciBDKWFuY2VsAFRoaXMgZmlsZSBjb250YWlucyBvcHRpb25zIHNhdmVkIGZyb20gdGhlIEx5bnggT3B0aW9ucyBTY3JlZW4gKG5vcm1hbGx5CndpdGggdGhlICc+JyBrZXkpLgoKAFRoaXMgZmlsZSBjb250YWlucyBvcHRpb25zIHNhdmVkIGZyb20gdGhlIEx5bnggT3B0aW9ucyBTY3JlZW4gKG5vcm1hbGx5CndpdGggdGhlICdvJyBrZXkpLiAgVG8gc2F2ZSBvcHRpb25zIHdpdGggdGhhdCBzY3JlZW4sIHlvdSBtdXN0IHNlbGVjdCB0aGUKY2hlY2tib3g6CgBUaGlzIGlzIGEgbGluayBmb3Igc2VhcmNoaW5nIHRoZSAAVGhpcyBpcyBhIHNlYXJjaGFibGUgaW5kZXguICBVc2UgJXMgdG8gc2VhcmNoLgBUaGlzIG1lc3NhZ2Ugd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5AFRoaXMgc3BlY2lhbCBVUkwgY2Fubm90IGJlIGEgZm9ybSBBQ1RJT04hAFRoaXMgc3BlY2lhbCBVUkwgY2Fubm90IGJlIGRvd25sb2FkZWQhAFRoaXMgc3BlY2lhbCBVUkwgaXMgbm90IGFsbG93ZWQgaW4gZXh0ZXJuYWwgZG9jdW1lbnRzIQBUaG91Z2h0IHlvdSBtaWdodCB3YW50IHRvIGtub3cuAFRpdGxlOiAAVG9vIG1hbnkgdGVtcGZpbGVzAFRvdGFsIGZyZWVzAFRvdGFsIG1hbGxvY3MAVG90YWwgbWVtb3J5IGxlYWthZ2UgdGhpcyBydW46AFRyYWNlIExvZyBvcGVuIGZhaWxlZC4gIFRyYWNlIG9mZiEAVHJhY2UgT0ZGIQBUcmFjZSBPTiEAVHJhY2Ugbm90IHN1cHBvcnRlZABUcmFuc2ZlcnJlZCAlZCBieXRlcwBUcmFuc2ZlcnJlZCAlZCBieXRlcyAoJTVkKQBUcmltIGJsYW5rIGxpbmVzAFR5cGUgRVhJVCB0byByZXR1cm4gdG8gTHlueC4KAFR5cGUgb2YgU2VhcmNoAFVOTU9ESUZJQUJMRSBjaG9pY2UgbGlzdC4gIFVzZSByZXR1cm4gb3IgYXJyb3cga2V5cyB0byByZXZpZXcgb3IgbGVhdmUuAFVOTU9ESUZJQUJMRSBmaWxlIGVudHJ5IGZpZWxkLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AVU5NT0RJRklBQkxFIGZvcm0gY2hlY2tib3guICBVc2UgVVAgb3IgRE9XTiBhcnJvd3Mgb3IgdGFiIHRvIG1vdmUgb2ZmLgBVTk1PRElGSUFCTEUgZm9ybSBmaWVsZC4gIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAFVOTU9ESUZJQUJMRSBmb3JtIHBhc3N3b3JkLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AVU5NT0RJRklBQkxFIGZvcm0gcmFkaW8gYnV0dG9uLiAgVXNlIFVQIG9yIERPV04gYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZi4AVU5NT0RJRklBQkxFIGZvcm0gdGV4dCBmaWVsZC4gIFVzZSBVUCBvciBET1dOIGFycm93cyBvciB0YWIgdG8gbW92ZSBvZmYuAFVOTU9ESUZJQUJMRSBvcHRpb24gbGlzdC4gIFVzZSByZXR1cm4gb3IgYXJyb3cga2V5cyB0byByZXZpZXcgb3IgbGVhdmUuAFVOVkVSSUZJRUQgY29ubmVjdGlvbiB0byAlcyAoY2VydD0lcykAVVJMIGhhcyBhIGJhZCBwb3J0IGZpZWxkLgBVUkwgaXMgbm90IGluIHN0YXJ0aW5nIHJlYWxtIQBVUkwgdG8gb3BlbjogAFVSTCB0b28gbG9uZwBVUkw6AFVSTDogJXMAVVNBR0U6ICVzIFtvcHRpb25zXSBbZmlsZV0KAFVTRU5FVCBuZXdzIGFjY2VzcyBpcyBkaXNhYmxlZCEAVW5hYmxlIHRvICVzIGR1ZSB0byBzeXN0ZW0gZXJyb3IhAFVuYWJsZSB0byBhY2Nlc3MgV1dXIGZpbGUhISEAVW5hYmxlIHRvIGFjY2VzcyBjZ2kgc2NyaXB0AFVuYWJsZSB0byBhY2Nlc3MgZG9jdW1lbnQhAFVuYWJsZSB0byBhY2Nlc3MgZG9jdW1lbnQuAFVuYWJsZSB0byBjb25uZWN0IHRvIEZUUCBob3N0LgBVbmFibGUgdG8gY29ubmVjdCB0byByZW1vdGUgaG9zdC4AVW5hYmxlIHRvIGNvcHkgdGVtcG9yYXJ5IGZpbGUgZm9yIGRlbGV0aW9uIG9mIGxpbmsuAFVuYWJsZSB0byBjcmVhdGUgcG9wdXAgd2luZG93IQBVbmFibGUgdG8gZG93bmxvYWQgZmlsZS4AVW5hYmxlIHRvIGZvbGxvdyBsaW5rAFVuYWJsZSB0byBnZXQgc3RhdHVzIG9mICclcycuAFVuYWJsZSB0byBsb2NhdGUgcmVtb3RlIGhvc3QgJXMuAFVuYWJsZSB0byBtYWtlIGNvbm5lY3Rpb24AVW5hYmxlIHRvIG9wZW4gYm9va21hcmsgZmlsZSBmb3IgZGVsZXRpb24gb2YgbGluay4AVW5hYmxlIHRvIG9wZW4gYm9va21hcmsgZmlsZSwgdXNlICdhJyB0byBzYXZlIGEgbGluayBmaXJzdABVbmFibGUgdG8gb3BlbiBjb21tYW5kIGZpbGUuAFVuYWJsZSB0byBvcGVuIHBlcm1pdCBvcHRpb25zIGZpbGUAVW5hYmxlIHRvIG9wZW4gcHJpbnQgb3B0aW9ucyBmaWxlAFVuYWJsZSB0byBvcGVuIHJlamVjdCBmaWxlLgBVbmFibGUgdG8gb3BlbiBzY3JhdGNoIGZpbGUgZm9yIGRlbGV0aW9uIG9mIGxpbmsuAFVuYWJsZSB0byBvcGVuIHRlbXBmaWxlAFVuYWJsZSB0byBvcGVuIHRlbXBmaWxlIGZvciBYIE1vc2FpYyBob3RsaXN0IGNvbnZlcnNpb24uAFVuYWJsZSB0byBvcGVuIHRlbXBvcmFyeSBmaWxlIGZvciBtYWlsdG8gVVJMIQBVbmFibGUgdG8gb3BlbiB0cmF2ZXJzYWwgZXJyb3JzIG91dHB1dCBmaWxlAFVuYWJsZSB0byBvcGVuIHRyYXZlcnNhbCBmaWxlLgBVbmFibGUgdG8gb3BlbiB0cmF2ZXJzYWwgZm91bmQgZmlsZS4AVW5hYmxlIHRvIHJlb3BlbiB0ZW1wb3JhcnkgZmlsZSBmb3IgZGVsZXRpb24gb2YgbGluay4AVW5hYmxlIHRvIHNhdmUgT3B0aW9ucyEAVW5hYmxlIHRvIHNldCB1cCBjb25uZWN0aW9uLgBVbmFibGUgdG8gdXBsb2FkIGZpbGUuAFVuZGVybGluZSBsaW5rcwBVbmV4cGVjdGVkIGFjY2VzcyBwcm90b2NvbCBmb3IgdGhpcyBVUkwgc2NoZW1lLgBVbmV4cGVjdGVkIGZhaWx1cmUgLSB1bmFibGUgdG8gZmluZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvcgBVbmV4cGVjdGVkIG5ldHdvcmsgcmVhZCBlcnJvcjsgY29ubmVjdGlvbiBhYm9ydGVkLgBVbmV4cGVjdGVkIG5ldHdvcmsgd3JpdGUgZXJyb3I7IGNvbm5lY3Rpb24gYWJvcnRlZC4AVW5rbm93biBvciBhbWJpZ3VvdXMgY29tbWFuZABVbmtub3duIHN0YXR1cyByZXBseSBmcm9tIHNlcnZlciEAVW5zdXBwb3J0ZWQgVVJMIHNjaGVtZSEAVW5zdXBwb3J0ZWQgZGF0YTogVVJMISAgVXNlIFNIT1dJTkZPLCBmb3Igbm93LgBVcCB0byAAVXBsb2FkIE9wdGlvbnMAVXBsb2FkIFRvOgBVcGxvYWQgb3B0aW9uczoAVXNlICItc3RkaW4iIG9yICItIiB0byB0ZWxsIGhvdyB0byBoYW5kbGUgcGlwZWQgaW5wdXQuCgBVc2UgIkxfeV9uX3giIG9yICJMeW54IiBpbiBVc2VyLUFnZW50LCBvciBpdCBsb29rcyBsaWtlIGludGVudGlvbmFsIGRlY2VwdGlvbiEAVXNlICVzIHRvIGludm9rZSB0aGUgT3B0aW9ucyBtZW51IQBVc2UgQ29udHJvbC1SIHRvIHJlc3VibWl0IHRoZSBjdXJyZW50IHF1ZXJ5LgBVc2UgSFRNTDUgY2hhcnNldCByZXBsYWNlbWVudHMAVXNlIFBhc3NpdmUgRlRQAFVzZSBhIGZpbGVwYXRoIG9mZiB5b3VyIGhvbWUgZGlyZWN0b3J5IQBVc2UgYSBmaWxlcGF0aCBvZmYgeW91ciBsb2dpbiBkaXJlY3RvcnkgaW4gU0hFTEwgc3ludGF4IQBVc2UgYXJyb3dzIG9yIHRhYiB0byBtb3ZlIG9mZiBvZiBmaWVsZC4AVXNlIGxvY2FsZS1iYXNlZCBjaGFyYWN0ZXIgc2V0AFVzZXIgbW9kZQBVc2VyLUFnZW50IGhlYWRlcgBVc2VyLUFnZW50IHN0cmluZyBkb2VzIG5vdCBjb250YWluICJMeW54IiBvciAiTF95X25feCIAVXNlci9wYXNzd29yZCBjb250YWlucyBvbmx5IHB1bmN0dWF0aW9uOiAlcwBVc2VyL3Bhc3N3b3JkIG1heSBiZSBjb25mdXNlZCB3aXRoIGhvc3RuYW1lOiAnJXMnIChlLmcsICclcycpAFVzZXJuYW1lIGZvciAnJXMnIGF0ICVzICclcyVzJzoAVXNlcm5hbWUgZm9yIG5ld3MgaG9zdCAnJXMnOgBVc2VybmFtZToAVXNlcm5hbWU6IABVc2luZyAlcwBWSSBrZXlzAFZhbHVlIGFjY2VwdGVkIQBWYWx1ZSBhY2NlcHRlZCEgLS0gV0FSTklORzogTHlueCBpcyBOT1QgY29uZmlndXJlZCBmb3IgWFdJTkRPV1MhAFZhbHVlIGFjY2VwdGVkISAtLSBXQVJOSU5HOiBMeW54IGlzIGNvbmZpZ3VyZWQgZm9yIFhXSU5ET1dTIQBWZXJib3NlIGltYWdlcwBWZXJpZmllZCBjb25uZWN0aW9uIHRvICVzIChjZXJ0PSVzKQBWZXJpZmllZCBjb25uZWN0aW9uIHRvICVzIChzdWJqPSVzKQBWZXJ5IGxvbmcgbGluZXMgaGF2ZSBiZWVuIHRydW5jYXRlZCEAVmlldyB0ZW1wb3JhcnkgZmlsZQBWaWV3IHRoZSBmaWxlIABWaWV3aW5nIHByZXBhcnNlZCBzb3VyY2UuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbWFpbCBpdD8AVmlzaWJsZSBsaW5rczoAVmlzaXRlZCBMaW5rcyBQYWdlAFZpc2l0ZWQgUGFnZXMAV0FJUyBJbmRleDogAFdBSVMgU2VhcmNoIG9mICIAV2FybiwgcG9pbnQgdG8gdHJhY2UtZmlsZQBXYXJuaW5nISAgQ29udHJvbCBjb2RlcyBpbiBtYWlsIGFkZHJlc3MgcmVwbGFjZWQgYnkgPwBXYXJuaW5nISAgVVVEZWNvZGVkIGZpbGUgd2lsbCBleGlzdCBpbiB0aGUgZGlyZWN0b3J5IHlvdSBzdGFydGVkIEx5bnguAFdhcm5pbmc6AFdhcm5pbmc6IENhbm5vdCB0cmFuc2NvZGUgZm9ybSBkYXRhIHRvIGNoYXJzZXQgJXMhAFdlbGNvbWUAV29ybGQ6AFdyYXAgbGluZXMgdG8gZml0IGRpc3BsYXllZCBhcmVhPwBYIERpc3BsYXkAWS9OL0EvVgBZb3UgTVVTVCBkZWZpbmUgYSB2YWxpZCBUTVAgb3IgVEVNUCBhcmVhIQBZb3UgYXJlIGFscmVhZHkgYXQgbWFpbiBzY3JlZW4hAFlvdSBhcmUgYWxyZWFkeSBhdCBwYWdlICVkIG9mIHRoaXMgZG9jdW1lbnQuAFlvdSBhcmUgYWxyZWFkeSBhdCBwYWdlICVkIG9mIHRoaXMgb3B0aW9uIGxpc3QuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZG9jdW1lbnQuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgb3B0aW9uIGxpc3QuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgZW5kIG9mIHRoaXMgZG9jdW1lbnQuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgZW5kIG9mIHRoaXMgb3B0aW9uIGxpc3QuAFlvdSBhcmUgYWxyZWFkeSBhdCB0aGUgZmlyc3QgZG9jdW1lbnQAWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIGJvb2ttYXJrIGZpbGUhAFlvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMgc2V0dGluZy4AWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2Ugd2hpY2ggZWRpdG9yIHRvIHVzZSEAWW91IGFyZSBub3QgYWxsb3dlZCB0byBnb3RvICIlcyIgVVJMcwBZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIGVkaXQgdGhpcyBmaWxlLgBZb3UgYXJlIG5vdCBvbiBhIGZvcm0gc3VibWlzc2lvbiBidXR0b24gb3Igbm9ybWFsIGxpbmsuAFlvdSBhcmUgc2VuZGluZyBhIGNvbW1lbnQgdG86CiAgAFlvdSBhcmUgc2VuZGluZyBhIG1lc3NhZ2Ugd2l0aCBib2R5IHRvOgogIABZb3UgY2Fubm90IGRvd25sb2FkIGEgbWFpbHRvOiBsaW5rLgBZb3UgY2Fubm90IGRvd25sb2FkIGEgcHJpbnRpbmcgb3B0aW9uLgBZb3UgY2Fubm90IGRvd25sb2FkIGFuIGlucHV0IGZpZWxkLgBZb3UgY2Fubm90IGRvd25sb2FkIGFuIHBlcm1pdCBvcHRpb24uAFlvdSBjYW5ub3QgZG93bmxvYWQgYW4gdXBsb2FkIG9wdGlvbi4AWW91IGNhbm5vdCBkb3dubG9hZCBjb29raWVzLgBZb3UgY2Fubm90IGVkaXQgRmlsZSBNYW5hZ2VtZW50IFVSTHMAWW91IGhhdmUgZW50ZXJlZCBhbiBpbnZhbGlkIGxpbmsgbnVtYmVyLgBZb3UgaGF2ZSBlbnRlcmVkIGFuIGludmFsaWQgb3B0aW9uIG51bWJlci4AWW91IG1heSBhbHNvIHVzZSB0aGUgY29tbWFuZC1saW5lIG9wdGlvbiAiLWZvcm1zX29wdGlvbnMiLCB3aGljaCBkaXNwbGF5cwp0aGUgc2ltcGxlciBPcHRpb25zIE1lbnUgaW5zdGVhZC4gIFNhdmUgb3B0aW9ucyB3aXRoIHRoYXQgdXNpbmcgdGhlICc+JyBrZXkuCgoAWW91IG11c3QgdGhlbiBzYXZlIHRoZSBzZXR0aW5ncyB1c2luZyB0aGUgbGluayBvbiB0aGUgbGluZSBhYm92ZSB0aGUKY2hlY2tib3g6CgBZb3UgbXVzdCB1c2UgYSB2dDEwMCwgMjAwLCBldGMuIHRlcm1pbmFsIHdpdGggdGhpcyBwcm9ncmFtLgBZb3Ugc2VsZWN0ZWQ6AFlvdSB2aXNpdGVkIChQT1NUcywgYm9va21hcmssIG1lbnUgYW5kIGxpc3QgZmlsZXMgZXhjbHVkZWQpOgBZb3Ugd2lsbCBiZSBwb3N0aW5nIHRvOgBZb3VyICclcycgdGVybWluYWwgZG9lcyBub3Qgc3VwcG9ydCBjb2xvci4AWW91ciBUZXJtaW5hbCB0eXBlIGlzIHVua25vd24hAFlvdXIgcHJpbWFyeSBjb25maWd1cmF0aW9uAFlvdXIgcmVjZW50IHN0YXR1c2xpbmUgbWVzc2FnZXMAYWNjZXB0IGFsbABhY2NlcHRfYWxsX2Nvb2tpZXMgYWxsb3dzIHRoZSB1c2VyIHRvIHRlbGwgTHlueCB0byBhdXRvbWF0aWNhbGx5CmFjY2VwdCBhbGwgY29va2llcyBpZiBkZXNpcmVkLiAgVGhlIGRlZmF1bHQgaXMgIkZBTFNFIiB3aGljaCB3aWxsCnByb21wdCBmb3IgZWFjaCBjb29raWUuICBTZXQgYWNjZXB0X2FsbF9jb29raWVzIHRvICJUUlVFIiB0byBhY2NlcHQKYWxsIGNvb2tpZXMuCgBhbm9uZnRwX3Bhc3N3b3JkIGFsbG93cyB0aGUgdXNlciB0byB0ZWxsIEx5bnggdG8gdXNlIHRoZSBwZXJzb25hbAplbWFpbCBhZGRyZXNzIGFzIHRoZSBwYXNzd29yZCBmb3IgYW5vbnltb3VzIGZ0cC4gIElmIG5vIHZhbHVlIGlzIGdpdmVuLApMeW54IHdpbGwgdXNlIHRoZSBwZXJzb25hbCBlbWFpbCBhZGRyZXNzLiAgU2V0IGFub25mdHBfcGFzc3dvcmQKdG8gYSBkaWZmZXJlbnQgdmFsdWUgaWYgeW91IGNob29zZS4KAGFzIGxhYmVscwBhcyBsaW5rcwBhc2sgdXNlcgBib29rbWFya19maWxlIHNwZWNpZmllcyB0aGUgbmFtZSBhbmQgbG9jYXRpb24gb2YgdGhlIGRlZmF1bHQgYm9va21hcmsKZmlsZSBpbnRvIHdoaWNoIHRoZSB1c2VyIGNhbiBwYXN0ZSBsaW5rcyBmb3IgZWFzeSBhY2Nlc3MgYXQgYSBsYXRlcgpkYXRlLgoAYnl0ZXMAYnppcDIAY2FsbGVkICIlcyIKAGNhcGl0YWwgbGV0dGVyAGNkIHRvOgBjZ2kgc3VwcG9ydCBoYXMgYmVlbiBkaXNhYmxlZC4AY2hhcnNldCBmb3IgdGhpcyBkb2N1bWVudCBzcGVjaWZpZWQgZXhwbGljaXRseSwgc29ycnkuLi4AY2hlY2tib3gAY2xvc2UgbWFzdGVyIHNvY2tldABjb2xsYXBzZQBjb2xvci1zdHlsZSBjb25maWd1cmF0aW9uAGNvbXBpbGUgdGltZSBvcHRpb25zAGNvbXByZXNzAGNvbm5lY3QgZm9yIGRhdGEAY29va2llX2FjY2VwdF9kb21haW5zIGFuZCBjb29raWVfcmVqZWN0X2RvbWFpbnMgYXJlIGNvbW1hLWRlbGltaXRlZApsaXN0cyBvZiBkb21haW5zIGZyb20gd2hpY2ggTHlueCBzaG91bGQgYXV0b21hdGljYWxseSBhY2NlcHQgb3IgcmVqZWN0CmFsbCBjb29raWVzLiAgSWYgYSBkb21haW4gaXMgc3BlY2lmaWVkIGluIGJvdGggb3B0aW9ucywgcmVqZWN0aW9uIHdpbGwKdGFrZSBwcmVjZWRlbmNlLiAgVGhlIGFjY2VwdF9hbGxfY29va2llcyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSBhbnkKc2V0dGluZ3MgbWFkZSBoZXJlLgoAY29va2llX2RvbWFpbl9mbGFnX3NldCBlcnJvciwgYWJvcnRpbmcgcHJvZ3JhbQBjb29raWVfZmlsZSBzcGVjaWZpZXMgdGhlIGZpbGUgZnJvbSB3aGljaCB0byByZWFkIHBlcnNpc3RlbnQgY29va2llcy4KVGhlIGRlZmF1bHQgaXMgfi8AY29va2llX2xvb3NlX2ludmFsaWRfZG9tYWlucywgY29va2llX3N0cmljdF9pbnZhbGlkX2RvbWFpbnMsIGFuZApjb29raWVfcXVlcnlfaW52YWxpZF9kb21haW5zIGFyZSBjb21tYS1kZWxpbWl0ZWQgbGlzdHMgb2Ygd2hpY2ggZG9tYWlucwpzaG91bGQgYmUgc3ViamVjdGVkIHRvIHZhcnlpbmcgZGVncmVlcyBvZiB2YWxpZGl0eSBjaGVja2luZy4gIElmIGEKZG9tYWluIGlzIHNldCB0byBzdHJpY3QgY2hlY2tpbmcsIHN0cmljdCBjb25mb3JtYW5jZSB0byBSRkMyMTA5IHdpbGwKYmUgYXBwbGllZC4gIEEgZG9tYWluIHdpdGggbG9vc2UgY2hlY2tpbmcgd2lsbCBiZSBhbGxvd2VkIHRvIHNldCBjb29raWVzCndpdGggYW4gaW52YWxpZCBwYXRoIG9yIGRvbWFpbiBhdHRyaWJ1dGUuICBBbGwgZG9tYWlucyB3aWxsIGRlZmF1bHQgdG8KcXVlcnlpbmcgdGhlIHVzZXIgZm9yIGFuIGludmFsaWQgcGF0aCBvciBkb21haW4uCgBkZWZsYXRlAGRldmVsb3BtZW50IHZlcnNpb24AZGlyX2xpc3Rfb3JkZXIgc3BlY2lmaWVzIHRoZSBkaXJlY3RvcnkgbGlzdCBvcmRlciB1bmRlciBESVJFRF9TVVBQT1JUCihpZiBpbXBsZW1lbnRlZCkuICBUaGUgZGVmYXVsdCBpcyAiT1JERVJfQllfTkFNRSIKAGRpcl9saXN0X3N0eWxlcyBzcGVjaWZpZXMgdGhlIGRpcmVjdG9yeSBsaXN0IHN0eWxlIHVuZGVyIERJUkVEX1NVUFBPUlQKKGlmIGltcGxlbWVudGVkKS4gIFRoZSBkZWZhdWx0IGlzICJNSVhFRF9TVFlMRSIsIHdoaWNoIHNvcnRzIGJvdGgKZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvZ2V0aGVyLiAgIkZJTEVTX0ZJUlNUIiBsaXN0cyBmaWxlcyBmaXJzdCBhbmQKIkRJUkVDVE9SSUVTX0ZJUlNUIiBsaXN0cyBkaXJlY3RvcmllcyBmaXJzdC4KAGZhaWxlZCB0byBjaGFuZ2UgZGlyZWN0b3J5AGZpbGUgZW50cnkgZmllbGQAZmlsZTogQUNUSU9OcyBhcmUgZGlzYWxsb3dlZCEAZmlsZTogVVJMcyB2aWEgYm9va21hcmtzIGFyZSBkaXNhbGxvd2VkIQBmaWxlOiBVUkxzIHZpYSBzZXJ2ZWQgbGlua3MgYXJlIGRpc2FsbG93ZWQhAGZpbGVfZWRpdG9yIHNwZWNpZmllcyB0aGUgZWRpdG9yIHRvIGJlIGludm9rZWQgd2hlbiBlZGl0aW5nIGxvY2FsIGZpbGVzCm9yIHNlbmRpbmcgbWFpbC4gIElmIG5vIGVkaXRvciBpcyBzcGVjaWZpZWQsIHRoZW4gZmlsZSBlZGl0aW5nIGlzIGRpc2FibGVkCnVubGVzcyBpdCBpcyBhY3RpdmF0ZWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBhbmQgdGhlIGJ1aWx0LWluIGxpbmUgZWRpdG9yCndpbGwgYmUgdXNlZCBmb3Igc2VuZGluZyBtYWlsLgoAZm9yIG1vcmUgY29tbWVudHMuAGZvciBydW50aW1lIG9wdGlvbnMAZm9yY2Ugbm8tcmVzcG9uc2UAZm9yY2UgeWVzLXJlc3BvbnNlAGZvcm0gdG8gcGVybWl0AGZvcm1zIG1vZGUAZ3ppcABoZXJlIGlzIGEgbGlzdCBvZiB0aGUgaGlzdG9yeSBzdGFjayBzbyB0aGF0IHlvdSBtYXkgcmVidWlsZABoaWRkZW4gZm9ybSBmaWVsZABpZ25vcmUAaW1hZ2Utc3VibWl0IGJ1dHRvbgBpbiB0aGUgZmlsZSAiJXMiIGNhbGxlZCAiJXMiCgBpbmNsdWRlZCBmcm9tICclcycuCgBpbnZhbGlkIGxpbmUtZWRpdG9yIHNlbGVjdGlvbiAlcyBmb3Iga2V5ICVzLCBzZWxlY3RpbmcgYWxsCgBpc3N1ZXIgaXMgbm90IGEgQ0EAa2V5IHJlbWFwcGluZyBvZiAlcyB0byAlcyBmYWlsZWQKAGtleSByZW1hcHBpbmcgb2YgJXMgdG8gJXMgZm9yICVzIGZhaWxlZAoAa2V5Z2VuIGZpZWxkAGxhdGVzdCByZWxlYXNlAGxpbmVlZGl0X21vZGUgc3BlY2lmaWVzIHRoZSBrZXkgYmluZGluZyB1c2VkIGZvciBpbnB1dHRpbmcgc3RyaW5ncyBpbgpwcm9tcHRzIGFuZCBmb3Jtcy4gIElmIGxpbmVlZGl0X21vZGUgaXMgc2V0IHRvICJEZWZhdWx0IEJpbmRpbmciIHRoZW4KdGhlIGZvbGxvd2luZyBjb250cm9sIGNoYXJhY3RlcnMgYXJlIHVzZWQgZm9yIG1vdmluZyBhbmQgZGVsZXRpbmc6CgogICAgICAgICAgICAgUHJldiAgTmV4dCAgICAgICBFbnRlciA9IEFjY2VwdCBpbnB1dAogICBNb3ZlIGNoYXI6IDwtICAgIC0+ICAgICAgICBeRyAgICA9IENhbmNlbCBpbnB1dAogICBNb3ZlIHdvcmQ6IF5QICAgIF5OICAgICAgICBeVSAgICA9IEVyYXNlIGxpbmUKIERlbGV0ZSBjaGFyOiBeSCAgICBeUiAgICAgICAgXkEgICAgPSBCZWdpbm5pbmcgb2YgbGluZQogRGVsZXRlIHdvcmQ6IF5CICAgIF5GICAgICAgICBeRSAgICA9IEVuZCBvZiBsaW5lCgpDdXJyZW50IGxpbmVlZGl0IG1vZGVzIGFyZToKAGxpbmVzAGx5bng6IENhbid0IGFjY2VzcyBzdGFydGZpbGUAbHlueDogUGFzc3dvcmQgcmVxdWlyZWQhISEAbHlueDogU3RhcnQgZmlsZSBjb3VsZCBub3QgYmUgZm91bmQgb3IgaXMgbm90IHRleHQvaHRtbCBvciB0ZXh0L3BsYWluAGx5bng6IFVzZXJuYW1lIGFuZCBQYXNzd29yZCByZXF1aXJlZCEhIQBtb2RlOgBtb3ZlICVzIHRvICVzAG5lJ1YnZXIgYWxsb3dpbmcgZnJvbSBkb21haW4gJyVzJy4AbmV4dCBzY3JlZW4Abm8Abm8gaXNzdWVyIHdhcyBmb3VuZABub3JtYWwAb3IgdG8gY2hhbmdlIGEgZG9tYWluJ3MgJ2FsbG93JyBzZXR0aW5nLgBwYWdlAHBhZ2VzAHBhc3N3b3JkIGVudHJ5IGZpZWxkAHBhc3N3b3JkIGZvciByZWFsbSAlcyB1c2VyICVzIGNoYW5nZWQAcGVyc2lzdGVudCBjb29raWVzIHN0YXRlIHdpbGwgYmUgY2hhbmdlZCBpbiBuZXh0IHNlc3Npb24gb25seS4AcGVyc29uYWxfbWFpbF9hZGRyZXNzIHNwZWNpZmllcyB5b3VyIHBlcnNvbmFsIG1haWwgYWRkcmVzcy4gIFRoZQphZGRyZXNzIHdpbGwgYmUgc2VudCBkdXJpbmcgSFRUUCBmaWxlIHRyYW5zZmVycyBmb3IgYXV0aG9yaXphdGlvbiBhbmQKbG9nZ2luZyBwdXJwb3NlcywgYW5kIGZvciBtYWlsZWQgY29tbWVudHMuCklmIHlvdSBkbyBub3Qgd2FudCB0aGlzIGluZm9ybWF0aW9uIGdpdmVuIG91dCwgc2V0IHRoZSBOT19GUk9NX0hFQURFUgp0byBUUlVFIGluIGx5bnguY2ZnLCBvciB1c2UgdGhlIC1ub2Zyb20gY29tbWFuZCBsaW5lIHN3aXRjaC4gIFlvdSBhbHNvCmNvdWxkIGxlYXZlIHRoaXMgZmllbGQgYmxhbmssIGJ1dCB0aGVuIHlvdSB3b24ndCBoYXZlIGl0IGluY2x1ZGVkIGluCnlvdXIgbWFpbGVkIGNvbW1lbnRzLgoAcGVyc29uYWxfbWFpbF9uYW1lIHNwZWNpZmllcyB5b3VyIHBlcnNvbmFsIG5hbWUsIGZvciBtYWlsLiAgVGhlCm5hbWUgaXMgc2VudCBmb3IgbWFpbGVkIGNvbW1lbnRzLiAgTHlueCB3aWxsIHByb21wdCBmb3IgdGhpcywKc2hvd2luZyB0aGUgY29uZmlndXJlZCB2YWx1ZSBhcyBhIGRlZmF1bHQgd2hlbiBzZW5kaW5nIG1haWwuClRoaXMgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIGEgbmFtZSBwcm92aWRlZCBhcyBwYXJ0IG9mIHRoZQpwZXJzb25hbF9tYWlsX2FkZHJlc3MuCkx5bnggZG9lcyBub3Qgc2F2ZSB5b3VyIGNoYW5nZXMgdG8gdGhhdCBkZWZhdWx0IHZhbHVlIGFzIGEgc2lkZS1lZmZlY3QKb2Ygc2VuZGluZyBlbWFpbC4gIFRvIHVwZGF0ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgeW91IG11c3QgdXNlIHRoZSBvcHRpb25zCm1lbnUsIG9yIG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkuCgBwb3B1cCBtZW51AHByZS1yZWxlYXNlIHZlcnNpb24AcHJlZmVycmVkX2NoYXJzZXQgc3BlY2lmaWVzIHRoZSBjaGFyYWN0ZXIgc2V0IGluIE1JTUUgbm90YXRpb24gKGUuZy4sCklTTy04ODU5LTIsIElTTy04ODU5LTUpIHdoaWNoIEx5bnggd2lsbCBpbmRpY2F0ZSB5b3UgcHJlZmVyIGluIHJlcXVlc3RzCnRvIGh0dHAgc2VydmVycyB1c2luZyBhbiBBY2NlcHQtQ2hhcnNldCBoZWFkZXIuICBUaGUgdmFsdWUgc2hvdWxkIE5PVAppbmNsdWRlIElTTy04ODU5LTEgb3IgVVMtQVNDSUksIHNpbmNlIHRob3NlIHZhbHVlcyBhcmUgYWx3YXlzIGFzc3VtZWQKYnkgZGVmYXVsdC4gIE1heSBiZSBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LgpJZiBhIGZpbGUgaW4gdGhhdCBjaGFyYWN0ZXIgc2V0IGlzIGF2YWlsYWJsZSwgdGhlIHNlcnZlciB3aWxsIHNlbmQgaXQuCklmIG5vIEFjY2VwdC1DaGFyc2V0IGhlYWRlciBpcyBwcmVzZW50LCB0aGUgZGVmYXVsdCBpcyB0aGF0IGFueQpjaGFyYWN0ZXIgc2V0IGlzIGFjY2VwdGFibGUuICBJZiBhbiBBY2NlcHQtQ2hhcnNldCBoZWFkZXIgaXMgcHJlc2VudCwKYW5kIGlmIHRoZSBzZXJ2ZXIgY2Fubm90IHNlbmQgYSByZXNwb25zZSB3aGljaCBpcyBhY2NlcHRhYmxlCmFjY29yZGluZyB0byB0aGUgQWNjZXB0LUNoYXJzZXQgaGVhZGVyLCB0aGVuIHRoZSBzZXJ2ZXIgU0hPVUxEIHNlbmQKYW4gZXJyb3IgcmVzcG9uc2UsIHRob3VnaCB0aGUgc2VuZGluZyBvZiBhbiB1bmFjY2VwdGFibGUgcmVzcG9uc2UKaXMgYWxzbyBhbGxvd2VkLgoAcHJlZmVycmVkX2xhbmd1YWdlIHNwZWNpZmllcyB0aGUgbGFuZ3VhZ2UgaW4gTUlNRSBub3RhdGlvbiAoZS5nLiwgZW4sCmZyLCBtYXkgYmUgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpbiBkZWNyZWFzaW5nIHByZWZlcmVuY2UpCndoaWNoIEx5bnggd2lsbCBpbmRpY2F0ZSB5b3UgcHJlZmVyIGluIHJlcXVlc3RzIHRvIGh0dHAgc2VydmVycy4KSWYgYSBmaWxlIGluIHRoYXQgbGFuZ3VhZ2UgaXMgYXZhaWxhYmxlLCB0aGUgc2VydmVyIHdpbGwgc2VuZCBpdC4KT3RoZXJ3aXNlLCB0aGUgc2VydmVyIHdpbGwgc2VuZCB0aGUgZmlsZSBpbiBpdHMgZGVmYXVsdCBsYW5ndWFnZS4KAHByZXZpb3VzAHByb21wdCBub3JtYWxseQByYWRpbyBidXR0b24AcmFuZ2UgZW50cnkgZmllbGQAcmVhbGxvY2VkOgByZWxheGVkIChUYWdTb3VwIG1vZGUpAHJlbW90ZSAlcyBzZXNzaW9uOgByZW1vdmUgJXMAcmVzZXQgYnV0dG9uAHJldmlldy9lZGl0IEIpb29rbWFya3MgZmlsZXMAc2NyaXB0IGJ1dHRvbgBzZWxlY3RfcG9wdXBzIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBPUFRJT05zIGluIGEgU0VMRUNUIGJsb2NrIHdoaWNoCmxhY2tzIGEgTVVMVElQTEUgYXR0cmlidXRlIGFyZSBwcmVzZW50ZWQgYXMgYSB2ZXJ0aWNhbCBsaXN0IG9mIHJhZGlvCmJ1dHRvbnMgb3IgdmlhIGEgcG9wdXAgbWVudS4gIE5vdGUgdGhhdCBpZiB0aGUgTVVMVElQTEUgYXR0cmlidXRlIGlzCnByZXNlbnQgaW4gdGhlIFNFTEVDVCBzdGFydCB0YWcsIEx5bnggYWx3YXlzIHdpbGwgY3JlYXRlIGEgdmVydGljYWwgbGlzdApvZiBjaGVja2JveGVzIGZvciB0aGUgT1BUSU9Ocy4gIEEgdmFsdWUgb2YgIm9uIiB3aWxsIHNldCBwb3B1cCBtZW51cwphcyB0aGUgZGVmYXVsdCB3aGlsZSBhIHZhbHVlIG9mICJvZmYiIHdpbGwgc2V0IHVzZSBvZiByYWRpbyBib3hlcy4KVGhlIGRlZmF1bHQgY2FuIGJlIG92ZXJyaWRkZW4gdmlhIHRoZSAtcG9wdXAgY29tbWFuZCBsaW5lIHRvZ2dsZS4KAHNldHRpbmcgb2YgbGluZS1lZGl0b3IgYmluZGluZyBmb3Iga2V5ICVzICgweCV4KSBmb3IgJXMgZmFpbGVkCgBzZXR0aW5nIG9mIGxpbmUtZWRpdG9yIGJpbmRpbmcgZm9yIGtleSAlcyAoMHgleCkgdG8gMHgleCBmb3IgJXMgZmFpbGVkCgBzaG93IGZpbGVuYW1lAHNob3dfY29sb3Igc3BlY2lmaWVzIGhvdyB0byBzZXQgdGhlIGNvbG9yIG1vZGUgYXQgc3RhcnR1cC4gIEEgdmFsdWUgb2YKIm5ldmVyIiB3aWxsIGZvcmNlIGNvbG9yIG1vZGUgb2ZmICh0cmVhdCB0aGUgdGVybWluYWwgYXMgbW9ub2Nocm9tZSkKYXQgc3RhcnR1cCBldmVuIGlmIHRoZSB0ZXJtaW5hbCBhcHBlYXJzIHRvIGJlIGNvbG9yIGNhcGFibGUuICBBIHZhbHVlIG9mCiJhbHdheXMiIHdpbGwgZm9yY2UgY29sb3IgbW9kZSBvbiBldmVuIGlmIHRoZSB0ZXJtaW5hbCBhcHBlYXJzIHRvIGJlCm1vbm9jaHJvbWUsIGlmIHRoaXMgaXMgc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5IHVzZWQgdG8gYnVpbGQgbHlueC4KQSB2YWx1ZSBvZiAiZGVmYXVsdCIgd2lsbCB5aWVsZCB0aGUgYmVoYXZpb3Igb2YgYXNzdW1pbmcKYSBtb25vY2hyb21lIHRlcm1pbmFsIHVubGVzcyBjb2xvciBjYXBhYmlsaXR5IGlzIGluZmVycmVkIGF0IHN0YXJ0dXAKYmFzZWQgb24gdGhlIHRlcm1pbmFsIHR5cGUsIG9yIHRoZSAtY29sb3IgY29tbWFuZCBsaW5lIHN3aXRjaCBpcyB1c2VkLCBvcgp0aGUgQ09MT1JURVJNIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldC4gIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGFsd2F5cyBpcwp1c2VkIGluIGFub255bW91cyBhY2NvdW50cyBvciBpZiB0aGUgIm9wdGlvbl9zYXZlIiByZXN0cmljdGlvbiBpcyBzZXQuClRoZSBlZmZlY3Qgb2YgdGhlIHNhdmVkIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIHZpYQp0aGUgLWNvbG9yIGFuZCAtbm9jb2xvciBjb21tYW5kIGxpbmUgc3dpdGNoZXMuClRoZSBtb2RlIHNldCBhdCBzdGFydHVwIGNhbiBiZSBjaGFuZ2VkIHZpYSB0aGUgInNob3cgY29sb3IiIG9wdGlvbiBpbgp0aGUgJ28ncHRpb25zIG1lbnUuICBJZiB0aGUgb3B0aW9uIHNldHRpbmdzIGFyZSBzYXZlZCwgdGhlICJvbiIgYW5kCiJvZmYiICJzaG93IGNvbG9yIiBzZXR0aW5ncyB3aWxsIGJlIHRyZWF0ZWQgYXMgImRlZmF1bHQiLgoAc2hvd19jdXJzb3Igc3BlY2lmaWVzIHdoZXRoZXIgdG8gJ2hpZGUnIHRoZSBjdXJzb3IgdG8gdGhlIHJpZ2h0IChhbmQKYm90dG9tLCBpZiBwb3NzaWJsZSkgb2YgdGhlIHNjcmVlbiwgb3IgdG8gcGxhY2UgaXQgdG8gdGhlIGxlZnQgb2YgdGhlCmN1cnJlbnQgbGluayBpbiBkb2N1bWVudHMsIG9yIGN1cnJlbnQgb3B0aW9uIGluIHNlbGVjdCBwb3B1cCB3aW5kb3dzLgpQb3NpdGlvbmluZyB0aGUgY3Vyc29yIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJyZW50IGxpbmsgb3Igb3B0aW9uIGlzCmhlbHBmdWwgZm9yIHNwZWVjaCBvciBicmFpbGxlIGludGVyZmFjZXMsIGFuZCB3aGVuIHRoZSB0ZXJtaW5hbCBpcwpvbmUgd2hpY2ggZG9lcyBub3QgZGlzdGluZ3Vpc2ggdGhlIGN1cnJlbnQgbGluayBiYXNlZCBvbiBoaWdobGlnaHRpbmcKb3IgY29sb3IuICBBIHZhbHVlIG9mICJvbiIgd2lsbCBzZXQgcG9zaXRpb25pbmcgdG8gdGhlIGxlZnQgYXMgdGhlCmRlZmF1bHQgd2hpbGUgYSB2YWx1ZSBvZiAib2ZmIiB3aWxsIHNldCAnaGlkaW5nJyBvZiB0aGUgY3Vyc29yLgpUaGUgZGVmYXVsdCBjYW4gYmUgb3ZlcnJpZGRlbiB2aWEgdGhlIC1zaG93X2N1cnNvciBjb21tYW5kIGxpbmUgdG9nZ2xlLgoAc2hvd19kb3RmaWxlcyBzcGVjaWZpZXMgdGhhdCB0aGUgZGlyZWN0b3J5IGxpc3Rpbmcgc2hvdWxkIGluY2x1ZGUKImhpZGRlbiIgKGRvdCkgZmlsZXMvZGlyZWN0b3JpZXMuICBJZiBzZXQgIm9uIiwgdGhpcyB3aWxsIGJlCmhvbm9yZWQgb25seSBpZiBlbmFibGVkIHZpYSB1c2VyZGVmcy5oIGFuZC9vciBseW54LmNmZywgYW5kIG5vdApyZXN0cmljdGVkIHZpYSBhIGNvbW1hbmQgbGluZSBzd2l0Y2guICBJZiBkaXNwbGF5IG9mIGhpZGRlbiBmaWxlcwppcyBkaXNhYmxlZCwgY3JlYXRpb24gb2Ygc3VjaCBmaWxlcyB2aWEgTHlueCBhbHNvIGlzIGRpc2FibGVkLgoAc2l6ZToAc29ja2V0IGZhaWxlZC4Ac29ja2V0IGZhaWxlZDogZmFtaWx5ICVkIGFkZHIgJXMgcG9ydCAlcy4Ac29ja2V0IGZvciBtYXN0ZXIgc29ja2V0AHNvdXJjZQBzdHJpY3QgKFNvcnRhU0dNTCBtb2RlKQBzdWJtaXQgYnV0dG9uAHRhZ2dlZCBpdGVtOgB0YWdnZWQgaXRlbXM6AHRleHQgZW50cnkgYXJlYQB0ZXh0IGVudHJ5IGZpZWxkAHRleHQtc3VibWl0IGZpZWxkAHRoZSBVbml2ZXJzaXR5IG9mIEthbnNhcywgQ0VSTiwgYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4AdGhlIGNlcnRpZmljYXRlIGhhcyBiZWVuIHJldm9rZWQAdGhlIGNlcnRpZmljYXRlIGhhcyBubyBrbm93biBpc3N1ZXIAdGhlIGNlcnRpZmljYXRlIGlzIG5vdCB0cnVzdGVkAHRoZSBzZWNvbmQgaXMgdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgaXRlbS4AdGhpcyBkb2N1bWVudDoAdGhpcyBsaW5rAHRvdWNoICVzAHRyaW0tbGluZXMAdW5rbm93biBmaWVsZCBvciBsaW5rAHVua25vd24gZm9ybSBmaWVsZAB1bmtub3duIHJlc3RyaWN0aW9uAHVzZXJfbW9kZSBzcGVjaWZpZXMgdGhlIHVzZXJzIGxldmVsIG9mIGtub3dsZWRnZSB3aXRoIEx5bnguICBUaGUKZGVmYXVsdCBpcyAiTk9WSUNFIiB3aGljaCBkaXNwbGF5cyB0d28gZXh0cmEgbGluZXMgb2YgaGVscCBhdCB0aGUKYm90dG9tIG9mIHRoZSBzY3JlZW4gdG8gYWlkIHRoZSB1c2VyIGluIGxlYXJuaW5nIHRoZSBiYXNpYyBMeW54CmNvbW1hbmRzLiAgU2V0IHVzZXJfbW9kZSB0byAiSU5URVJNRURJQVRFIiB0byB0dXJuIG9mZiB0aGUgZXh0cmEgaW5mby4KVXNlICJBRFZBTkNFRCIgdG8gc2VlIHRoZSBVUkwgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBsaW5rIGF0IHRoZQpib3R0b20gb2YgdGhlIHNjcmVlbi4KAHVzZXJuYW1lIGZvciByZWFsbSAlcyBjaGFuZ2VkIGZyb20gJXMgdG8gJXMAd2FzIHJlcXVlc3RlZCBidXQgd2FzIG5vdCBhdmFpbGFibGUuAHllcwB5b3VyAA==
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 3
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
iso_3166-2.mo
105.26 KB
lrw-r--r--
2019-10-13 15:41:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
iso_3166_2.mo
105.26 KB
lrw-r--r--
2019-10-13 15:41:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
lynx.mo
130.83 KB
lrw-r--r--
2022-04-18 21:01:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).