{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\obstacleClearingRescue\\RescueInquiry\\components\\TablePage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\obstacleClearingRescue\\RescueInquiry\\components\\TablePage\\index.vue","mtime":1752055336202},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLnJlZHVjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC50by1qc29uLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmRlbGV0ZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5oYXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLXNlYXJjaC1wYXJhbXMuc2l6ZS5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgeyBkaWN0aW9uYXJ5RXNjYXBlLCBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgcmVmaW5lUmVxdWVzdEJvZHksIHNldFF1ZXJ5VmFsdWUgfSBmcm9tICdAL3V0aWxzL3JlcXVlc3RXcmFwcGVycyc7CmltcG9ydCBwYWdpbmF0aW9uIGZyb20gJ0AvY29tcG9uZW50cy9TdXBlclBhZ2luYXRpb24vaW5kZXgudnVlJzsKaW1wb3J0IHsgVGFibGVNaXhpbiB9IGZyb20gJ0AvbWl4aW5zL3RhYmxlTWl4aW4nOwppbXBvcnQgdHJlZVNpZGUgZnJvbSAnQC9jb21wb25lbnRzL3RyZWVTaWRlL2luZGV4LnZ1ZSc7CmltcG9ydCBTZWFyY2hDb21tb24gZnJvbSAnQC9jb21wb25lbnRzL1NlYXJjaENvbW1vbi9pbmRleC52dWUnOwppbXBvcnQgeyBleHBvcnREYXRhRmlsZSwgdGFibGVEYXRhIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL29ic3RhY2xlQ2xlYXJpbmdSZXNjdWUvcmVzY3VlSW5xdWlyeSc7CmltcG9ydCBUcmVlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9UcmVlRGlhbG9nL2luZGV4LnZ1ZSc7CmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsKaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnOwppbXBvcnQgRmlsZURpYWxvZyBmcm9tICdAL3ZpZXdzL3BhdHJvbEFuZFJlc2N1ZS9vYnN0YWNsZUNsZWFyaW5nUmVzY3VlL1Jlc2N1ZUlucXVpcnkvY29tcG9uZW50cy9GaWxlRGlhbG9nL2luZGV4LnZ1ZSc7CmltcG9ydCB7IGdldFRyZWUgfSBmcm9tICdAL2FwaS90cmVlJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdUYWJsZVBhZ2UnLAogIGNvbXBvbmVudHM6IHsKICAgIEZpbGVEaWFsb2c6IEZpbGVEaWFsb2csCiAgICBUcmVlRGlhbG9nOiBUcmVlRGlhbG9nLAogICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbiwKICAgIHRyZWVTaWRlOiB0cmVlU2lkZSwKICAgIFNlYXJjaENvbW1vbjogU2VhcmNoQ29tbW9uCiAgfSwKICBtaXhpbnM6IFtUYWJsZU1peGluXSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgZmlsZUluZm86IHt9LAogICAgICBmaWxlU2hvd0RpYWxvZzogZmFsc2UsCiAgICAgIG11bHRpU2VsZWN0RGF0YTogW10sCiAgICAgIGRvd25sb2FkTG9hZGluZzogZmFsc2UsCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgdGFibGVNYXhIZWlnaHQ6ICc2MDBweCcsCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICB0YWJsZUxvYWRpbmc6IGZhbHNlLAogICAgICB0cmVlRGF0YTogW10sCiAgICAgIC8v5bem6L655qCRCiAgICAgIHRhYkxpc3Q6IFsn5pS/562W5rOV6KeEJ10sCiAgICAgIC8v5bem6L65dGFiCiAgICAgIGRlZmF1bHRQcm9wczogewogICAgICAgIGNoaWxkcmVuOiAnY2hpbGRyZW4nLAogICAgICAgIGxhYmVsOiAnbmFtZScKICAgICAgfSwKICAgICAgdGFibGVEYXRhOiBbXSwKICAgICAgY3VycmVudERhdGFEZWw6IFtdLAogICAgICBvcHRpb25MaXN0OiBbewogICAgICAgIHRpdGxlOiAn5pWR5o+05Y2V5Y+3JywKICAgICAgICBwcm9wOiBbJ1JFU0NVRV9OT18nXSwKICAgICAgICB0eXBlOiAnaW5wdXQnLAogICAgICAgIGRlZmF1bHQ6IHRydWUKICAgICAgfSwgewogICAgICAgIHRpdGxlOiAn5pWR5o+057G75Z6LJywKICAgICAgICBwcm9wOiBbJ1JFU0NVRV9UWVBFXyddLAogICAgICAgIHR5cGU6ICdzZWxlY3QnLAogICAgICAgIG9wdGlvbjogZ2V0RGljdGlvbmFyeUJ5Q29kZSgnanlseCcpLAogICAgICAgIG11bHRpcGxlOiB0cnVlCiAgICAgIH0sIHsKICAgICAgICB0aXRsZTogJ+aKpeahiOadpea6kCcsCiAgICAgICAgcHJvcDogWydSRVNDVUVfU1JDXyddLAogICAgICAgIHR5cGU6ICdzZWxlY3QnLAogICAgICAgIG9wdGlvbjogZ2V0RGljdGlvbmFyeUJ5Q29kZSgnYmFseScpLAogICAgICAgIG11bHRpcGxlOiB0cnVlCiAgICAgIH0sIHsKICAgICAgICB0aXRsZTogJ+aVkeaPtOeKtuaAgScsCiAgICAgICAgcHJvcDogWydSRVNDVUVfU1RBVFVTXyddLAogICAgICAgIHR5cGU6ICdzZWxlY3QnLAogICAgICAgIG9wdGlvbjogW3sKICAgICAgICAgIG5hbWU6ICfmnKrlp5TmtL4nLAogICAgICAgICAgdmFsdWU6IC0xCiAgICAgICAgfSwgewogICAgICAgICAgbmFtZTogJ+acquWkhOe9ricsCiAgICAgICAgICB2YWx1ZTogMQogICAgICAgIH0sIHsKICAgICAgICAgIG5hbWU6ICflpITnva7kuK0nLAogICAgICAgICAgdmFsdWU6IDIKICAgICAgICB9LCB7CiAgICAgICAgICBuYW1lOiAn5bey5a6M5oiQJywKICAgICAgICAgIHZhbHVlOiBbMywgNCwgNSwgNl0KICAgICAgICB9XSwKICAgICAgICBtdWx0aXBsZTogdHJ1ZQogICAgICB9XSwKICAgICAgcGFyYW1zOiB7CiAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgIHBhZ2VTaXplOiAyMCwKICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICB0b3RhbDogMAogICAgICAgIH0sCiAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcHJvcGVydHk6ICdyb2FkSWQnCiAgICAgICAgfSwgewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcHJvcGVydHk6ICdSRVNDVUVfVFlQRV8nLAogICAgICAgICAgdmFsdWU6ICcnCiAgICAgICAgfSwgewogICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgcHJvcGVydHk6ICdSRVNDVUVfU1JDXycsCiAgICAgICAgICB2YWx1ZTogJycKICAgICAgICB9LCB7CiAgICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsCiAgICAgICAgICBwcm9wZXJ0eTogJ1JFU0NVRV9OT18nLAogICAgICAgICAgdmFsdWU6ICcnCiAgICAgICAgfSwgewogICAgICAgICAgb3BlcmF0aW9uOiAnQkVUV0VFTicsCiAgICAgICAgICBwcm9wZXJ0eTogJ3Jlc2N1ZV90aW1lXycsCiAgICAgICAgICB2YWx1ZTogW21vbWVudCgpLnN0YXJ0T2YoJ21vbnRoJykuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyksIG1vbWVudCgpLmVuZE9mKCdtb250aCcpLmZvcm1hdCgnWVlZWS1NTS1ERCBISDptbTpzcycpXQogICAgICAgIH0sIHsKICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgIHByb3BlcnR5OiAnUkVTQ1VFX1NUQVRVU18nLAogICAgICAgICAgdmFsdWU6ICcnCiAgICAgICAgfV0sCiAgICAgICAgc29ydGVyOiBbewogICAgICAgICAgcHJvcGVydHk6ICdjcmVhdGVUaW1lJywKICAgICAgICAgIGRpcmVjdGlvbjogJ0RFU0MnCiAgICAgICAgfV0gLy8g5o6S5bqP5a2X5q61CiAgICAgIH0sCiAgICAgIHRyZWVEaWFsb2c6IGZhbHNlLAogICAgICAvLyDnp5Hnm67kv6Hmga/lvLnlsYIKICAgICAgdHJlZUl0ZW1JZDogJycsCiAgICAgIC8vIOagkeW9ouebruW9lWlkCiAgICAgIHRyZWVJdGVtOiB7fSwKICAgICAgLy8g5qCR5b2i6IqC54K56YCJ5Lit5a+56LGhCiAgICAgIHRyZWVJdGVtUGFyZW50SWQ6ICcnLAogICAgICAvLyDmoJHlvaLnm67lvZXniLbnuqdpZAogICAgICByZXNjdWVJbnF1aXJ5RWRpdDogJycKICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIC8vIOiOt+WPluagkeW9ouebruW9lS0KICAgIHRoaXMuZ2V0T3JnVHJlZURhdGEoZnVuY3Rpb24gKHRyZWVEYXRhKSB7CiAgICAgIC8vIOWbnuiwg+S4rem7mOiupOmAieS4reesrOS4gOmhueW5tuWwhuWFtmlk5L2c5Li65Y+C5pWw6K+35rGC6KGo5qC8CiAgICAgIF90aGlzLnRyZWVJdGVtID0gdHJlZURhdGFbMF0gfHwge307CiAgICAgIHZhciBhcnJheSA9IFtdOwogICAgICBpZiAoX3RoaXMudHJlZUl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgIGFycmF5ID0gX3RoaXMuZXh0cmFjdElkcyhfdGhpcy50cmVlSXRlbSk7CiAgICAgIH0KICAgICAgX3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgdmFyIF90aGlzJCRyZWZzJHRyZWVTaWRlLCBfdHJlZURhdGEkLCBfdGhpcyQkcmVmcyR0cmVlU2lkZTI7CiAgICAgICAgKF90aGlzJCRyZWZzJHRyZWVTaWRlID0gX3RoaXMuJHJlZnMudHJlZVNpZGUpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRyZWVTaWRlID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUuc2V0Q3VycmVudEtleSgoX3RyZWVEYXRhJCA9IHRyZWVEYXRhWzBdKSA9PT0gbnVsbCB8fCBfdHJlZURhdGEkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHJlZURhdGEkLmlkKTsgLy/pgJrov4cgJHJlZnMg6I635Y+WdHJlZVNpZGXnu4Tku7blvJXnlKjvvIzlubbosIPnlKggc2V0Q3VycmVudEtleeaWueazleiuvue9ruW9k+WJjemAieS4reeahOagkeiKgueCueOAggogICAgICAgIChfdGhpcyQkcmVmcyR0cmVlU2lkZTIgPSBfdGhpcy4kcmVmcy50cmVlU2lkZSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdHJlZVNpZGUyLmV4cGFuZEhhbmRsZSh0cnVlLCAyKTsKICAgICAgfSk7CiAgICAgIHNldFF1ZXJ5VmFsdWUoX3RoaXMucGFyYW1zLCAncm9hZElkJywgYXJyYXkpOyAvL+WwhumAieS4reeahOagkeiKgueCueeahCBwYXRoIOiuvue9ruS4uuafpeivouWPguaVsOeahOS4gOmDqOWIhu+8jOeUqOS6juWQjue7reeahOihqOagvOaVsOaNruivt+axguOAggogICAgICBfdGhpcy5sb2FkRGF0YSgpOyAvL+WKoOi9veihqOagvOaVsOaNrgogICAgfSk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ1RhYmxlUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7CiAgICAgICAgY2FzZSAnYWRkJzoKICAgICAgICAgIF90aGlzMi5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IDE7CiAgICAgICAgICBfdGhpczIubG9hZERhdGEoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2VkaXQnOgogICAgICAgICAgX3RoaXMyLmxvYWREYXRhKCk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBleHRyYWN0SWRzOiBmdW5jdGlvbiBleHRyYWN0SWRzKG5vZGUpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgLy8g5aaC5p6c5b2T5YmN6IqC54K55pyJIGNoaWxkcmVu77yM5YiZ6YCS5b2S5o+Q5Y+WCiAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7CiAgICAgICAgaWRzID0gbm9kZS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGNoaWxkKSB7CiAgICAgICAgICByZXR1cm4gY2hpbGQuaWQ7CiAgICAgICAgfSk7IC8vIOaPkOWPluW9k+WJjeiKgueCueeahCBpZAogICAgICAgIC8vIOmAkuW9kuaPkOWPluWtkOiKgueCueeahCBpZAogICAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHsKICAgICAgICAgIGlkcyA9IGlkcy5jb25jYXQoX3RoaXMzLmV4dHJhY3RJZHMoY2hpbGQpKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gaWRzOwogICAgfSwKICAgIGZpbGVQcmV2aWV3Q2hhbmdlOiBmdW5jdGlvbiBmaWxlUHJldmlld0NoYW5nZShyb3cpIHsKICAgICAgdGhpcy5maWxlSW5mbyA9IHJvdzsKICAgICAgdGhpcy5maWxlU2hvd0RpYWxvZyA9IHRydWU7CiAgICB9LAogICAgLy8g5pe26Ze06IyD5Zu05YiH5o2iCiAgICBkYXRlUGlja2VyQ2hhbmdlOiBmdW5jdGlvbiBkYXRlUGlja2VyQ2hhbmdlKHZhbCkgewogICAgICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAncmVzY3VlX3RpbWVfJywgdmFsKTsKICAgICAgdGhpcy5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IDE7CiAgICAgIHRoaXMubG9hZERhdGEoKTsKICAgIH0sCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdGlvbkNoYW5nZShyb3cpIHsKICAgICAgdGhpcy5tdWx0aVNlbGVjdERhdGEgPSByb3cubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgIH0pOwogICAgfSwKICAgIGV4cG9ydERhdGE6IGZ1bmN0aW9uIGV4cG9ydERhdGEoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIHBhcmFtcywgcmVzcG9uc2UsIGJsb2IsIGRvd25sb2FkVXJsLCBsaW5rOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzNC5kb3dubG9hZExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxOwogICAgICAgICAgICAgIHBhcmFtcyA9IHsKICAgICAgICAgICAgICAgIGdyb3VwUmVsYXRpb246ICdBTkQnLAogICAgICAgICAgICAgICAgZ3JvdXBUcmVlOiB7fSwKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMSwKICAgICAgICAgICAgICAgICAgc2hvd1RvdGFsOiB0cnVlCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcGFyYW1zOiB7fSwKICAgICAgICAgICAgICAgIHF1ZXJ5czogW3sKICAgICAgICAgICAgICAgICAgZ3JvdXA6ICdtYWluJywKICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnSU4nLAogICAgICAgICAgICAgICAgICBwYXJlbnRHcm91cDogJycsCiAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAncmkuaWRfJywKICAgICAgICAgICAgICAgICAgcmVsYXRpb246ICdBTkQnLAogICAgICAgICAgICAgICAgICB2YWx1ZTogX3RoaXM0Lm11bHRpU2VsZWN0RGF0YQogICAgICAgICAgICAgICAgfV0sCiAgICAgICAgICAgICAgICBzb3J0ZXI6IFt7CiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogJ0FTQycsCiAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnJwogICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA1OwogICAgICAgICAgICAgIHJldHVybiBleHBvcnREYXRhRmlsZShwYXJhbXMpOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgcmVzcG9uc2UgPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIC8vIOWIm+W7ukJsb2Llr7nosaEKICAgICAgICAgICAgICBibG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwgewogICAgICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL3ppcCcKICAgICAgICAgICAgICB9KTsgLy8g5Yib5bu65LiL6L296ZO+5o6lCiAgICAgICAgICAgICAgZG93bmxvYWRVcmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKICAgICAgICAgICAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICAgICAgICAgIGxpbmsuaHJlZiA9IGRvd25sb2FkVXJsOwogICAgICAgICAgICAgIC8vIOiuvue9ruaWh+S7tuWQje+8iOWPr+S7peagueaNrumcgOimgeiwg+aVtO+8iQogICAgICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsICfmuIXpmpzmlZHmj7TmoaPmoYguemlwJyk7CiAgICAgICAgICAgICAgLy8g6Kem5Y+R5LiL6L29CiAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTsKICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7CiAgICAgICAgICAgICAgLy8g5riF55CGCiAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTsKICAgICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTChkb3dubG9hZFVybCk7CiAgICAgICAgICAgICAgX3RoaXM0LiRtZXNzYWdlLnN1Y2Nlc3MoJ+WvvOWHuuaIkOWKnycpOwogICAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxNjsKICAgICAgICAgICAgICBfdGhpczQuZG93bmxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmZpbmlzaCgxNik7CiAgICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzEsLCAxNiwgMTldXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGhhbmRsZUVkaXRQYWdlOiBmdW5jdGlvbiBoYW5kbGVFZGl0UGFnZShyb3cpIHsKICAgICAgdGhpcy5jaGFuZ2VQYWdlKCdFZGl0QWRkUGFnZScsIHJvdywgJ+e8lui+kScpOwogICAgfSwKICAgIC8vIOiOt+WPluWFrOWPuOagkS3lvILmraXmlrnms5XvvIznlKjkuo7ku47lkI7nq6/ojrflj5bmoJHlvaLmlbDmja4KICAgIGdldE9yZ1RyZWVEYXRhOiBmdW5jdGlvbiBnZXRPcmdUcmVlRGF0YShjYWxsYmFjaykgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICB2YXIgX3lpZWxkJGdldFRyZWUsIHZhbHVlOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDA7CiAgICAgICAgICAgICAgX3RoaXM1LnRyZWVMb2FkaW5nID0gdHJ1ZTsgLy/lvIDlp4vliqDovb3ml7bmmL7npLrliqDovb3nirbmgIEKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIGdldFRyZWUoKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF95aWVsZCRnZXRUcmVlID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkZ2V0VHJlZS52YWx1ZTsKICAgICAgICAgICAgICAvLyDosIPnlKggQVBJIOiOt+WPluagkeW9ouaVsOaNrgogICAgICAgICAgICAgIF90aGlzNS50cmVlRGF0YSA9IFt2YWx1ZV07CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDc7CiAgICAgICAgICAgICAgX3RoaXM1LnRyZWVMb2FkaW5nID0gZmFsc2U7IC8vIOaXoOiuuuaIkOWKn+aIluWksei0pe+8jOmDveWFs+mXreWKoOi9veeKtuaAgQogICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKF90aGlzNS50cmVlRGF0YSk7IC8vIOWmguaenOaPkOS+m+S6huWbnuiwg+WHveaVsO+8jOWImeiwg+eUqOWug+W5tuS8oOWFpeagkeW9ouaVsOaNrgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuZmluaXNoKDcpOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyLCBudWxsLCBbWzAsLCA3LCAxMV1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgdHJhbnNmb3JtVHJlZURhdGE6IGZ1bmN0aW9uIHRyYW5zZm9ybVRyZWVEYXRhKGRhdGEpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBuYW1lOiBkYXRhLm5hbWUsCiAgICAgICAgaWQ6IGRhdGEuaWQsCiAgICAgICAgY2hpbGRyZW46IGRhdGEuY2hpbGRyZW4ucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGNoaWxkKSB7CiAgICAgICAgICBhY2MucHVzaCh7CiAgICAgICAgICAgIGlkOiBjaGlsZC5pZCwKICAgICAgICAgICAgbmFtZTogY2hpbGQubmFtZSwKICAgICAgICAgICAgcGF0aDogY2hpbGQucGF0aCwKICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkLnJvYWRMaXN0Lm1hcChmdW5jdGlvbiAocm9hZCkgewogICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBpZDogcm9hZC5pZCwKICAgICAgICAgICAgICAgIG5hbWU6IHJvYWQubmFtZSwKICAgICAgICAgICAgICAgIHBhdGg6IHJvYWQucGF0aAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pCiAgICAgICAgICB9KTsKICAgICAgICAgIHJldHVybiBhY2M7CiAgICAgICAgfSwgW10pCiAgICAgIH07CiAgICB9LAogICAgc2VsZWN0YWJsZTogZnVuY3Rpb24gc2VsZWN0YWJsZShyb3csIGluZGV4KSB7CiAgICAgIHJldHVybiByb3cucmVzY3VlU3RhdHVzIDwgJzEnOwogICAgfSwKICAgIC8vIOWIoOmZpAogICAgaGFuZGxlRGVsZXRlOiBmdW5jdGlvbiBoYW5kbGVEZWxldGUoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLmNsaWNrVGltZXIgPSB0cnVlOwogICAgICB0aGlzLiRjb25maXJtKCfnoa7lrprliKDpmaTpgInkuK3nmoTkuovku7bkv6Hmga/lkJfvvJ8nLCAn5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHZhciBpZHMsIF95aWVsZCR0YWJsZURlbGV0ZSwgc3RhdGUsIG1lc3NhZ2UsIF90aGlzNiRwYXJhbXMkcGFnZUJlYSwgcGFnZSwgcGFnZVNpemUsIHRvdGFsLCB0b3RhbFBhZ2VzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBpZHMgPSBfdGhpczYuY3VycmVudERhdGFEZWwuam9pbigpOwogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZWxldGUoaWRzKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURlbGV0ZSA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJHRhYmxlRGVsZXRlLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkdGFibGVEZWxldGUubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoIXN0YXRlKSB7CiAgICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDE1OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5zdWNjZXNzKCJcdTRFOEJcdTRFRjZcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUYiKTsKICAgICAgICAgICAgICBfdGhpczYkcGFyYW1zJHBhZ2VCZWEgPSBfdGhpczYucGFyYW1zLnBhZ2VCZWFuLCBwYWdlID0gX3RoaXM2JHBhcmFtcyRwYWdlQmVhLnBhZ2UsIHBhZ2VTaXplID0gX3RoaXM2JHBhcmFtcyRwYWdlQmVhLnBhZ2VTaXplLCB0b3RhbCA9IF90aGlzNiRwYXJhbXMkcGFnZUJlYS50b3RhbDsKICAgICAgICAgICAgICB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRvdGFsIC8gcGFnZVNpemUpOyAvLyDorqHnrpfmgLvpobXmlbAKICAgICAgICAgICAgICBpZiAodG90YWxQYWdlcyA+IDEgJiYgcGFnZSA9PT0gdG90YWxQYWdlcykgewogICAgICAgICAgICAgICAgaWYgKF90aGlzNi50YWJsZURhdGEubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgICAgIC8vIOW9k+WJjemhteWPquacieS4gOadoeaVsOaNrgogICAgICAgICAgICAgICAgICBfdGhpczYucGFyYW1zLnBhZ2VCZWFuLnBhZ2UgLT0gMTsgLy8g6L+U5Zue5YmN5LiA6aG1CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMTM7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzNi5sb2FkRGF0YSgpOwogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMTY7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLmVycm9yKG1lc3NhZ2UpOwogICAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgIHJldHVybiBfOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDmkqTlm54KICAgIHJldm9jYXRpb246IGZ1bmN0aW9uIChfcmV2b2NhdGlvbikgewogICAgICBmdW5jdGlvbiByZXZvY2F0aW9uKF94KSB7CiAgICAgICAgcmV0dXJuIF9yZXZvY2F0aW9uLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgIH0KICAgICAgcmV2b2NhdGlvbi50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gX3Jldm9jYXRpb24udG9TdHJpbmcoKTsKICAgICAgfTsKICAgICAgcmV0dXJuIHJldm9jYXRpb247CiAgICB9KGZ1bmN0aW9uIChfcmVmMikgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdmFyIGlkID0gX3JlZjIuaWQ7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuaSpOWbnuaVkeaPtOWnlOa0vuWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgdmFyIF95aWVsZCRyZXZvY2F0aW9uLCBzdGF0ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiByZXZvY2F0aW9uKGlkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCRyZXZvY2F0aW9uID0gX2NvbnRleHQ0LnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkcmV2b2NhdGlvbi5zdGF0ZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKCfmkqTlm57miJDlip/vvIEnKTsKICAgICAgICAgICAgICAgIF90aGlzNy5sb2FkRGF0YSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU0KTsKICAgICAgfSkpKTsKICAgIH0pLAogICAgZGljdGlvbmFyeUVzY2FwZTogZGljdGlvbmFyeUVzY2FwZSwKICAgIC8v6I635Y+W5pWw5o2uCiAgICBsb2FkRGF0YTogZnVuY3Rpb24gbG9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KCkgewogICAgICAgIHZhciBfeWllbGQkdGFibGVEYXRhLCBfeWllbGQkdGFibGVEYXRhJHRvdGEsIHRvdGFsLCBfeWllbGQkdGFibGVEYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5wcmV2ID0gX2NvbnRleHQ1Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzOC50YWJsZUxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEYXRhKHJlZmluZVJlcXVlc3RCb2R5KF90aGlzOC5wYXJhbXMpKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEgPSBfY29udGV4dDUuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhJHRvdGEgPSBfeWllbGQkdGFibGVEYXRhLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsID0gX3lpZWxkJHRhYmxlRGF0YSR0b3RhID09PSB2b2lkIDAgPyAwIDogX3lpZWxkJHRhYmxlRGF0YSR0b3RhOwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEkcm93cyA9IF95aWVsZCR0YWJsZURhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRhYmxlRGF0YSRyb3dzID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0YWJsZURhdGEkcm93czsKICAgICAgICAgICAgICBfdGhpczgucGFyYW1zLnBhZ2VCZWFuLnRvdGFsID0gdG90YWw7CiAgICAgICAgICAgICAgX3RoaXM4LnRhYmxlRGF0YSA9IHJvd3M7CiAgICAgICAgICAgICAgX3RoaXM4LnRhYmxlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU1KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy/lt6bovrnmoJHoioLngrkKICAgIGN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGN1cnJlbnRDaGFuZ2Uobm9kZUl0ZW0pIHsKICAgICAgLy8g5Yik5pat5piv5ZCm5piv5LiA57qn55uu5b2V77yI5pyJIGNoaWxkcmVuIOWxnuaAp++8iQogICAgICAvLyBpZiAobm9kZUl0ZW0uY2hpbGRyZW4gJiYgbm9kZUl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAvLyAgIHRoaXMuaXNBZGREaXNhYmxlZCA9IHRydWUgLy8g56aB55So5paw5aKe5oyJ6ZKuCiAgICAgIC8vICAgLy8gdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7fpgInmi6nkuoznuqfnm67lvZXov5vooYzmlrDlop7mk43kvZwnKQogICAgICAvLyAgIGNvbnN0IGFycmF5ID0gbm9kZUl0ZW0uY2hpbGRyZW4ubWFwKGl0ZW0gPT4gaXRlbS5pZCkKICAgICAgLy8gICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAncm9hZElkICcsIGFycmF5KQogICAgICAvLyB9IGVsc2UgewogICAgICAvLyAgIHRoaXMuaXNBZGREaXNhYmxlZCA9IGZhbHNlIC8vIOWQr+eUqOaWsOWinuaMiemSrgogICAgICAvLyAgIC8vIOS/ruaUueWvueW6lOeahOWtl+auteWAvAogICAgICAvLyAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyb2FkSWQgJywgW25vZGVJdGVtPy5pZF0gfHwgW10pCiAgICAgIC8vIH0KCiAgICAgIGlmIChub2RlSXRlbS5pZCA9PT0gJzE3NjYwMTc0Njg0NDQ0NTA4MTYnKSB7CiAgICAgICAgdGhpcy5pc0FkZERpc2FibGVkID0gdHJ1ZTsKICAgICAgICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAncm9hZElkJywgdGhpcy5leHRyYWN0SWRzKG5vZGVJdGVtKSk7CiAgICAgIH0gZWxzZSBpZiAobm9kZUl0ZW0uY2hpbGRyZW4gJiYgbm9kZUl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgIHRoaXMuaXNBZGREaXNhYmxlZCA9IHRydWU7CiAgICAgICAgdmFyIGFycmF5ID0gbm9kZUl0ZW0uY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgICB9KTsKICAgICAgICBzZXRRdWVyeVZhbHVlKHRoaXMucGFyYW1zLCAncm9hZElkJywgYXJyYXkpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuaXNBZGREaXNhYmxlZCA9IGZhbHNlOwogICAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdyb2FkSWQnLCBbbm9kZUl0ZW0gPT09IG51bGwgfHwgbm9kZUl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGVJdGVtLmlkXSB8fCBbXSk7CiAgICAgIH0KICAgICAgdGhpcy5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IDE7CiAgICAgIHRoaXMuY2FsY1RhYmxlSGVpZ2h0KDUwMCk7CiAgICAgIFB1YlN1Yi5wdWJsaXNoKCdUcmVlSXRlbVNlbGVjdGVkJywgbm9kZUl0ZW0pOwogICAgICB0aGlzLnRyZWVJdGVtID0gbm9kZUl0ZW0gfHwge307CiAgICAgIHRoaXMubG9hZERhdGEoKTsKICAgIH0sCiAgICAvLyDmoJHoioLngrnmk43kvZwKICAgIG9wZXJhdGVFdmVudDogZnVuY3Rpb24gb3BlcmF0ZUV2ZW50KHR5cGUsIGRhdGEpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgIGNhc2UgJ+aWsOWinic6CiAgICAgICAgICB0aGlzLnRyZWVJdGVtUGFyZW50SWQgPSBkYXRhLmlkOwogICAgICAgICAgdGhpcy50cmVlRGlhbG9nID0gdHJ1ZTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ+e8lui+kSc6CiAgICAgICAgICB0aGlzLnRyZWVJdGVtSWQgPSBkYXRhLmlkOwogICAgICAgICAgdGhpcy50cmVlSXRlbVBhcmVudElkID0gZGF0YS5wYXJlbnRJZDsKICAgICAgICAgIHRoaXMudHJlZURpYWxvZyA9IHRydWU7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICfliKDpmaQnOgogICAgICAgICAgdGhpcy4kY29uZmlybSgn56Gu5a6a5Yig6Zmk6YCJ5Lit6LWE5paZ5YiG57G75ZCX77yfJywgJ+aPkOekuicsIHsKICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTYoKSB7CiAgICAgICAgICAgIHZhciBfeWllbGQkdHJlZURlbGV0ZSwgc3RhdGU7CiAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNiQoX2NvbnRleHQ2KSB7CiAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ2LnByZXYgPSBfY29udGV4dDYubmV4dCkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDI7CiAgICAgICAgICAgICAgICAgIHJldHVybiB0cmVlRGVsZXRlKGRhdGEuaWQpOwogICAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgICBfeWllbGQkdHJlZURlbGV0ZSA9IF9jb250ZXh0Ni5zZW50OwogICAgICAgICAgICAgICAgICBzdGF0ZSA9IF95aWVsZCR0cmVlRGVsZXRlLnN0YXRlOwogICAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgICBfdGhpczkuJG1lc3NhZ2Uuc3VjY2VzcygiXHU1MjIwXHU5NjY0XHU4RDQ0XHU2NTk5XHU1MjA2XHU3QzdCXHU2MjEwXHU1MjlGIik7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgX3RoaXM5LiRtZXNzYWdlLmVycm9yKCJcdTUyMjBcdTk2NjRcdThENDRcdTY1OTlcdTUyMDZcdTdDN0JcdTU5MzFcdThEMjUiKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDc7CiAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczkuZ2V0VHJlZURhdGEoKTsKICAgICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgX2NhbGxlZTYpOwogICAgICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgICAgICByZXR1cm4gXzsKICAgICAgICAgIH0pOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0sCiAgICAvLyDnm67lvZXmlLnlj5gKICAgIGNhdGFsb2dDaGFuZ2U6IGZ1bmN0aW9uIGNhdGFsb2dDaGFuZ2UoZGlhbG9nTmFtZSkgewogICAgICB2YXIgX3RoaXMxMCA9IHRoaXM7CiAgICAgIHRoaXMuZ2V0VHJlZURhdGEoZnVuY3Rpb24gKF8pIHsKICAgICAgICByZXR1cm4gX3RoaXMxMFtkaWFsb2dOYW1lXSA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICAvL+S/ruaUuQogICAgaGFuZGxlRGJDbGljazogZnVuY3Rpb24gaGFuZGxlRGJDbGljayhyb3cpIHsKICAgICAgaWYgKHRoaXMuY2xpY2tUaW1lcikgcmV0dXJuIHRoaXMuY2xpY2tUaW1lciA9IGZhbHNlOwogICAgICB0aGlzLmNoYW5nZVBhZ2UoJ0VkaXRBZGRQYWdlJywgcm93KTsKICAgIH0sCiAgICAvLyDmlLnlj5jpobXpnaIKICAgIGNoYW5nZVBhZ2U6IGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CiAgICAgIHZhciBwYWdlTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJyc7CiAgICAgIHZhciByb3cgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9OwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogJyc7CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlUGFnZScsIHBhZ2VOYW1lLCBmdW5jdGlvbiAoXykgewogICAgICAgIFB1YlN1Yi5wdWJsaXNoKHBhZ2VOYW1lLCByb3cpOwogICAgICB9LCB0eXBlIHx8ICfor6bmg4UnKTsKICAgIH0KICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICAvLyDlnKjnu4Tku7bplIDmr4HkuYvliY0g5riF6Zmk6K6i6ZiF5raI5oGvCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpOwogIH0KfTs="},null]}