### SYNC-TRANSFER 4/5 -- mit sync-entpacken.bat entpacken ### Base64 - NICHT von Hand bearbeiten. ### FILE: sync-check.js | 34903 Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQovLyBTb2xsLUxpc3RlIGRlciBEYXRlaWVuLCBkaWUgdm9t IGxhdWZlbmRlbiBTZXJ2ZXIgYWJydWZiYXIgc2VpbiBtdWVzc2VuLgovLwovLyBGZWxkZXI6Ci8v ICAgcGZhZCAgICAgICAgIOKAlCBVUkwgcmVsYXRpdiB6dW0gU2VydmVyLVJvb3QKLy8gICBieXRl c01pbiAgICAg4oCUIG9wdGlvbmFsZXIgTWluLVNjaHdlbGx3ZXJ0IChrbGVpbmVyIC0+IEFOS0VS IEZFSExUIHd1ZXJkZQovLyAgICAgICAgICAgICAgICAgIHZlcm11dGxpY2ggZ3JlaWZlbiwgYWJl ciB3aXIgd2FybmVuIGZydWVoKQovLyAgIG11c3NbXSAgICAgICDigJQgU3RyaW5ncywgZGllIGlt IEJvZHkgdm9ya29tbWVuIE1VRVNTRU4KLy8gICBkYXJmX25pY2h0W10g4oCUIFN0cmluZ3MsIGRp ZSBpbSBCb2R5IE5JQ0hUIHZvcmtvbW1lbiBkdWVyZmVuCi8vICAgbnVyRnVlciAgICAgIOKAlCAn c3UnIHwgJ2RhcmZTdGF0JyB8ICdkYXJmTG9nJyDigJQgRWludHJhZyB3aXJkIHVlYmVyc3BydW5n ZW4sCi8vICAgICAgICAgICAgICAgICAgd2VubiBkZXIgZWluZ2Vsb2dndGUgVXNlciBkaWVzZSBC ZXJlY2h0aWd1bmcgbmljaHQgaGF0LgovLyAgICAgICAgICAgICAgICAgIERlZmF1bHQ6IGplZGVy IGRhcmYuCi8vICAgaXN0TW9kdWwgICAgIOKAlCBiZWkgSlMtTW9kdWxlbjogenVzYWV0emxpY2gg cHJ1ZWZlbiwgZGFzcyBrZWluICJmcm9tIi1JbXBvcnQKLy8gICAgICAgICAgICAgICAgICBhdWYg ZWluZSBEYXRlaSB6ZWlndCwgZGllIHNlbGJzdCA0MDQgbGllZmVydAovLyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CnZhciBTT0xMID0gWwogIC8vIFRvcC1MZXZlbAogIHsgcGZhZDogJ2luZGV4Lmh0bWwn LCAgICAgICAgICAgIG11c3M6IFsnYW5zaWNodC1wbGFudW5nJywgJ21vZGFsLW92ZXJsYXknLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmkzLXBlcnNvbi1wb3Bv dmVyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZpMy1rb21t ZW50YXItcG9wb3ZlcicsICAvLyBLb21tZW50YXItSG92ZXItUG9wb3ZlciAoMjAyNi0wNS0yOCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXRvci1rb21tZW50 YXItdmVybGF1ZicsICAvLyBWZXJsYXVmc2xpc3RlIGltIFplbGwtRWRpdG9yIChTdHVmZSAyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuLWtvbW1lbnRhci1o aW56dScsICAgICAgIC8vIG5ldWVyICJIaW56dWZ1ZWdlbiItQnV0dG9uIChTdHVmZSAyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVpbi1hdmF0YXItYnRuJywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkbWluLXRhYi1lcnNj aGVpbnVuZ3NiaWxkJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2FkbWluLXNla3Rpb24tZGlyZWt0aW9uc2xlaXR1bmcnLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnYWRtaW4tc2VrdGlvbi1mdWVocnVuZ3NzdGVsbGUnLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVjaHRlLWNhcmQtc3UnLCAn cmVjaHRlLWNhcmQtZmEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnaWgtaW1wcmVzc3VtJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ0Fuc3ByZWNoJywgIC8vIFNwYWx0ZW4tSGVhZGVyICJBbnNwcmVjaC3CrXBhcnRuZXIiIGlu IFBlcnNvbmFsLVRhYgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn SW4gUGxhbnVuZyBzaWNodGJhcicsICAvLyBGdW5rdGlvbmVuICsgR3J1cHBlbi1UYWIgU3BhbHRl bmhlYWRlciAoMjAyNi0wNS0yNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ0Fuc3ByZWNocGFydG5lciBtw7ZnbGljaCcsICAvLyBuZXVlIFNwYWx0ZSBpbSBHcnVw cGVuLVRhYiAoMjAyNi0wNS0yNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gZ3J1cHBlLWlucGxhbnVuZy1pbnB1dCAvIGdydXBwZS1kYXJmYXAtaW5wdXQgc2lu ZCBDU1MtS2xhc3NlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gZGllIGFkbWluLmpzIHp1ciBMYXVmemVpdCBpbiA8dGJvZHkgaWQ9ImdydXBwZW4tdGJvZHki PiByZW5kZXJ0IOKAlAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBpbSBzdGF0aXNjaGVuIGluZGV4Lmh0bWwga29lbm5lbiBzaWUgbmllIGF1ZnRhdWNoZW4uIERp ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGFsdGVuaGVh ZGVyIG9iZW4gZGVja2VuIGRhcyBGZWF0dXJlIGluIGluZGV4Lmh0bWwgYWI7IGRpZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBLbGFzc2VuIHNlbGJzdCB3ZXJk ZW4gd2VpdGVyIHVudGVuIGdlZ2VuIGpzL2FkbWluLmpzIGdlcHJ1ZWZ0LgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuLXNjaGljaHR0ZWFtJ10sICAvLyAiVGVh bSItQnV0dG9uIGltIEhldXRlLUthc3RlbiAoMjAyNi0wNS0yNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXJmX25pY2h0OiBbJ2lkPSJhbnNpY2h0LXN0YXRpc3RpayInLCAn aWQ9ImFuc2ljaHQtbG9nYnVjaCInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnaWQ9Im5hdi1zdGF0aXN0aWsiJywgJ2lkPSJuYXYtbG9nYnVjaCInLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnRuLXBlcnNv bmFsLWJ1bGsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnYWRtaW4tc2VrdGlvbi1zaWNodGJhcmtlaXQnLCAgLy8gJ1JlZ3Vsw6RyZSBBZG1pbnMnLVNl a3Rpb24gZW50ZmVybnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3NpY2h0YmFya2VpdC1pbmhhbHQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnUmVndWzDpHJlIEFkbWlucyddIH0sCiAgeyBwZmFkOiAnYXBw LmpzJywgICAgICAgICAgICAgICAgbXVzczogWydvcHRpb25hbGVNb2R1bGVMYWRlbicsICcuL2pz L3N0YXRpc3Rpay5qcycsICcuL2pzL2xvZ2J1Y2guanMnLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnL2RhdGEvbWFpbmZyYW1lLmh0bWwnLCAnL2RhdGEvc2FuaXRp emVyLmh0bWwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVp bkF2YXRhclRvcGJhckFrdHVhbGlzaWVyZW4nLCAncGVyc29uUG9wb3ZlclplaWdlbicsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrb21tZW50YXJQb3BvdmVyWmVp Z2VuJywgJ2tvbW1lbnRhclBvcG92ZXJWZXJzdGVja2VuJywgIC8vIEtvbW1lbnRhci1Qb3BvdmVy IHZlcmRyYWh0ZXQgKDIwMjYtMDUtMjgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdrb21tZW50YXJIaW56dWZ1ZWdlbicsICdrb21tZW50YXJMb2VzY2hlbicsICAv LyBTdHVmZS0yLVZlcmxhdWYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2J0bi1rb21tZW50YXItaGluenUnLCAgLy8gbmV1ZXIgRWRpdG9yLUJ1dHRvbiAoU3R1ZmUg MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JvbGxlblRhYmVs bGVSZW5kZXJuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lt cHJlc3N1bU1vZGFsT2VmZm5lbicsICdzdXBwb3J0TWFpbEJvZHlCYXVlbicsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbnNwcmVjaHBhcnRuZXJJbmxpbmVUb2dn bGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5QbGFudW5n SW5saW5lVG9nZ2xlJywgIC8vIFByby1QZXJzb24tQXVzYmxlbmRlbiB2ZXJkcmFodGV0ICgyMDI2 LTA1LTI3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NoaWNo dFRlYW1Nb2RhbE9lZmZuZW4nLCAgLy8gU2NoaWNodC1UZWFtLU1vZGFsIHZlcmRyYWh0ZXQgKDIw MjYtMDUtMjcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncnVw cGVFcmxhdWJ0QXAnLCAgLy8gQW5zcHJlY2hwYXJ0bmVyLUZpbHRlciBwcm8gR3J1cHBlIGltIElu Zm8tTW9kYWwgKDIwMjYtMDUtMjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdpbmZvLWFwLW1haWxidG4nLCAgLy8gTWFpbC1CdXR0b24tS2xhc3NlIGltIEluZm8t TW9kYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lNUFJFU1NV TV9ERUZBVUxUJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyZl9uaWNo dDogWyJmcm9tICcuL2pzL3N0YXRpc3Rpay5qcyciLCAiZnJvbSAnLi9qcy9sb2didWNoLmpzJyIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdidWxrQmVh cmJlaXR1bmdEaWFsb2cnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc2ljaHRiYXJrZWl0LWNoZWNrYm94JywgIC8vIGFsdGVyIFNpY2h0YmFya2VpdHMt SGFuZGxlciByYXVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdhZG1pblNpY2h0YmFya2VpdFsnXSB9LCAgLy8gc2NocmVpYmVuZGVyIFp1Z3JpZmYgZW50 ZmVybnQKICB7IHBmYWQ6ICdzdHlsZS5jc3MnLCAgICAgICAgICAgICBtdXNzOiBbJy5sYXlvdXQt c3RhdGlzdGlrJywgJy5sYXlvdXQtbG9nYnVjaCcsICcuc3RhdHMtJywgJy5sb2ctJywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy52aTMtYXZhdGFyJywgJy5wcHYt dGFnJywgJy52aTMtcGVyc29uLXBvcG92ZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnLnZpMy1rb21tZW50YXItcG9wb3ZlcicsICcua3Ata29wZicsICcua3At Ym9keScsICAvLyBLb21tZW50YXItUG9wb3ZlciAoMjAyNi0wNS0yOCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5rcC1laW50cmFnJywgJy5rcC1ib2R5LXN0YWNr JywgIC8vIFN0YWNrLVZpZXcgYmVpIG1laHJlcmVuIEtvbW1lbnRhcmVuIChTdHVmZSAyKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmVkaXRvci1rb21tZW50YXIt dmVybGF1ZicsICcuZWt2LWVpbnRyYWcnLCAnLmVrdi1sb2VzY2hlbicsICAvLyBFZGl0b3ItVmVy bGF1ZiAoU3R1ZmUgMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2RhdGEta29tbWVudGFyLWFuemFobCcsICAvLyBDb3VudGVyLUJhZGdlLUF0dHJpYnV0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuZGxnLWVsZGdsLXRvZ2dsZScs ICcudmkzZGdsLWJ0bicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcuZXJzY2hlaW51bmctbGF5b3V0JywgJy5nYi1ncmlkJywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJy5yZWNodGUtY2FyZCcsICcucmVjaHRlLWNhcmQtaWNvbics CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuaW1wcmVzc3VtLW5v dGZhbGwnLCAnLmltcHJlc3N1bS1tYWlsLWJ0bicsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICcuYmsta2FuZGlkYXRlbi10ZXh0JywgIC8vIG5ldWUgMi16ZWlsaWdl IEthbmRpZGF0ZW4tWmVpbGUgKDIwMjYtMDUtMjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICcuYmsta2FuZGlkYXRlbi10b2dnbGUtb2ZmZW4nLCAgLy8gQXVma2xh cHAtSW5kaWthdG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcu aW5mby1hcC1tYWlsYnRuJywgIC8vIE1haWwtQnV0dG9uIGhpbnRlciBBbnNwcmVjaHBhcnRuZXJu ICgyMDI2LTA1LTI0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn cHVsc0ZlcmllbicsICAvLyBGZXJpZW4tTWFya2llcnVuZyBQdWxzLUtleWZyYW1lICgyMDI2LTA1 LTI3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1tZmVyLXNw YWx0ZS1iZyddLCAgLy8gRmVyaWVuLVNwYWx0ZW4tVG9lbnVuZyBWYXIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyAucHAta29wZiAoYWx0ZSBQb3BvdmVyLUtsYXNzZSwgamV0 enQgLnBwdi1rb3BmKSBpc3QgbmlyZ2VuZHdvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbWVociB2b3JoYW5kZW4g4oCUIHdlbm4gZG9jaCwgaXN0IGRlciBBc3NldC1DYWNo ZSB2ZXJhbHRldC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAucHAtdGFn IGV4aXN0aWVydCBOT0NIIGltIFBlcnMuLVBsYW47IGRhaGVyIGhpZXIgbmljaHQgcHJ1ZWZlbi4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXJmX25pY2h0OiBbJy5jcnlwdG8t d2Fybi1iYW5uZXInLCAnLmJhLScsICcuYmItJywgJy5idWxrLWRpYWxvZycsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcucHAta29wZiddIH0sCiAgeyBw ZmFkOiAnc3luYy13b3JrZXIuanMnIH0sCiAgeyBwZmFkOiAnaGVhcnRiZWF0LXdvcmtlci5qcycg fSwKCiAgLy8gT2ZmbGluZS1Xb2NoZW5wbGFuOiBUZW1wbGF0ZSAoUXVlbGxlLCBUb2tlbi1QbGF0 emhhbHRlcikgdW5kIGRlciB2b20KICAvLyBTZXJ2ZXIgYmVpIGplZGVyIFBsYW51bmdzLUFlbmRl cnVuZyBuZXUgZ2VuZXJpZXJ0ZSBTbmFwc2hvdC4KICB7IHBmYWQ6ICdXb2NoZW5wbGFuLnRlbXBs YXRlLmh0bWwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11c3M6IFsnX19E QVRFTl9KU09OX18nLCAnX19TTkFQU0hPVF9aRUlUX18nLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnd3AtdGFnYmxvY2stdGFiZWxsZScsICdPZmZsaW5lLVNuYXBz aG90JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ07DpGNoc3Rl IFdvY2hlJywgJ0Zyw7xoZGllbnN0J10gfSwKICB7IHBmYWQ6ICdXb2NoZW5wbGFuLmh0bWwnLCAg ICAgICBieXRlc01pbjogODAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gRGF0ZW4gbXVlc3NlbiBzdWJzdGl0dWllcnQgc2VpbiDigJQgVG9rZW5zIGR1ZXJmZW4gbmlj aHQgbWVociBkcmluc3RlaGVuLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11 c3M6IFsndmFyIERBVEVOJywgJ3dwLXRhZ2Jsb2NrJywgJ3dwLXZvcndvY2hlJywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Zyw7xoZGllbnN0J10sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFyZl9uaWNodDogWydfX0RBVEVOX0pTT05fXycs ICdfX1NOQVBTSE9UX1pFSVRfXyddIH0sCgogIC8vIE1hcmt1cC1GcmFnbWVudGUgdW50ZXIgVGFy bi1QZmFkZW4gaW4gZGF0YS8gKG51ciBCZXJlY2h0aWd0ZSkKICB7IHBmYWQ6ICdkYXRhL21haW5m cmFtZS5odG1sJywgbnVyRnVlcjogJ2RhcmZTdGF0JywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtdXNzOiBbJzxkaXYgaWQ9ImFuc2ljaHQtc3RhdGlzdGlrIicsICdpZD0ic3Rh dHMtdGJvZHkiJywgJ2NsYXNzPSJsYXlvdXQtc3RhdGlzdGlrIiddIH0sCiAgeyBwZmFkOiAnZGF0 YS9zYW5pdGl6ZXIuaHRtbCcsIG51ckZ1ZXI6ICdkYXJmTG9nJywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtdXNzOiBbJzxkaXYgaWQ9ImFuc2ljaHQtbG9nYnVjaCInLCAgICdp ZD0ibG9nLXRib2R5IicsICAgJ2NsYXNzPSJsYXlvdXQtbG9nYnVjaCInXSB9LAoKICAvLyBDb3Jl CiAgeyBwZmFkOiAnanMvY29yZV9zdGF0ZS5qcycsICAgICAgaXN0TW9kdWw6IHRydWUsIG11c3M6 IFsnZXhwb3J0IHZhciBaJ10gfSwKICB7IHBmYWQ6ICdqcy9jb3JlX2FwaS5qcycsICAgICAgICBp c3RNb2R1bDogdHJ1ZSwgbXVzczogWydleHBvcnQgZnVuY3Rpb24gYXBpJ10gfSwKICB7IHBmYWQ6 ICdqcy9jb3JlX3V0aWwuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydleHBvcnQg ZnVuY3Rpb24gZXNjYXBlSFRNTCcsICdleHBvcnQgZnVuY3Rpb24gZGF0dW1TdHInLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F2YXRh cktyZWlzSHRtbCcsICdhdmF0YXJVcmwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FuemVpZ2VOYW1lRnVlcktlbm51bmcnLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Z1 bmt0aW9uSW5QbGFudW5nJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdleHBvcnQgZnVuY3Rpb24gcGVyc29uU2NoaWNodEFtJ10gfSwK ICB7IHBmYWQ6ICdqcy9jb3JlX2RhdGVuTGFkZW4uanMnLCBpc3RNb2R1bDogdHJ1ZSwgbXVzczog WydkaXJla3Rpb25zbGVpdHVuZycsICdmdWVocnVuZ3NzdGVsbGUnLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcnN0ZWNrdGVGdW5r dGlvbmVuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICd2ZXJzdGVja3RlR3J1cHBlbiddIH0sICAvLyBHcnVwcGVuLVNpY2h0YmFya2Vp dCAoMjAyNi0wNS0yNCkKICB7IHBmYWQ6ICdqcy9jb3JlX3Blcm1pc3Npb25zLmpzJyxpc3RNb2R1 bDogdHJ1ZSwgbXVzczogWydkYXJmU3RhdGlzdGlrJywgJ2RhcmZMb2didWNoJywgJ3JlY2h0ZUF1 c0luZm8nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ21laW5lTWlrcm90ZWFtUGVyc29uSWRzJ10gfSwKCiAgLy8gVUkKICB7IHBmYWQ6 ICdqcy91aV9kaWFsb2cuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydleHBvcnQg ZnVuY3Rpb24gdG9hc3QnLCAnZXhwb3J0IGZ1bmN0aW9uIGJlc3RhZXRpZ2VuJywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBvcnQg ZnVuY3Rpb24gbW9kYWxaZWlnZW4nLCAnZGlydHlSZWdpc3RyaWVyZSddIH0sCiAgeyBwZmFkOiAn anMvdWlfcnRlLmpzJywgICAgICAgICAgaXN0TW9kdWw6IHRydWUgfSwKCiAgLy8gR3JpZAogIHsg cGZhZDogJ2pzL2dyaWRfcmVuZGVyLmpzJywgICAgIGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ2Fu c2ljaHRXZWNoc2VsbicsICdrb3BmUmVuZGVybicsICdkYXRlbkdyaWRSZW5kZXJuJywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcGFs dGUtaGV1dGUnLCAnYXZhdGFyS3JlaXNIdG1sJ10gfSwKICB7IHBmYWQ6ICdqcy9ncmlkX2VkaXRv ci5qcycsICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydlZGl0b3JPZWZmbmVuJywgJ2lzdERn bFF1YWxpZml6aWVydCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZWRpdG9yS29tbWVudGFyVmVybGF1ZlJlbmRlcm4nXSB9LAogIHsg cGZhZDogJ2pzL2dyaWRfaW50ZXJhY3Rpb24uanMnLGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ2Z1 ZWxsSW5pdCcsICdmdWVsbEhhbmRsZUFuWmVsbGUnLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tvbW1lbnRhclBvcG92ZXJaZWlnZW4n LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2tvbW1lbnRhclBvcG92ZXJWZXJzdGVja2VuJywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrb21tZW50YXJQb3BvdmVyRmVzdGhh bHRlbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAna29tbWVudGFyTGlzdGUnLCAgICAgICAgLy8gU3R1ZmUtMi1IZWxwZXI6IExpc3Rl IHN0YXR0IFNpbmdsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2tvbW1lbnRhckFuemFobCcsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna29tbWVudGFySGluenVmdWVnZW4n LCAgLy8gUE9TVCBhbmhhZW5nZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdrb21tZW50YXJMb2VzY2hlbicsICAgICAvLyBERUxFVEUg cGVyIElECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnZGFyZktvbW1lbnRhckxvZXNjaGVuJ10gfSwKCiAgLy8gQWRtaW4KICB7IHBmYWQ6 ICdqcy9hZG1pbi5qcycsICAgICAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczogWydhZG1pblJl bmRlcm4nLCAnZmVhdHVyZUlzdEFrdGl2JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb2xsZW5UYWJlbGxlUmVuZGVybicsICdlcnNj aGVpbnVuZ3NiaWxkUmVuZGVybicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZ3J1cHBlLWlucGxhbnVuZy1pbnB1dCcsICAvLyBTaWNo dGJhcmtlaXRzLUNoZWNrYm94IChkeW5hbWlzY2ggZ2VyZW5kZXJ0LCAyMDI2LTA1LTI0KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dy dXBwZS1kYXJmYXAtaW5wdXQnLCAgICAgLy8gQW5zcHJlY2hwYXJ0bmVyLUNoZWNrYm94IChkeW5h bWlzY2ggZ2VyZW5kZXJ0LCAyMDI2LTA1LTI0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lNUFJFU1NVTV9ERUZBVUxUJ10gfSwKICB7 IHBmYWQ6ICdqcy9hZG1pbl9jb21tb24uanMnLCAgICBpc3RNb2R1bDogdHJ1ZSB9LAogIHsgcGZh ZDogJ2pzL2FkbWluX3BlcnNvbmFsLmpzJywgIGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ3BlcnNv bkJlYXJiZWl0ZW5EaWFsb2cnLCAnZWxkZ2xJbmxpbmVUb2dnbGUnLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlYnVydHN0YWdNb2Rh bE9lZmZuZW4nLCAncGVyc29uUG9wb3ZlclplaWdlbicsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVpblByb2ZpbE1vZGFsT2VmZm5l bicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnYW5zcHJlY2hwYXJ0bmVySW5saW5lVG9nZ2xlJywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpblBsYW51bmdJbmxpbmVUb2dn bGUnXSB9LCAgLy8gUHJvLVBlcnNvbi1BdXNibGVuZGVuICgyMDI2LTA1LTI3KQogIHsgcGZhZDog J2pzL2FkbWluX3JvbGxlbi5qcycsICAgIGlzdE1vZHVsOiB0cnVlLCBtdXNzOiBbJ2ZhY2hhdWZz aWNodFJlbmRlcm4nLCAncm9sbGVuVGFiZWxsZVJlbmRlcm4nLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JPTExFTl9UWVBFTiddIH0s CiAgeyBwZmFkOiAnanMvYWRtaW5fY29kZXMuanMnLCAgICAgaXN0TW9kdWw6IHRydWUgfSwKICB7 IHBmYWQ6ICdqcy9hZG1pbl9rYWxlbmRlci5qcycsICBpc3RNb2R1bDogdHJ1ZSB9LAogIHsgcGZh ZDogJ2pzL2FkbWluX2Vyc2NoZWludW5nc2JpbGQuanMnLCBpc3RNb2R1bDogdHJ1ZSwgbXVzczog WydlcnNjaGVpbnVuZ3NiaWxkUmVuZGVybicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtpZXJ1bmdlbkFud2VuZGVu JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnTUFSS0lFUlVOR0VOX0RFRkFVTFRTJywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BhbHRlSGludGVy Z3J1bmQnXSB9LCAgLy8gRmVyaWVuLU1hcmtpZXJ1bmcgKDIwMjYtMDUtMjcpCgogIC8vIFRoZW1l bi1Nb2R1bGUKICB7IHBmYWQ6ICdqcy9iZXNldHp1bmcuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1 ZSwgbXVzczogWydiZXNldHp1bmdzS2FuZGlkYXRlbkVybWl0dGVsbicsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kYWwtaW5oYWx0 LWdyb3NzJywgICAgIC8vIFRhZy1EZXRhaWwtTW9kYWwgdmVyZ3JvZXNzZXJ1bmcgKDIwMjYtMDUt MjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnYmsta2FuZC1wZmVpbCcsICAgICAgICAgIC8vIFRvZ2dsZS1QZmVpbCDilr4v4pa0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Ymsta2FuZGlkYXRlbi10ZXh0J10gfSwgIC8vIDItemVpbGlnZSBLYW5kaWRhdGVuLVplaWxlCiAg eyBwZmFkOiAnanMvZW1haWxfdm9ybGFnZW4uanMnLCAgaXN0TW9kdWw6IHRydWUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm9sbGVfdmVyYW50d29ydHVuZy1EZWZhdWx0 IG11c3MgZWNodGUgVW1sYXV0ZSBoYWJlbiAoSXNzdWUgIzQsIDIwMjYtMDUtMjQpLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11c3M6IFsnUsO8Y2tmcmFnZW4nLCAnR3LDvMOf ZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhcmZfbmljaHQ6IFsnUnVl Y2tmcmFnZW4nLCAnR3J1ZXNzZSddIH0sCiAgeyBwZmFkOiAnanMvd29jaGVucGxhbi5qcycsICAg ICAgaXN0TW9kdWw6IHRydWUgfSwKICB7IHBmYWQ6ICdqcy9pbXBvcnRfZXhjZWwuanMnLCAgICBp c3RNb2R1bDogdHJ1ZSwgbXVzczogWydpbXBUcm9ja2VubGF1ZkJlcmVjaG5lbicsICAvLyBWb3Jz Y2hhdS1EaWZmIHZvciBJbXBvcnQgKDIwMjYtMDUtMjgpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wLXRyb2NrZW5sYXVmJywgICAg ICAgICAgLy8gQnV0dG9uIGltIFN0YXR1cy1QYW5lbAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VsUGlkU2V0J10gfSwgICAgICAg ICAgIC8vIFNjaGx1ZXJtYW5uLVNjaHV0ejogbnVyIEV4Y2VsLVBlcnNvbmVuIGJlcmVpbmlnZW4K ICB7IHBmYWQ6ICdqcy9zeW5jLmpzJywgICAgICAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbXVzczog WydzeW5jV29ya2VyU3RhcnRlbicsICdsb2NrU3RhdGVBbndlbmRlbicsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYW56ZWlnZU5hbWVG dWVyS2VubnVuZyddIH0sCiAgeyBwZmFkOiAnanMvaGlud2Vpc2UuanMnLCAgICAgICAgaXN0TW9k dWw6IHRydWUgfSwKICB7IHBmYWQ6ICdqcy9zY2hpY2h0dGVhbS5qcycsICAgICBpc3RNb2R1bDog dHJ1ZSwgbXVzczogWydzY2hpY2h0VGVhbU1vZGFsT2VmZm5lbicsICdzY2hpY2h0Vm9uJywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdw ZXJzb25TY2hpY2h0QW0nXSB9LAoKICAvLyBPcHRpb25hbC1Nb2R1bGUgKG51ciBCZXJlY2h0aWd0 ZSkKICB7IHBmYWQ6ICdqcy9zdGF0aXN0aWsuanMnLCAgICAgICBpc3RNb2R1bDogdHJ1ZSwgbnVy RnVlcjogJ2RhcmZTdGF0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXNz OiBbJ3N0YXRpc3Rpa0xhZGVuJywgJ3N0YXRpc3Rpa1JlbmRlcm4nXSB9LAogIHsgcGZhZDogJ2pz L2xvZ2J1Y2guanMnLCAgICAgICAgIGlzdE1vZHVsOiB0cnVlLCBudXJGdWVyOiAnZGFyZkxvZycs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVzczogWydsb2didWNoTGFkZW4n LCAnZXhwb3J0IHZhciBsb2didWNoSG9va3MnXSB9Cl07Cgp2YXIgUSA9IGRvY3VtZW50LnF1ZXJ5 U2VsZWN0b3IuYmluZChkb2N1bWVudCk7CgpmdW5jdGlvbiBzdGF0dXNaZWlsZShlaW50cmFnLCBz dGF0dXMsIGtvbW1lbnRhciwgZGV0YWlscykgewogIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVs ZW1lbnQoJ3RyJyk7CiAgdHIuY2xhc3NOYW1lID0gc3RhdHVzID09PSAnT0snID8gJ29rJyA6IChz dGF0dXMgPT09ICdXQVJOJyA/ICd3YXJuJyA6IChzdGF0dXMgPT09ICdTS0lQJyA/ICdza2lwJyA6 ICdmZWgnKSk7CiAgdHIuaW5uZXJIVE1MID0KICAgICc8dGQgY2xhc3M9InBmYWQiPicgKyBlc2Nh cGVIdG1sKGVpbnRyYWcucGZhZCkgKyAnPC90ZD4nICsKICAgICc8dGQgY2xhc3M9InN0YXR1cyI+ JyArIHN0YXR1cyArICc8L3RkPicgKwogICAgJzx0ZCBjbGFzcz0iZGV0YWlsIj4nICsgKGtvbW1l bnRhciA/IGVzY2FwZUh0bWwoa29tbWVudGFyKSA6ICcnKSArCiAgICAgIChkZXRhaWxzID8gJzxk ZXRhaWxzPjxzdW1tYXJ5Pm1laHI8L3N1bW1hcnk+PHByZSBzdHlsZT0ibWFyZ2luOjRweCAwO3do aXRlLXNwYWNlOnByZS13cmFwIj4nICsKICAgICAgICAgZXNjYXBlSHRtbChkZXRhaWxzKSArICc8 L3ByZT48L2RldGFpbHM+JyA6ICcnKSArCiAgICAnPC90ZD4nOwogIFEoJyN6ZWlsZW4nKS5hcHBl bmRDaGlsZCh0cik7Cn0KCmZ1bmN0aW9uIGVzY2FwZUh0bWwocykgewogIGlmIChzID09IG51bGwp IHJldHVybiAnJzsKICByZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoLyYvZywnJmFtcDsnKS5yZXBs YWNlKC88L2csJyZsdDsnKS5yZXBsYWNlKC8+L2csJyZndDsnKS5yZXBsYWNlKC8iL2csJyZxdW90 OycpOwp9CgpmdW5jdGlvbiByZWNodGVIb2xlbigpIHsKICByZXR1cm4gZmV0Y2goJy9hcGkvaW5m bycpLnRoZW4oZnVuY3Rpb24ocikgewogICAgaWYgKCFyLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ0hU VFAgJyArIHIuc3RhdHVzICsgJyBhdWYgL2FwaS9pbmZvJyk7CiAgICByZXR1cm4gci5qc29uKCk7 CiAgfSk7Cn0KCi8vIEdsb2JhbGUgTWFuaWZlc3QtVGFiZWxsZSAoRGF0ZWlwZmFkIC0+IHNoYTI1 NitieXRlcywgZWlubWFsIGJlaW0gU3RhcnQgZ2VsYWRlbikuCi8vIFdpcmQgZWlubWFsIGJlaW0g U3RhcnQgZ2VsYWRlbiDigJQgd2VubiBkYTogSGFzaC1WZXJnbGVpY2ggcHJvIERhdGVpCi8vIGFr dGl2OyB3ZW5uIG5pY2h0OiBudXIgQW5rZXItL2RhcmZfbmljaHQtUHJ1ZWZ1bmcgd2llIGJpc2hl ci4KdmFyIE1BTklGRVNUID0gbnVsbDsKdmFyIE1BTklGRVNUX01FVEEgPSBudWxsOyAgIC8vIHsg Z2VuZXJpZXJ0LCBicmFuY2gsIGNvbW1pdCB9CgpmdW5jdGlvbiBtYW5pZmVzdExhZGVuKCkgewog IHJldHVybiBmZXRjaCgnc3luYy1tYW5pZmVzdC5qc29uJywgeyBjYWNoZTogJ25vLXN0b3JlJyB9 KS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgIGlmICghci5vaykgcmV0dXJuIG51bGw7CiAgICByZXR1 cm4gci5qc29uKCkudGhlbihmdW5jdGlvbihqKSB7CiAgICAgIGlmICghaiB8fCAhai5kYXRlaWVu KSByZXR1cm4gbnVsbDsKICAgICAgTUFOSUZFU1RfTUVUQSA9IHsgZ2VuZXJpZXJ0OiBqLmdlbmVy aWVydCwgYnJhbmNoOiBqLmJyYW5jaCwgY29tbWl0OiBqLmNvbW1pdCB9OwogICAgICByZXR1cm4g ai5kYXRlaWVuOwogICAgfSk7CiAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7IHJldHVybiBudWxsOyB9 KTsKfQoKLy8gSGV4LVN0cmluZyBhdXMgQXJyYXlCdWZmZXIgKFNIQTI1Ni1PdXRwdXQgaXN0IDMy IEJ5dGUgLT4gNjQgaGV4IGNoYXJzKS4KZnVuY3Rpb24gYnVmVG9IZXgoYnVmKSB7CiAgdmFyIGFy ciA9IG5ldyBVaW50OEFycmF5KGJ1Zik7CiAgdmFyIG91dCA9ICcnOwogIGZvciAodmFyIGkgPSAw OyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgaCA9IGFycltpXS50b1N0cmluZygxNik7 CiAgICBpZiAoaC5sZW5ndGggPT09IDEpIG91dCArPSAnMCc7CiAgICBvdXQgKz0gaDsKICB9CiAg cmV0dXJuIG91dDsKfQoKZnVuY3Rpb24gZGFyZkZ1ZXIoZWludHJhZywgaW5mbykgewogIGlmICgh ZWludHJhZy5udXJGdWVyKSByZXR1cm4gdHJ1ZTsKICB2YXIgc2VoZW4gPSAoaW5mbyAmJiBpbmZv LnNlaGVuKSB8fCB7fTsKICBpZiAoZWludHJhZy5udXJGdWVyID09PSAnc3UnKSAgICAgICByZXR1 cm4gISFpbmZvLmlzdFN1cGVyVXNlcjsKICBpZiAoZWludHJhZy5udXJGdWVyID09PSAnZGFyZlN0 YXQnKSByZXR1cm4gISEoaW5mby5pc3RTdXBlclVzZXIgfHwgc2VoZW4uc3RhdGlzdGlrKTsKICBp ZiAoZWludHJhZy5udXJGdWVyID09PSAnZGFyZkxvZycpICByZXR1cm4gISEoaW5mby5pc3RTdXBl clVzZXIgfHwgc2VoZW4ubG9nYnVjaCk7CiAgcmV0dXJuIHRydWU7Cn0KCmZ1bmN0aW9uIHBydWVm ZUVpbnRyYWcoZWludHJhZywgaW5mbykgewogIC8vIFNraXAgd2VubiBuaWNodCBiZXJlY2h0aWd0 CiAgaWYgKCFkYXJmRnVlcihlaW50cmFnLCBpbmZvKSkgewogICAgc3RhdHVzWmVpbGUoZWludHJh ZywgJ1NLSVAnLCAnw7xiZXJzcHJ1bmdlbiAoa2VpbmUgJyArIGVpbnRyYWcubnVyRnVlciArICct QmVyZWNodGlndW5nKScpOwogICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHN0YXR1czogJ3Nr aXAnIH0pOwogIH0KICByZXR1cm4gZmV0Y2goZWludHJhZy5wZmFkLCB7IGNhY2hlOiAnbm8tc3Rv cmUnIH0pLnRoZW4oZnVuY3Rpb24ocikgewogICAgaWYgKCFyLm9rKSB7CiAgICAgIHN0YXR1c1pl aWxlKGVpbnRyYWcsICdGRUhMVCcsICdIVFRQICcgKyByLnN0YXR1cyArICcgJyArIHIuc3RhdHVz VGV4dCk7CiAgICAgIHJldHVybiB7IHN0YXR1czogJ2ZlaCcgfTsKICAgIH0KICAgIC8vIGFycmF5 QnVmZmVyICsgRGVjb2RlIHN0YXR0IGRpcmVrdCB0ZXh0KCk6IHdpciBicmF1Y2hlbiBiZWlkZXMK ICAgIC8vIChIYXNoIHVlYmVyIEJ5dGVzICsgU3RyaW5nIGZ1ZXIgQW5rZXItQ2hlY2spLiBXZW5u IHdpciBudXIgdGV4dCgpCiAgICAvLyBuZWhtZW4sIGtvZW5udGUgZWluIEJPTSBvZGVyIENSTEYv TEYtRGlmZiBkZW4gSGFzaCB2ZXJmYWVsc2NoZW4uCiAgICByZXR1cm4gci5hcnJheUJ1ZmZlcigp LnRoZW4oZnVuY3Rpb24oYWIpIHsKICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYWIp OwogICAgICB2YXIgYnl0ZUxlbiA9IGJ5dGVzLmxlbmd0aDsKICAgICAgdmFyIHR4dDsKICAgICAg dHJ5IHsgdHh0ID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcpLmRlY29kZShieXRlcyk7IH0KICAg ICAgY2F0Y2ggKGUpIHsgdHh0ID0gJyc7IH0gICAvLyBCaW5hZXItRGF0ZWkgKHouQi4gaWNvKTog QW5rZXItQ2hlY2sgZW50ZmFlbGx0CiAgICAgIHZhciBwcm9ibGVtZSA9IFtdOwogICAgICBpZiAo ZWludHJhZy5ieXRlc01pbiAmJiBieXRlTGVuIDwgZWludHJhZy5ieXRlc01pbikgewogICAgICAg IHByb2JsZW1lLnB1c2goJ0JvZHkgPCAnICsgZWludHJhZy5ieXRlc01pbiArICcgQnl0ZXMgKCcg KyBieXRlTGVuICsgJyknKTsKICAgICAgfQogICAgICAoZWludHJhZy5tdXNzIHx8IFtdKS5mb3JF YWNoKGZ1bmN0aW9uKHMpIHsKICAgICAgICBpZiAodHh0LmluZGV4T2YocykgPCAwKSBwcm9ibGVt ZS5wdXNoKCdBbmtlciBmZWhsdDogIicgKyBzICsgJyInKTsKICAgICAgfSk7CiAgICAgIChlaW50 cmFnLmRhcmZfbmljaHQgfHwgW10pLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgIGlmICh0 eHQuaW5kZXhPZihzKSA+PSAwKSBwcm9ibGVtZS5wdXNoKCdkYXJmIG5pY2h0IGVudGhhbHRlbjog IicgKyBzICsgJyInKTsKICAgICAgfSk7CiAgICAgIC8vIEltcG9ydC1QZmFkZSBwcsO8ZmVuIChu dXIgTW9kdWwtRGF0ZWllbikuIEJlaSBkeW5hbWljIGltcG9ydCgpCiAgICAgIC8vIGlzdCBkZXIg UGZhZCBuaWNodCBkaXJla3QgZml4IGluIGVpbmVyICJmcm9tIi1LbGF1c2VsLCBkYWhlcgogICAg ICAvLyBwcnVlZmVuIHdpciBoaWVyIG51ciBzdGF0aXNjaGUgSW1wb3J0cy4KICAgICAgdmFyIGlt cG9ydFBmYWRlID0gW107CiAgICAgIGlmIChlaW50cmFnLmlzdE1vZHVsKSB7CiAgICAgICAgdmFy IHJlID0gL2Zyb21ccytbJyJdKFteJyJdKylbJyJdL2c7CiAgICAgICAgdmFyIG07CiAgICAgICAg d2hpbGUgKChtID0gcmUuZXhlYyh0eHQpKSAhPT0gbnVsbCkgewogICAgICAgICAgdmFyIHAgPSBt WzFdOwogICAgICAgICAgaWYgKHAuc3RhcnRzV2l0aCgnLi8nKSB8fCBwLnN0YXJ0c1dpdGgoJy4u LycpKSBpbXBvcnRQZmFkZS5wdXNoKHApOwogICAgICAgIH0KICAgICAgfQogICAgICAvLyBNYW5p ZmVzdC1IYXNoLVZlcmdsZWljaDogbnVyIHdlbm4gTWFuaWZlc3QgZGEgVU5EIGRpZXNlciBQZmFk CiAgICAgIC8vIGltIE1hbmlmZXN0IGdlbGlzdGV0IGlzdC4gU28ga29lbm5lbiB3aXIgb2huZSBT ZXJ2ZXItU2V0dXAKICAgICAgLy8gcHJ1ZWZlbiwgb2IgZGllIGF1c2dlbGllZmVydGUgRGF0ZWkg Ynl0ZWdlbmF1IGRlbSBSZXBvLVN0YW5kCiAgICAgIC8vIGVudHNwcmljaHQg4oCUIHdpY2h0aWcg ZnVlciBCZWhvZXJkZW4tUENzLCB3byBwZXIgSGFuZCBzdGF0dAogICAgICAvLyAnZ2l0IHB1bGwn IGtvcGllcnQgd2lyZC4KICAgICAgdmFyIGhhc2hDaGVjayA9IFByb21pc2UucmVzb2x2ZShudWxs KTsKICAgICAgaWYgKE1BTklGRVNUICYmIE1BTklGRVNUW2VpbnRyYWcucGZhZF0gJiYgdHlwZW9m IGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiYgY3J5cHRvLnN1YnRsZSkgewogICAgICAgIGhhc2hD aGVjayA9IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgYWIpLnRoZW4oZnVuY3Rpb24o aGJ1ZikgewogICAgICAgICAgcmV0dXJuIGJ1ZlRvSGV4KGhidWYpOwogICAgICAgIH0pLmNhdGNo KGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGhhc2hD aGVjay50aGVuKGZ1bmN0aW9uKGlzdEhhc2gpIHsKICAgICAgICB2YXIgaGFzaEluZm8gPSAnJzsK ICAgICAgICBpZiAoTUFOSUZFU1QgJiYgTUFOSUZFU1RbZWludHJhZy5wZmFkXSkgewogICAgICAg ICAgdmFyIHNvbGxIYXNoID0gTUFOSUZFU1RbZWludHJhZy5wZmFkXS5zaGEyNTY7CiAgICAgICAg ICB2YXIgc29sbEJ5dGVzID0gTUFOSUZFU1RbZWludHJhZy5wZmFkXS5ieXRlczsKICAgICAgICAg IGlmIChpc3RIYXNoKSB7CiAgICAgICAgICAgIGlmIChpc3RIYXNoICE9PSBzb2xsSGFzaCkgewog ICAgICAgICAgICAgIHZhciBkZXRhaWwgPSAnRGF0ZWkgd2VpY2h0IHZvbSBSZXBvLVN0YW5kIGFi IOKAlCBuZXUgYXVzIEdpdGVhIGtvcGllcmVuLlxuJyArCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICdlcndhcnRldDogJyArIHNvbGxIYXNoICsgJyAoJyArIHNvbGxCeXRlcyArICcgQilcbicg KwogICAgICAgICAgICAgICAgICAgICAgICAgICAnYWt0dWVsbDogICcgKyBpc3RIYXNoICArICcg KCcgKyBieXRlTGVuICAgKyAnIEIpJzsKICAgICAgICAgICAgICBwcm9ibGVtZS5wdXNoKGRldGFp bCk7CiAgICAgICAgICAgICAgaGFzaEluZm8gPSAnIMK3IOKclyBIYXNoIGFid2VpY2hlbmQnOwog ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGhhc2hJbmZvID0gJyDCtyDinJMgSGFz aCBpZGVudGlzY2gnOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICBoYXNoSW5mbyA9ICcgwrcgKEhhc2gtQmVyZWNobnVuZyBpbSBCcm93c2VyIG5pY2h0IG3Dtmds aWNoKSc7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChNQU5JRkVTVCkgewogICAgICAg ICAgaGFzaEluZm8gPSAnIMK3IChuaWNodCBpbSBNYW5pZmVzdCknOwogICAgICAgIH0KICAgICAg ICBpZiAocHJvYmxlbWUubGVuZ3RoKSB7CiAgICAgICAgICBzdGF0dXNaZWlsZShlaW50cmFnLCAn V0FSTicsIGJ5dGVMZW4gKyAnIEJ5dGVzJyArIGhhc2hJbmZvICsgJyDigJQgJyArIHByb2JsZW1l Lmxlbmd0aCArICcgUHJvYmxlbShlKScsIHByb2JsZW1lLmpvaW4oJ1xuJykpOwogICAgICAgICAg cmV0dXJuIHsgc3RhdHVzOiAnd2FybicsIGltcG9ydGU6IGltcG9ydFBmYWRlIH07CiAgICAgICAg fQogICAgICAgIHN0YXR1c1plaWxlKGVpbnRyYWcsICdPSycsIGJ5dGVMZW4gKyAnIEJ5dGVzJyAr IGhhc2hJbmZvICsgKGltcG9ydFBmYWRlLmxlbmd0aCA/ICcgwrcgJyArIGltcG9ydFBmYWRlLmxl bmd0aCArICcgSW1wb3J0ZScgOiAnJykpOwogICAgICAgIHJldHVybiB7IHN0YXR1czogJ29rJywg aW1wb3J0ZTogaW1wb3J0UGZhZGUgfTsKICAgICAgfSk7CiAgICB9KTsKICB9KS5jYXRjaChmdW5j dGlvbihlKSB7CiAgICBzdGF0dXNaZWlsZShlaW50cmFnLCAnRkVITFQnLCBlLm1lc3NhZ2UgfHwg U3RyaW5nKGUpKTsKICAgIHJldHVybiB7IHN0YXR1czogJ2ZlaCcgfTsKICB9KTsKfQoKZnVuY3Rp b24gcHJ1ZWZlSW1wb3J0ZShlcmdlYm5pc3NlKSB7CiAgLy8gU2FtbWVsdCBhbGxlIHN0YXRpc2No IGltcG9ydGllcnRlbiByZWxhdGl2ZW4gUGZhZGUgYXVzIGRlbiBNb2R1bC0KICAvLyBQcnVlZnVu Z2VuIHVuZCBwcnVlZnN0IGRpZSBqZW5pZ2VuLCBkaWUgTklDSFQgc2Nob24gZXhwbGl6aXQgaW4g U09MTAogIC8vIHN0YW5kZW4g4oCUIHNvbnN0IGRvcHBlbHRlIEFuemVpZ2UgZGVyc2VsYmVuIERh dGVpIG1pdCB1LlUuIGFid2VpY2hlbmRlbQogIC8vIEVyZ2VibmlzIChQb3dlclNoZWxsLUh0dHBM aXN0ZW5lciBhbnR3b3J0ZXQgYXVmIEhFQUQgbmljaHQgenV2ZXJsYWVzc2lnKS4KICAvLyBad2Vj azogUGhhbnRvbS1JbXBvcnRzIGF1ZiBlbnRmZXJudGUvdW1iZW5hbm50ZSBNb2R1bGUgYXVmZGVj a2VuLgogIHZhciBzb2xsUGZhZGUgPSBuZXcgU2V0KFNPTEwubWFwKGZ1bmN0aW9uKGUpIHsgcmV0 dXJuIGUucGZhZDsgfSkpOwogIHZhciBhbGxlSW1wb3J0ZSA9IG5ldyBTZXQoKTsKICBlcmdlYm5p c3NlLmZvckVhY2goZnVuY3Rpb24ociwgaSkgewogICAgdmFyIGJhc2lzID0gU09MTFtpXS5wZmFk OwogICAgKHIuaW1wb3J0ZSB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgIHZhciBi YXNpc0RpciA9IGJhc2lzLmluZGV4T2YoJy8nKSA+PSAwID8gYmFzaXMuc3Vic3RyaW5nKDAsIGJh c2lzLmxhc3RJbmRleE9mKCcvJykgKyAxKSA6ICcnOwogICAgICB2YXIgdGVpbGUgPSAoYmFzaXNE aXIgKyBwKS5zcGxpdCgnLycpOwogICAgICB2YXIgc3RhY2sgPSBbXTsKICAgICAgdGVpbGUuZm9y RWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgaWYgKHQgPT09ICcuLicpIHN0YWNrLnBvcCgpOwog ICAgICAgIGVsc2UgaWYgKHQgIT09ICcuJyAmJiB0ICE9PSAnJykgc3RhY2sucHVzaCh0KTsKICAg ICAgfSk7CiAgICAgIHZhciB2b2xsID0gc3RhY2suam9pbignLycpOwogICAgICBpZiAoIXNvbGxQ ZmFkZS5oYXModm9sbCkpIGFsbGVJbXBvcnRlLmFkZCh2b2xsKTsKICAgIH0pOwogIH0pOwogIGlm IChhbGxlSW1wb3J0ZS5zaXplID09PSAwKSB7CiAgICBzdGF0dXNaZWlsZSh7IHBmYWQ6ICcoSW1w b3J0LUtldHRlIGdlcHLDvGZ0KScgfSwgJ09LJywgJ2tlaW5lIHp1c2FldHpsaWNoZW4gUGhhbnRv bS1JbXBvcnRzJyk7CiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgc3RhdHVzOiAnb2snIH0p OwogIH0KICAvLyBHRVQgc3RhdHQgSEVBRDogUG93ZXJTaGVsbC1IdHRwTGlzdGVuZXIgYW50d29y dGV0IGF1ZiBIRUFEIG5pY2h0CiAgLy8genV2ZXJsYWVzc2lnIChnbGVpY2hlciBQZmFkIGthbm4g bWl0IEdFVCAyMDAsIG1pdCBIRUFEIDQwNSBsaWVmZXJuKS4KICAvLyBXaXIgbGVzZW4gZGVuIEJv ZHkgbmljaHQsIGRlciBTdGF0dXMgcmVpY2h0LgogIHZhciBjaGVja3MgPSBbXTsKICBhbGxlSW1w b3J0ZS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgIGNoZWNrcy5wdXNoKGZldGNoKHAsIHsgY2Fj aGU6ICduby1zdG9yZScgfSkudGhlbihmdW5jdGlvbihyKSB7CiAgICAgIHJldHVybiB7IHBmYWQ6 IHAsIG9rOiByLm9rLCBzdGF0dXM6IHIuc3RhdHVzIH07CiAgICB9KS5jYXRjaChmdW5jdGlvbigp IHsgcmV0dXJuIHsgcGZhZDogcCwgb2s6IGZhbHNlLCBzdGF0dXM6ICdORVRaJyB9OyB9KSk7CiAg fSk7CiAgcmV0dXJuIFByb21pc2UuYWxsKGNoZWNrcykudGhlbihmdW5jdGlvbihhcnIpIHsKICAg IHZhciBwcm9ibGVtZSA9IGFyci5maWx0ZXIoZnVuY3Rpb24oeCkgeyByZXR1cm4gIXgub2s7IH0p OwogICAgaWYgKHByb2JsZW1lLmxlbmd0aCA9PT0gMCkgewogICAgICBzdGF0dXNaZWlsZSh7IHBm YWQ6ICcoSW1wb3J0LUtldHRlIGdlcHLDvGZ0LCAnICsgYXJyLmxlbmd0aCArICcgUGZhZGUpJyB9 LCAnT0snLCAnYWxsZSBuaWNodC1TT0xMLUltcG9ydHMgYXVmbG9lc2JhcicpOwogICAgICByZXR1 cm4geyBzdGF0dXM6ICdvaycgfTsKICAgIH0KICAgIHByb2JsZW1lLmZvckVhY2goZnVuY3Rpb24o cCkgewogICAgICBzdGF0dXNaZWlsZSh7IHBmYWQ6IHAucGZhZCB9LCAnRkVITFQnLCAnUGhhbnRv bS1JbXBvcnQ6IEhUVFAgJyArIHAuc3RhdHVzKTsKICAgIH0pOwogICAgcmV0dXJuIHsgc3RhdHVz OiAnZmVoJywgYW56YWhsOiBwcm9ibGVtZS5sZW5ndGggfTsKICB9KTsKfQoKZnVuY3Rpb24gYnl0 ZXNGbXQobikgewogIGlmIChuID09IG51bGwpIHJldHVybiAn4oCUJzsKICBpZiAobiA8IDEwMjQp IHJldHVybiBuICsgJyBCJzsKICBpZiAobiA8IDEwMjQgKiAxMDI0KSByZXR1cm4gKG4gLyAxMDI0 KS50b0ZpeGVkKDEpICsgJyBLQic7CiAgcmV0dXJuIChuIC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQo MikgKyAnIE1CJzsKfQoKZnVuY3Rpb24gcHJ1ZWZlR3JvZXNzZW4oKSB7CiAgUSgnI2dyb2Vzc2Ut bWV0YScpLnRleHRDb250ZW50ID0gJ0ZyYWdlIFNlcnZlci1FbmRwb2ludCAvYXBpL3N5bmMtY2hl Y2svZGF0ZWllbiBhYuKApic7CiAgUSgnI2dyb2Vzc2UtemVpbGVuJykuaW5uZXJIVE1MID0gJyc7 CiAgcmV0dXJuIGZldGNoKCcvYXBpL3N5bmMtY2hlY2svZGF0ZWllbicsIHsgY2FjaGU6ICduby1z dG9yZScgfSkudGhlbihmdW5jdGlvbihyKSB7CiAgICBpZiAoIXIub2spIHsKICAgICAgUSgnI2dy b2Vzc2UtbWV0YScpLnRleHRDb250ZW50ID0gJ0hUVFAgJyArIHIuc3RhdHVzICsgJyAnICsgci5z dGF0dXNUZXh0ICsgJyDigJQgRW5kcG9pbnQgbmljaHQgdmVyZsO8Z2JhciBvZGVyIGtlaW5lIEFk bWluLVJlY2h0ZS4nOwogICAgICByZXR1cm4geyBzdGF0dXM6ICdmZWgnIH07CiAgICB9CiAgICBy ZXR1cm4gci5qc29uKCkudGhlbihmdW5jdGlvbihqKSB7CiAgICAgIGlmICghai5vaykgewogICAg ICAgIFEoJyNncm9lc3NlLW1ldGEnKS50ZXh0Q29udGVudCA9IGouZmVobGVyIHx8ICdTZXJ2ZXIg bWVsZGV0IEZlaGxlci4nOwogICAgICAgIHJldHVybiB7IHN0YXR1czogJ3dhcm4nIH07CiAgICAg IH0KICAgICAgUSgnI2dyb2Vzc2UtbWV0YScpLmlubmVySFRNTCA9CiAgICAgICAgJ1NvdXJjZTog PGNvZGU+JyArIGVzY2FwZUh0bWwoai5zb3VyY2VSb290KSArICc8L2NvZGU+PGJyPicgKwogICAg ICAgICdBc3NldDogIDxjb2RlPicgKyBlc2NhcGVIdG1sKGouYXNzZXRSb290KSAgKyAnPC9jb2Rl Pjxicj4nICsKICAgICAgICBqLmFuemFobCArICcgRGF0ZWllbiBnZXByw7xmdCDCtyAnICsKICAg ICAgICAnPHNwYW4gc3R5bGU9ImNvbG9yOiMxZjdhMWYiPicgKyBqLmFuek9rICsgJyBPSzwvc3Bh bj4gwrcgJyArCiAgICAgICAgJzxzcGFuIHN0eWxlPSJjb2xvcjojYjA2MDAwIj4nICsgai5hbnpE aWZmICsgJyBHcsO2w59lbi1EaWZmPC9zcGFuPiDCtyAnICsKICAgICAgICAnPHNwYW4gc3R5bGU9 ImNvbG9yOiNiMDIwMjAiPicgKyBqLmFuekZlaGx0QXNzZXQgKyAnIEFzc2V0IGZlaGx0PC9zcGFu PiDCtyAnICsKICAgICAgICAnPHNwYW4gc3R5bGU9ImNvbG9yOiNiMDIwMjAiPicgKyBqLmFuekZl aGx0U291cmNlICsgJyBTb3VyY2UgZmVobHQ8L3NwYW4+JzsKICAgICAgdmFyIHRib2R5ID0gUSgn I2dyb2Vzc2UtemVpbGVuJyk7CiAgICAgIChqLmRhdGVpZW4gfHwgW10pLmZvckVhY2goZnVuY3Rp b24oZCkgewogICAgICAgIHZhciBjbHMgPSAnb2snLCBzdGF0dXNUeHQgPSAn4pyTIGlkZW50aXNj aCc7CiAgICAgICAgaWYgKGQuc3RhdHVzID09PSAnZ3JvZXNzZV9kaWZmJykgICB7IGNscyA9ICd3 YXJuJzsgc3RhdHVzVHh0ID0gJ+KaoCBHcsO2w59lIGFid2VpY2hlbmQnOyB9CiAgICAgICAgZWxz ZSBpZiAoZC5zdGF0dXMgPT09ICdhc3NldF9mZWhsdCcpICB7IGNscyA9ICdmZWgnOyAgc3RhdHVz VHh0ID0gJ+KclyBBc3NldC1DYWNoZSBsZWVyJzsgfQogICAgICAgIGVsc2UgaWYgKGQuc3RhdHVz ID09PSAnc291cmNlX2ZlaGx0JykgeyBjbHMgPSAnZmVoJzsgIHN0YXR1c1R4dCA9ICfinJcgU291 cmNlIGZlaGx0JzsgfQogICAgICAgIGVsc2UgaWYgKGQuc3RhdHVzID09PSAnYmVpZGVfZmVobGVu JykgeyBjbHMgPSAnZmVoJzsgIHN0YXR1c1R4dCA9ICfinJcgYmVpZGUgZmVobGVuJzsgfQogICAg ICAgIHZhciBkaWZmVHh0ID0gJyc7CiAgICAgICAgaWYgKGQuZGlmZkJ5dGVzICE9IG51bGwpIHsK ICAgICAgICAgIGlmIChkLmRpZmZCeXRlcyA9PT0gMCkgZGlmZlR4dCA9ICcwJzsKICAgICAgICAg IGVsc2UgZGlmZlR4dCA9IChkLmRpZmZCeXRlcyA+IDAgPyAnKycgOiAnJykgKyBkLmRpZmZCeXRl czsKICAgICAgICB9IGVsc2UgeyBkaWZmVHh0ID0gJ+KAlCc7IH0KICAgICAgICB2YXIgdHIgPSBk b2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwogICAgICAgIHRyLmNsYXNzTmFtZSA9IGNsczsK ICAgICAgICB0ci5pbm5lckhUTUwgPQogICAgICAgICAgJzx0ZCBjbGFzcz0icGZhZCI+JyArIGVz Y2FwZUh0bWwoZC5wZmFkKSArICc8L3RkPicgKwogICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1h bGlnbjpyaWdodCI+JyArIGJ5dGVzRm10KGQuc291cmNlQnl0ZXMpICsgJzwvdGQ+JyArCiAgICAg ICAgICAnPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij4nICsgYnl0ZXNGbXQoZC5hc3NldEJ5 dGVzKSAgKyAnPC90ZD4nICsKICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQi PicgKyBkaWZmVHh0ICsgJzwvdGQ+JyArCiAgICAgICAgICAnPHRkIGNsYXNzPSJzdGF0dXMiPicg KyBzdGF0dXNUeHQgKyAnPC90ZD4nOwogICAgICAgIHRib2R5LmFwcGVuZENoaWxkKHRyKTsKICAg ICAgfSk7CiAgICAgIHJldHVybiB7IHN0YXR1czogJ29rJywgYW56RGlmZjogai5hbnpEaWZmLCBh bnpGZWhsdEFzc2V0OiBqLmFuekZlaGx0QXNzZXQsIGFuekZlaGx0U291cmNlOiBqLmFuekZlaGx0 U291cmNlIH07CiAgICB9KTsKICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICBRKCcjZ3JvZXNz ZS1tZXRhJykudGV4dENvbnRlbnQgPSAnTmV0endlcmstRmVobGVyOiAnICsgKGUubWVzc2FnZSB8 fCBlKTsKICAgIHJldHVybiB7IHN0YXR1czogJ2ZlaCcgfTsKICB9KTsKfQoKLy8gRmVobGVyLU9i amVrdCAtPiB7IG5hbWUsIHRleHQsIHN0YWNrIH0gZnVlciBkaWUgQW56ZWlnZSBhdWZiZXJlaXRl bi4KZnVuY3Rpb24gbW9kdWxGZWhsZXJUZXh0KGUpIHsKICB2YXIgbiA9IChlICYmIGUubmFtZSkg fHwgJ0ZlaGxlcic7CiAgdmFyIG0gPSAoZSAmJiBlLm1lc3NhZ2UpIHx8IFN0cmluZyhlKTsKICB2 YXIgc3RhY2sgPSAoZSAmJiBlLnN0YWNrKSA/IFN0cmluZyhlLnN0YWNrKS5zcGxpdCgnXG4nKS5z bGljZSgwLCA1KS5qb2luKCdcbicpIDogJyc7CiAgcmV0dXJuIHsgbmFtZTogbiwgdGV4dDogbiAr ICc6ICcgKyBtLCBzdGFjazogc3RhY2sgfTsKfQoKZnVuY3Rpb24gc3RhcnRaZWlsZShtb2R1bCwg c3RhdHVzLCBrb21tZW50YXIsIGRldGFpbHMpIHsKICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVF bGVtZW50KCd0cicpOwogIHRyLmNsYXNzTmFtZSA9IHN0YXR1cyA9PT0gJ09LJyA/ICdvaycgOiAo c3RhdHVzID09PSAnSU5GTycgPyAnc2tpcCcgOiAnZmVoJyk7CiAgdHIuaW5uZXJIVE1MID0KICAg ICc8dGQgY2xhc3M9InBmYWQiPicgKyBlc2NhcGVIdG1sKG1vZHVsKSArICc8L3RkPicgKwogICAg Jzx0ZCBjbGFzcz0ic3RhdHVzIj4nICsgc3RhdHVzICsgJzwvdGQ+JyArCiAgICAnPHRkIGNsYXNz PSJkZXRhaWwiPicgKyAoa29tbWVudGFyID8gZXNjYXBlSHRtbChrb21tZW50YXIpIDogJycpICsK ICAgICAgKGRldGFpbHMgPyAnPGRldGFpbHM+PHN1bW1hcnk+bWVocjwvc3VtbWFyeT48cHJlIHN0 eWxlPSJtYXJnaW46NHB4IDA7d2hpdGUtc3BhY2U6cHJlLXdyYXAiPicgKwogICAgICAgICBlc2Nh cGVIdG1sKGRldGFpbHMpICsgJzwvcHJlPjwvZGV0YWlscz4nIDogJycpICsKICAgICc8L3RkPic7 CiAgUSgnI3N0YXJ0LXplaWxlbicpLmFwcGVuZENoaWxkKHRyKTsKfQoKLy8gU3RhcnQtRGlhZ25v c2U6IGxhZWR0IGplZGVzIEVTLU1vZHVsIGVpbnplbG4gcGVyIGR5bmFtaWMgaW1wb3J0KCkuIEZh ZW5ndAovLyBTeW50YXgtL0xpbmstRmVobGVyIChmZWhsZW5kZXIgRXhwb3J0LCBrYXB1dHRlciBJ bXBvcnQtUGZhZCkgYWIsIGRpZSBpbQovLyBlY2h0ZW4gaW5kZXguaHRtbCB6dW0gd2Vpc3NlbiBC aWxkc2NoaXJtIGZ1ZWhyZW4uIGFwcC5qcyB6dWxldHp0OiBkb3J0IGlzdAovLyBlaW4gTGF1Znpl aXRmZWhsZXIgYXVzIGluaXQoKSBnZWdlbiBkaWUgZnJlbWRlIERPTSBlcndhcnRiYXIgKC0+IElO Rk8pLCBlaW4KLy8gUGFyc2UtL0xpbmstRmVobGVyIGRhZ2VnZW4gZWluIGVjaHRlciBTdGFydC1L aWxsZXIgKC0+IEZFSExFUikuCmZ1bmN0aW9uIHBydWVmZVN0YXJ0KGluZm8pIHsKICBRKCcjc3Rh cnQtbWV0YScpLnRleHRDb250ZW50ID0gJ0zDpGR0IE1vZHVsZSBlaW56ZWxu4oCmJzsKICBRKCcj c3RhcnQtemVpbGVuJykuaW5uZXJIVE1MID0gJyc7CgogIHZhciBnRXJyID0gW107CiAgZnVuY3Rp b24gb25FcnIoZXYpIHsKICAgIGdFcnIucHVzaCgoZXYuZXJyb3IgJiYgKGV2LmVycm9yLnN0YWNr IHx8IGV2LmVycm9yLm1lc3NhZ2UpKSB8fAogICAgICAgICAgICAgICgoZXYubWVzc2FnZSB8fCAn ZXJyb3InKSArIChldi5maWxlbmFtZSA/ICcgQCAnICsgZXYuZmlsZW5hbWUgKyAnOicgKyBldi5s aW5lbm8gOiAnJykpKTsKICB9CiAgZnVuY3Rpb24gb25SZWooZXYpIHsKICAgIHZhciByID0gZXYu cmVhc29uOwogICAgZ0Vyci5wdXNoKCd1bmhhbmRsZWRyZWplY3Rpb246ICcgKyAoKHIgJiYgKHIu c3RhY2sgfHwgci5tZXNzYWdlKSkgfHwgcikpOwogIH0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l cignZXJyb3InLCBvbkVyciwgdHJ1ZSk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFu ZGxlZHJlamVjdGlvbicsIG9uUmVqKTsKCiAgLy8gTnVyIE1vZHVsZSwgZnVlciBkaWUgZGVyIFVz ZXIgYmVyZWNodGlndCBpc3QgKHNvbnN0IDQwNCAtPiBmYWxzY2hlciBGRUhMRVIpLgogIHZhciBw ZmFkZSA9IFNPTEwuZmlsdGVyKGZ1bmN0aW9uKGUpIHsgcmV0dXJuIGUuaXN0TW9kdWwgJiYgZGFy ZkZ1ZXIoZSwgaW5mbyk7IH0pCiAgICAgICAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24oZSkgeyBy ZXR1cm4gZS5wZmFkOyB9KTsKCiAgdmFyIHJlcyA9IHsgb2s6IDAsIGZlaDogMCB9OwogIHZhciBj aGFpbiA9IFByb21pc2UucmVzb2x2ZSgpOwogIHBmYWRlLmZvckVhY2goZnVuY3Rpb24ocCkgewog ICAgY2hhaW4gPSBjaGFpbi50aGVuKGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaW1wb3J0KCcu LycgKyBwKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHN0YXJ0WmVpbGUocCwgJ09LJywgJ2dl bGFkZW4nKTsgcmVzLm9rKys7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICB2 YXIgZiA9IG1vZHVsRmVobGVyVGV4dChlKTsKICAgICAgICBzdGFydFplaWxlKHAsICdGRUhMRVIn LCBmLnRleHQsIGYuc3RhY2spOyByZXMuZmVoKys7CiAgICAgIH0pOwogICAgfSk7CiAgfSk7CiAg Ly8gYXBwLmpzIHp1bGV0enQgdW5kIGdlc29uZGVydCBrbGFzc2lmaXppZXJlbi4KICBjaGFpbiA9 IGNoYWluLnRoZW4oZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gaW1wb3J0KCcuL2FwcC5qcycpLnRo ZW4oZnVuY3Rpb24oKSB7CiAgICAgIHN0YXJ0WmVpbGUoJ2FwcC5qcycsICdPSycsICdnZWxhZGVu ICsgaW5pdCgpIGR1cmNobGF1ZmVuJyk7IHJlcy5vaysrOwogICAgfSkuY2F0Y2goZnVuY3Rpb24o ZSkgewogICAgICB2YXIgZiA9IG1vZHVsRmVobGVyVGV4dChlKTsKICAgICAgaWYgKGYubmFtZSA9 PT0gJ1N5bnRheEVycm9yJykgewogICAgICAgIC8vIFBhcnNlLSBvZGVyIExpbmstRmVobGVyICh6 LkIuIGZlaGxlbmRlciBFeHBvcnQpIC0+IGVjaHRlciBTdGFydC1LaWxsZXIuCiAgICAgICAgc3Rh cnRaZWlsZSgnYXBwLmpzJywgJ0ZFSExFUicsIGYudGV4dCwgZi5zdGFjayk7IHJlcy5mZWgrKzsK ICAgICAgfSBlbHNlIHsKICAgICAgICBzdGFydFplaWxlKCdhcHAuanMnLCAnSU5GTycsCiAgICAg ICAgICAnTW9kdWwgbMOkZHQg4oCUIExhdWZ6ZWl0ZmVobGVyIGF1cyBpbml0KCkgYXVmIGRpZXNl ciBEaWFnbm9zZS1TZWl0ZSBlcndhcnRiYXIgKGltIGVjaHRlbiBpbmRleC5odG1sIGdnZi4gbmlj aHQpOiAnICsgZi50ZXh0LAogICAgICAgICAgZi5zdGFjayk7CiAgICAgIH0KICAgIH0pOwogIH0p OwoKICByZXR1cm4gY2hhaW4udGhlbihmdW5jdGlvbigpIHsKICAgIHdpbmRvdy5yZW1vdmVFdmVu dExpc3RlbmVyKCdlcnJvcicsIG9uRXJyLCB0cnVlKTsKICAgIHdpbmRvdy5yZW1vdmVFdmVudExp c3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblJlaik7CiAgICBpZiAoZ0Vyci5sZW5ndGgp IHsKICAgICAgLy8gRG9wcGVsdGUgenVzYW1tZW5mYXNzZW4uCiAgICAgIHZhciBzZWVuID0ge307 CiAgICAgIGdFcnIuZm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgaWYgKHNlZW5bdF0pIHJl dHVybjsgc2Vlblt0XSA9IDE7CiAgICAgICAgc3RhcnRaZWlsZSgnKGdsb2JhbGVyIEZlaGxlciBi ZWltIE1vZHVsLUxhZGV0ZXN0KScsICdGRUhMRVInLCAnc2llaGUgRGV0YWlscycsIHQpOwogICAg ICAgIHJlcy5mZWgrKzsKICAgICAgfSk7CiAgICB9CiAgICBRKCcjc3RhcnQtbWV0YScpLmlubmVy SFRNTCA9IHJlcy5mZWgKICAgICAgPyAnPHNwYW4gc3R5bGU9ImNvbG9yOiNiMDIwMjA7Zm9udC13 ZWlnaHQ6NjAwIj7inJcgJyArIHJlcy5mZWggKyAnIE1vZHVsLVByb2JsZW0oZSkg4oCUIERBUyB2 ZXJoaW5kZXJ0IGRlbiBTdGFydC48L3NwYW4+IEJlaGViZSBkaWUgZXJzdGUgRkVITEVSLVplaWxl LCBkYW5uIGVybmV1dCBwcsO8ZmVuLicKICAgICAgOiAnPHNwYW4gc3R5bGU9ImNvbG9yOiMxZjdh MWY7Zm9udC13ZWlnaHQ6NjAwIj7inJMgQWxsZSAnICsgcmVzLm9rICsgJyBNb2R1bGUgbGFkZW4g ZmVobGVyZnJlaS48L3NwYW4+IFN0YXJ0ZXQgZGllIFNlaXRlIHRyb3R6ZGVtIG5pY2h0LCBsaWVn dCBlcyBhbiBkZXIgTGF1ZnplaXQgKERhdGVuL0FQSS9pbml0KSDigJQgQnJvd3Nlci1Lb25zb2xl IGRpcmVrdCBhdWYgPGNvZGU+aW5kZXguaHRtbDwvY29kZT4gcHLDvGZlbi4nOwogICAgcmV0dXJu IHJlczsKICB9KTsKfQoKZnVuY3Rpb24gc3RhcnQoKSB7CiAgUSgnI2J0bi1zdGFydCcpLmRpc2Fi bGVkID0gdHJ1ZTsKICBRKCcjemVpbGVuJykuaW5uZXJIVE1MID0gJyc7CiAgUSgnI3N0YXJ0LXpl aWxlbicpLmlubmVySFRNTCA9ICcnOwogIFEoJyNzdGFydC1tZXRhJykudGV4dENvbnRlbnQgPSAn bMOkdWZ04oCmJzsKICBRKCcjZ3JvZXNzZS16ZWlsZW4nKS5pbm5lckhUTUwgPSAnJzsKICBRKCcj Z3JvZXNzZS1tZXRhJykudGV4dENvbnRlbnQgPSAnJzsKICBRKCcjc3RhdHVzJykudGV4dENvbnRl bnQgPSAnbMOkdWZ04oCmJzsKICBRKCcjc3RhdHVzJykuY2xhc3NOYW1lID0gJ2xhdWZlbic7CiAg USgnI3p1c2FtbWVuZmFzc3VuZycpLnRleHRDb250ZW50ID0gJ0xhZGXigKYnOwogIFEoJyN6dXNh bW1lbmZhc3N1bmcnKS5jbGFzc05hbWUgPSAnenVzYW1tZW5mYXNzdW5nIG5ldXRyYWwnOwoKICAv LyBFcnN0IE1hbmlmZXN0IGxhZGVuIChGZWhsZXIgdG9sZXJpZXJlbiDigJQgZGFubiBmYWVsbHQg ZGVyIENoZWNrIGF1ZgogIC8vIHJlaW5lbiBBbmtlci1DaGVjayB6dXJ1ZWNrKSwgZGFubiBSZWNo dGUgaG9sZW4gKyBQcnVlZnVuZyBzdGFydGVuLgogIFByb21pc2UuYWxsKFttYW5pZmVzdExhZGVu KCksIHJlY2h0ZUhvbGVuKCldKS50aGVuKGZ1bmN0aW9uKGFycikgewogICAgTUFOSUZFU1QgPSBh cnJbMF07CiAgICB2YXIgaW5mbyA9IGFyclsxXTsKICAgIHZhciBtYW5pZmVzdFR4dDsKICAgIGlm IChNQU5JRkVTVCAmJiBNQU5JRkVTVF9NRVRBKSB7CiAgICAgIG1hbmlmZXN0VHh0ID0gJyDCtyBN YW5pZmVzdDogJyArIChNQU5JRkVTVF9NRVRBLmJyYW5jaCB8fCAnPycpICsKICAgICAgICAgICAg ICAgICAgICAnQCcgKyAoTUFOSUZFU1RfTUVUQS5jb21taXQgfHwgJz8nKSArCiAgICAgICAgICAg ICAgICAgICAgJyAoJyArIE9iamVjdC5rZXlzKE1BTklGRVNUKS5sZW5ndGggKyAnIERhdGVpZW4s IGdlbmVyaWVydCAnICsKICAgICAgICAgICAgICAgICAgICAoTUFOSUZFU1RfTUVUQS5nZW5lcmll cnQgfHwgJz8nKSArICcpJzsKICAgIH0gZWxzZSB7CiAgICAgIG1hbmlmZXN0VHh0ID0gJyDCtyDi mqAgTWFuaWZlc3QgbmljaHQgZ2VmdW5kZW4g4oCUIEhhc2gtVmVyZ2xlaWNoIMO8YmVyc3BydW5n ZW4nICsKICAgICAgICAgICAgICAgICAgICAnICh1cGRhdGUtc3luYy1tYW5pZmVzdC5zaCBhdXNm w7xocmVuIHVuZCBjb21taXR0ZW4pJzsKICAgIH0KICAgIFEoJyNpbmZvJykuaW5uZXJIVE1MID0K ICAgICAgJ0VpbmdlbG9nZ3QgYWxzICcgKyBlc2NhcGVIdG1sKGluZm8uYmVudXR6ZXIgfHwgJz8n KSArICcgwrcgUm9sbGU6ICcgKyBlc2NhcGVIdG1sKGluZm8ucm9sbGUgfHwgJz8nKSArCiAgICAg IChpbmZvLmlzdFN1cGVyVXNlciA/ICcgwrcgU3VwZXJVc2VyJyA6ICcnKSArCiAgICAgICcgwrcg c2VoZW46ICcgKyBlc2NhcGVIdG1sKE9iamVjdC5rZXlzKGluZm8uc2VoZW4gfHwge30pLmZpbHRl cihmdW5jdGlvbihrKXsgcmV0dXJuIGluZm8uc2VoZW5ba107IH0pLmpvaW4oJywgJykpICsKICAg ICAgbWFuaWZlc3RUeHQ7CiAgICAvLyBIZWFkbGluZSB6dWVyc3Q6IFN0YXJ0LURpYWdub3NlIChN b2R1bC1MYWRldGVzdCkuIERhbmFjaCBkaWUgYmlzaGVyaWdlbgogICAgLy8gQXVzbGllZmVydW5n cy0vQW5rZXItL0dyb2Vzc2VuLVBydWVmdW5nZW4uCiAgICByZXR1cm4gcHJ1ZWZlU3RhcnQoaW5m bykudGhlbihmdW5jdGlvbihzdGFydFJlcykgewogICAgLy8gc2VxdWVuemllbGwgcHJ1ZWZlbiwg ZGFtaXQgZGllIFJlaWhlbmZvbGdlIGRlciBaZWlsZW4gbWl0IFNPTEwgaWRlbnRpc2NoIGlzdAog ICAgdmFyIGVyZ2Vibmlzc2UgPSBbXTsKICAgIHZhciBjaGFpbiA9IFByb21pc2UucmVzb2x2ZSgp OwogICAgU09MTC5mb3JFYWNoKGZ1bmN0aW9uKGUpIHsKICAgICAgY2hhaW4gPSBjaGFpbi50aGVu KGZ1bmN0aW9uKCkgeyByZXR1cm4gcHJ1ZWZlRWludHJhZyhlLCBpbmZvKTsgfSkudGhlbihmdW5j dGlvbihyKSB7IGVyZ2Vibmlzc2UucHVzaChyKTsgfSk7CiAgICB9KTsKICAgIHJldHVybiBjaGFp bi50aGVuKGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHJ1ZWZlSW1wb3J0ZShlcmdlYm5pc3Nl KS50aGVuKGZ1bmN0aW9uKGltcENoZWNrKSB7CiAgICAgICAgcmV0dXJuIHBydWVmZUdyb2Vzc2Vu KCkudGhlbihmdW5jdGlvbihnckNoZWNrKSB7CiAgICAgICAgICB2YXIgb2sgICAgPSBlcmdlYm5p c3NlLmZpbHRlcihmdW5jdGlvbihyKXsgcmV0dXJuIHIuc3RhdHVzID09PSAnb2snOyB9KS5sZW5n dGg7CiAgICAgICAgICB2YXIgd2FybiAgPSBlcmdlYm5pc3NlLmZpbHRlcihmdW5jdGlvbihyKXsg cmV0dXJuIHIuc3RhdHVzID09PSAnd2Fybic7IH0pLmxlbmd0aDsKICAgICAgICAgIHZhciBmZWgg ICA9IGVyZ2Vibmlzc2UuZmlsdGVyKGZ1bmN0aW9uKHIpeyByZXR1cm4gci5zdGF0dXMgPT09ICdm ZWgnOyB9KS5sZW5ndGggKwogICAgICAgICAgICAgICAgICAgICAgKGltcENoZWNrLnN0YXR1cyA9 PT0gJ2ZlaCcgPyBpbXBDaGVjay5hbnphaGwgOiAwKTsKICAgICAgICAgIHZhciBza2lwICA9IGVy Z2Vibmlzc2UuZmlsdGVyKGZ1bmN0aW9uKHIpeyByZXR1cm4gci5zdGF0dXMgPT09ICdza2lwJzsg fSkubGVuZ3RoOwogICAgICAgICAgLy8gR3JvZXNzZW4tQ2hlY2sgZmxpZXNzdCB6dXNhZXR6bGlj aCBpbiBkaWUgWnVzYW1tZW5mYXNzdW5nIGVpbi4KICAgICAgICAgIHZhciBncldhcm4gPSAoZ3JD aGVjay5hbnpEaWZmIHx8IDApOwogICAgICAgICAgdmFyIGdyRmVoICA9IChnckNoZWNrLmFuekZl aGx0QXNzZXQgfHwgMCkgKyAoZ3JDaGVjay5hbnpGZWhsdFNvdXJjZSB8fCAwKTsKICAgICAgICAg IHdhcm4gKz0gZ3JXYXJuOwogICAgICAgICAgZmVoICArPSBnckZlaDsKICAgICAgICAgIC8vIFN0 YXJ0LURpYWdub3NlIChNb2R1bC1MYWRlZmVobGVyKSBpc3QgZGVyIGtyaXRpc2Noc3RlIEJsb2Nr LgogICAgICAgICAgdmFyIHN0YXJ0RmVoID0gKHN0YXJ0UmVzICYmIHN0YXJ0UmVzLmZlaCkgfHwg MDsKICAgICAgICAgIGZlaCArPSBzdGFydEZlaDsKCiAgICAgICAgICB2YXIgenVzID0gUSgnI3p1 c2FtbWVuZmFzc3VuZycpOwogICAgICAgICAgdmFyIGdyU3VmZml4ID0gKGdyV2FybiB8fCBnckZl aCkKICAgICAgICAgICAgPyAoJyDCtyBHcsO2w59lbi1DaGVjazogJyArIGdyV2FybiArICcgRGlm ZiwgJyArIGdyRmVoICsgJyBmZWhsZW4nKQogICAgICAgICAgICA6ICcnOwogICAgICAgICAgdmFy IHN0YXJ0U3VmZml4ID0gc3RhcnRGZWggPyAoJyDCtyDwn5qAIFN0YXJ0LURpYWdub3NlOiAnICsg c3RhcnRGZWggKyAnIE1vZHVsLVByb2JsZW0oZSknKSA6ICcnOwogICAgICAgICAgaWYgKGZlaCA9 PT0gMCAmJiB3YXJuID09PSAwKSB7CiAgICAgICAgICAgIHp1cy50ZXh0Q29udGVudCA9ICfinJMg QWxsZSAnICsgb2sgKyAnIERhdGVpZW4gT0sgwrcgTW9kdWxlIGxhZGVuIMK3IEdyw7bDn2VuIGlk ZW50aXNjaCcgKyAoc2tpcCA/ICcgKCcgKyBza2lwICsgJyDDvGJlcnNwcnVuZ2VuKScgOiAnJyk7 CiAgICAgICAgICAgIHp1cy5jbGFzc05hbWUgPSAnenVzYW1tZW5mYXNzdW5nIG9rJzsKICAgICAg ICAgIH0gZWxzZSBpZiAoZmVoID09PSAwKSB7CiAgICAgICAgICAgIHp1cy50ZXh0Q29udGVudCA9 ICfimqAgJyArIG9rICsgJyBPSyDCtyAnICsgd2FybiArICcgV2FybnVuZyhlbiknICsgZ3JTdWZm aXggKyAoc2tpcCA/ICcgwrcgJyArIHNraXAgKyAnIMO8YmVyc3BydW5nZW4nIDogJycpOwogICAg ICAgICAgICB6dXMuY2xhc3NOYW1lID0gJ3p1c2FtbWVuZmFzc3VuZyB3YXJuJzsKICAgICAgICAg IH0gZWxzZSB7CiAgICAgICAgICAgIHp1cy50ZXh0Q29udGVudCA9ICfinJcgJyArIGZlaCArICcg UHJvYmxlbShlKSDCtyAnICsgb2sgKyAnIE9LIMK3ICcgKyB3YXJuICsgJyBXYXJudW5nKGVuKScg KyBzdGFydFN1ZmZpeCArIGdyU3VmZml4OwogICAgICAgICAgICB6dXMuY2xhc3NOYW1lID0gJ3p1 c2FtbWVuZmFzc3VuZyBmZWgnOwogICAgICAgICAgfQogICAgICAgICAgUSgnI3N0YXR1cycpLnRl eHRDb250ZW50ID0gJ2ZlcnRpZyc7CiAgICAgICAgICBRKCcjc3RhdHVzJykuY2xhc3NOYW1lID0g J25ldXRyYWwnOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0pOwogICAgfSk7CiAgfSkuY2F0 Y2goZnVuY3Rpb24oZSkgewogICAgUSgnI3p1c2FtbWVuZmFzc3VuZycpLnRleHRDb250ZW50ID0g J+KclyAvYXBpL2luZm8gbmljaHQgZXJyZWljaGJhcjogJyArIChlLm1lc3NhZ2UgfHwgZSk7CiAg ICBRKCcjenVzYW1tZW5mYXNzdW5nJykuY2xhc3NOYW1lID0gJ3p1c2FtbWVuZmFzc3VuZyBmZWgn OwogICAgUSgnI3N0YXR1cycpLnRleHRDb250ZW50ID0gJ2FiZ2Vicm9jaGVuJzsKICAgIFEoJyNz dGF0dXMnKS5jbGFzc05hbWUgPSAnbmV1dHJhbCc7CiAgfSkuZmluYWxseShmdW5jdGlvbigpIHsK ICAgIFEoJyNidG4tc3RhcnQnKS5kaXNhYmxlZCA9IGZhbHNlOwogIH0pOwp9CgpRKCcjYnRuLXN0 YXJ0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBzdGFydCk7Ci8vIEF1dG8tU3RhcnQgYmVp bSBPZWZmbmVuCnN0YXJ0KCk7Cg== ### FILE: sync-manifest.json | 6024 ewogICJnZW5lcmllcnQiOiAgIjIwMjYtMDYtMjBUMDg6MTg6NTlaIiwKICAiYnJhbmNoIjogICAg ICJtYWluIiwKICAiY29tbWl0IjogICAgICIyOWU1ZTgxIiwKICAiYWxnb3JpdGhtdXMiOiJzaGEy NTYiLAogICJkYXRlaWVuIjogewogICAgIldvY2hlbnBsYW4uaHRtbCI6IHsgInNoYTI1NiI6ICIz MDY4NDMxMjU3NDBjOGJmMjgxY2RkN2VlMTZiMmEyNDI1ZWU2NDBkNDdhOGNkYWVkNzE2OWMwOGY4 OWIzOGQwIiwgImJ5dGVzIjogMjE0OTM1IH0sCiAgICAiV29jaGVucGxhbi50ZW1wbGF0ZS5odG1s IjogeyAic2hhMjU2IjogIjM4NjM0OGFhZjgxN2FmYjA1MmRlZGU5Nzc5YTljOWM0ZTg5ZGFjMWVh OGRhYjBkMTEyMjdiMjRjNTgyNmIxNDMiLCAiYnl0ZXMiOiAyNjM4MCB9LAogICAgImFwcC5qcyI6 IHsgInNoYTI1NiI6ICI5NjEzM2VhZDkwMDRhYTNmMDA4MzI2YmFkZWE1ZTY1ZmVmNTRkZDY3YTli ZTVkMjg2MDU1NDFiMDZlM2Y1MzA5IiwgImJ5dGVzIjogMTQzMDk4IH0sCiAgICAiZGlhZ25vc2Uu aHRtbCI6IHsgInNoYTI1NiI6ICIwYmY1MDdjMmZmZTI3NjNkNTE2ZjFhYmZiZDlkOTRlMjI3NDgw OTk5ZTNjY2ZkNDJjNGQ1YjQzZWNmZTg5YjI3IiwgImJ5dGVzIjogMjUzOCB9LAogICAgImRpYWdu b3NlLmpzIjogeyAic2hhMjU2IjogImVjOTBkMDRkZmE2MzZmYjA5MDNlZjE3MTlmOTM4YWQwYmY1 NzM1OWM4MDQxMDFlOGExMzNmNzlkNDI4MWZlZWUiLCAiYnl0ZXMiOiA1Mjg1IH0sCiAgICAiZmF2 aWNvbi5pY28iOiB7ICJzaGEyNTYiOiAiMjU0Y2Y1NWJkNzQ0ZDAxYTE0NjFkMjM4NzVkN2JkYjI1 NDI0MWQ4ZmY4MjZhM2QwY2Y2ZDhkN2MwY2Q1Y2NhYSIsICJieXRlcyI6IDQ0NDMgfSwKICAgICJo ZWFydGJlYXQtd29ya2VyLmpzIjogeyAic2hhMjU2IjogIjEzMDBiNmJhNGU4OWI2MWViYWFmOGY2 YTk5OGMyMGM5YTFhNzQ2N2E5ZTc5M2RiMDRhM2Y1NmY1NTk2ZWEyNWEiLCAiYnl0ZXMiOiAyNzUx IH0sCiAgICAiaW5kZXguaHRtbCI6IHsgInNoYTI1NiI6ICJmMjA2M2UxNWVkNjNiZDE3MWE1NmZm ZGQ1NWViYzk5ODIxYjRjNjg2MzlhNTZkMmJkMTBiNWIyYWE5OGU1YTY1IiwgImJ5dGVzIjogMTI5 MjExIH0sCiAgICAiaW5mby5odG1sIjogeyAic2hhMjU2IjogIjdmMDE2ZjUzZjVjMWQ1YjE3NzUw MTFlNTlkZTg5MTIzMGU0ZTc3MjAyY2JmOTFiOGVhODRhMTk1OGZlN2M1NzYiLCAiYnl0ZXMiOiAx Mjc2NSB9LAogICAgImpzL2FkbWluLmpzIjogeyAic2hhMjU2IjogIjkyZjEzM2QzMDE0YmM4Nzdi NGUyYTA5ZmNmNjcyZWFhNzNkYTE5ZGNhN2MyZTU0ZTRkZWIxNzMyYjMwYTk4NDUiLCAiYnl0ZXMi OiA3NzM2NSB9LAogICAgImpzL2FkbWluX2NvZGVzLmpzIjogeyAic2hhMjU2IjogIjdiNTRiMTIy ZmYxOTIzOTNhODZlZjQyNGU4ZTUyY2ZmZmM5MzA2MjIzN2E0ODY2MzZiMTQ0OWFmOWZjOGQ1Mjci LCAiYnl0ZXMiOiAyNjA1NSB9LAogICAgImpzL2FkbWluX2NvbW1vbi5qcyI6IHsgInNoYTI1NiI6 ICI2NGVlOGU4YjhkMDZjMjAwYjQ5YmM0Y2I2MTkzNGU1NDE3ZjkyZjYyYTdkZjVkOWQzMWQwOTEw ZjNiYzViZTc0IiwgImJ5dGVzIjogMTUyOCB9LAogICAgImpzL2FkbWluX2Vyc2NoZWludW5nc2Jp bGQuanMiOiB7ICJzaGEyNTYiOiAiNTE2ODRmYjczOTc4ODM1MDU5YjIwMDlkMDUyNWEwZjkzZDNk YTNlOWNhNTU3M2Y4OTcwMTUwY2I5NTlhZGE1NCIsICJieXRlcyI6IDMxNzQxIH0sCiAgICAianMv YWRtaW5fa2FsZW5kZXIuanMiOiB7ICJzaGEyNTYiOiAiYzNhNzBjYzhhN2EyY2JlYmY0ODVhMzhi OTkwNmY3MTBlNmRjYzUxOWE2YjI2YzM3YmFhOTJkZDEyMGRiMzkzYSIsICJieXRlcyI6IDI2NDg5 IH0sCiAgICAianMvYWRtaW5fbWl0dGVpbHVuZ2VuLmpzIjogeyAic2hhMjU2IjogIjZlZWIzMDNh MTcwMmMxZTk1YzkxYWM5Mzg5N2FkZjQ4ZDI1ODA1NzZkNWI5NWEzZTVlMzZlZTA3OWQ2ZGIxMDMi LCAiYnl0ZXMiOiAxOTk1OSB9LAogICAgImpzL2FkbWluX3BlcnNvbmFsLmpzIjogeyAic2hhMjU2 IjogIjdmNjI3NGM5OGIyMmJjNTI4ZTVlMGEwNmIzMThlMmM2MDNkODllZDQ3NmUxZjE4ZjNkNTRi NDU4NzNiMGMyMWMiLCAiYnl0ZXMiOiAxMDg3NjIgfSwKICAgICJqcy9hZG1pbl9yb2xsZW4uanMi OiB7ICJzaGEyNTYiOiAiYjI4OTNmYTNhZmMyNGQyYjQ0YzI1OTM0NjU3Nzk2NDlhZjliMjA3YmMy NzYxODJhMzMxYzVjMTc4MmZjZjRkNCIsICJieXRlcyI6IDQzMjc4IH0sCiAgICAianMvYWRtaW5f c3RhbmRhcmRyZWNodGUuanMiOiB7ICJzaGEyNTYiOiAiYWU2OTEyMDhmYzk4MmQwMmZlYzhhOGY1 ZTliNDBlMDI2MzhmMzdiZWU0NGY0ZDRmZTAxZjdlMTEwNjUyZDU3NCIsICJieXRlcyI6IDkyMzcg fSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWsuanMiOiB7ICJzaGEyNTYiOiAiMDc2NTUxODllMGUx YmE1YWE4ZjMyYzI5M2IzNGJjN2RiZmNiMTUxY2NiY2QxNDlmM2IwODI0MTVmOTg0MTQ3NiIsICJi eXRlcyI6IDgyNTkgfSwKICAgICJqcy9hZG1pbl9zdGF0aXN0aWtfYnVpbGRlci5qcyI6IHsgInNo YTI1NiI6ICI0NGZjYjgyODBiZmQ3MmUwNjUxMDZiNjdkNTBlYzg2NjY2MTZmNWEyOGQ0NTYyZjc1 MzVhYzAxNTU1NjQ2MzU1IiwgImJ5dGVzIjogMzA0OTQgfSwKICAgICJqcy9iZXNldHp1bmcuanMi OiB7ICJzaGEyNTYiOiAiZjMxY2NmN2E1NzBkNjQ3MjNlOTVkNjIwZWI2ODY5NmVjODE2ZmUwYjJl MjEwYjI2NmQ1ODUxZDI4MWI5MDM3NyIsICJieXRlcyI6IDU5NTk1IH0sCiAgICAianMvY29yZV9h cGkuanMiOiB7ICJzaGEyNTYiOiAiNzA4YmQ4MDdjNjVjOWZhMTA1MjkwYTViNzlmNjE1NjExMDg1 OTEzNjM4MDBkY2I0NjBlMWEwZDIwYzc1NjdiMSIsICJieXRlcyI6IDEwODcgfSwKICAgICJqcy9j b3JlX2RhdGVuTGFkZW4uanMiOiB7ICJzaGEyNTYiOiAiZmQyZDZjNzgwOWE3YWMxNDE3OTFhODFm YTgwMjcwMTkxYTJjMWJjNmVmMWNiMWY3OGRkMDdkZTRjZDQ0YWIzOSIsICJieXRlcyI6IDcyMDMg fSwKICAgICJqcy9jb3JlX3Blcm1pc3Npb25zLmpzIjogeyAic2hhMjU2IjogIjQ2YjNhNmQ4NWFj ZmFkYzUxOWRhNjNlODZlMmYwZGViYzRmOTNlZTI5NmYyNTBlMmRjNDQ5MTgyM2Q1ZWI5YTYiLCAi Ynl0ZXMiOiAyMTc3MCB9LAogICAgImpzL2NvcmVfc3RhdGUuanMiOiB7ICJzaGEyNTYiOiAiNjVm ZmM2MGZlZjg1ZjQ5YWFkZTQyYTdlMzRjM2ZkNGYzMjg1OGUwMmE1NmQwMTczZTZiZGEyODFlNDY1 Yjc2MCIsICJieXRlcyI6IDE0MTIgfSwKICAgICJqcy9jb3JlX3V0aWwuanMiOiB7ICJzaGEyNTYi OiAiYThhOTk2ZGQ5MTkyODY4MzFkNDIxN2E2OWM4Yjk2MjYwYWU3ZDA2MmJlZWRhNzExOGYyZTFh NWQzNTA4OTFhMSIsICJieXRlcyI6IDEyMDQ2IH0sCiAgICAianMvZW1haWxfdm9ybGFnZW4uanMi OiB7ICJzaGEyNTYiOiAiZDk2ODJmM2JkN2I2MmEzYTI0ZTQ4YzVmYjY5NDc1NzY3YWM0YzQxMmIw NzAxYjg0ZTVmZDA5NjljYmMxN2EzOCIsICJieXRlcyI6IDQxNjcxIH0sCiAgICAianMvZXhwb3J0 X3BsYW4uanMiOiB7ICJzaGEyNTYiOiAiNWY4Y2FiYjk5ZTEzYzY0MzNhNmNjYjAxMjM1MTZlYjJk MjY4ODIxMDg3YzNhNWJhOWVhNjUwMTRkY2ExYTI3MyIsICJieXRlcyI6IDIwNzg0IH0sCiAgICAi anMvZmVpZXJ0YWdlX2RlLmpzIjogeyAic2hhMjU2IjogIjM0MTk1YjBkOTViZGJhMjhmMDBiYjE2 YzllMjE2MGExOWQ1Yzc1ZGI5MjEwNzRiMGMyMmM3OGQ1YWJmYTEwMWEiLCAiYnl0ZXMiOiAzMjA5 IH0sCiAgICAianMvZ3JpZF9lZGl0b3IuanMiOiB7ICJzaGEyNTYiOiAiY2U3YzllM2FmMGVjYmZj M2IyODM3NDIwMDBhMDUzZmRhZDkxZjgxMGI4ZWUwYmQxMzAyMWVmNTAxMWUxOTE5YyIsICJieXRl cyI6IDQwODUxIH0sCiAgICAianMvZ3JpZF9pbnRlcmFjdGlvbi5qcyI6IHsgInNoYTI1NiI6ICI1 OTNkNmQwYjRjMzJlZTM1Zjg1MmI1NGRlZWU2NjIzYmViNjQ3ODhhMzg1MzhkNjFkNzEyNjQyYjFm NDkwYTA0IiwgImJ5dGVzIjogMzU4OTMgfSwKICAgICJqcy9ncmlkX3JlbmRlci5qcyI6IHsgInNo YTI1NiI6ICIzMTM5ZjZlMmVmZDVjMTE5ZTExMzQ2OTVmZjQyMmIzYzg0YTE0MGUwMjNmZGZjNWVl YTUwNjZlZDZlOWM2YzM2IiwgImJ5dGVzIjogMzcwNjQgfSwKICAgICJqcy9oaW53ZWlzZS5qcyI6 IHsgInNoYTI1NiI6ICIyYjlmMzY4ZTc4MjE3MWVmMDhlZTk0ZDY1ODkzZDBhZGMyOWZiZjEyN2M1 ZWY2MzNjYWZjZTczZTBkOTBjY2E4IiwgImJ5dGVzIjogMTkwNjEgfSwKICAgICJqcy9pbXBvcnRf ZXhjZWwuanMiOiB7ICJzaGEyNTYiOiAiZjJhYTBkNjgyYjY1MWJlMDM4Y2IwY2U4MDc2NDczMDAw YmQxODA5OWU2MzkxMTljNzE0YmQyNjc3NTdiNTM5MCIsICJieXRlcyI6IDkxMjI1IH0sCiAgICAi anMvbG9nYnVjaC5qcyI6IHsgInNoYTI1NiI6ICI0Yjc3MjJkZWZhZDQyYjJkZTM0ZjhhYjJhZWNj OGRhNTUxNDdjZmU3MDkwMDc1YzM1MmViMWRiMDI2YjA2OWZlIiwgImJ5dGVzIjogMzY4NjggfSwK ICAgICJqcy9zY2hpY2h0dGVhbS5qcyI6IHsgInNoYTI1NiI6ICI2Mjk3YWFhNTQ0ZTlmMDYxODRj NjZlYzM3MGMwZTE3Y2UxZDE5NTAwZjI3ODMxZjE2YWVhM2QyMGUyMzhjMDc2IiwgImJ5dGVzIjog NjE2NCB9LAogICAgImpzL3N0YXRpc3Rpay5qcyI6IHsgInNoYTI1NiI6ICJjMzJmMzhjZjQzNzA4 MTkyNjQyOTYxNTAzNDEzNmE5NDMwMzc3NWNiMmQxY2E0ZTRlMjFhNmQ5MzY3M2RhODJmIiwgImJ5 dGVzIjogMTIyMDM1IH0sCiAgICAianMvc3RhdGlzdGlrX2NoYXJ0cy5qcyI6IHsgInNoYTI1NiI6 ICJjOGYzODNjYmIxYTA2YjE0N2JlZmNjNDYyOTdiMmU5YTU3Y2I1YTM0YzRjN2IxYTg0YWU5YWRh OWZiZmU0NzcwIiwgImJ5dGVzIjogMTg1MTEgfSwKICAgICJqcy9zdGF0aXN0aWtfZW5naW5lLmpz IjogeyAic2hhMjU2IjogIjIzYTRhYzc5NTViNTBiYjI0NzY3NjNjMjkyYzAyNGM1OGUxNDA1YjZh NzkzM2E4MTI5MWMwYWY0YTBjNTM3Y2IiLCAiYnl0ZXMiOiAxOTAxMCB9LAogICAgImpzL3N5bmMu anMiOiB7ICJzaGEyNTYiOiAiNWZiYWEwZDU0OTA0NzQ2MGNkYTQzOTFjMzFmZTY5YzE4YzUxNWNi YzhjNDViNDE4ZWNmYmI2MDdhMGQ2MzBiZiIsICJieXRlcyI6IDE5NDc0IH0sCiAgICAianMvdWlf ZGlhbG9nLmpzIjogeyAic2hhMjU2IjogIjk5YTQzM2RkMGJhMDlhNjE5ZDFlZGI5YWMyN2I4YmUw YmY1ZTIyODlkZDZkZGZhMjJiMTVhYzMzYjhkMTljYzYiLCAiYnl0ZXMiOiAzOTAyMSB9LAogICAg ImpzL3VpX3J0ZS5qcyI6IHsgInNoYTI1NiI6ICJhMzkzYTY5ZDBlNDI3NWIyMTAwMGEwM2RkZDRi YzU0ODQzMmE5ZjNkNmJmNzQzNWY4MmQ3N2IzZTQ1YzQ0NTYzIiwgImJ5dGVzIjogNjk1MSB9LAog ICAgImpzL3dvY2hlbnBsYW4uanMiOiB7ICJzaGEyNTYiOiAiNGY5MTRmYzg1NDNjYTc2OWM1OWNl OGU3MzdhNDZjMjg2MDdmMDEzYWRkMjY1NzgyZjgzZWMxZDI3NGEzNjgxMiIsICJieXRlcyI6IDE1 MjA0IH0sCiAgICAic3R5bGUuY3NzIjogeyAic2hhMjU2IjogIjYzNjkyOWRjMjM4M2I2YjA0OGRk NmFmY2M2NDFjYTc4NDc2MWY4MjU3N2U4NDZiODFiMmJhODdiYzFlNzg5ZDMiLCAiYnl0ZXMiOiAy MzQ1MzIgfSwKICAgICJzeW5jLWNoZWNrLmh0bWwiOiB7ICJzaGEyNTYiOiAiMjRkZjA3OTliODVk NjEyOTFkNWRkZjAyNGExN2M1MzM3OWQ5MGM3OWM5ZGE3MmJhNjlkODEzZTAxNGQ2ZjkyZiIsICJi eXRlcyI6IDQyNDkgfSwKICAgICJzeW5jLWNoZWNrLmpzIjogeyAic2hhMjU2IjogImU2YTM5NTQ0 YWFhYjc0NjkxYzA5N2Y5NGYxZDUwMGZhNGU5NWVlNjU4NGI0ZDkwNGViZjk5Nzc3MTc4Njk3NzQi LCAiYnl0ZXMiOiAzNDkwMyB9LAogICAgInN5bmMtd29ya2VyLmpzIjogeyAic2hhMjU2IjogIjll MDc1MDFjNDM1NGE4NmI4MmQ1MjFjMGY1NDhkMzM5ZjUyOTE5YzVkNmMwYmMyMmNhZGQ4Yjc2MDgx NWVmYjciLCAiYnl0ZXMiOiA3NzUyIH0sCiAgICAieGxzeC5mdWxsLm1pbi5qcyI6IHsgInNoYTI1 NiI6ICJjYzAxNTEzMGFhODUyMWU3ZjA4OGY4ODg5OGViYTk0OWNjZGNiZmIzOGRmMGJkMTI5YjQ0 YjcyNzNjM2E2ZjQxIiwgImJ5dGVzIjogOTUxOTA0IH0KICB9Cn0K ### FILE: sync-worker.js | 7752 Ly8gTGl2ZS1TeW5jIFdlYiBXb3JrZXIg4oCUIHBvbGx0IC9hcGkvcGxhbnVuZy9jaGFuZ2VzICsg L2FwaS9sb2NrL3plbGxlbiB1bmQKLy8gc2NoaWNrdCBkaWUgRGVsdGFzIGFuIGRlbiBIYXVwdHRo cmVhZC4gTGFldWZ0IGF1Y2ggaW4gSGludGVyZ3J1bmQtVGFicwovLyB1bmdlZHJvc3NlbHQgKGFu YWxvZyBoZWFydGJlYXQtd29ya2VyLmpzKS4KLy8KLy8gQWRhcHRpdmVzIFBvbGxpbmc6IEJlaSBh a3RpdmVyIE51dHp1bmcgKG1pbmQuIDEgQ2hhbmdlIG9kZXIgZnJlbWRlciBMb2NrKQovLyBhbGxl IEJBU0lTX0lOVEVSVkFMTCBtcy4gQmVpIGxhZW5nZXJlciBJbmFrdGl2aXRhZXQgc2Nocml0dHdl aXNlIGhvY2ggYXVmCi8vIE1BWF9JTlRFUlZBTEwsIGRhbWl0IElkbGUtVGFicyBkZW4gU2VydmVy IG5pY2h0IG1pdCBrb25zdGFudGVuIFJlcXVlc3RzCi8vIGJlbGFzdGVuLiBCZWkgamVkZXIgQWt0 aXZpdGFldCBvZGVyIGVpbmVtIHJlc3VtZS1Lb21tYW5kbyB2b20gTWFpbnRocmVhZAovLyBzb2Zv cnQgenVydWVjayBhdWYgQkFTSVNfSU5URVJWQUxMLgovLwovLyBQcm90b2tvbGw6Ci8vICAgTWFp biDihpIgV29ya2VyOiAgeyBjbWQ6ICdzdGFydCd8J3BhdXNlJ3wncmVzdW1lJywgc2VpdD86ICc8 aXNvLXRzPicsIHNlaXRTZXE/OiA8aW50PiB9Ci8vICAgV29ya2VyIOKGkiBNYWluOiAgeyB0eXBl OiAnc3luYycsIGNoYW5nZXM6IFsuLi5dLCBsb2NrczogWy4uLl0sIHNlcnZlclRzLCBzZXJ2ZXJT ZXEgfQovLwovLyBDdXJzb3I6IHByaW1hZXIgZGllIG1vbm90b25lIFNlcXVlbnpudW1tZXIgKHNl aXRfc2VxKSDigJQgcmFjZS1mcmVpLCB3ZWlsCi8vIGdlZmlsdGVydGUgQ2hhbmdlcyBVTkQgc2Vy dmVyU2VxIGF1cyBkZW1zZWxiZW4gU2VydmVyLVJlYWQgc3RhbW1lbi4gRGVyCi8vIGFsdGUgV2Fs bC1DbG9jay1DdXJzb3IgKHNlaXQpIHdpcmQgenVzYWV0emxpY2ggbWl0Z2VzY2hpY2t0LCBkYW1p dCBlaW4gbm9jaAovLyBuaWNodCBha3R1YWxpc2llcnRlciBTZXJ2ZXIgKG9obmUgc2VydmVyU2Vx KSB3ZWl0ZXIgZnVua3Rpb25pZXJ0LgoKdmFyIEJBU0lTX0lOVEVSVkFMTCA9IDMwMDA7CnZhciBN QVhfSU5URVJWQUxMICAgPSAzMDAwMDsKdmFyIExFRVJfVElDS1NfQklTX0JBQ0tPRkYgPSAzOyAg IC8vIG5hY2ggfjkgcyBvaG5lIEFrdGl2aXRhZXQgYW5mYW5nZW4genUgdmVyZG9wcGVsbgoKdmFy IGludGVydmFsbCA9IEJBU0lTX0lOVEVSVkFMTDsKdmFyIGxlZXJUaWNrcyA9IDA7CnZhciBzaWNo dGJhciA9IHRydWU7CnZhciBzZWl0ID0gJyc7ICAgICAgICAvLyBXYWxsLUNsb2NrLUN1cnNvciAo RmFsbGJhY2sgZnVlciBhbHRlIFNlcnZlcikKdmFyIHNlaXRTZXEgPSAnJzsgICAgIC8vIHNlcS1D dXJzb3IgKGxlZXIgPSBFcnN0LVN5bmMsIG51ciBDdXJzb3IgaG9sZW4pCnZhciB0aW1lciA9IG51 bGw7Ci8vIEF1ZGl0LVBoYXNlIEEuNCAoMjAyNi0wNS0yMSk6IHdlbm4gZWluIGFuZGVyZXIgU1Ug ZGVtIEJlbnV0emVyIGRpZSBSb2xsZQovLyBlbnR6aWVodCwgYW50d29ydGVuIGRpZSBFbmRwb2lu dHMgbWl0IDQwMy4gQmlzaGVyIHd1cmRlIGRhcyBzdGlsbHNjaHdlaWdlbmQKLy8gdmVyc2NobHVj a3QuIFdpciB6YWVobGVuIGF1ZmVpbmFuZGVyZm9sZ2VuZGUgNDAzIHVuZCBpbmZvcm1pZXJlbiBk ZW4gTWFpbi0KLy8gdGhyZWFkLCBkYW1pdCBkb3J0IGVpbiBUb2FzdCArIFJlbG9hZC1IaW53ZWlz IGtvbW10Lgp2YXIgYXVmZWluYW5kZXI0MDMgPSAwOwp2YXIgUEVSTUlTU0lPTl9MT1NUX05BQ0gg PSAzOwovLyBTcHJpbnQgNSDigJQgV2FydHVuZ3NzY2h1bGQgKDIwMjYtMDUtMjksIEZpbmRpbmcg MTUpOiB3ZW5uIGRlciBTZXJ2ZXIKLy8gbmV1IHN0YXJ0ZXQsIHNjaGx1ZyBmZXRjaCgpIGJpc2xh bmcgZWluZmFjaCBmZWhsIChUeXBlRXJyb3IgaW0gV29ya2VyKQovLyB1bmQgZGllIENhdGNoLUhh bmRsZXIgaGFiZW4gbnVsbCB6dXJ1ZWNrZ2VnZWJlbiDigJQgYWJlciBkYXMgbm9ybWFsZQovLyBC YWNrb2ZmIGJyYXVjaHRlIDMgTGVlci1UaWNrcyAofjkgcyksIHdhZWhyZW5kZGVzc2VuIHdlaXRl ciBIVFRQLVN0b3JtLgovLyBCZWkgYXVmZWluYW5kZXJmb2xnZW5kZW4gRmVobGVybiBqZXR6dCBT T0ZPUlQgYXVmIE1BWF9JTlRFUlZBTEwuCnZhciBhdWZlaW5hbmRlckZlaGxlciA9IDA7CnZhciBG RUhMRVJfQklTX01BWCA9IDI7Ci8vIEF1ZGl0LVBoYXNlIEIuMiAoMjAyNi0wNS0yMSk6IEhpbndl aXNlIGFlbmRlcm4gc2ljaCBzZWx0ZW4gKEtyYW5rbWVsZHVuZ3MtCi8vIFJhdGUgbmllZHJpZyks IGRhaGVyIG5pY2h0IGplZGVuIDMtcy1UaWNrIHBvbGxlbi4gRGVmYXVsdDogamVkZW4gNC4gVGlj awovLyAofjEyIHMpLiBXZW5uIGVpbiBIaW53ZWlzIGVyc2NoaWVuZW4gaXN0LCBmdWVyIDMwIHMg d2llZGVyIGplZGVuIFRpY2suCnZhciBoaW53ZWlzVGlja1phZWhsZXIgPSAwOwp2YXIgSElOV0VJ U19USUNLX1FVT1RFID0gNDsKdmFyIGhpbndlaXNWb2xsUXVvdGVCaXMgPSAwOyAgIC8vIG1zLVRp bWVzdGFtcDogYmlzIGRhaGluIGplZGVuIFRpY2sgZmV0Y2hlbgoKZnVuY3Rpb24gcGxhblRpbWVy TmV1KG5ldWVzSW50ZXJ2YWxsKSB7CiAgICBpZiAobmV1ZXNJbnRlcnZhbGwgPT09IGludGVydmFs bCAmJiB0aW1lcikgcmV0dXJuOwogICAgaW50ZXJ2YWxsID0gbmV1ZXNJbnRlcnZhbGw7CiAgICBp ZiAodGltZXIpIGNsZWFySW50ZXJ2YWwodGltZXIpOwogICAgdGltZXIgPSBzZXRJbnRlcnZhbCh0 aWNrLCBpbnRlcnZhbGwpOwp9CgpmdW5jdGlvbiBzb2ZvcnRCYXNpc0ludGVydmFsbCgpIHsKICAg IGxlZXJUaWNrcyA9IDA7CiAgICBwbGFuVGltZXJOZXUoQkFTSVNfSU5URVJWQUxMKTsKfQoKLy8g RmV0Y2gtV3JhcHBlciwgZGVyIDQwMyBlcmtlbm5iYXIgbWFjaHQgKHN0YXR0IG51ciBzaWxlbnQg LmNhdGNoKS4KLy8gU3ByaW50IDU6IHp1c2FldHpsaWNoIFNlcnZlci1Eb3duLzV4eCBhbHMgX2Zl aGxlciBrZW5uemVpY2huZW4sIGRhbWl0Ci8vIGRlciBUaWNrLUxvb3Agd2Vpc3MsIG9iIGVyIHNv Zm9ydCBhdWYgTUFYX0lOVEVSVkFMTCBkcm9zc2VsbiBtdXNzLgpmdW5jdGlvbiBmZXRjaEpzb24o dXJsKSB7CiAgICByZXR1cm4gZmV0Y2godXJsKS50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICBp ZiAoci5zdGF0dXMgPT09IDQwMykgcmV0dXJuIHsgXzQwMzogdHJ1ZSB9OwogICAgICAgIGlmIChy LnN0YXR1cyA+PSA1MDApIHJldHVybiB7IF9mZWhsZXI6IHRydWUsIF9zdGF0dXM6IHIuc3RhdHVz IH07CiAgICAgICAgcmV0dXJuIHIuanNvbigpOwogICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7IHJl dHVybiB7IF9mZWhsZXI6IHRydWUsIF9zdGF0dXM6IDAgfTsgfSk7Cn0KCmZ1bmN0aW9uIHRpY2so KSB7CiAgICBpZiAoIXNpY2h0YmFyKSByZXR1cm47CiAgICB2YXIgY2hhbmdlc1AgPSBmZXRjaEpz b24oJy9hcGkvcGxhbnVuZy9jaGFuZ2VzP3NlaXRfc2VxPScgKyBlbmNvZGVVUklDb21wb25lbnQo c2VpdFNlcSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICcmc2VpdD0nICsgZW5jb2Rl VVJJQ29tcG9uZW50KHNlaXQgfHwgJycpKTsKICAgIHZhciBsb2Nrc1AgICA9IGZldGNoSnNvbign L2FwaS9sb2NrL3plbGxlbicpOwogICAgLy8gSGlud2Vpc2UgbnVyIGJlaSBqZWRlbSBOLXRlbiBU aWNrIGZldGNoZW4gKEF1ZGl0LVBoYXNlIEIuMikuIEJlaQogICAgLy8gQWt0aXZpdGFldCAoSGlu d2VpcyBlcnNjaGllbikgd2lyZCB2b2xsUXVvdGUtRmVuc3RlciBnZXNldHp0LCBkYW1pdAogICAg Ly8gRm9sZ2UtQWt0aW9uZW4gaW5zdGFudCBzaWNodGJhciB3ZXJkZW4uCiAgICBoaW53ZWlzVGlj a1phZWhsZXIrKzsKICAgIHZhciBqZXR6dE1zID0gRGF0ZS5ub3coKTsKICAgIHZhciBoaW53ZWlz ZUhvbGVuID0gKGhpbndlaXNUaWNrWmFlaGxlciA+PSBISU5XRUlTX1RJQ0tfUVVPVEUpIHx8IChq ZXR6dE1zIDwgaGlud2Vpc1ZvbGxRdW90ZUJpcyk7CiAgICBpZiAoaGlud2Vpc2VIb2xlbikgaGlu d2Vpc1RpY2taYWVobGVyID0gMDsKICAgIHZhciBoaW53ZWlzZVAgPSBoaW53ZWlzZUhvbGVuCiAg ICAgICAgPyBmZXRjaEpzb24oJy9hcGkvaGlud2Vpc2UnKQogICAgICAgIDogUHJvbWlzZS5yZXNv bHZlKG51bGwpOwogICAgUHJvbWlzZS5hbGwoW2NoYW5nZXNQLCBsb2Nrc1AsIGhpbndlaXNlUF0p LnRoZW4oZnVuY3Rpb24oYXJyKSB7CiAgICAgICAgdmFyIGNoID0gYXJyWzBdLCBsayA9IGFyclsx XSwgaHcgPSBhcnJbMl07CiAgICAgICAgLy8gU2VydmVyLURvd24gLyA1eHgg4oCUIGJlaSBtZWhy ZXJlbiBpbiBGb2xnZSBzb2ZvcnQgZHJvc3NlbG4sIHN0YXR0CiAgICAgICAgLy8gd2VpdGVyIGRl biBTZXJ2ZXIgbWl0IFJlcXVlc3RzIHp1IGJvbWJhcmRpZXJlbiAoU3ByaW50IDUgRmluZGluZyAx NSkuCiAgICAgICAgdmFyIGhhdEZlaGxlciA9IChjaCAmJiBjaC5fZmVobGVyKSB8fCAobGsgJiYg bGsuX2ZlaGxlcik7CiAgICAgICAgaWYgKGhhdEZlaGxlcikgewogICAgICAgICAgICBhdWZlaW5h bmRlckZlaGxlcisrOwogICAgICAgICAgICBpZiAoYXVmZWluYW5kZXJGZWhsZXIgPj0gRkVITEVS X0JJU19NQVggJiYgaW50ZXJ2YWxsIDwgTUFYX0lOVEVSVkFMTCkgewogICAgICAgICAgICAgICAg cGxhblRpbWVyTmV1KE1BWF9JTlRFUlZBTEwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJl dHVybjsKICAgICAgICB9CiAgICAgICAgYXVmZWluYW5kZXJGZWhsZXIgPSAwOwoKICAgICAgICAv LyA0MDMtVHJhY2tpbmc6IG51ciB1ZWJlciBDaGFuZ2VzK0xvY2tzLCB3ZWlsIC9hcGkvaGlud2Vp c2UgaW1tZXIKICAgICAgICAvLyAyMDAgbWl0IGxlZXJlbSBBcnJheSBsaWVmZXJ0IChTZXJ2ZXIt c2VpdGlnZSBHYXRpbmctTG9naWspLgogICAgICAgIHZhciBoYXQ0MDMgPSAoY2ggJiYgY2guXzQw MykgfHwgKGxrICYmIGxrLl80MDMpOwogICAgICAgIGlmIChoYXQ0MDMpIHsKICAgICAgICAgICAg YXVmZWluYW5kZXI0MDMrKzsKICAgICAgICAgICAgaWYgKGF1ZmVpbmFuZGVyNDAzID49IFBFUk1J U1NJT05fTE9TVF9OQUNIKSB7CiAgICAgICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHsgdHlw ZTogJ3Blcm1pc3Npb25fbG9zdCcgfSk7CiAgICAgICAgICAgICAgICBzaWNodGJhciA9IGZhbHNl OyAgICAgLy8gd2VpdGVyZXMgUG9sbGluZyBzdG9wcGVuCiAgICAgICAgICAgIH0KICAgICAgICAg ICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBhdWZlaW5hbmRlcjQwMyA9IDA7CgogICAgICAg IHZhciBtc2cgPSB7IHR5cGU6ICdzeW5jJyB9OwogICAgICAgIHZhciBoYXRBa3Rpdml0YWV0ID0g ZmFsc2U7CiAgICAgICAgaWYgKGNoICYmIChjaC5zZXJ2ZXJUcyB8fCBjaC5zZXJ2ZXJTZXEgIT0g bnVsbCkpIHsKICAgICAgICAgICAgLy8gc2VxLUN1cnNvciBiZXZvcnp1Z2VuIChyYWNlLWZyZWkp LiBzZXJ2ZXJTZXEgZmVobHQgbnVyIGJlaSBlaW5lbQogICAgICAgICAgICAvLyBub2NoIG5pY2h0 IGFrdHVhbGlzaWVydGVuIFNlcnZlciAtPiBkYW5uIGdyZWlmdCBkZXIgdHMtQ3Vyc29yLgogICAg ICAgICAgICBpZiAoY2guc2VydmVyU2VxICE9IG51bGwpIHsgc2VpdFNlcSA9IFN0cmluZyhjaC5z ZXJ2ZXJTZXEpOyBtc2cuc2VydmVyU2VxID0gY2guc2VydmVyU2VxOyB9CiAgICAgICAgICAgIGlm IChjaC5zZXJ2ZXJUcykgeyBzZWl0ID0gY2guc2VydmVyVHM7IG1zZy5zZXJ2ZXJUcyA9IGNoLnNl cnZlclRzOyB9CiAgICAgICAgICAgIG1zZy5jaGFuZ2VzID0gY2guY2hhbmdlcyB8fCBbXTsKICAg ICAgICAgICAgaWYgKG1zZy5jaGFuZ2VzLmxlbmd0aCA+IDApIGhhdEFrdGl2aXRhZXQgPSB0cnVl OwogICAgICAgIH0KICAgICAgICBpZiAobGsgJiYgbGsubG9ja3MpIHsKICAgICAgICAgICAgbXNn LmxvY2tzID0gbGsubG9ja3M7CiAgICAgICAgICAgIGlmIChsay5sb2Nrcy5sZW5ndGggPiAwKSBo YXRBa3Rpdml0YWV0ID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGh3ICYmIGh3Lmhpbndl aXNlKSB7CiAgICAgICAgICAgIG1zZy5oaW53ZWlzZSA9IGh3LmhpbndlaXNlOwogICAgICAgICAg ICAvLyBBa3Rpdml0YWV0IGVya2FubnQgLT4gMzBzIGxhbmcgamVkZW4gVGljayB3ZWl0ZXJwb2xs ZW4uCiAgICAgICAgICAgIGlmIChody5oaW53ZWlzZS5sZW5ndGggPiAwKSBoaW53ZWlzVm9sbFF1 b3RlQmlzID0gRGF0ZS5ub3coKSArIDMwMDAwOwogICAgICAgIH0KICAgICAgICBpZiAobXNnLmNo YW5nZXMgfHwgbXNnLmxvY2tzIHx8IG1zZy5oaW53ZWlzZSkgc2VsZi5wb3N0TWVzc2FnZShtc2cp OwoKICAgICAgICBpZiAoaGF0QWt0aXZpdGFldCkgewogICAgICAgICAgICBzb2ZvcnRCYXNpc0lu dGVydmFsbCgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxlZXJUaWNrcysrOwogICAg ICAgICAgICBpZiAobGVlclRpY2tzID49IExFRVJfVElDS1NfQklTX0JBQ0tPRkYgJiYgaW50ZXJ2 YWxsIDwgTUFYX0lOVEVSVkFMTCkgewogICAgICAgICAgICAgICAgcGxhblRpbWVyTmV1KE1hdGgu bWluKGludGVydmFsbCAqIDIsIE1BWF9JTlRFUlZBTEwpKTsKICAgICAgICAgICAgfQogICAgICAg IH0KICAgIH0pOwp9CgpmdW5jdGlvbiBzdGFydGVuKCkgewogICAgc29mb3J0QmFzaXNJbnRlcnZh bGwoKTsKICAgIHRpY2soKTsKICAgIC8vIExlYmVuc3plaWNoZW4gYW4gZGVuIE1haW50aHJlYWQg 4oCUIG1haW4gaG9lcnQgaW4gc3luYy5qcyBkYXJhdWYgdW5kCiAgICAvLyBzZXR6dCBaLnN5bmNX b3JrZXJMZWJ0LiBXZW5uIGRlciBXb3JrZXIgTklDSFQgYW50d29ydGV0LCBzaWVodCBkZXIKICAg IC8vIFVzZXIgZG9ydCBlaW5lbiBEaWFnbm9zZS1Ub2FzdC4KICAgIHNlbGYucG9zdE1lc3NhZ2Uo eyB0eXBlOiAncHVscycsIHRzOiBEYXRlLm5vdygpIH0pOwp9CgpzZWxmLm9ubWVzc2FnZSA9IGZ1 bmN0aW9uKGUpIHsKICAgIHZhciBkID0gZS5kYXRhIHx8IHt9OwogICAgaWYgKGQuY21kID09PSAn c3RhcnQnKSB7CiAgICAgICAgaWYgKGQuc2VpdCkgc2VpdCA9IGQuc2VpdDsKICAgICAgICBpZiAo ZC5zZWl0U2VxICE9IG51bGwpIHNlaXRTZXEgPSBTdHJpbmcoZC5zZWl0U2VxKTsKICAgICAgICBz aWNodGJhciA9IHRydWU7CiAgICAgICAgc3RhcnRlbigpOwogICAgfSBlbHNlIGlmIChkLmNtZCA9 PT0gJ3BhdXNlJykgewogICAgICAgIHNpY2h0YmFyID0gZmFsc2U7CiAgICB9IGVsc2UgaWYgKGQu Y21kID09PSAncmVzdW1lJykgewogICAgICAgIGlmIChkLnNlaXQpIHNlaXQgPSBkLnNlaXQ7CiAg ICAgICAgaWYgKGQuc2VpdFNlcSAhPSBudWxsKSBzZWl0U2VxID0gU3RyaW5nKGQuc2VpdFNlcSk7 CiAgICAgICAgc2ljaHRiYXIgPSB0cnVlOwogICAgICAgIHNvZm9ydEJhc2lzSW50ZXJ2YWxsKCk7 ICAgLy8gQWt0aXZpdGFldC1TaWduYWwgLT4genVydWVjayBhdWYgQmFzaXMtUG9sbGluZwogICAg ICAgIHRpY2soKTsKICAgIH0gZWxzZSBpZiAoZC5jbWQgPT09ICdzdG9wJykgewogICAgICAgIGlm ICh0aW1lcikgY2xlYXJJbnRlcnZhbCh0aW1lcik7CiAgICAgICAgdGltZXIgPSBudWxsOwogICAg fQp9OwoKLy8gSW5pdGlhbC1QdWxzIGRpcmVrdCBiZWltIFdvcmtlci1Jbml0ICh2b3IgZGVyIGVy c3RlbiAnc3RhcnQnLU5hY2hyaWNodCkuCi8vIERhbWl0IHNpZWh0IG1haW4gc2Nob24sIGRhc3Mg ZGFzIE1vZHVsIHVlYmVyaGF1cHQgZ2VwYXJzdCB3dXJkZS4Kc2VsZi5wb3N0TWVzc2FnZSh7IHR5 cGU6ICdwdWxzJywgdHM6IERhdGUubm93KCksIHBoYXNlOiAnaW5pdCcgfSk7CnN0YXJ0ZW4oKTsK