Help
RSS
API
Feed
Maltego
Contact
Domain > 91cg1.work
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2023-11-13
172.67.159.104
(
ClassC
)
2024-07-08
104.21.58.116
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Mon, 08 Jul 2024 21:30:16 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveCF-Cache-Status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sMIOwmswNnBJawW%2Ff9qwKTAXXt%2F9cXybwmyils7tGGHzypILItVb7FiNbF0dZdnFJLVSberKxshssUtlERGXicvWWyCoa7LzN2YI7kn37oBHmrMEveQS9bReQXc9S},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8a032ca89db4936f-SEAalt-svc: h3:443; ma86400 script>Base64{_keyStr:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/,encode:function(a){var d,c0;for(aBase64._utf8_encode(a);ca.length;){var ba.charCodeAt(c++);var ea.charCodeAt(c++);var fa.charCodeAt(c++);var gb>>2;b(b&3)4|e>>4;var h(e&15)2|f>>6;var kf&63;isNaN(e)?hk64:isNaN(f)&&(k64);dd+Base64._keyStr.charAt(g)+Base64._keyStr.charAt(b)+Base64._keyStr.charAt(h)+Base64._keyStr.charAt(k)}return d},decode:function(a){var d,c0;for(aa.replace(/^A-Za-z0-9\+\//g,);ca.length;){var bBase64._keyStr.indexOf(a.charAt(c++));var eBase64._keyStr.indexOf(a.charAt(c++));var fBase64._keyStr.indexOf(a.charAt(c++));var gBase64._keyStr.indexOf(a.charAt(c++));bb2|e>>4;e(e&15)4|f>>2;var h(f&3)6|g;d+String.fromCharCode(b);64!f&&(d+String.fromCharCode(e));64!g&&(d+String.fromCharCode(h))}return dBase64._utf8_decode(d)},_utf8_encode:function(a){aa.replace(/\\r\\n/g,\n);for(var d,c0;ca.length;c++){var ba.charCodeAt(c);128>b?d+String.fromCharCode(b):(127b&&2048>b?d+String.fromCharCode(b>>6|192):(d+String.fromCharCode(b>>12|224),d+String.fromCharCode(b>>6&63|128)),d+String.fromCharCode(b&63|128))}return d},_utf8_decode:function(a){for(var d,c0,b,e,f;ca.length;)ba.charCodeAt(c),128>b?(d+String.fromCharCode(b),c++):191b&&224>b?(ea.charCodeAt(c+1),d+String.fromCharCode((b&31)6|e&63),c+2):(ea.charCodeAt(c+1),fa.charCodeAt(c+2),d+String.fromCharCode((b&15)12|(e&63)6|f&63),c+3);return d}};/script>noscript>error ../noscript>script>document.write(Base64.decode(PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGh0bWw+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIiAvPgogICAgPG1ldGEgbmFtZT0icmVuZGVyZXIiIGNvbnRlbnQ9IndlYmtpdCIgLz4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT0wIiAvPgogICAgPHRpdGxlPjkx5ZCD55Oc572RPC90aXRsZT4gICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9Ijkx5ZCD55OcLDkx5ZCD55Oc572RLOeOi+mSn+eRtjXliIYzN+enkuinhumikSzmsZ/opb/nnIHmta7mooHljr/mnY7lvaws4ruT5rKZ4ryl5bGA4ruT5p2O57uN6JCN5ZCO57utLOmbqOa2pue/oee/oCzopb/lronkuqTpgJrlpKflrabmnY7oibrpo54s6Z+p5ZaE5pyI6KeG6aKRLOWFsOW3nuiAgeihl+ebkeaOp+mXqCznvIXljJflvLrlpbgs6ZmI5pmT6ZmI5aaN5biM56a75amaLOabueWOv+e/sOael+W6nCzph43luoblhpzllYbpk7booYzmnIDmlrDkuovku7Ys5Y+w5rm+5aWz5aOr5a6Y5p2O6K+t5ra15YW86IGM5Y2W5rerLOWls+a4uOWuouazsOWbveiiq+aAp+S+teS6i+S7tizpq5jogIMs5piG5piO5Yy76Zmi55S35oCn5qC55rW05pyN5YqhLOaKlumfs+aYk+WPguWIm+Wni+S6uum7hOaAoeeEtizpk4HlpLTlnKjml6XmnKzpnZblm73npZ7npL7mkpLlsL8s56aP5bee5LiJ5Z2K5LiD5be35LqL5Lu26KeG6aKRLOael+WQkeS4nOiuuOWplSzlvpDlhqzlhqzoibPnhacs5o236YCU5rG96L2m55u05pKtLOaxvumYs+WMu+mZouW8oOS4gee7tCzog6Hov57ppqgyMOWIhumSn+inhumikSzkuIPlpKnmjqLoirHnnLzplZzlprks5bGx5Lic5r2N5Z2K6KOk6KGp5ZOl6KeG6aKR5Y6f54mILOmrmOWQiOWls+i9puS4u+iHquaFsCzlhoXokpnlj6Tpm4blroHluIjojIPlrabpmaLoo7jlpbPkuovku7Ys5bC95ZyoOTHlkIPnk5znvZEiIC8+ICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSI5MeWQg+eTnOe9ke+8jOaYr+mbhum7keaWmeWQg+eTnOS6juS4gOS9k+eahOaIkOS6uuWQg+eTnOe9keerme+8jOacgOaWsOeTnOaWmeWmguS4i++8mueOi+mSn+eRtjXliIYzN+enkuinhumikSzmsZ/opb/nnIHmta7mooHljr/mnY7lvaws4ruT5rKZ4ryl5bGA4ruT5p2O57uN6JCNLOmbqOa2pue/oee/oCzopb/lronkuqTpgJrlpKflrabmnY7oibrpo54s6Z+p5ZaE5pyI6KeG6aKRLOWFsOW3nuiAgeihl+ebkeaOp+mXqCznvIXljJflvLrlpbgs6ZmI5pmT6ZmI5aaN5biM56a75amaLOabueWOv+e/sOael+W6nDfliIYyOeenkuinhumikSzph43luoblhpzllYbpk7booYzmnIDmlrDkuovku7Ys5Y+w5rm+5aWz5aOr5a6Y5p2O6K+t5ra15YW86IGM5Y2W5rerLOWls+a4uOWuouazsOWbveiiq+aAp+S+teS6i+S7tizpq5jogIMs5piG5piO5Yy76Zmi55S35oCn5qC55rW05pyN5YqhIiAvPiAgICA8bGluayByZWw9Imljb24iIGhyZWY9IiI+CiAgICA8YmFzZSB0YXJnZXQ9Il9ibGFuayIgLz4KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgKnttYXJnaW46MDtwYWRkaW5nOjA7Ym94LXNpemluZzpib3JkZXItYm94O30KICAgICAgICAuYmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrO21heC13aWR0aDo0MDBweDt0b3A6MDtsZWZ0OjUwJTttYXJnaW46MCBhdXRvO30KICAgICAgICAuYm94e3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO30KICAgICAgICAubG9nb3twYWRkaW5nLXRvcDoyMCU7dGV4dC1hbGlnbjpjZW50ZXI7fQogICAgICAgIC5sb2dvIGltZ3t3aWR0aDo3NSU7fQogICAgICAgIC5saXN0e3dpZHRoOjEwMCU7bWluLWhlaWdodDo0NSU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luLXRvcDoxMCU7fQogICAgICAgIC5saXN0IGF7ZGlzcGxheTpibG9jazt3aWR0aDo3MiU7cG9zaXRpb246cmVsYXRpdmU7fQogICAgICAgIC5saXN0IGEgaW1ne3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O30KICAgICAgICAubGlzdCBhIC50ZXh0e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctdG9wOjYlO2NvbG9yOiNmZjU3NTc7fQogICAgICAgIC5saXN0IGEgLnRleHQgLmJ0blRpdGxle2ZvbnQtc2l6ZToxOHB4O30KICAgICAgICAubGlzdCBhIC50ZXh0IC5idG5MaW5re2ZvbnQtc2l6ZToxMnB4O30KICAgICAgICAuZm9vdGVye3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNmZmY7cGFkZGluZzoyMHB4O30KICAgICAgICAubm90aWZ5e21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6IzAwMDt3aWR0aDoxMDAlO2hlaWdodDo0NXB4O3otaW5kZXg6MTEwO2NvbG9yOiNmZmY7cGFkZGluZzo1cHggMHB4O3RvcDowcHg7cG9zaXRpb246Zml4ZWQ7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6NDBweDt9CiAgICAgICAgYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMyYzJhMmEgIWltcG9ydGFudDt9CiAgICAgICAgI2xvYWQtd3JhcCB7YmFja2dyb3VuZDogI2ZmZjt3aWR0aDo5MCU7cGFkZGluZzoxMHB4IDAgO2NvbG9yOiAjMjExRjFGO21hcmdpbjogMCBhdXRvO2JvcmRlci1yYWRpdXM6IDVweDt0ZXh0LWFsaWduOiBjZW50ZXJ9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Ii4vanMvVnguanM/dD12OCI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgY2xhc3M9ImJnIj4KICAgIDxkaXYgY2xhc3M9J2JveCc+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyI+PGltZyBzcmM9Ii9pbWFnZXMvbG9nby5wbmciIC8+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZCIgaWQ9ImxvYWQtd3JhcCI+CiAgICAgICAgICAgIOato+WcqOajgOa1i+e6v+i3ry4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0IiBpZD0ibGlzdC13cmFwIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2Zvb3Rlcic+CiAgICAgICAgICAgIDxwPuacrOermeWPquS4uua1t+WkluWNjuS6uuaPkOS+m+acjeWKoe+8jOmdnuazleW+i+WFgeiuuOWcsOWMuuS7peWPijE45bKB5Lul5LiL55So5oi356aB5q2i6K6/6Zeu77yBPC9wPiAgICAgICAgICAgIDxwPiZjb3B5OyAyMDI0IDkx5ZCD55Oc572RIDxhIGhyZWY9Imh0dHBzOi8vd3d3LjkxY2cxLmNvbSIgc3R5bGU9ImNvbG9yOiNmZmY7Ij5odHRwczovL3d3dy45MWNnMS5jb208L2E+IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibm90aWZ5Ij7lvZPliY3pobXor7fmiKrlm77kv53lrZjvvIzku6XlhY3otbDkuKI8L2Rpdj4KPC9ib2R5PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2h0bWwiIGlkPSJ0ZW1wbGV0Ij4KICAgIDxhIGhyZWY9IiR7dXJsfSI+CiAgICAgICAgPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBaE1BQUFDckNBTUFBQURyZSs0bkFBQUJVMUJNVkVVQUFBQ09GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4di81dWFPRnh1T0Z4dU9GeHYvL3Y3KzVlWDkrL3Z6NWVYLy9mMzYzZDM4K1BqMTFkWFhuWjYrYjNIY3RyZi8vLy83MzkvKy9Qejc5L2ZqdGJidzRPRCs1ZVg5NU9UNzRlSDkrdnIzNk9ubnVydnR5OHptdWJyMzcvRHk0K1AzOFBEMDZPbmp3TUc1YVd5ZU5UaVVJaVhGaDRtelkyYis5ZlgvLy8vLzdPeis5UFQ4OGZINzd1NzU0K1A1NnVyOCt2cnkzZDdyd3NQaHI3RGZxNnpicUtyeDR1TFBqNUhwMHRQcDBkTGZ2YjdUcEtiLzl2YjMyTmoyMTlmLy92Nzg0dUw5N3U3NzR1TDY0K1AzMk5udnlzcnJ3Y0xEZVh2SGY0R3VVbFdzVGxHalFrWC8vLy8vNk9qLy9Qei85dmIvOHZMLzdlMy8vdjcvK2ZuLysvdi82K3YvOC9QLzd1Ny84UEQvOWZYLytQai82dXBZUC8rWUFBQUFZWFJTVGxNQUJRa0VDeElIQ2lrdURSQVVJUm9lSENNbkxCZ2wvQllYSC9UMXlsemx6YlN2WGtFby9OWFRvMnhIOGVuYXdaQ0FlWGQyYzJwbFVUSXdKeVlUOC9uMTZOWEV1YkNwaElSeFpsTlNVVVU2TFJuMHZydnY1K2JPeHJlYWpFaERQRGtid2xpTWRnQUFESHhKUkVGVWVOcnMyejJPbzBBUWhtSFBGdXhLalUrQUFCRmdnUWlZZ0lIRXlKa2p5ei9CWEtEdmY0bWR0akFGazdYNTdkYjNuT0ZWVlRXZTJRRUFBQUFBQUFBQUFGaVBZRkc3RGFQT0J5eG1zMjBnaGZWdEtZemZPZnlGaFgyd0xYUkJQd1l4L0lFVkROSllOUXNPWWxqRFAxalFzSXgxcytnSDBXdkJnY1gxMnVBc2xxNkNpMmg3ZU5id3lLdlBjNUZHMzc2RWhmamZVVnFjUDZ2ODhTeWo3V0tOS240SDRUUjVHVWNTVmhURlpkNDR3eXlXcTRLSVY0WUtJcWxpVElaTjhPTXFVVm53RXBtL0NpNmlDK0pSRlFjSm0zRW9xa2VieFZKVkVOR3JDSFZQWGpOTWlNM3hzNnU2TzlzcVpyOHJoa1dFZ1lSTkNzSmhGYnRaOE5wb2l4QmhLbUd6MGxDMFZjeTVRSGhJcUJtUlkwWnNYSkNyV2FFeEtrYXREY2RKemhJMjc1dzR6bndMaEpOUVJZZ1NsNlVSL0ZJNERvK0tPWkpvMThZZGE4TVl3YjFkSUJ6RkRFUENxVEVrRE9MWHpneWpnb2VFU3FMSkpCZ2xhMVFVUENvbVRVSU5pUVI3d3poQm9rWUZSekZ0RXVLR0g3b01GTjJFUmhTYVNWeHdTaGpKdjB3YUJSRS9RY09UQkNPZFFuNlVFazJXaEJBMWZnQTExcUVXZ3FPWUxJa1FTUmpzRUU0UkJTZWg5b2E0WUhFWTdYUVJhbjl3Rk9QT1M1WEVEZWVsNGZ5YmltTHNvZG05T0lSSThBZzFYcFFJMGIwK3hpZlI0Rk9WQllKbWJCUkVYUkllUG1oYklmTzZLSWhHSmxGTHNFSTlMZ3Jxdmw1NmQ5eVhsdkR2WHZkRms5NDhKcDVKdURnbXJCRzR6eWo0cE5EZkhDb0pyNVJnamRKVFVieTFQWHJIUklMTllSRS82WjBVMmttOE5rY3N3U0x4YTN0b1JrSEV4MFF1d1NvNW54UkViMndPejNQeG56MldTVjNQNCszeHpwZ0lKVmdtZkdkUThKdkQzV05NV0NmZHUvejIwTjRjR0JOV0N2VzNSMjl6NEhPVmpRSzN0ejAweDRUclhpVlk2T3E2UENoMHh3UitEN1ZTMWg4VW1tUGlpRStZVnZLUC9VR2hOeWErSkZqcFMydFFFUEdZMkJjU3JGVHNlVkFRNll5SkkvNTYvejk3NTlMVE5oQkZZYlZSdTZHMjQ4Z29jU3VWbDRxRUtFSkJTSUVneEZNZ3NXUERZNEZFeHc2VGpCL0ovMS9WMTJNek5ndTRadWVyZTM3RHArK2NYQ2NPMGZ3NXdvckNuREMxSnJnNnlHWmZpOEljTXpFblRHQ0NuNGlTelNvd2dUeG1scHFBcy9ZemYrb2dtNS9QY09BdVJmRmhkYnd1ekpIOHh5RWFPWHBkbVZBZTJLZGYvU3RtZ216a1ZSLzdKS3k2TVB1cmtxRWdHaWxYKzlXVmlhMk93ZStBbVNBYUdmd2UxTW9EV1IxSFFjQ2lvQmtwZytDb1ZoN0k2aGdGQVl1Q1pqSWtncEVwRHpRVGcvMFppNEptUUJPei9RR0tpVTdISEt6NjN1Nk1SVUV6b0luWnJ0YzNaNnRPNXdOTjZEbmhYVTVuekFUSmdDYW1sNTRlRklVb1VOVmhuMCs1UEVoRzVreWMyNlk4MEV5Y1RWa1VKSk1qTVQzRE1tR3VFNTU5eWt6UWpHYmkxUGFxRjRvUEp5Yk1DZnQ0eXVWQk1WSXpjV3pEb0RBakV6RXg3ZTd0bkVWQk1ScUorVzNYL25oa21qbXhCSE9pR3pJVEpGTXdFWFpoVUN5WlFZR1ltTjBRb09EeW9CYW9Ea0JDTS9HdEdSUEhMQXFLS1RWeDI1Z0pENWdJbVFsNjBVeUU0WEhYOWxCTWZLMHdjY3JsUVRCbGRhU25GU2ErWXBqb2U3WnpsdWFpWUNaSVJVcXRpZlRNc2IwK2lnbHpubkRPb3pTY2Mza1FDMVFIYUNJNmQ4eUI0ajBtdmxlWnVJeHlVVEFUcEFMVkFacUlMcXRNZkVjeXNSdUJLTGc4U0VYS1FoUFJibk1tdXM2UW1hQVh3OFRRNlRabllqVEpvT0R5b0pXOE9nQ0p5YWc1RTdaemtFeTBLSmdKT2lrMU1Va09Qck1uL0xza2lzS1F5NE5ROHVvSXd5aEs3bndrRTE5cVRGeG9VWEI1MEFsVWg5YkVSWVVKL00zS3Ywb3lLTGc4S0VWWFI0WkVjdVhqYjFibXR1M2Z4RWtTcFZ3ZWRLS3JJNDJTSkw3eHE3ZHQ3RE13eHoySk0xRndlZENKREFLdGlmakVkUXdUK0dmbGpuWEJvaUNWaWlZdXJJeUp3U2VZR01Zc0Nrb3htb2lIVFpsWUtwZzRVSEhNb2lDVFYwM0VzVHF3SFB4Mzc4eDNkQjNmZW5qSm9BQlJNQk1FSWlWb0FwQjRlYkI4Qi9jZDNiZEhLMnVvWHFBOVdCUVVvalVCemZHaWh0YmJrMVVIOVpzZktJOFRnQ0pLV1JRRWttc2lqUUNKRTZpT3R4OUZrU1BUV2xNcWpsa1VGRkpxSW82VldyUHFFN01SRXpkS0tSQUZmL1JvZldSUWFFSXBkZE9VQ2ZPMDNMZmNld1h0d2FKb2ZRcE5RSE9vZXhjbVp2MWRBN2gza29BbzNLM0ZJb05pa29iOEJlNVdSNEltd25TU0liRlliTG1naVRmdkpNR1h4M2dIb09EMmFIdks1Z0FrZHNiNDZxZ3pvUzhVN3BZUUM4WHQwZks4Tm9kYUNMSGw2dXNFbWdsem9kRGxNZDRVSXQrWjNCN3RqVzZPZkY4S3NUblcxWUY5RnlKY0tPcmw0YTRMSWZKSk1XY29XaHFwbXdQR2hCQmkzVFhWWWQ2WjJxZzhsaDl6S0RKUjhPOS9XaG9aNk9iSWtYaGNmcWM2Y09WaHVSdS9jaWg0VXJRMVVsYVErTFhoV3U5VUI2WThRQlRYSWd2dnpMYkc3RXVSNVZwckFsOGRwandxSzlNZHJ6QVU3WTFHSWkyUVdCbTdsWVZwcWdOWEhtWmxMajl0YXlnbS9GV0sxcVZBWXFLUjJINWFOZ3NUL2Q5UDlaVnBPeUNLM3A0b29lRGZDcllyT1JMekVnbXgxd05OT0haOVlYWWEvSmZrRDY4UVJXOU5zQ25hbUxvbHhGb1BOR0Vla3lPcXd6enpxSW5DY251SG13WUtmbXRtVzVJUlVVTmk4N0RuV2pWTm1HY2R6VVRoZ3lnMi9vcHlhRElVLzltNW41WFdnVEFLNEl1NzZHUWxHbHE0WkJHYVFrSGFRdW11VDJBTFhTbHVWQlJHUy85Y3RYMy8xZlhrbThucEdMb1lqV21FT1Z4ZlFINmM4MlhnK2tzQ0V2YUxBeG4yVUJOL3ZXcUNKbGdVeFhvc2tvRGlkK1V6aVdSUkxBZHJRa3g0RkFYZktNNHYxTHlqa1QwZXIvSm43cUNpeVZuSmd6YWVxdllhNmN3VkRreStUYkFtdmx3VTZ0S2dDRWZGTDhqQktXRklYS3FqTmVGZkZBV0tDVkFVK3hHcW9ybVJrakM3SVNRbUJRbnZtbkNMUWg0enpYcElVOWo5UUZVRUZZM015cGFFN0ladENWa084NFRwVXhQbHgweWlVR3FlNklPcTJBVVZEWXdSc1pPU2tDUnpwVWpDNHdtVCtYTnNQZFJpcUcxVnZDNkRpdWFGSXBhdnRpVDBjS0dPTFFkTmVLMUgvdTFoVWZUNjJtUWJWRFF1am9pdE51bjNMSW44bTZPMEhONUZ3ZlVRRk5PdWRsVzhyQU9MUnNTQVdMKzRJblIzS2lTNEhMNDF3YUk0Z2lLZURBNVY0TnJjQ1l2ZzRtUlpXUkE3WEphSElnYVQrQWdKMW9UdmVwUlJxSWRVSS9hMUFpelFGbkR4dkFveTZzMEtlWVlITkFSQTRFV2lTUHFneWlTNEhING0rTzJSMzVrT2l2Z3EwY3dXTEpad3NWdER4bWJ6SEZKYk5odG9XTy9nWVFrUVc4MGtWN0ZESXI4ditjMEJFNTVGd1pNQ2Q2YURvbmVqRWJZRi9sREZHLzd3N3Z2N1MwaXQrZmlWLy92Z2dEOHJrVGNFYzlOelNPQys1REhCbXZCZmp6SUtIQlZ4MXRlZldPQi9sa0lHc2d5cEkyL0xOK1FWSExZQ2d1bG5NVTZKTWdrdWg3Y0puaFF1Q3J4b1FzVnNwRXZaNzdldzhmRXY1T2NEQ0RtR1FnTXpta0VFWGk5SndqMG1ZS0k2RkcxQkVjMVNIZExJcExOSVNMU3JJOEdUZ2lqazBEd1RGS0lpenJyNXRkbHhma0xxVFBtWG4zU3pXRVFJaVRNNUwwbUN4MFJWS0ZnVlVQRTBUcTJDVHZpcC82Y2tJeDAvUVFSTG9qSVNYQTk4a1ZvVWVLY285c09xaUhyam0wUkxnbzVUL0hRc2plUjYzSXVzaUdJMzhDNGhKT1FybE12eERSUXRRU0dQVjdJZmpvbzRtbWIzMTdkYTY3QWRKOHZ0OVgwMmpXSkhoT3lHUEZVSmlSWkpmTGNwV2dVS1hKcW9DcW93TEtMb01SdmZkZFBSY0pEb2tKcVNESWFqdEhzM3poNmp5SUNnQ0pRRXJzdUNSSXN0VVJVS2UxVFlxd0lxeUFJd1FrNFRjQ0FJaUxDWGhEMGxLaUxob3JEUDNMSWZNaUJVWVZ3RUdyV0ZHT2lCSW1RMlpEZk1nN1pEb2lvVTNBK3BDcWpBZ29BRlhBaU1rTnFqckFlQXdHcEFoSlFFZDZNaUVrUWhuNlIyUDZoQzdncXdRRlRJeVhKaFFNZ2RRUkZTRXZaQm15U3FReUg3SVFPQ0JZRUtzSUFMd0FnMGFzK0ZwQTBQQUFFUldBMHpHN0liRlpNZ0NsYUZvd0lzNEFKcFEwWklyV21EZy9FQUVJNElsZ1JKVkluaXNDcTRJR1FCR0V3NzVJZHpMakVjQ0lLcmNWZ1NEb2xxOStOL3UzV1VnakFRQTJFWVdWQm9SZm9nMlB1ZjFBNFRtS2JQSnEwdy94SEN4K3pHVkVnRldjQkZ3QWdkcmpaSklBZDRJSWdRb1pFNHZCdEZVeUVWd1FJdUNHT2o0Um9TQm5DZ2h3QWhFWFVqa1ZGa0ZXU3h1UUFNeUhEdExlZ0ZEd1NSUldRU1pWTVJLdllzNElJdHJqRmlvSWM5aUJCUk54SkN3VjlGcU9CWW9DZGhRTVptd3pXR2k2L2tRQStjaUJDQm4wUWhDVTFGVWtFV2RBRVphTjMzZGo5dDNmZEJUd1FQQkNFUkdvbktSbFpCRm5JQkdxNDUzWDRPRUZsRUpRbE5CVldJQlZ3QWhqdXRHVTBDUVJIMUk1RlZpQVZkQkF6cmFFd1huK2hCSVBwRVNBWEhRaXdJZzgydVBsRWdCNEhnUkZCRVkrUElnakRZNUZxU0JYSTRnT2dWSVJWNlJBQURNbHg3RDNMUWt5RVIzUTJ4b0l2bzRSclQzZThDY1k2SXpJSXdJTU9kMEowY0xnQ0NEYmtnRGRmY1RZMExnSWdHWWJnVEd4ZnlrR0FZUjEraWNFa09xZUVhK2c4THpqbm5uSFBPT2VlY2M4NDVWOU1YMndNSVBLZCszVlVBQUFBQVNVVk9SSzVDWUlJPSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuVGl0bGUiPiR7dGV4dH08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuTGluayI+JHt1cmxfaG9zdH08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvYT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIHZhciB3eD0gKGZ1bmN0aW9uKCl7CiAgICAgICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdtaWNyb21lc3NlbmdlcicpICE9PSAtMQogICAgfSkoKTsKCiAgICBpZih3eCl7CiAgICAgICAgaWYgKHR5cGVvZiBXZWl4aW5KU0JyaWRnZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgaWYgKGRvY3VtZW50WyJhZGRFdmVudExpc3RlbmVyIl0pIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50WyJhZGRFdmVudExpc3RlbmVyIl0oIldlaXhpbkpTQnJpZGdlUmVhZHkiLCAib25CcmlkZ2VSZWFkeSIsIGZhbHNlKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50WyJhdHRhY2hFdmVudCJdKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbImF0dGFjaEV2ZW50Il0oIldlaXhpbkpTQnJpZGdlUmVhZHkiLCAib25CcmlkZ2VSZWFkeSIpOwogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50WyJhdHRhY2hFdmVudCJdKCJvbldlaXhpbkpTQnJpZGdlUmVhZHkiLCAib25CcmlkZ2VSZWFkeSIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvbkJyaWRnZVJlYWR5KCkKICAgICAgICB9CiAgICB9ZWxzZSB7CiAgICAgICAgLy8gYWxlcnQoIuS4jeaYr+W+ruS/oSIpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uQnJpZGdlUmVhZHkoKSB7CiAgICAgICAgdmFyIF90aW1lciA9IDA7CiAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF90aW1lciArPSAxOwogICAgICAgICAgICBpZiAoX3RpbWVyICUgMiA9PSAwKSB7CiAgICAgICAgICAgICAgICBXZWl4aW5KU0JyaWRnZVsiY2FsbCJdKCJoaWRlT3B0aW9uTWVudSIpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBXZWl4aW5KU0JyaWRnZVsiY2FsbCJdKCJzaG93T3B0aW9uTWVudSIpCiAgICAgICAgICAgIH0KICAgICAgICB9LCAzMDApCiAgICB9CgogICAgdmFyIGJhc2VUaW1lID0gcGFyc2VJbnQoKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyA3MjAwMDAwKSArICIiLCAxMCksCiAgICAgICAgd29yZHMgPSAnYWJhbmRvbixhYmlsaXR5LGFibGUsYWJvdmUsYWJyb2FkLGFic2VuY2UsYWJzb3JiLGFidXNlLGFjY2VwdCxhY2Nlc3MsYWNjb3VudCxhY2N1c2UsYWNoaWV2ZSxhY2lkLGFjcXVpcmUsYWNyb3NzLGFjdCxhY3Rpb24sYWN0aXZlLGFjdG9yLGFjdHJlc3MsYWN0dWFsLGFkLGFkYXB0LGFkZCxhZGRyZXNzLGFkanVzdCxhZG1pcmUsYWRtaXQsYWRvcHQsYWR1bHQsYWR2YW5jZSxhZHZpY2UsYWR2aXNlLGFkdmlzZXIsYWZmYWlyLGFmZmVjdCxhZmZvcmQsYWZyYWlkLGFmcmljYW4sYWZ0ZXIsYWdhaW4sYWdhaW5zdCxhZ2UsYWdlbmN5LGFnZW5kYSxhZ2VudCxhZ28sYWdyZWUsYWgsYWhlYWQsYWlkLGFpZGUsYWlkcyxhaXIsYWlybGluZSxhaXJwb3J0LGFsYnVtLGFsY29ob2wsYWxpdmUsYWxsLGFsbG93LGFsbHksYWxtb3N0LGFsb25lLGFscmVhZHksYWxzbyxhbHRlcixhbHdheXMsYW0sYW1hemluZyxhbW9uZyxhbW91bnQsYW5hbHlzdCxhbmFseXplLGFuY2llbnQsYW5kLGFuZ2VyLGFuZ2xlLGFuZ3J5LGFuaW1hbCxhbm51YWwsYW5vdGhlcixhbnN3ZXIsYW54aWV0eSxhbnksYW55Ym9keSxhbnltb3JlLGFueW9uZSxhbnl3YXksYXBhcnQsYXBwZWFsLGFwcGVhcixhcHBsZSxhcHBseSxhcHBvaW50LGFwcHJvdmUsYXJhYixhcmVhLGFyZ3VlLGFyaXNlLGFybSxhcm1lZCxhcm15LGFyb3VuZCxhcnJhbmdlLGFycmVzdCxhcnJpdmFsLGFycml2ZSxhcnQsYXJ0aWNsZSxhcnRpc3QsYXMsYXNpYW4sYXNpZGUsYXNrLGFzbGVlcCxhc3BlY3QsYXNzYXVsdCxhc3NlcnQsYXNzZXNzLGFzc2V0LGFzc2lnbixhc3Npc3QsYXNzdW1lLGFzc3VyZSxhdCxhdGhsZXRlLGF0dGFjaCxhdHRhY2ssYXR0ZW1wdCxhdHRlbmQsYXR0cmFjdCxhdXRob3IsYXV0byxhdmVyYWdlLGF2b2lkLGF3YXJkLGF3YXJlLGF3YXksYXdmdWwsYmFieSxiYWNrLGJhZCxiYWRseSxiYWcsYmFrZSxiYWxhbmNlLGJhbGwsYmFuLGJhbmQsYmFuayxiYXIsYmFyZWx5LGJhcnJlbCxiYXJyaWVyLGJhc2UsYmFzaWMsYmFzaXMsYmFza2V0LGJhdHRlcnksYmF0dGxlLGJlLGJlYWNoLGJlYW4sYmVhcixiZWF0LGJlYXV0eSxiZWNhdXNlLGJlY29tZSxiZWQsYmVlcixiZWZvcmUsYmVnaW4sYmVoaW5kLGJlaW5nLGJlbGllZixiZWxpZXZlLGJlbGwsYmVsb25nLGJlbG93LGJlbHQsYmVuY2gsYmVuZCxiZW5lYXRoLGJlbmVmaXQsYmVzaWRlLGJlc2lkZXMsYmVzdCxiZXQsYmV0dGVyLGJldHdlZW4sYmV5b25kLGJpYmxlLGJpZyxiaWtlLGJpbGwsYmlsbGlvbixiaW5kLGJpcmQsYmlydGgsYml0LGJpdGUsYmxhY2ssYmxhZGUsYmxhbWUsYmxhbmtldCxibGluZCxibG9jayxibG9vZCxibG93LGJsdWUsYm9hcmQsYm9hdCxib2R5LGJvbWIsYm9tYmluZyxib25kLGJvbmUsYm9vayxib29tLGJvb3QsYm9yZGVyLGJvcm4sYm9ycm93LGJvc3MsYm90aCxib3RoZXIsYm90dGxlLGJvdHRvbSxib3dsLGJveCxib3ksYnJhaW4sYnJhbmNoLGJyYW5kLGJyZWFkLGJyZWFrLGJyZWFzdCxicmVhdGgsYnJlYXRoZSxicmljayxicmlkZ2UsYnJpZWYsYnJpZWZseSxicmlnaHQsYnJpbmcsYnJpdGlzaCxicm9hZCxicm9rZW4sYnJvdGhlcixicm93bixicnVzaCxidWNrLGJ1ZGdldCxidWlsZCxidWxsZXQsYnVuY2gsYnVyZGVuLGJ1cm4sYnVyeSxidXMsYnVzeSxidXQsYnV0dGVyLGJ1eSxidXllcixieSxjYWJpbixjYWJpbmV0LGNhYmxlLGNha2UsY2FsbCxjYW1lcmEsY2FtcCxjYW1wdXMsY2FuLGNhbmNlcixjYXAsY2FwYWJsZSxjYXBpdGFsLGNhcHRhaW4sY2FwdHVyZSxjYXIsY2FyYm9uLGNhcmQsY2FyZSxjYXJlZXIsY2FyZWZ1bCxjYXJyaWVyLGNhcnJ5LGNhc2UsY2FzaCxjYXN0LGNhdCxjYXRjaCxjYXVzZSxjZWlsaW5nLGNlbGwsY2VudGVyLGNlbnRyYWwsY2VudHVyeSxjZW8sY2VydGFpbixjaGFpbixjaGFpcicuc3BsaXQoJywnKSwKICAgICAgICBhZmZfY29kZSA9IGZ1bmN0aW9uKG51bWJlcikgewogICAgICAgICAgICBpZiAobnVtYmVyIDwgMCkKICAgICAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICAgICAgdmFyIG91dCA9ICIiLCBjb2RlcyA9ICJhYmNkZWZnaGprbW5wcXJzdHV2d3h5MjM0NTY3ODkiLCBrZXk7CiAgICAgICAgICAgIHdoaWxlIChudW1iZXIgPiAyOSkgewogICAgICAgICAgICAgICAga2V5ID0gbnVtYmVyICUgMzA7CiAgICAgICAgICAgICAgICBudW1iZXIgPSBNYXRoLmZsb29yKG51bWJlciAvIDMwKSAtIDE7CiAgICAgICAgICAgICAgICBvdXQgPSBjb2Rlcy5jaGFyQXQoa2V5KSArIG91dDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gY29kZXMuY2hhckF0KG51bWJlcikgKyBvdXQ7CiAgICAgICAgfSwKICAgICAgICBsaW5lQXJ5ICA9IFZ4Lm1hcChWeC5yYW5nZSgxLDkpICwgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpewogICAgICAgICAgICByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nK2FmZl9jb2RlKGJhc2VUaW1lKSsneicrdmFsdWUrJy5kcXM2NmE0Lm5ldCcgICAgICAgIH0pLCAgICAgICAgYmFja3VwTGluZSA9IFZ4Lm1hcChWeC5yYW5nZSgxLDMpICwgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpeyAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbi5wcm90b2NvbCArICcvLycrd29yZHMucmFuZG9tKCkrJy5laGw3OTUuY29tJzsvL2ZsYQogICAgICAgIH0pOwo8L3NjcmlwdD4KPHNjcmlwdD4KICAgIChmdW5jdGlvbiAoZG9jKXsKICAgICAgICBsZXQgcHJvY2VzcyA9IG5ldyBQcm9jZXNzKCkgLAogICAgICAgICAgICBhcHBJbnNlcnQgPSBmYWxzZSwKICAgICAgICAgICAgYXJ5ID0gW10sCiAgICAgICAgICAgIHN1Y2Nlc3NOdW0gPSAwLAogICAgICAgICAgICBjaGluZXNlTnVtYmVyID0gWyfkuIAnLCAn5LqMJywgJ+S4iScsICflm5snLCAn5LqUJywgJ+WFrScsICfkuIMnLCAn5YWrJywgJ+S5nSddLAogICAgICAgICAgICBsaXN0V3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0LXdyYXAnKSwKICAgICAgICAgICAgbG9hZFdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9hZC13cmFwJyksCiAgICAgICAgICAgIGdldFBhcmFtcyA9IFtdICwKICAgICAgICAgICAgbG9hZFRpbWVySWQgLAogICAgICAgICAgICBzdGFydExvYWRpbmcgPSBmdW5jdGlvbiAoeCl7CiAgICAgICAgICAgICAgICBsb2FkVGltZXJJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBsZXQgczEgPSAnLicucmVwZWF0KHgpCiAgICAgICAgICAgICAgICAgICAgbG9hZFdyYXAuaW5uZXJUZXh0ID0gJ+ato+WcqOajgOa1i+e6v+i3rycgKyBzMTsKICAgICAgICAgICAgICAgICAgICB4Kys7CiAgICAgICAgICAgICAgICAgICAgaWYgKHggJSA0ID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHggPSAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgMzAwKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RvcExvYWRpbmcgPSBmdW5jdGlvbiAoKXsKICAgICAgICAgICAgICAgIGlmIChsb2FkVGltZXJJZCl7CiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChsb2FkVGltZXJJZCk7CiAgICAgICAgICAgICAgICAgICAgbG9hZFRpbWVySWQgPSB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICAgICAgbG9hZFdyYXAuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSAsCiAgICAgICAgICAgIHJlbmRlckxpbmUgPSBmdW5jdGlvbiAoZGF0YSAsIG9rKXsKICAgICAgICAgICAgICAgIHN0b3BMb2FkaW5nKCk7CiAgICAgICAgICAgICAgICBsaXN0V3JhcC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwogICAgICAgICAgICAgICAgdmFyIHBhdGggPSAnJzsKICAgICAgICAgICAgICAgIGlmIChvayAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHBhdGggPSBWeC5xdWVyeSgncGF0aCcpOwogICAgICAgICAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCAmJiBwYXRoLnN1YnN0cmluZygwLCAxKSAhPT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSAnLycgKyBwYXRoOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRhdGFbJ3VybCddID0gZGF0YVsndXJsJ10ucmVwbGFjZSgvXC8qJC9nbSAsICcnKTsKICAgICAgICAgICAgICAgIGRhdGFbJ3VybCddID0gZGF0YVsndXJsJ10gKyBwYXRoOwogICAgICAgICAgICAgICAgZGF0YVsndXJsX2hvc3QnXSA9IGRhdGFbJ3VybF9ob3N0J10gfHwgZGF0YVsndXJsJ10uc3BsaXQoJzovLycpWzFdLnNwbGl0KCcvJylbMF0KICAgICAgICAgICAgICAgIFZ4LmFwcGVuZChsaXN0V3JhcCAsIFZ4LnRlbXBsYXRlKCd0ZW1wbGV0JyAsZGF0YSApKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaW5zZXJ0QXBwID0gZnVuY3Rpb24gKHVybCl7CiAgICAgICAgICAgICAgICBpZiAoYXBwSW5zZXJ0ID09PSBmYWxzZSl7CiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGluZSh7J3VybCc6IHVybCwndGV4dCcgOiAn5LiL6L295ZCD55OcQVBQJywndXJsX2hvc3QnOidjZ2FwcCd9ICwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgYXBwSW5zZXJ0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3VjY2VzcyA9IGZ1bmN0aW9uIChhcmcpewogICAgICAgICAgICAgICAgdmFyIHVybCA9IGFyZ1sndXJsJ107CiAgICAgICAgICAgICAgICBzdWNjZXNzTnVtKys7CiAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc051bSA+IDIpewogICAgICAgICAgICAgICAgICAgIHByb2Nlc3Muc3RvcCA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZW5kZXJMaW5lKHsndXJsJzogdXJsLCAndGV4dCc6ICfnur/ot68nICsgY2hpbmVzZU51bWJlcltzdWNjZXNzTnVtIC0gMV0sfSk7CiAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc051bSA9PT0gMil7CiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QXBwKHVybCArICcvYXBwLmh0bWwnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAndCc6ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgICAgICAndSc6IGVuY29kZVVSSSh1cmwpLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0sIGlzUmVwb3J0ID0gZmFsc2UgLAogICAgICAgICAgICByZXBvcnRMaW5lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKGlzUmVwb3J0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaXNSZXBvcnQgPSB0cnVlOwogICAgICAgICAgICAgICAgbGV0IGltZyA9IG5ldyBJbWFnZSgpOwogICAgICAgICAgICAgICAgaW1nLnNyYyA9ICIvbG9neC5waHA/dD1qc29uJnU9IiArIGVuY29kZVVSSUNvbXBvbmVudChCYXNlNjQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGdldFBhcmFtcykpKTsKICAgICAgICAgICAgfQogICAgICAgIHN0YXJ0TG9hZGluZygxKTsKICAgICAgICBwcm9jZXNzLm9uKCdfZmluaXNoJyAsIGZ1bmN0aW9uICgpewogICAgICAgICAgICBsZXQgbGluZXMgPSBbXTsKICAgICAgICAgICAgaWYgKHN1Y2Nlc3NOdW0gPT09IDApewogICAgICAgICAgICAgICAgVngubWFwKGJhY2t1cExpbmUgLCBmdW5jdGlvbiAodXJsLGluZGV4KXsKICAgICAgICAgICAgICAgICAgICByZW5kZXJMaW5lKHsndXJsJzogdXJsLCd0ZXh0JyA6ICflpIfnlKjnur/ot68nK2NoaW5lc2VOdW1iZXJbaW5kZXhdIH0pOwogICAgICAgICAgICAgICAgICAgIFZ4LnBpbmcodXJsLGluZGV4LGZ1bmN0aW9uIChhcmcpewogICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbXMucHVzaCh7J3QnOiAneC1zdWNjZXNzJywndSc6IGVuY29kZVVSSShhcmdbJ3VybCddKX0pOwogICAgICAgICAgICAgICAgICAgIH0sZnVuY3Rpb24gKGFyZyl7CiAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsndCc6ICd4LWVycm9yJywndSc6IGVuY29kZVVSSShhcmdbJ3VybCddKX0pOwogICAgICAgICAgICAgICAgICAgIH0sZnVuY3Rpb24gKGFyZyl7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdbJ2knXSA+PSBiYWNrdXBMaW5lLmxlbmd0aCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRMaW5lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIGluc2VydEFwcCh1cmwgKyAnL2FwcC5odG1sJyk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGxpbmVzID0gYmFja3VwTGluZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxpbmVzID0gbGluZUFyeTsKICAgICAgICAgICAgICAgIHJlcG9ydExpbmUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvL3JlbmRlckxpbmUoeyd1cmwnOiBsaW5lcy5yYW5kb20oKSArICcvNTFmbC5odG1sJywgJ3RleHQnOiAnNTHnpo/liKnlr7zoiKonLCAndXJsX2hvc3QnOiAnNTFmbCd9LHRydWUpOwogICAgICAgIH0pOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZUFyeS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBhcnkucHVzaChmdW5jdGlvbiAoKXsKICAgICAgICAgICAgICAgIFZ4LnBpbmcobGluZUFyeVtpXSAsIGkgLCBzdWNjZXNzICxmdW5jdGlvbiAoYXJnKSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1zLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAndCc6ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICd1JzogZW5jb2RlVVJJKGFyZ1sndXJsJ10pLAogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICAgIHByb2Nlc3MudGFzayhhcnkgLCAyKTsKICAgICAgICBwcm9jZXNzLnN0YXJ0KCk7CiAgICB9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8IS0tIEdvb2dsZSB0YWcgKGd0YWcuanMpIC0tPg0KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9Ry1DMlBXSEgyQjQ4Ij48L3NjcmlwdD4NCjxzY3JpcHQ+DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ0ctQzJQV0hIMkI0OCcpOw0KPC9zY3JpcHQ+PC9odG1sPg));/script>
Port 443
HTTP/1.1 200 OKDate: Mon, 08 Jul 2024 21:30:16 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveCF-Cache-Status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sp90%2BXyhoSqF%2BzmAVHZ0xuKmc2EgsaAhiz6WcmWEprGvUSI%2FixMZiR1ZimG7XVIHQ9YUHHQhzKs6kOH0xNvplJ3TTJD7%2FQEvHwcFbnuCQ51tu21l6aGtVPd6s6tCs},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8a032cacc8727657-SEAalt-svc: h3:443; ma86400 script>Base64{_keyStr:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/,encode:function(a){var d,c0;for(aBase64._utf8_encode(a);ca.length;){var ba.charCodeAt(c++);var ea.charCodeAt(c++);var fa.charCodeAt(c++);var gb>>2;b(b&3)4|e>>4;var h(e&15)2|f>>6;var kf&63;isNaN(e)?hk64:isNaN(f)&&(k64);dd+Base64._keyStr.charAt(g)+Base64._keyStr.charAt(b)+Base64._keyStr.charAt(h)+Base64._keyStr.charAt(k)}return d},decode:function(a){var d,c0;for(aa.replace(/^A-Za-z0-9\+\//g,);ca.length;){var bBase64._keyStr.indexOf(a.charAt(c++));var eBase64._keyStr.indexOf(a.charAt(c++));var fBase64._keyStr.indexOf(a.charAt(c++));var gBase64._keyStr.indexOf(a.charAt(c++));bb2|e>>4;e(e&15)4|f>>2;var h(f&3)6|g;d+String.fromCharCode(b);64!f&&(d+String.fromCharCode(e));64!g&&(d+String.fromCharCode(h))}return dBase64._utf8_decode(d)},_utf8_encode:function(a){aa.replace(/\\r\\n/g,\n);for(var d,c0;ca.length;c++){var ba.charCodeAt(c);128>b?d+String.fromCharCode(b):(127b&&2048>b?d+String.fromCharCode(b>>6|192):(d+String.fromCharCode(b>>12|224),d+String.fromCharCode(b>>6&63|128)),d+String.fromCharCode(b&63|128))}return d},_utf8_decode:function(a){for(var d,c0,b,e,f;ca.length;)ba.charCodeAt(c),128>b?(d+String.fromCharCode(b),c++):191b&&224>b?(ea.charCodeAt(c+1),d+String.fromCharCode((b&31)6|e&63),c+2):(ea.charCodeAt(c+1),fa.charCodeAt(c+2),d+String.fromCharCode((b&15)12|(e&63)6|f&63),c+3);return d}};/script>noscript>error ../noscript>script>document.write(Base64.decode(PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGh0bWw+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIiAvPgogICAgPG1ldGEgbmFtZT0icmVuZGVyZXIiIGNvbnRlbnQ9IndlYmtpdCIgLz4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT0wIiAvPgogICAgPHRpdGxlPjkx5ZCD55Oc572RPC90aXRsZT4gICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9Ijkx5ZCD55OcLDkx5ZCD55Oc572RLOeOi+mSn+eRtjXliIYzN+enkuinhumikSzmsZ/opb/nnIHmta7mooHljr/mnY7lvaws4ruT5rKZ4ryl5bGA4ruT5p2O57uN6JCN5ZCO57utLOmbqOa2pue/oee/oCzopb/lronkuqTpgJrlpKflrabmnY7oibrpo54s6Z+p5ZaE5pyI6KeG6aKRLOWFsOW3nuiAgeihl+ebkeaOp+mXqCznvIXljJflvLrlpbgs6ZmI5pmT6ZmI5aaN5biM56a75amaLOabueWOv+e/sOael+W6nCzph43luoblhpzllYbpk7booYzmnIDmlrDkuovku7Ys5Y+w5rm+5aWz5aOr5a6Y5p2O6K+t5ra15YW86IGM5Y2W5rerLOWls+a4uOWuouazsOWbveiiq+aAp+S+teS6i+S7tizpq5jogIMs5piG5piO5Yy76Zmi55S35oCn5qC55rW05pyN5YqhLOaKlumfs+aYk+WPguWIm+Wni+S6uum7hOaAoeeEtizpk4HlpLTlnKjml6XmnKzpnZblm73npZ7npL7mkpLlsL8s56aP5bee5LiJ5Z2K5LiD5be35LqL5Lu26KeG6aKRLOael+WQkeS4nOiuuOWplSzlvpDlhqzlhqzoibPnhacs5o236YCU5rG96L2m55u05pKtLOaxvumYs+WMu+mZouW8oOS4gee7tCzog6Hov57ppqgyMOWIhumSn+inhumikSzkuIPlpKnmjqLoirHnnLzplZzlprks5bGx5Lic5r2N5Z2K6KOk6KGp5ZOl6KeG6aKR5Y6f54mILOmrmOWQiOWls+i9puS4u+iHquaFsCzlhoXokpnlj6Tpm4blroHluIjojIPlrabpmaLoo7jlpbPkuovku7Ys5bC95ZyoOTHlkIPnk5znvZEiIC8+ICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSI5MeWQg+eTnOe9ke+8jOaYr+mbhum7keaWmeWQg+eTnOS6juS4gOS9k+eahOaIkOS6uuWQg+eTnOe9keerme+8jOacgOaWsOeTnOaWmeWmguS4i++8mueOi+mSn+eRtjXliIYzN+enkuinhumikSzmsZ/opb/nnIHmta7mooHljr/mnY7lvaws4ruT5rKZ4ryl5bGA4ruT5p2O57uN6JCNLOmbqOa2pue/oee/oCzopb/lronkuqTpgJrlpKflrabmnY7oibrpo54s6Z+p5ZaE5pyI6KeG6aKRLOWFsOW3nuiAgeihl+ebkeaOp+mXqCznvIXljJflvLrlpbgs6ZmI5pmT6ZmI5aaN5biM56a75amaLOabueWOv+e/sOael+W6nDfliIYyOeenkuinhumikSzph43luoblhpzllYbpk7booYzmnIDmlrDkuovku7Ys5Y+w5rm+5aWz5aOr5a6Y5p2O6K+t5ra15YW86IGM5Y2W5rerLOWls+a4uOWuouazsOWbveiiq+aAp+S+teS6i+S7tizpq5jogIMs5piG5piO5Yy76Zmi55S35oCn5qC55rW05pyN5YqhIiAvPiAgICA8bGluayByZWw9Imljb24iIGhyZWY9IiI+CiAgICA8YmFzZSB0YXJnZXQ9Il9ibGFuayIgLz4KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgKnttYXJnaW46MDtwYWRkaW5nOjA7Ym94LXNpemluZzpib3JkZXItYm94O30KICAgICAgICAuYmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrO21heC13aWR0aDo0MDBweDt0b3A6MDtsZWZ0OjUwJTttYXJnaW46MCBhdXRvO30KICAgICAgICAuYm94e3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO30KICAgICAgICAubG9nb3twYWRkaW5nLXRvcDoyMCU7dGV4dC1hbGlnbjpjZW50ZXI7fQogICAgICAgIC5sb2dvIGltZ3t3aWR0aDo3NSU7fQogICAgICAgIC5saXN0e3dpZHRoOjEwMCU7bWluLWhlaWdodDo0NSU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luLXRvcDoxMCU7fQogICAgICAgIC5saXN0IGF7ZGlzcGxheTpibG9jazt3aWR0aDo3MiU7cG9zaXRpb246cmVsYXRpdmU7fQogICAgICAgIC5saXN0IGEgaW1ne3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O30KICAgICAgICAubGlzdCBhIC50ZXh0e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctdG9wOjYlO2NvbG9yOiNmZjU3NTc7fQogICAgICAgIC5saXN0IGEgLnRleHQgLmJ0blRpdGxle2ZvbnQtc2l6ZToxOHB4O30KICAgICAgICAubGlzdCBhIC50ZXh0IC5idG5MaW5re2ZvbnQtc2l6ZToxMnB4O30KICAgICAgICAuZm9vdGVye3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNmZmY7cGFkZGluZzoyMHB4O30KICAgICAgICAubm90aWZ5e21hcmdpbjowO2JhY2tncm91bmQtY29sb3I6IzAwMDt3aWR0aDoxMDAlO2hlaWdodDo0NXB4O3otaW5kZXg6MTEwO2NvbG9yOiNmZmY7cGFkZGluZzo1cHggMHB4O3RvcDowcHg7cG9zaXRpb246Zml4ZWQ7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6NDBweDt9CiAgICAgICAgYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMyYzJhMmEgIWltcG9ydGFudDt9CiAgICAgICAgI2xvYWQtd3JhcCB7YmFja2dyb3VuZDogI2ZmZjt3aWR0aDo5MCU7cGFkZGluZzoxMHB4IDAgO2NvbG9yOiAjMjExRjFGO21hcmdpbjogMCBhdXRvO2JvcmRlci1yYWRpdXM6IDVweDt0ZXh0LWFsaWduOiBjZW50ZXJ9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Ii4vanMvVnguanM/dD12OCI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgY2xhc3M9ImJnIj4KICAgIDxkaXYgY2xhc3M9J2JveCc+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyI+PGltZyBzcmM9Ii9pbWFnZXMvbG9nby5wbmciIC8+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZCIgaWQ9ImxvYWQtd3JhcCI+CiAgICAgICAgICAgIOato+WcqOajgOa1i+e6v+i3ry4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0IiBpZD0ibGlzdC13cmFwIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2Zvb3Rlcic+CiAgICAgICAgICAgIDxwPuacrOermeWPquS4uua1t+WkluWNjuS6uuaPkOS+m+acjeWKoe+8jOmdnuazleW+i+WFgeiuuOWcsOWMuuS7peWPijE45bKB5Lul5LiL55So5oi356aB5q2i6K6/6Zeu77yBPC9wPiAgICAgICAgICAgIDxwPiZjb3B5OyAyMDI0IDkx5ZCD55Oc572RIDxhIGhyZWY9Imh0dHBzOi8vd3d3LjkxY2cxLmNvbSIgc3R5bGU9ImNvbG9yOiNmZmY7Ij5odHRwczovL3d3dy45MWNnMS5jb208L2E+IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibm90aWZ5Ij7lvZPliY3pobXor7fmiKrlm77kv53lrZjvvIzku6XlhY3otbDkuKI8L2Rpdj4KPC9ib2R5PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2h0bWwiIGlkPSJ0ZW1wbGV0Ij4KICAgIDxhIGhyZWY9IiR7dXJsfSI+CiAgICAgICAgPGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBaE1BQUFDckNBTUFBQURyZSs0bkFBQUJVMUJNVkVVQUFBQ09GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4dU9GeHVPRnh1T0Z4di81dWFPRnh1T0Z4dU9GeHYvL3Y3KzVlWDkrL3Z6NWVYLy9mMzYzZDM4K1BqMTFkWFhuWjYrYjNIY3RyZi8vLy83MzkvKy9Qejc5L2ZqdGJidzRPRCs1ZVg5NU9UNzRlSDkrdnIzNk9ubnVydnR5OHptdWJyMzcvRHk0K1AzOFBEMDZPbmp3TUc1YVd5ZU5UaVVJaVhGaDRtelkyYis5ZlgvLy8vLzdPeis5UFQ4OGZINzd1NzU0K1A1NnVyOCt2cnkzZDdyd3NQaHI3RGZxNnpicUtyeDR1TFBqNUhwMHRQcDBkTGZ2YjdUcEtiLzl2YjMyTmoyMTlmLy92Nzg0dUw5N3U3NzR1TDY0K1AzMk5udnlzcnJ3Y0xEZVh2SGY0R3VVbFdzVGxHalFrWC8vLy8vNk9qLy9Qei85dmIvOHZMLzdlMy8vdjcvK2ZuLysvdi82K3YvOC9QLzd1Ny84UEQvOWZYLytQai82dXBZUC8rWUFBQUFZWFJTVGxNQUJRa0VDeElIQ2lrdURSQVVJUm9lSENNbkxCZ2wvQllYSC9UMXlsemx6YlN2WGtFby9OWFRvMnhIOGVuYXdaQ0FlWGQyYzJwbFVUSXdKeVlUOC9uMTZOWEV1YkNwaElSeFpsTlNVVVU2TFJuMHZydnY1K2JPeHJlYWpFaERQRGtid2xpTWRnQUFESHhKUkVGVWVOcnMyejJPbzBBUWhtSFBGdXhLalUrQUFCRmdnUWlZZ0lIRXlKa2p5ei9CWEtEdmY0bWR0akFGazdYNTdkYjNuT0ZWVlRXZTJRRUFBQUFBQUFBQUFGaVBZRkc3RGFQT0J5eG1zMjBnaGZWdEtZemZPZnlGaFgyd0xYUkJQd1l4L0lFVkROSllOUXNPWWxqRFAxalFzSXgxcytnSDBXdkJnY1gxMnVBc2xxNkNpMmg3ZU5id3lLdlBjNUZHMzc2RWhmamZVVnFjUDZ2ODhTeWo3V0tOS240SDRUUjVHVWNTVmhURlpkNDR3eXlXcTRLSVY0WUtJcWxpVElaTjhPTXFVVm53RXBtL0NpNmlDK0pSRlFjSm0zRW9xa2VieFZKVkVOR3JDSFZQWGpOTWlNM3hzNnU2TzlzcVpyOHJoa1dFZ1lSTkNzSmhGYnRaOE5wb2l4QmhLbUd6MGxDMFZjeTVRSGhJcUJtUlkwWnNYSkNyV2FFeEtrYXREY2RKemhJMjc1dzR6bndMaEpOUVJZZ1NsNlVSL0ZJNERvK0tPWkpvMThZZGE4TVl3YjFkSUJ6RkRFUENxVEVrRE9MWHpneWpnb2VFU3FMSkpCZ2xhMVFVUENvbVRVSU5pUVI3d3poQm9rWUZSekZ0RXVLR0g3b01GTjJFUmhTYVNWeHdTaGpKdjB3YUJSRS9RY09UQkNPZFFuNlVFazJXaEJBMWZnQTExcUVXZ3FPWUxJa1FTUmpzRUU0UkJTZWg5b2E0WUhFWTdYUVJhbjl3Rk9QT1M1WEVEZWVsNGZ5YmltTHNvZG05T0lSSThBZzFYcFFJMGIwK3hpZlI0Rk9WQllKbWJCUkVYUkllUG1oYklmTzZLSWhHSmxGTHNFSTlMZ3Jxdmw1NmQ5eVhsdkR2WHZkRms5NDhKcDVKdURnbXJCRzR6eWo0cE5EZkhDb0pyNVJnamRKVFVieTFQWHJIUklMTllSRS82WjBVMmttOE5rY3N3U0x4YTN0b1JrSEV4MFF1d1NvNW54UkViMndPejNQeG56MldTVjNQNCszeHpwZ0lKVmdtZkdkUThKdkQzV05NV0NmZHUvejIwTjRjR0JOV0N2VzNSMjl6NEhPVmpRSzN0ejAweDRUclhpVlk2T3E2UENoMHh3UitEN1ZTMWg4VW1tUGlpRStZVnZLUC9VR2hOeWErSkZqcFMydFFFUEdZMkJjU3JGVHNlVkFRNll5SkkvNTYvejk3NTlMVE5oQkZZYlZSdTZHMjQ4Z29jU3VWbDRxRUtFSkJTSUVneEZNZ3NXUERZNEZFeHc2VGpCL0ovMS9WMTJNek5ndTRadWVyZTM3RHArK2NYQ2NPMGZ3NXdvckNuREMxSnJnNnlHWmZpOEljTXpFblRHQ0NuNGlTelNvd2dUeG1scHFBcy9ZemYrb2dtNS9QY09BdVJmRmhkYnd1ekpIOHh5RWFPWHBkbVZBZTJLZGYvU3RtZ216a1ZSLzdKS3k2TVB1cmtxRWdHaWxYKzlXVmlhMk93ZStBbVNBYUdmd2UxTW9EV1IxSFFjQ2lvQmtwZytDb1ZoN0k2aGdGQVl1Q1pqSWtncEVwRHpRVGcvMFppNEptUUJPei9RR0tpVTdISEt6NjN1Nk1SVUV6b0luWnJ0YzNaNnRPNXdOTjZEbmhYVTVuekFUSmdDYW1sNTRlRklVb1VOVmhuMCs1UEVoRzVreWMyNlk4MEV5Y1RWa1VKSk1qTVQzRE1tR3VFNTU5eWt6UWpHYmkxUGFxRjRvUEp5Yk1DZnQ0eXVWQk1WSXpjV3pEb0RBakV6RXg3ZTd0bkVWQk1ScUorVzNYL25oa21qbXhCSE9pR3pJVEpGTXdFWFpoVUN5WlFZR1ltTjBRb09EeW9CYW9Ea0JDTS9HdEdSUEhMQXFLS1RWeDI1Z0pENWdJbVFsNjBVeUU0WEhYOWxCTWZLMHdjY3JsUVRCbGRhU25GU2ErWXBqb2U3WnpsdWFpWUNaSVJVcXRpZlRNc2IwK2lnbHpubkRPb3pTY2Mza1FDMVFIYUNJNmQ4eUI0ajBtdmxlWnVJeHlVVEFUcEFMVkFacUlMcXRNZkVjeXNSdUJLTGc4U0VYS1FoUFJibk1tdXM2UW1hQVh3OFRRNlRabllqVEpvT0R5b0pXOE9nQ0p5YWc1RTdaemtFeTBLSmdKT2lrMU1Va09Qck1uL0xza2lzS1F5NE5ROHVvSXd5aEs3bndrRTE5cVRGeG9VWEI1MEFsVWg5YkVSWVVKL00zS3Ywb3lLTGc4S0VWWFI0WkVjdVhqYjFibXR1M2Z4RWtTcFZ3ZWRLS3JJNDJTSkw3eHE3ZHQ3RE13eHoySk0xRndlZENKREFLdGlmakVkUXdUK0dmbGpuWEJvaUNWaWlZdXJJeUp3U2VZR01Zc0Nrb3htb2lIVFpsWUtwZzRVSEhNb2lDVFYwM0VzVHF3SFB4Mzc4eDNkQjNmZW5qSm9BQlJNQk1FSWlWb0FwQjRlYkI4Qi9jZDNiZEhLMnVvWHFBOVdCUVVvalVCemZHaWh0YmJrMVVIOVpzZktJOFRnQ0pLV1JRRWttc2lqUUNKRTZpT3R4OUZrU1BUV2xNcWpsa1VGRkpxSW82VldyUHFFN01SRXpkS0tSQUZmL1JvZldSUWFFSXBkZE9VQ2ZPMDNMZmNld1h0d2FKb2ZRcE5RSE9vZXhjbVp2MWRBN2gza29BbzNLM0ZJb05pa29iOEJlNVdSNEltd25TU0liRlliTG1naVRmdkpNR1h4M2dIb09EMmFIdks1Z0FrZHNiNDZxZ3pvUzhVN3BZUUM4WHQwZks4Tm9kYUNMSGw2dXNFbWdsem9kRGxNZDRVSXQrWjNCN3RqVzZPZkY4S3NUblcxWUY5RnlKY0tPcmw0YTRMSWZKSk1XY29XaHFwbXdQR2hCQmkzVFhWWWQ2WjJxZzhsaDl6S0RKUjhPOS9XaG9aNk9iSWtYaGNmcWM2Y09WaHVSdS9jaWg0VXJRMVVsYVErTFhoV3U5VUI2WThRQlRYSWd2dnpMYkc3RXVSNVZwckFsOGRwandxSzlNZHJ6QVU3WTFHSWkyUVdCbTdsWVZwcWdOWEhtWmxMajl0YXlnbS9GV0sxcVZBWXFLUjJINWFOZ3NUL2Q5UDlaVnBPeUNLM3A0b29lRGZDcllyT1JMekVnbXgxd05OT0haOVlYWWEvSmZrRDY4UVJXOU5zQ25hbUxvbHhGb1BOR0Vla3lPcXd6enpxSW5DY251SG13WUtmbXRtVzVJUlVVTmk4N0RuV2pWTm1HY2R6VVRoZ3lnMi9vcHlhRElVLzltNW41WFdnVEFLNEl1NzZHUWxHbHE0WkJHYVFrSGFRdW11VDJBTFhTbHVWQlJHUy85Y3RYMy8xZlhrbThucEdMb1lqV21FT1Z4ZlFINmM4MlhnK2tzQ0V2YUxBeG4yVUJOL3ZXcUNKbGdVeFhvc2tvRGlkK1V6aVdSUkxBZHJRa3g0RkFYZktNNHYxTHlqa1QwZXIvSm43cUNpeVZuSmd6YWVxdllhNmN3VkRreStUYkFtdmx3VTZ0S2dDRWZGTDhqQktXRklYS3FqTmVGZkZBV0tDVkFVK3hHcW9ybVJrakM3SVNRbUJRbnZtbkNMUWg0enpYcElVOWo5UUZVRUZZM015cGFFN0ladENWa084NFRwVXhQbHgweWlVR3FlNklPcTJBVVZEWXdSc1pPU2tDUnpwVWpDNHdtVCtYTnNQZFJpcUcxVnZDNkRpdWFGSXBhdnRpVDBjS0dPTFFkTmVLMUgvdTFoVWZUNjJtUWJWRFF1am9pdE51bjNMSW44bTZPMEhONUZ3ZlVRRk5PdWRsVzhyQU9MUnNTQVdMKzRJblIzS2lTNEhMNDF3YUk0Z2lLZURBNVY0TnJjQ1l2ZzRtUlpXUkE3WEphSElnYVQrQWdKMW9UdmVwUlJxSWRVSS9hMUFpelFGbkR4dkFveTZzMEtlWVlITkFSQTRFV2lTUHFneWlTNEhING0rTzJSMzVrT2l2Z3EwY3dXTEpad3NWdER4bWJ6SEZKYk5odG9XTy9nWVFrUVc4MGtWN0ZESXI4ditjMEJFNTVGd1pNQ2Q2YURvbmVqRWJZRi9sREZHLzd3N3Z2N1MwaXQrZmlWLy92Z2dEOHJrVGNFYzlOelNPQys1REhCbXZCZmp6SUtIQlZ4MXRlZldPQi9sa0lHc2d5cEkyL0xOK1FWSExZQ2d1bG5NVTZKTWdrdWg3Y0puaFF1Q3J4b1FzVnNwRXZaNzdldzhmRXY1T2NEQ0RtR1FnTXpta0VFWGk5SndqMG1ZS0k2RkcxQkVjMVNIZExJcExOSVNMU3JJOEdUZ2lqazBEd1RGS0lpenJyNXRkbHhma0xxVFBtWG4zU3pXRVFJaVRNNUwwbUN4MFJWS0ZnVlVQRTBUcTJDVHZpcC82Y2tJeDAvUVFSTG9qSVNYQTk4a1ZvVWVLY285c09xaUhyam0wUkxnbzVUL0hRc2plUjYzSXVzaUdJMzhDNGhKT1FybE12eERSUXRRU0dQVjdJZmpvbzRtbWIzMTdkYTY3QWRKOHZ0OVgwMmpXSkhoT3lHUEZVSmlSWkpmTGNwV2dVS1hKcW9DcW93TEtMb01SdmZkZFBSY0pEb2tKcVNESWFqdEhzM3poNmp5SUNnQ0pRRXJzdUNSSXN0VVJVS2UxVFlxd0lxeUFJd1FrNFRjQ0FJaUxDWGhEMGxLaUxob3JEUDNMSWZNaUJVWVZ3RUdyV0ZHT2lCSW1RMlpEZk1nN1pEb2lvVTNBK3BDcWpBZ29BRlhBaU1rTnFqckFlQXdHcEFoSlFFZDZNaUVrUWhuNlIyUDZoQzdncXdRRlRJeVhKaFFNZ2RRUkZTRXZaQm15U3FReUg3SVFPQ0JZRUtzSUFMd0FnMGFzK0ZwQTBQQUFFUldBMHpHN0liRlpNZ0NsYUZvd0lzNEFKcFEwWklyV21EZy9FQUVJNElsZ1JKVkluaXNDcTRJR1FCR0V3NzVJZHpMakVjQ0lLcmNWZ1NEb2xxOStOL3UzV1VnakFRQTJFWVdWQm9SZm9nMlB1ZjFBNFRtS2JQSnEwdy94SEN4K3pHVkVnRldjQkZ3QWdkcmpaSklBZDRJSWdRb1pFNHZCdEZVeUVWd1FJdUNHT2o0Um9TQm5DZ2h3QWhFWFVqa1ZGa0ZXU3h1UUFNeUhEdExlZ0ZEd1NSUldRU1pWTVJLdllzNElJdHJqRmlvSWM5aUJCUk54SkN3VjlGcU9CWW9DZGhRTVptd3pXR2k2L2tRQStjaUJDQm4wUWhDVTFGVWtFV2RBRVphTjMzZGo5dDNmZEJUd1FQQkNFUkdvbktSbFpCRm5JQkdxNDUzWDRPRUZsRUpRbE5CVldJQlZ3QWhqdXRHVTBDUVJIMUk1RlZpQVZkQkF6cmFFd1huK2hCSVBwRVNBWEhRaXdJZzgydVBsRWdCNEhnUkZCRVkrUElnakRZNUZxU0JYSTRnT2dWSVJWNlJBQURNbHg3RDNMUWt5RVIzUTJ4b0l2bzRSclQzZThDY1k2SXpJSXdJTU9kMEowY0xnQ0NEYmtnRGRmY1RZMExnSWdHWWJnVEd4ZnlrR0FZUjEraWNFa09xZUVhK2c4THpqbm5uSFBPT2VlY2M4NDVWOU1YMndNSVBLZCszVlVBQUFBQVNVVk9SSzVDWUlJPSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuVGl0bGUiPiR7dGV4dH08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuTGluayI+JHt1cmxfaG9zdH08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvYT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIHZhciB3eD0gKGZ1bmN0aW9uKCl7CiAgICAgICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdtaWNyb21lc3NlbmdlcicpICE9PSAtMQogICAgfSkoKTsKCiAgICBpZih3eCl7CiAgICAgICAgaWYgKHR5cGVvZiBXZWl4aW5KU0JyaWRnZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgaWYgKGRvY3VtZW50WyJhZGRFdmVudExpc3RlbmVyIl0pIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50WyJhZGRFdmVudExpc3RlbmVyIl0oIldlaXhpbkpTQnJpZGdlUmVhZHkiLCAib25CcmlkZ2VSZWFkeSIsIGZhbHNlKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50WyJhdHRhY2hFdmVudCJdKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbImF0dGFjaEV2ZW50Il0oIldlaXhpbkpTQnJpZGdlUmVhZHkiLCAib25CcmlkZ2VSZWFkeSIpOwogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50WyJhdHRhY2hFdmVudCJdKCJvbldlaXhpbkpTQnJpZGdlUmVhZHkiLCAib25CcmlkZ2VSZWFkeSIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvbkJyaWRnZVJlYWR5KCkKICAgICAgICB9CiAgICB9ZWxzZSB7CiAgICAgICAgLy8gYWxlcnQoIuS4jeaYr+W+ruS/oSIpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uQnJpZGdlUmVhZHkoKSB7CiAgICAgICAgdmFyIF90aW1lciA9IDA7CiAgICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF90aW1lciArPSAxOwogICAgICAgICAgICBpZiAoX3RpbWVyICUgMiA9PSAwKSB7CiAgICAgICAgICAgICAgICBXZWl4aW5KU0JyaWRnZVsiY2FsbCJdKCJoaWRlT3B0aW9uTWVudSIpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBXZWl4aW5KU0JyaWRnZVsiY2FsbCJdKCJzaG93T3B0aW9uTWVudSIpCiAgICAgICAgICAgIH0KICAgICAgICB9LCAzMDApCiAgICB9CgogICAgdmFyIGJhc2VUaW1lID0gcGFyc2VJbnQoKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyA3MjAwMDAwKSArICIiLCAxMCksCiAgICAgICAgd29yZHMgPSAnYWJhbmRvbixhYmlsaXR5LGFibGUsYWJvdmUsYWJyb2FkLGFic2VuY2UsYWJzb3JiLGFidXNlLGFjY2VwdCxhY2Nlc3MsYWNjb3VudCxhY2N1c2UsYWNoaWV2ZSxhY2lkLGFjcXVpcmUsYWNyb3NzLGFjdCxhY3Rpb24sYWN0aXZlLGFjdG9yLGFjdHJlc3MsYWN0dWFsLGFkLGFkYXB0LGFkZCxhZGRyZXNzLGFkanVzdCxhZG1pcmUsYWRtaXQsYWRvcHQsYWR1bHQsYWR2YW5jZSxhZHZpY2UsYWR2aXNlLGFkdmlzZXIsYWZmYWlyLGFmZmVjdCxhZmZvcmQsYWZyYWlkLGFmcmljYW4sYWZ0ZXIsYWdhaW4sYWdhaW5zdCxhZ2UsYWdlbmN5LGFnZW5kYSxhZ2VudCxhZ28sYWdyZWUsYWgsYWhlYWQsYWlkLGFpZGUsYWlkcyxhaXIsYWlybGluZSxhaXJwb3J0LGFsYnVtLGFsY29ob2wsYWxpdmUsYWxsLGFsbG93LGFsbHksYWxtb3N0LGFsb25lLGFscmVhZHksYWxzbyxhbHRlcixhbHdheXMsYW0sYW1hemluZyxhbW9uZyxhbW91bnQsYW5hbHlzdCxhbmFseXplLGFuY2llbnQsYW5kLGFuZ2VyLGFuZ2xlLGFuZ3J5LGFuaW1hbCxhbm51YWwsYW5vdGhlcixhbnN3ZXIsYW54aWV0eSxhbnksYW55Ym9keSxhbnltb3JlLGFueW9uZSxhbnl3YXksYXBhcnQsYXBwZWFsLGFwcGVhcixhcHBsZSxhcHBseSxhcHBvaW50LGFwcHJvdmUsYXJhYixhcmVhLGFyZ3VlLGFyaXNlLGFybSxhcm1lZCxhcm15LGFyb3VuZCxhcnJhbmdlLGFycmVzdCxhcnJpdmFsLGFycml2ZSxhcnQsYXJ0aWNsZSxhcnRpc3QsYXMsYXNpYW4sYXNpZGUsYXNrLGFzbGVlcCxhc3BlY3QsYXNzYXVsdCxhc3NlcnQsYXNzZXNzLGFzc2V0LGFzc2lnbixhc3Npc3QsYXNzdW1lLGFzc3VyZSxhdCxhdGhsZXRlLGF0dGFjaCxhdHRhY2ssYXR0ZW1wdCxhdHRlbmQsYXR0cmFjdCxhdXRob3IsYXV0byxhdmVyYWdlLGF2b2lkLGF3YXJkLGF3YXJlLGF3YXksYXdmdWwsYmFieSxiYWNrLGJhZCxiYWRseSxiYWcsYmFrZSxiYWxhbmNlLGJhbGwsYmFuLGJhbmQsYmFuayxiYXIsYmFyZWx5LGJhcnJlbCxiYXJyaWVyLGJhc2UsYmFzaWMsYmFzaXMsYmFza2V0LGJhdHRlcnksYmF0dGxlLGJlLGJlYWNoLGJlYW4sYmVhcixiZWF0LGJlYXV0eSxiZWNhdXNlLGJlY29tZSxiZWQsYmVlcixiZWZvcmUsYmVnaW4sYmVoaW5kLGJlaW5nLGJlbGllZixiZWxpZXZlLGJlbGwsYmVsb25nLGJlbG93LGJlbHQsYmVuY2gsYmVuZCxiZW5lYXRoLGJlbmVmaXQsYmVzaWRlLGJlc2lkZXMsYmVzdCxiZXQsYmV0dGVyLGJldHdlZW4sYmV5b25kLGJpYmxlLGJpZyxiaWtlLGJpbGwsYmlsbGlvbixiaW5kLGJpcmQsYmlydGgsYml0LGJpdGUsYmxhY2ssYmxhZGUsYmxhbWUsYmxhbmtldCxibGluZCxibG9jayxibG9vZCxibG93LGJsdWUsYm9hcmQsYm9hdCxib2R5LGJvbWIsYm9tYmluZyxib25kLGJvbmUsYm9vayxib29tLGJvb3QsYm9yZGVyLGJvcm4sYm9ycm93LGJvc3MsYm90aCxib3RoZXIsYm90dGxlLGJvdHRvbSxib3dsLGJveCxib3ksYnJhaW4sYnJhbmNoLGJyYW5kLGJyZWFkLGJyZWFrLGJyZWFzdCxicmVhdGgsYnJlYXRoZSxicmljayxicmlkZ2UsYnJpZWYsYnJpZWZseSxicmlnaHQsYnJpbmcsYnJpdGlzaCxicm9hZCxicm9rZW4sYnJvdGhlcixicm93bixicnVzaCxidWNrLGJ1ZGdldCxidWlsZCxidWxsZXQsYnVuY2gsYnVyZGVuLGJ1cm4sYnVyeSxidXMsYnVzeSxidXQsYnV0dGVyLGJ1eSxidXllcixieSxjYWJpbixjYWJpbmV0LGNhYmxlLGNha2UsY2FsbCxjYW1lcmEsY2FtcCxjYW1wdXMsY2FuLGNhbmNlcixjYXAsY2FwYWJsZSxjYXBpdGFsLGNhcHRhaW4sY2FwdHVyZSxjYXIsY2FyYm9uLGNhcmQsY2FyZSxjYXJlZXIsY2FyZWZ1bCxjYXJyaWVyLGNhcnJ5LGNhc2UsY2FzaCxjYXN0LGNhdCxjYXRjaCxjYXVzZSxjZWlsaW5nLGNlbGwsY2VudGVyLGNlbnRyYWwsY2VudHVyeSxjZW8sY2VydGFpbixjaGFpbixjaGFpcicuc3BsaXQoJywnKSwKICAgICAgICBhZmZfY29kZSA9IGZ1bmN0aW9uKG51bWJlcikgewogICAgICAgICAgICBpZiAobnVtYmVyIDwgMCkKICAgICAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICAgICAgdmFyIG91dCA9ICIiLCBjb2RlcyA9ICJhYmNkZWZnaGprbW5wcXJzdHV2d3h5MjM0NTY3ODkiLCBrZXk7CiAgICAgICAgICAgIHdoaWxlIChudW1iZXIgPiAyOSkgewogICAgICAgICAgICAgICAga2V5ID0gbnVtYmVyICUgMzA7CiAgICAgICAgICAgICAgICBudW1iZXIgPSBNYXRoLmZsb29yKG51bWJlciAvIDMwKSAtIDE7CiAgICAgICAgICAgICAgICBvdXQgPSBjb2Rlcy5jaGFyQXQoa2V5KSArIG91dDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gY29kZXMuY2hhckF0KG51bWJlcikgKyBvdXQ7CiAgICAgICAgfSwKICAgICAgICBsaW5lQXJ5ICA9IFZ4Lm1hcChWeC5yYW5nZSgxLDkpICwgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpewogICAgICAgICAgICByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nK2FmZl9jb2RlKGJhc2VUaW1lKSsneicrdmFsdWUrJy5kcXM2NmE0Lm5ldCcgICAgICAgIH0pLCAgICAgICAgYmFja3VwTGluZSA9IFZ4Lm1hcChWeC5yYW5nZSgxLDMpICwgZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXJyYXkpeyAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbi5wcm90b2NvbCArICcvLycrd29yZHMucmFuZG9tKCkrJy5laGw3OTUuY29tJzsvL2ZsYQogICAgICAgIH0pOwo8L3NjcmlwdD4KPHNjcmlwdD4KICAgIChmdW5jdGlvbiAoZG9jKXsKICAgICAgICBsZXQgcHJvY2VzcyA9IG5ldyBQcm9jZXNzKCkgLAogICAgICAgICAgICBhcHBJbnNlcnQgPSBmYWxzZSwKICAgICAgICAgICAgYXJ5ID0gW10sCiAgICAgICAgICAgIHN1Y2Nlc3NOdW0gPSAwLAogICAgICAgICAgICBjaGluZXNlTnVtYmVyID0gWyfkuIAnLCAn5LqMJywgJ+S4iScsICflm5snLCAn5LqUJywgJ+WFrScsICfkuIMnLCAn5YWrJywgJ+S5nSddLAogICAgICAgICAgICBsaXN0V3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0LXdyYXAnKSwKICAgICAgICAgICAgbG9hZFdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9hZC13cmFwJyksCiAgICAgICAgICAgIGdldFBhcmFtcyA9IFtdICwKICAgICAgICAgICAgbG9hZFRpbWVySWQgLAogICAgICAgICAgICBzdGFydExvYWRpbmcgPSBmdW5jdGlvbiAoeCl7CiAgICAgICAgICAgICAgICBsb2FkVGltZXJJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBsZXQgczEgPSAnLicucmVwZWF0KHgpCiAgICAgICAgICAgICAgICAgICAgbG9hZFdyYXAuaW5uZXJUZXh0ID0gJ+ato+WcqOajgOa1i+e6v+i3rycgKyBzMTsKICAgICAgICAgICAgICAgICAgICB4Kys7CiAgICAgICAgICAgICAgICAgICAgaWYgKHggJSA0ID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHggPSAwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgMzAwKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RvcExvYWRpbmcgPSBmdW5jdGlvbiAoKXsKICAgICAgICAgICAgICAgIGlmIChsb2FkVGltZXJJZCl7CiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChsb2FkVGltZXJJZCk7CiAgICAgICAgICAgICAgICAgICAgbG9hZFRpbWVySWQgPSB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICAgICAgbG9hZFdyYXAuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSAsCiAgICAgICAgICAgIHJlbmRlckxpbmUgPSBmdW5jdGlvbiAoZGF0YSAsIG9rKXsKICAgICAgICAgICAgICAgIHN0b3BMb2FkaW5nKCk7CiAgICAgICAgICAgICAgICBsaXN0V3JhcC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwogICAgICAgICAgICAgICAgdmFyIHBhdGggPSAnJzsKICAgICAgICAgICAgICAgIGlmIChvayAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHBhdGggPSBWeC5xdWVyeSgncGF0aCcpOwogICAgICAgICAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCAmJiBwYXRoLnN1YnN0cmluZygwLCAxKSAhPT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSAnLycgKyBwYXRoOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRhdGFbJ3VybCddID0gZGF0YVsndXJsJ10ucmVwbGFjZSgvXC8qJC9nbSAsICcnKTsKICAgICAgICAgICAgICAgIGRhdGFbJ3VybCddID0gZGF0YVsndXJsJ10gKyBwYXRoOwogICAgICAgICAgICAgICAgZGF0YVsndXJsX2hvc3QnXSA9IGRhdGFbJ3VybF9ob3N0J10gfHwgZGF0YVsndXJsJ10uc3BsaXQoJzovLycpWzFdLnNwbGl0KCcvJylbMF0KICAgICAgICAgICAgICAgIFZ4LmFwcGVuZChsaXN0V3JhcCAsIFZ4LnRlbXBsYXRlKCd0ZW1wbGV0JyAsZGF0YSApKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaW5zZXJ0QXBwID0gZnVuY3Rpb24gKHVybCl7CiAgICAgICAgICAgICAgICBpZiAoYXBwSW5zZXJ0ID09PSBmYWxzZSl7CiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGluZSh7J3VybCc6IHVybCwndGV4dCcgOiAn5LiL6L295ZCD55OcQVBQJywndXJsX2hvc3QnOidjZ2FwcCd9ICwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgYXBwSW5zZXJ0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3VjY2VzcyA9IGZ1bmN0aW9uIChhcmcpewogICAgICAgICAgICAgICAgdmFyIHVybCA9IGFyZ1sndXJsJ107CiAgICAgICAgICAgICAgICBzdWNjZXNzTnVtKys7CiAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc051bSA+IDIpewogICAgICAgICAgICAgICAgICAgIHByb2Nlc3Muc3RvcCA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZW5kZXJMaW5lKHsndXJsJzogdXJsLCAndGV4dCc6ICfnur/ot68nICsgY2hpbmVzZU51bWJlcltzdWNjZXNzTnVtIC0gMV0sfSk7CiAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc051bSA9PT0gMil7CiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0QXBwKHVybCArICcvYXBwLmh0bWwnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAndCc6ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgICAgICAndSc6IGVuY29kZVVSSSh1cmwpLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0sIGlzUmVwb3J0ID0gZmFsc2UgLAogICAgICAgICAgICByZXBvcnRMaW5lID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKGlzUmVwb3J0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaXNSZXBvcnQgPSB0cnVlOwogICAgICAgICAgICAgICAgbGV0IGltZyA9IG5ldyBJbWFnZSgpOwogICAgICAgICAgICAgICAgaW1nLnNyYyA9ICIvbG9neC5waHA/dD1qc29uJnU9IiArIGVuY29kZVVSSUNvbXBvbmVudChCYXNlNjQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGdldFBhcmFtcykpKTsKICAgICAgICAgICAgfQogICAgICAgIHN0YXJ0TG9hZGluZygxKTsKICAgICAgICBwcm9jZXNzLm9uKCdfZmluaXNoJyAsIGZ1bmN0aW9uICgpewogICAgICAgICAgICBsZXQgbGluZXMgPSBbXTsKICAgICAgICAgICAgaWYgKHN1Y2Nlc3NOdW0gPT09IDApewogICAgICAgICAgICAgICAgVngubWFwKGJhY2t1cExpbmUgLCBmdW5jdGlvbiAodXJsLGluZGV4KXsKICAgICAgICAgICAgICAgICAgICByZW5kZXJMaW5lKHsndXJsJzogdXJsLCd0ZXh0JyA6ICflpIfnlKjnur/ot68nK2NoaW5lc2VOdW1iZXJbaW5kZXhdIH0pOwogICAgICAgICAgICAgICAgICAgIFZ4LnBpbmcodXJsLGluZGV4LGZ1bmN0aW9uIChhcmcpewogICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbXMucHVzaCh7J3QnOiAneC1zdWNjZXNzJywndSc6IGVuY29kZVVSSShhcmdbJ3VybCddKX0pOwogICAgICAgICAgICAgICAgICAgIH0sZnVuY3Rpb24gKGFyZyl7CiAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsndCc6ICd4LWVycm9yJywndSc6IGVuY29kZVVSSShhcmdbJ3VybCddKX0pOwogICAgICAgICAgICAgICAgICAgIH0sZnVuY3Rpb24gKGFyZyl7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdbJ2knXSA+PSBiYWNrdXBMaW5lLmxlbmd0aCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRMaW5lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIGluc2VydEFwcCh1cmwgKyAnL2FwcC5odG1sJyk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGxpbmVzID0gYmFja3VwTGluZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxpbmVzID0gbGluZUFyeTsKICAgICAgICAgICAgICAgIHJlcG9ydExpbmUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvL3JlbmRlckxpbmUoeyd1cmwnOiBsaW5lcy5yYW5kb20oKSArICcvNTFmbC5odG1sJywgJ3RleHQnOiAnNTHnpo/liKnlr7zoiKonLCAndXJsX2hvc3QnOiAnNTFmbCd9LHRydWUpOwogICAgICAgIH0pOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZUFyeS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBhcnkucHVzaChmdW5jdGlvbiAoKXsKICAgICAgICAgICAgICAgIFZ4LnBpbmcobGluZUFyeVtpXSAsIGkgLCBzdWNjZXNzICxmdW5jdGlvbiAoYXJnKSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1zLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAndCc6ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgICAgICd1JzogZW5jb2RlVVJJKGFyZ1sndXJsJ10pLAogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICAgIHByb2Nlc3MudGFzayhhcnkgLCAyKTsKICAgICAgICBwcm9jZXNzLnN0YXJ0KCk7CiAgICB9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8IS0tIEdvb2dsZSB0YWcgKGd0YWcuanMpIC0tPg0KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9Ry1DMlBXSEgyQjQ4Ij48L3NjcmlwdD4NCjxzY3JpcHQ+DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ0ctQzJQV0hIMkI0OCcpOw0KPC9zY3JpcHQ+PC9odG1sPg));/script>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]