{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js??ref--1-0!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/babel.config.js","mtime":1684261475125},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9UYWJzMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay90YWJzLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX1RhYnMgZnJvbSAiZWxlbWVudC11aS9saWIvdGFicyI7CmltcG9ydCBfVGFiUGFuZTIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvdGFiLXBhbmUuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfVGFiUGFuZSBmcm9tICJlbGVtZW50LXVpL2xpYi90YWItcGFuZSI7CmltcG9ydCBfU2xpZGVyMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zbGlkZXIuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2xpZGVyIGZyb20gImVsZW1lbnQtdWkvbGliL3NsaWRlciI7CmltcG9ydCBfU2VsZWN0MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zZWxlY3QuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2VsZWN0IGZyb20gImVsZW1lbnQtdWkvbGliL3NlbGVjdCI7CmltcG9ydCBfUm93MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9yb3cuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUm93IGZyb20gImVsZW1lbnQtdWkvbGliL3JvdyI7CmltcG9ydCBfUG9wb3ZlcjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvcG9wb3Zlci5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Qb3BvdmVyIGZyb20gImVsZW1lbnQtdWkvbGliL3BvcG92ZXIiOwppbXBvcnQgX09wdGlvbjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvb3B0aW9uLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX09wdGlvbiBmcm9tICJlbGVtZW50LXVpL2xpYi9vcHRpb24iOwppbXBvcnQgX0xvYWRpbmcyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2xvYWRpbmcuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfTG9hZGluZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2FkaW5nIjsKaW1wb3J0IF9Db2wyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2NvbC5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Db2wgZnJvbSAiZWxlbWVudC11aS9saWIvY29sIjsKaW1wb3J0IF9CdXR0b24yIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2J1dHRvbi5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9CdXR0b24gZnJvbSAiZWxlbWVudC11aS9saWIvYnV0dG9uIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIudG8tZml4ZWQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7Ci8qIGVzbGludC1kaXNhYmxlIG5vLWFsZXJ0LCBuby1jb25zb2xlICovCmltcG9ydCBWdWUgZnJvbSAidnVlIjsKaW1wb3J0IFByaW1pdGl2ZUNvbnRyb2xzIGZyb20gIi4vUHJpbWl0aXZlQ29udHJvbHMiOwppbXBvcnQgU2NhZmZvbGRUb29sdGlwIGZyb20gIi4vU2NhZmZvbGRUb29sdGlwIjsKaW1wb3J0IFRyZWVDb250cm9scyBmcm9tICIuL1RyZWVDb250cm9scyI7CmltcG9ydCB7IE1hcFN2Z0ljb24sIE1hcFN2Z1Nwcml0ZUNvbG9yIH0gZnJvbSAiQGFiaS1zb2Z0d2FyZS9zdmctc3ByaXRlIjsKaW1wb3J0IHsgZmluZE9iamVjdHNXaXRoTmFtZXMsIGdldE9iamVjdHNGcm9tQW5ub3RhdGlvbnMgfSBmcm9tICIuLi9zY3JpcHRzL3V0aWxpdGllcy5qcyI7CmltcG9ydCB7IFNlYXJjaEluZGV4IH0gZnJvbSAiLi4vc2NyaXB0cy9zZWFyY2guanMiOwppbXBvcnQgbGFuZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2NhbGUvbGFuZy9lbiI7CmltcG9ydCBsb2NhbGUgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlIjsKbG9jYWxlLnVzZShsYW5nKTsKVnVlLnVzZShfQnV0dG9uKTsKVnVlLnVzZShfQ29sKTsKVnVlLnVzZShfTG9hZGluZy5kaXJlY3RpdmUpOwpWdWUudXNlKF9PcHRpb24pOwpWdWUudXNlKF9Qb3BvdmVyKTsKVnVlLnVzZShfUm93KTsKVnVlLnVzZShfU2VsZWN0KTsKVnVlLnVzZShfU2xpZGVyKTsKVnVlLnVzZShfVGFiUGFuZSk7ClZ1ZS51c2UoX1RhYnMpOwp2YXIgT3JnYW5zVmlld2VyID0gcmVxdWlyZSgiLi4vc2NyaXB0cy9vcmdhbnNSZW5kZXJlciIpLk9yZ2Fuc1ZpZXdlcjsKdmFyIEV2ZW50Tm90aWZpZXIgPSByZXF1aXJlKCIuLi9zY3JpcHRzL2V2ZW50Tm90aWZpZXIiKS5FdmVudE5vdGlmaWVyOwoKLyoqCiAqIEEgdnVlIGNvbXBvbmVudCBvZiB0aGUgc2NhZmZvbGQgdmlld2VyLgogKgogKiBAcmVxdWlyZXMgLi9QcmltaXR2ZUNvbnRyb2xzLnZ1ZQogKiBAcmVxdWlyZXMgLi9UcmVlQ29udHJvbHMudnVlCiAqLwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIlNjYWZmb2xkVnVlciIsCiAgY29tcG9uZW50czogewogICAgTWFwU3ZnSWNvbjogTWFwU3ZnSWNvbiwKICAgIE1hcFN2Z1Nwcml0ZUNvbG9yOiBNYXBTdmdTcHJpdGVDb2xvciwKICAgIFByaW1pdGl2ZUNvbnRyb2xzOiBQcmltaXRpdmVDb250cm9scywKICAgIFNjYWZmb2xkVG9vbHRpcDogU2NhZmZvbGRUb29sdGlwLAogICAgVHJlZUNvbnRyb2xzOiBUcmVlQ29udHJvbHMKICB9LAogIHByb3BzOiB7CiAgICAvKioKICAgICAqIFVSTCBvZiB0aGUgemluY2pzIG1ldGFkYXRhLiBUaGlzIHZhbHVlIHdpbGwgYmUgaWdub3JlZCBpZiBhIHZhbGlkCiAgICAgKiBzdGF0ZSBwcm9wIGlzIGFsc28gcHJvdmlkZWQuCiAgICAgKiBJZiB0aGUgdXJsIG5lZWRzIHRvIGJlIHVwZGF0ZWQgd2l0aCBzdGF0ZSBwcmVzZW50LCBwbGVhc2UgdXNlCiAgICAgKiB0aGUgc2V0VVJMIG1ldGhvZC4KICAgICAqLwogICAgdXJsOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICAvKioKICAgICAqIFNob3cgdGhlIGNvbG91ciBjb250cm9sIG9mIHNldCB0byB0cnVlLgogICAgICovCiAgICBzaG93Q29sb3VyUGlja2VyOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqCiAgICAgKiBGbGFnIHRvIHNob3cvaGlkZSB0aGUgVUkuCiAgICAgKi8KICAgIGRpc3BsYXlVSTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgLyoqCiAgICAgKiBEaXNwbGF5IGFsbCBncmFwaGljcyBhdCBzdGFydC4KICAgICAqCiAgICAgKiBUaGlzIHNldHRpbmcgb25seSB3b3JrcyB3aGVuIHRyYWRpdGlvbmFsIGlzIHNldCB0byBmYWxzZS4KICAgICAqLwogICAgZGlzcGxheUF0U3RhcnRVcDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgLyoqCiAgICAgKiBVc2UgZm9yIHRvZ2dsaW5nIHRoZSBoZWxwIHRvb2x0aXBzLgogICAgICovCiAgICBoZWxwTW9kZTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIC8qKgogICAgICogVXNlIGZvciBzaG93L2Rpc3BsYXkgYmV0YSB3YXJuaW5nIGljb24uCiAgICAgKi8KICAgIGRpc3BsYXlXYXJuaW5nOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvKioKICAgICAqIFdhcm5pbmcgbWVzc2FnZSBmb3IgdGhlIGhvdmVyZWQgb3ZlciB0ZXh0CiAgICAgKiBvbiB0aGUgd2FybmluZyBpY29uLgogICAgICovCiAgICB3YXJuaW5nTWVzc2FnZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJCZXRhIGZlYXR1cmUgLSB1bmRlciBhY3RpdmUgZGV2ZWxvcG1lbnQiCiAgICB9LAogICAgZGlzcGxheUxhdGVzdENoYW5nZXM6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBsYXRlc3RDaGFuZ2VzTWVzc2FnZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJOZXcgZmVhdHVyZSAtIExvY2FsIHNlYXJjaCBpcyBub3cgYXZhaWxhYmxlIgogICAgfSwKICAgIC8qKgogICAgICogU2hvdy9oaWRlIHBpY2thYmxlIG1hcmtlcnMgZm9yIHJlZ2lvbnMuCiAgICAgKi8KICAgIGRpc3BsYXlNYXJrZXJzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbWFya2VyTGFiZWxzOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gW107CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFNob3cvaGlkZSBtaW5pbWFwLgogICAgICovCiAgICBkaXNwbGF5TWluaW1hcDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIC8qKgogICAgICogRm9ybWF0IG9mIHRoZSBpbnB1dCBVUkwKICAgICAqLwogICAgZm9ybWF0OiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIm1ldGFkYXRhIgogICAgfSwKICAgIC8qKgogICAgICogU2V0dGluZ3MgZm9yIG1pbmltYXAgcG9zaXRpb24sIHNpemUgYW5kIGFsaWdubWVudC4KICAgICAqLwogICAgbWluaW1hcFNldHRpbmdzOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHhfb2Zmc2V0OiAxNiwKICAgICAgICAgIHlfb2Zmc2V0OiAxNiwKICAgICAgICAgIHdpZHRoOiAxMjgsCiAgICAgICAgICBoZWlnaHQ6IDEyOCwKICAgICAgICAgIGFsaWduOiAidG9wLXJpZ2h0IgogICAgICAgIH07CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZsYWcgdG8gZGV0ZXJtaW5lIHJhdGhlciBvcGVuIG1hcCBVSSBzaG91bGQgYmUKICAgICAqIHByZXNlbnRlZCBvciBub3QuCiAgICAgKi8KICAgIGVuYWJsZU9wZW5NYXBVSTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIG9wZW5NYXBPcHRpb25zOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gW3sKICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEFDIE1hcCIsCiAgICAgICAgICBrZXk6ICJBQyIKICAgICAgICB9LCB7CiAgICAgICAgICBkaXNwbGF5OiAiT3BlbiBGQyBNYXAiLAogICAgICAgICAga2V5OiAiRkMiCiAgICAgICAgfSwgewogICAgICAgICAgZGlzcGxheTogIk9wZW4gM0QgSHVtYW4gTWFwIiwKICAgICAgICAgIGtleTogIjNEIgogICAgICAgIH1dOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBTdGF0ZSBjb250YWluaW5nIHN0YXRlIG9mIHRoZSBzY2FmZm9sZC4KICAgICAqLwogICAgc3RhdGU6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiB1bmRlZmluZWQKICAgIH0sCiAgICAvKioKICAgICAqIE9wdGlvbmFsIHByb3AgZm9yIHRoZSBuYW1lIG9mIHRoZSByZWdpb24gdG8gZm9jdXMgb24sCiAgICAgKiB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkIGlmIHN0YXRlIG9yIHZpZXdVUkwgaXMgYWxzbyBwcm92aWRlZC4KICAgICAqLwogICAgcmVnaW9uOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICAvKioKICAgICAqIE9wdGlvbmFsIHByb3AgZm9yIGFuIFVSTCBvZiBjb250YWluaW5nIGluZm9ybWF0aW9uIG9mIGEgdmlld3BvcnQuCiAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGlmIHN0YXRlIGlzIGFsc28gcHJvdmlkZWQuCiAgICAgKiBJdCB3aWxsIHVzZSB0aGUgcHJvdmlkZWQgVVJMIGFzIGJhc2UgaWYgYSByZWxhdGl2ZSBwYXJ0aCBpcyBwcm92aWRlZC4KICAgICAqLwogICAgdmlld1VSTDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiCiAgICB9LAogICAgLyoqCiAgICAgKiBTZXR0aW5ncyBmb3IgdHVybmluZyBvbi9vZmYgcmVuZGVyaW5nCiAgICAgKi8KICAgIHJlbmRlcjogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgc2NlbmVEYXRhOiB0aGlzLiRtb2R1bGUuc2NlbmVEYXRhLAogICAgICBpc1BsYXlpbmc6IGZhbHNlLAogICAgICBpc1JlYWR5OiBmYWxzZSwKICAgICAgLyoqCiAgICAgICAqIFRoaXMgaXMgc2V0IHdoZW4gc2NlbmUgaXMgdHJhbnNpdGlvbmluZy4KICAgICAgICovCiAgICAgIGlzVHJhbnNpdGlvbmluZzogZmFsc2UsCiAgICAgIHRvb2x0aXBBcHBlbmRUb0JvZHk6IGZhbHNlLAogICAgICBob3ZlclZpc2liaWxpdGllczogW3sKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH1dLAogICAgICBpbkhlbHA6IGZhbHNlLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgZHVyYXRpb246IDMwMDAsCiAgICAgIGRyYXdlck9wZW46IHRydWUsCiAgICAgIGN1cnJlbnRCYWNrZ3JvdW5kOiAid2hpdGUiLAogICAgICBhdmFpbGFibGVCYWNrZ3JvdW5kOiBbIndoaXRlIiwgImxpZ2h0c2t5Ymx1ZSIsICJibGFjayJdLAogICAgICBtaW5pbWlzZWRTbGlkZXI6IGZhbHNlLAogICAgICBzbGlkZXJQb3NpdGlvbjogIiIsCiAgICAgIHRpbWVNYXg6IDEwMCwKICAgICAgb3JnaW5hbER1cmF0aW9uOiAiIiwKICAgICAgYW5pbWF0ZUR1cmF0aW9uOiAiNnNlY3MiLAogICAgICBwbGF5U3BlZWQ6IFt7CiAgICAgICAgdmFsdWU6IDAuMSwKICAgICAgICBsYWJlbDogIjAuMXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMC41LAogICAgICAgIGxhYmVsOiAiMC41eCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIGxhYmVsOiAiMXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMiwKICAgICAgICBsYWJlbDogIjJ4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDUsCiAgICAgICAgbGFiZWw6ICI1eCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAxMCwKICAgICAgICBsYWJlbDogIjEweCIKICAgICAgfV0sCiAgICAgIGN1cnJlbnRTcGVlZDogMSwKICAgICAgdGltZVN0YW1wczoge30sCiAgICAgIGRlZmF1bHRDaGVja2VkS2V5czogW10sCiAgICAgIHREYXRhOiB7CiAgICAgICAgbGFiZWw6ICIiLAogICAgICAgIHJlZ2lvbjogIiIsCiAgICAgICAgdmlzaWJsZTogZmFsc2UsCiAgICAgICAgeDogMjAwLAogICAgICAgIHk6IDIwMAogICAgICB9LAogICAgICBmaWxlRm9ybWF0OiAibWV0YWRhdGEiLAogICAgICBwcmV2aW91c01hcmtlckxhYmVsczogW10KICAgIH07CiAgfSwKICB3YXRjaDogewogICAgZm9ybWF0OiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmFsdWUpIHsKICAgICAgICB0aGlzLmZpbGVGb3JtYXQgPSB2YWx1ZTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgdXJsOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsdWUpIHsKICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuc3RhdGUudXJsID09PSB1bmRlZmluZWQpIHRoaXMuc2V0VVJMKG5ld1ZhbHVlKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgcmVnaW9uOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIocmVnaW9uKSB7CiAgICAgICAgaWYgKCEodGhpcy5zdGF0ZSB8fCB0aGlzLnZpZXdVUkwpKSB0aGlzLnNldEZvY3VzZWRSZWdpb24ocmVnaW9uKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgc3RhdGU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihzdGF0ZSkgewogICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGRlZXA6IHRydWUKICAgIH0sCiAgICB2aWV3VVJMOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmlld1VSTCkgewogICAgICAgIHRoaXMudXBkYXRlVmlld1VSTCh2aWV3VVJMKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgaGVscE1vZGU6IGZ1bmN0aW9uIGhlbHBNb2RlKHZhbCkgewogICAgICB0aGlzLnNldEhlbHBNb2RlKHZhbCk7CiAgICB9LAogICAgZGlzcGxheU1hcmtlcnM6IGZ1bmN0aW9uIGRpc3BsYXlNYXJrZXJzKHZhbCkgewogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1hcmtlcnMgPSB2YWw7CiAgICAgIC8vVXBkYXRlIHBpY2thYmxlIG9iamVjdHMKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmZvcmNlUGlja2FibGVPYmplY3RzVXBkYXRlID0gdHJ1ZTsKICAgIH0sCiAgICBkaXNwbGF5TWluaW1hcDogZnVuY3Rpb24gZGlzcGxheU1pbmltYXAodmFsKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWluaW1hcCA9IHZhbDsKICAgIH0sCiAgICAic2NlbmVEYXRhLmN1cnJlbnRUaW1lIjogZnVuY3Rpb24gc2NlbmVEYXRhQ3VycmVudFRpbWUoKSB7CiAgICAgIC8qKgogICAgICAgKiBUcmlnZ2VycyB3aGVuIHNjZW5lIHRpbWUgY2hhbmdlcy4KICAgICAgICoKICAgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWUgQ3VycmVudCBidWlsZC1pbiB0aW1lIG9mIHNjZW5lLgogICAgICAgKiBvZiBzZWxlY3RlZCBvYmplY3QuCiAgICAgICAqLwogICAgICB0aGlzLiRlbWl0KCJ0aW1lQ2hhbmdlZCIsIHRoaXMuc2NlbmVEYXRhLmN1cnJlbnRUaW1lKTsKICAgIH0sCiAgICBkdXJhdGlvbjogZnVuY3Rpb24gZHVyYXRpb24oKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5zZXREdXJhdGlvbih0aGlzLmR1cmF0aW9uKTsKICAgIH0sCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgaGFuZGxlcjogInVwZGF0ZU1pbmltYXBTY2lzc29yIgogICAgfSwKICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKHZhbCkgewogICAgICB0aGlzLnRvZ2dsZVJlbmRlcmluZyh2YWwpOwogICAgfSwKICAgIG1hcmtlckxhYmVsczogZnVuY3Rpb24gbWFya2VyTGFiZWxzKGxhYmVscykgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB0aGlzLnByZXZpb3VzTWFya2VyTGFiZWxzLmZvckVhY2goZnVuY3Rpb24gKHBtbCkgewogICAgICAgIF90aGlzLnNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUocG1sLCAib2ZmIik7CiAgICAgIH0pOwogICAgICBsYWJlbHMuZm9yRWFjaChmdW5jdGlvbiAobCkgewogICAgICAgIF90aGlzLnNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUobCwgIm9uIik7CiAgICAgIH0pOwogICAgICB0aGlzLnByZXZpb3VzTWFya2VyTGFiZWxzID0gbGFiZWxzOwogICAgfQogIH0sCiAgYmVmb3JlQ3JlYXRlOiBmdW5jdGlvbiBiZWZvcmVDcmVhdGUoKSB7CiAgICB0aGlzLiRtb2R1bGUgPSBuZXcgT3JnYW5zVmlld2VyKCk7CiAgICB0aGlzLnNlbGVjdGVkT2JqZWN0cyA9IFtdOwogICAgdGhpcy5ob3ZlcmVkT2JqZWN0cyA9IFtdOwogICAgdGhpcy5jdXJyZW50QmFja2dyb3VuZCA9ICJ3aGl0ZSI7CiAgICB0aGlzLl9jdXJyZW50VVJMID0gdW5kZWZpbmVkOwogICAgdGhpcy5hdmFpbGFibGVCYWNrZ3JvdW5kID0gWyJ3aGl0ZSIsICJibGFjayIsICJsaWdodHNreWJsdWUiXTsKICAgIHRoaXMuJF9zZWFyY2hJbmRleCA9IG5ldyBTZWFyY2hJbmRleCgpOwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnNldE1vZHVsZSh0aGlzLiRtb2R1bGUpOwogICAgdmFyIGV2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpOwogICAgZXZlbnROb3RpZmllci5zdWJzY3JpYmUodGhpcywgdGhpcy5ldmVudE5vdGlmaWVyQ2FsbGJhY2spOwogICAgdGhpcy4kbW9kdWxlLmFkZE5vdGlmaWVyKGV2ZW50Tm90aWZpZXIpOwogICAgdGhpcy4kbW9kdWxlLmFkZE9yZ2FuUGFydEFkZGVkQ2FsbGJhY2sodGhpcy56aW5jT2JqZWN0QWRkZWQpOwogICAgdGhpcy4kbW9kdWxlLmluaXRpYWxpc2VSZW5kZXJlcih0aGlzLiRyZWZzLmRpc3BsYXkpOwogICAgdGhpcy50b2dnbGVSZW5kZXJpbmcodGhpcy5yZW5kZXIpOwogICAgdGhpcy5ybyA9IG5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmFkanVzdExheW91dCkub2JzZXJ2ZSh0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyKTsKICAgIHRoaXMuZGVmYXVsdFJhdGUgPSB0aGlzLiRtb2R1bGUuZ2V0UGxheVJhdGUoKTsKICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICBpZiAodGhpcy5ybykgdGhpcy5yby5kaXNjb25uZWN0KCk7CiAgICB0aGlzLiRtb2R1bGUuZGVzdHJveSgpOwogICAgdGhpcy4kbW9kdWxlID0gdW5kZWZpbmVkOwogIH0sCiAgbWV0aG9kczogewogICAgYWRkWmluY09iamVjdDogZnVuY3Rpb24gYWRkWmluY09iamVjdCh6aW5jT2JqZWN0KSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuYWRkWmluY09iamVjdCh6aW5jT2JqZWN0KTsKICAgICAgICB0aGlzLnppbmNPYmplY3RBZGRlZCh6aW5jT2JqZWN0KTsKICAgICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnppbmNPYmplY3RBZGRlZCh6aW5jT2JqZWN0KTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBhIG5ldyB6aW5jIG9iamVjdCBpcyByZWFkIGludG8gdGhlIHNjZW5lLgogICAgICovCiAgICB6aW5jT2JqZWN0QWRkZWQ6IGZ1bmN0aW9uIHppbmNPYmplY3RBZGRlZCh6aW5jT2JqZWN0KSB7CiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRfc2VhcmNoSW5kZXguYWRkWmluY09iamVjdCh6aW5jT2JqZWN0LCB6aW5jT2JqZWN0LnV1aWQpOwogICAgICB0aGlzLiRlbWl0KCJ6aW5jLW9iamVjdC1hZGRlZCIsIHppbmNPYmplY3QpOwogICAgfSwKICAgIC8qKgogICAgICogCiAgICAgKi8KICAgIGFkZFJlZ2lvbnNUb1NlYXJjaEluZGV4OiBmdW5jdGlvbiBhZGRSZWdpb25zVG9TZWFyY2hJbmRleCgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgdmFyIHJlZ2lvbnMgPSByb290UmVnaW9uLmdldENoaWxkUmVnaW9ucyh0cnVlKTsKICAgICAgcmVnaW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChyZWdpb24pIHsKICAgICAgICBfdGhpczIuJF9zZWFyY2hJbmRleC5hZGRSZWdpb24ocmVnaW9uLCByZWdpb24udXVpZCk7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBDaGFuZ2UgYmFja2dzcGVlZHJvdW5kIGNvbG91ciBidXR0b24KICAgICAqIGlzIHByZXNzZWQgYW4gY2F1c2VzIHRoZSBiYWNrZ3JvdUNvbG9ybmQgY29sb3VyIHRvIGJlIGNoYW5nZWQKICAgICAqIHRvIG9uZSBvZiB0aGUgdGhyZWUgcHJlc2V0IGNvbG91cjogd2hpdGUsIGJsYWNrIGFuZAogICAgICogbGlnaHRza3libHVlLgogICAgICovCiAgICBiYWNrZ3JvdW5kQ2hhbmdlQ2FsbGJhY2s6IGZ1bmN0aW9uIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjayhjb2xvdXIpIHsKICAgICAgdGhpcy5jdXJyZW50QmFja2dyb3VuZCA9IGNvbG91cjsKICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5nZXRUaHJlZUpTUmVuZGVyZXIoKS5zZXRDbGVhckNvbG9yKHRoaXMuY3VycmVudEJhY2tncm91bmQsIDEpOwogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgYnkgY2FwdHVlZVNjcmVlbnNob3QgYW5kIGFmdGVyIHRoZSBsYXN0IHJlbmRlcgogICAgICogbG9vcCwgaXQgZG93bmxvYWQgYSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IHNjZW5lIHdpdGggbm8gVUkuCiAgICAgKi8KICAgIGNhcHR1cmVTY3JlZW5zaG90Q2FsbGJhY2s6IGZ1bmN0aW9uIGNhcHR1cmVTY3JlZW5zaG90Q2FsbGJhY2soKSB7CiAgICAgIC8vUmVtb3ZlIHRoZSBjYWxsYmFjaywgb25seSBuZWVkcyB0byBoYXBwZW4gb25jZQogICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuY2FwdHVyZUlEKTsKICAgICAgdmFyIHNjcmVlbnNob3QgPSB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLmRvbUVsZW1lbnQudG9EYXRhVVJMKCJpbWFnZS9wbmciKTsKICAgICAgdmFyIGhyZWZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChocmVmRWxlbWVudCk7CiAgICAgIGlmICghdGhpcy5jYXB0dXJlRmlsZW5hbWUpIGhyZWZFbGVtZW50LmRvd25sb2FkID0gInNjcmVlbnNob3QucG5nIjtlbHNlIGhyZWZFbGVtZW50LmRvd25sb2FkID0gdGhpcy5jYXB0dXJlRmlsZW5hbWU7CiAgICAgIGhyZWZFbGVtZW50LmhyZWYgPSBzY3JlZW5zaG90OwogICAgICBocmVmRWxlbWVudC5jbGljaygpOwogICAgICBocmVmRWxlbWVudC5yZW1vdmUoKTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIGZvciBjYXB0dXJpbmcgYSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IHJlbmRlcmluZy4KICAgICAqCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZW5hbWUgZmlsZW5hbWUgZ2l2ZW4gdG8gdGhlIHNjcmVlbnNob3QuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBjYXB0dXJlU2NyZWVuc2hvdDogZnVuY3Rpb24gY2FwdHVyZVNjcmVlbnNob3QoZmlsZW5hbWUpIHsKICAgICAgdGhpcy5jYXB0dXJlRmlsZW5hbWUgPSBmaWxlbmFtZTsKICAgICAgdGhpcy5jYXB0dXJlSUQgPSB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmFkZFBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuY2FwdHVyZVNjcmVlbnNob3RDYWxsYmFjayk7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byBjbGVhciBjdXJyZW50IHNjZW5lLCB0aGUgdHJlZSBjb250cm9scyBhbmQgdGhlIHNlYXJjaCBpbmRleC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGNsZWFyU2NlbmU6IGZ1bmN0aW9uIGNsZWFyU2NlbmUoKSB7CiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2xlYXIoKTsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCkgdGhpcy4kX3NlYXJjaEluZGV4LnJlbW92ZUFsbCgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB0aGlzLiRtb2R1bGUuc2NlbmUuY2xlYXJBbGwoKTsKICAgIH0sCiAgICBmb3JtYXRUb29sdGlwOiBmdW5jdGlvbiBmb3JtYXRUb29sdGlwKHZhbCkgewogICAgICBpZiAodGhpcy50aW1lTWF4ID49IDEwMDApIHsKICAgICAgICBpZiAodmFsKSB7CiAgICAgICAgICB2YXIgc2VjID0gKHZhbCAlIDYwMDAwIC8gMTAwMCkudG9GaXhlZCgyKSArICJzIjsKICAgICAgICAgIHZhciBtaW4gPSB2YWwgPiA2MDAwMCA/ICh2YWwgLyA2MDAwMCkudG9GaXhlZCgwKSArICJtICIgOiAiIjsKICAgICAgICAgIHJldHVybiBtaW4gKyBzZWM7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YWwgPyB2YWwudG9GaXhlZCgyKSArICIgbXMiIDogIjAgbXMiOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gcmVzZXQgdGhlIHZpZXcgdG8gZGVmYXVsdC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBmaXRXaW5kb3c6IGZ1bmN0aW9uIGZpdFdpbmRvdygpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gaW4uCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbiB6b29tSW4oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2hhbmdlWm9vbUJ5U2Nyb2xsUmF0ZVVuaXQoLTEpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIG91dC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICB6b29tT3V0OiBmdW5jdGlvbiB6b29tT3V0KCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmNoYW5nZVpvb21CeVNjcm9sbFJhdGVVbml0KDEpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgcGxheSBzcGVlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNwZWVkQ2hhbmdlZDogZnVuY3Rpb24gc3BlZWRDaGFuZ2VkKHNwZWVkKSB7CiAgICAgIHRoaXMuY3VycmVudFNwZWVkID0gc3BlZWQ7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRQbGF5UmF0ZSh0aGlzLmRlZmF1bHRSYXRlICogdGhpcy5jdXJyZW50U3BlZWQpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCB0byBzdG9wIHRoZSBmcmVlIHNwaW4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHN0b3BGcmVlU3BpbjogZnVuY3Rpb24gc3RvcEZyZWVTcGluKCkgewogICAgICB2YXIgY2FtZXJhY29udHJvbCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgY2FtZXJhY29udHJvbC5zdG9wQXV0b1R1bWJsZSgpOwogICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IGZhbHNlOwogICAgfSwKICAgIGZpbmRPYmplY3RzV2l0aEdyb3VwTmFtZTogZnVuY3Rpb24gZmluZE9iamVjdHNXaXRoR3JvdXBOYW1lKG5hbWUpIHsKICAgICAgdmFyIG9iamVjdHMgPSBbXTsKICAgICAgaWYgKG5hbWUgJiYgbmFtZSAhPSAiIiAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICBvYmplY3RzID0gdGhpcy4kbW9kdWxlLnNjZW5lLmZpbmRPYmplY3RzV2l0aEdyb3VwTmFtZShuYW1lKTsKICAgICAgfQogICAgICByZXR1cm4gb2JqZWN0czsKICAgIH0sCiAgICAvKioKICAgICAqIEZvY3VzIG9uIG5hbWVkIHJlZ2lvbgogICAgICovCiAgICB2aWV3UmVnaW9uOiBmdW5jdGlvbiB2aWV3UmVnaW9uKG5hbWVzKSB7CiAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgdmFyIGdyb3VwcyA9IEFycmF5LmlzQXJyYXkobmFtZXMpID8gbmFtZXMgOiBbbmFtZXNdOwogICAgICB2YXIgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICB2YXIgYm94ID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldEJvdW5kaW5nQm94T2ZaaW5jT2JqZWN0cyhvYmplY3RzKTsKICAgICAgaWYgKGJveCkgewogICAgICAgIGlmICh0aGlzLiRtb2R1bGUuaXNTeW5jQ29udHJvbCgpKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xab29tVG9Cb3goYm94KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGRpc3QgPSB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciAtIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhcjsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsV2l0aEJvdW5kaW5nQm94KGJveCk7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciA9IHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhciArIGRpc3Q7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIHNldEZvY3VzZWRSZWdpb246IGZ1bmN0aW9uIHNldEZvY3VzZWRSZWdpb24obmFtZSkgewogICAgICBpZiAobmFtZSkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHRoaXMudmlld1JlZ2lvbihuYW1lKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2sodGhpcy5zZXRVUkxGaW5pc2hDYWxsYmFjayh7CiAgICAgICAgICAgIHJlZ2lvbjogbmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHVwZGF0ZVZpZXdVUkw6IGZ1bmN0aW9uIHVwZGF0ZVZpZXdVUkwodmlld1VSTCkgewogICAgICBpZiAodmlld1VSTCkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHZhciB1cmwgPSBuZXcgVVJMKHZpZXdVUkwsIHRoaXMudXJsKTsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5sb2FkVmlld1VSTCh1cmwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgdmlld1VSTDogdmlld1VSTAogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGdldFJlbmRlcmVySW5mbzogZnVuY3Rpb24gZ2V0UmVuZGVyZXJJbmZvKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLmluZm87CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gcm90YXRlIHRoZSBzY2VuZS4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBmcmVlU3BpbjogZnVuY3Rpb24gZnJlZVNwaW4oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgY2FtZXJhY29udHJvbCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IHRydWU7CiAgICAgICAgY2FtZXJhY29udHJvbC5lbmFibGVBdXRvVHVtYmxlKCk7CiAgICAgICAgY2FtZXJhY29udHJvbC5hdXRvVHVtYmxlKFsxLjAsIDAuMF0sIE1hdGguUEksIHRydWUpOwogICAgICAgIHNldFRpbWVvdXQodGhpcy5zdG9wRnJlZVNwaW4sIDQwMDApOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB3aGVuIGEgcmVnaW9uIGlzIHNlbGVjdGVkL2hpZ2hsaWdodGVkLgogICAgICogSXQgd2lsbCBhbHNvIHVwZGF0ZSBvdGhlciBjb250cm9scy4KICAgICAqCiAgICAgKi8KICAgIGV2ZW50Tm90aWZpZXJDYWxsYmFjazogZnVuY3Rpb24gZXZlbnROb3RpZmllckNhbGxiYWNrKGV2ZW50KSB7CiAgICAgIHZhciBuYW1lcyA9IFtdOwogICAgICB2YXIgemluY09iamVjdHMgPSBbXTsKICAgICAgdmFyIHJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSAxIHx8IGV2ZW50LmV2ZW50VHlwZSA9PSAyKSB7CiAgICAgICAgZXZlbnQuaWRlbnRpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaWRlbnRpZmllcikgewogICAgICAgICAgaWYgKGlkZW50aWZpZXIpIHsKICAgICAgICAgICAgdmFyIGlkID0gaWRlbnRpZmllci5kYXRhLmlkID8gaWRlbnRpZmllci5kYXRhLmlkIDogaWRlbnRpZmllci5kYXRhLmdyb3VwOwogICAgICAgICAgICBuYW1lcy5wdXNoKGlkKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB6aW5jT2JqZWN0cyA9IGV2ZW50LnppbmNPYmplY3RzOwogICAgICB9CiAgICAgIC8qCiAgICAgICAqIEV2ZW50IFR5cGUgMTogU2VsZWN0ZWQKICAgICAgICogRXZlbnQgVHlwZSAyOiBIaWdobGlnaHRlZAogICAgICAgKiBFdmVudCBUeXBlIDE6IE1vdmUKICAgICAgICovCiAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT0gMSkgewogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgewogICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgLy90aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VBY3RpdmVCeU5hbWVzKG5hbWVzLCByZWdpb24sIGZhbHNlKTsKICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMudXBkYXRlQWN0aXZlVUkoemluY09iamVjdHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5yZW1vdmVBY3RpdmUodHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIFRyaWdnZXJzIHdoZW4gYW4gb2JqZWN0IGhhcyBiZWVuIHNlbGVjdGVkCiAgICAgICAgdGhpcy4kZW1pdCgic2NhZmZvbGQtc2VsZWN0ZWQiLCBldmVudC5pZGVudGlmaWVycyk7CiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDIpIHsKICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgICAgICAvLyBjb25zdCBvZmZzZXRzID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgewogICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgIC8vdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlSG92ZXJCeU5hbWVzKG5hbWVzLCByZWdpb24sIGZhbHNlKTsKICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy51cGRhdGVIb3ZlclVJKHppbmNPYmplY3RzKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5yZW1vdmVIb3Zlcih0cnVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzLmxlbmd0aCA+IDAgJiYgZXZlbnQuaWRlbnRpZmllcnNbMF0pIHsKICAgICAgICAgICAgdmFyIGlkID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5pZCA/IGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEuaWQgOiBldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLmdyb3VwOwogICAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzKSB7CiAgICAgICAgICAgICAgdGhpcy50RGF0YS52aXNpYmxlID0gdHJ1ZTsKICAgICAgICAgICAgICB0aGlzLnREYXRhLmxhYmVsID0gaWQ7CiAgICAgICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEucmVnaW9uKSB0aGlzLnREYXRhLnJlZ2lvbiA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEucmVnaW9uO2Vsc2UgdGhpcy50RGF0YS5yZWdpb24gPSB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgdGhpcy50RGF0YS54ID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzLng7CiAgICAgICAgICAgICAgdGhpcy50RGF0YS55ID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzLnk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIC8vIFRyaWdnZXJzIHdoZW4gYW4gb2JqZWN0IGhhcyBiZWVuIGhpZ2hsaWdodGVkCiAgICAgICAgICB0aGlzLiRlbWl0KCJzY2FmZm9sZC1oaWdobGlnaHRlZCIsIGV2ZW50LmlkZW50aWZpZXJzKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDMpIHsKICAgICAgICAvL01PVkUKICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnMubGVuZ3RoID4gMCAmJiBldmVudC5pZGVudGlmaWVyc1swXSkgewogICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3JkcykgewogICAgICAgICAgICB2YXIgb2Zmc2V0cyA9IHRoaXMuJHJlZnMuc2NhZmZvbGRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICAgIHRoaXMudERhdGEueCA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy54IC0gb2Zmc2V0cy5sZWZ0OwogICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueSAtIG9mZnNldHMudG9wOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogR2V0IHRoZSBjb29yZGluYXRlcyBvZiB0aGUgY3VycmVudCBzZWxlY3RlZCByZWdpb24uCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBnZXRDb29yZGluYXRlc09mU2VsZWN0ZWQ6IGZ1bmN0aW9uIGdldENvb3JkaW5hdGVzT2ZTZWxlY3RlZCgpIHsKICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPYmplY3RzICYmIHRoaXMuc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICByZXR1cm4gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE9iamVjdHNTY3JlZW5YWSh0aGlzLnNlbGVjdGVkT2JqZWN0cyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIFJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgd2luZG93IGNvb3JkaW5hdGVzIG9mIHRoZQogICAgICogY3VycmVudCBzZWxlY3RlZCByZWdpb24gd2hpY2ggd2lsbCBiZSB1cGRhdGVkIGFmdGVyIGVhY2ggcmVuZGVyCiAgICAgKiBsb29wLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgZ2V0RHluYW1pY1NlbGVjdGVkQ29vcmRpbmF0ZXM6IGZ1bmN0aW9uIGdldER5bmFtaWNTZWxlY3RlZENvb3JkaW5hdGVzKCkgewogICAgICByZXR1cm4gdGhpcy4kbW9kdWxlLnNlbGVjdGVkU2NyZWVuQ29vcmRpbmF0ZXM7CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB3aGVuIHRpbWUgaXMgY2hhbmdlZCB0aHJvdWdoIHRoZSBVSS4KICAgICAqLwogICAgdGltZUNoYW5nZTogZnVuY3Rpb24gdGltZUNoYW5nZShldmVudCkgewogICAgICB2YXIgbm9ybWFsaXplZFRpbWUgPSBldmVudCAvIHRoaXMudGltZU1heCAqIDEwMDsKICAgICAgaWYgKG5vcm1hbGl6ZWRUaW1lICE9IHRoaXMuc2NlbmVEYXRhLmN1cnJlbnRUaW1lKSB0aGlzLiRtb2R1bGUudXBkYXRlVGltZShub3JtYWxpemVkVGltZSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBBIGNhbGxiYWNrIHVzZWQgYnkgY2hpbGRyZW4gY29tcG9uZW50cy4gU2V0IHRoZSBzZWxlY3RlZCB6aW5jIG9iamVjdAogICAgICoKICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgWmluYyBvYmplY3QKICAgICAqLwogICAgb2JqZWN0U2VsZWN0ZWQ6IGZ1bmN0aW9uIG9iamVjdFNlbGVjdGVkKG9iamVjdHMsIHByb3BhZ2F0ZSkgewogICAgICB0aGlzLnNlbGVjdGVkT2JqZWN0cyA9IG9iamVjdHM7CiAgICAgIGlmICh0aGlzLnNlbGVjdGVkT2JqZWN0cyAmJiB0aGlzLnNlbGVjdGVkT2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgdGhpcy4kcmVmcy5wcmltaXRpdmVDb250cm9scy5zZXRPYmplY3QodGhpcy5zZWxlY3RlZE9iamVjdHNbMF0pOwogICAgICB9CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRTZWxlY3RlZEJ5WmluY09iamVjdHMob2JqZWN0cywgdW5kZWZpbmVkLCBwcm9wYWdhdGUpOwogICAgfSwKICAgIC8qKgogICAgICogQSBjYWxsYmFjayB1c2VkIGJ5IGNoaWxkcmVuIGNvbXBvbmVudHMuIFNldCB0aGUgaGlnaGxpZ2h0ZWQgemluYyBvYmplY3QKICAgICAqCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0CiAgICAgKi8KICAgIG9iamVjdEhvdmVyZWQ6IGZ1bmN0aW9uIG9iamVjdEhvdmVyZWQob2JqZWN0cywgcHJvcGFnYXRlKSB7CiAgICAgIHRoaXMuaG92ZXJlZE9iamVjdHMgPSBvYmplY3RzOwogICAgICB0aGlzLiRtb2R1bGUuc2V0SGlnaGxpZ2h0ZWRCeVppbmNPYmplY3RzKG9iamVjdHMsIHVuZGVmaW5lZCwgcHJvcGFnYXRlKTsKICAgIH0sCiAgICAvKioKICAgICAqIFNldCB0aGUgc2VsZWN0ZWQgYnkgbmFtZS4KICAgICAqCiAgICAgKiBAcGFyYW0ge30gbmFtZSBOYW1lIG9mIHRoZSBncm91cAogICAgICovCiAgICBjaGFuZ2VBY3RpdmVCeU5hbWU6IGZ1bmN0aW9uIGNoYW5nZUFjdGl2ZUJ5TmFtZShuYW1lcywgcmVnaW9uLCBwcm9wYWdhdGUpIHsKICAgICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KG5hbWVzKTsKICAgICAgaWYgKG5hbWVzID09PSB1bmRlZmluZWQgfHwgaXNBcnJheSAmJiBuYW1lcy5sZW5ndGggPT09IDApIHsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5yZW1vdmVBY3RpdmUocHJvcGFnYXRlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgYXJyYXkgPSBuYW1lczsKICAgICAgICBpZiAoIWlzQXJyYXkpIGFycmF5ID0gW2FycmF5XTsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VBY3RpdmVCeU5hbWVzKGFycmF5LCByZWdpb24sIHByb3BhZ2F0ZSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFNldCB0aGUgaGlnaGxpZ2h0ZWQgYnkgbmFtZS4KICAgICAqCiAgICAgKiBAcGFyYW0ge25hbWV9IG5hbWUgTmFtZSBvZiB0aGUgZ3JvdXAKICAgICAqLwogICAgY2hhbmdlSGlnaGxpZ2h0ZWRCeU5hbWU6IGZ1bmN0aW9uIGNoYW5nZUhpZ2hsaWdodGVkQnlOYW1lKG5hbWVzLCByZWdpb24sIHByb3BhZ2F0ZSkgewogICAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobmFtZXMpOwogICAgICBpZiAobmFtZXMgPT09IHVuZGVmaW5lZCB8fCBpc0FycmF5ICYmIG5hbWVzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUhvdmVyKHByb3BhZ2F0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIGFycmF5ID0gbmFtZXM7CiAgICAgICAgaWYgKCFpc0FycmF5KSBhcnJheSA9IFthcnJheV07CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlSG92ZXJCeU5hbWVzKGFycmF5LCByZWdpb24sIHByb3BhZ2F0ZSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFN0YXJ0IHRoZSBhbmltYXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCBaaW5jIG9iamVjdAogICAgICovCiAgICBwbGF5OiBmdW5jdGlvbiBwbGF5KGZsYWcpIHsKICAgICAgdGhpcy4kbW9kdWxlLnBsYXlBbmltYXRpb24oZmxhZyk7CiAgICAgIHRoaXMuaXNQbGF5aW5nID0gZmxhZzsKICAgICAgLy9IaWRlIHRvb2x0aXAgYXMgbG9jYXRpb24gbWF5CiAgICAgIC8vdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgfSwKCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBvbi9vZmYgb3ZlcmxheSBoZWxwLgogICAgICovCiAgICBzZXRIZWxwTW9kZTogZnVuY3Rpb24gc2V0SGVscE1vZGUoaGVscE1vZGUpIHsKICAgICAgaWYgKGhlbHBNb2RlKSB7CiAgICAgICAgdGhpcy5pbkhlbHAgPSB0cnVlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaXRlbS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pbkhlbHAgPSBmYWxzZTsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGl0ZW0udmFsdWUgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBieSBzaG93UmVnaW9uVG9vbHRpcCBpbiB0aGUgY2FzZSB3aGVuIHRoZSB0b29sdGlwCiAgICAgKiBpcyBvdXQgb2Ygdmlldy4KICAgICAqLwogICAgZGlzcGxheVRvb2x0aXBPZk9iamVjdHNDYWxsYmFjazogZnVuY3Rpb24gZGlzcGxheVRvb2x0aXBPZk9iamVjdHNDYWxsYmFjayhuYW1lLCBvYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIHZhciBpbnN0YW5jZSA9IHRoaXM7CiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgaW5zdGFuY2UuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24oaW5zdGFuY2UuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2spOwogICAgICAgIGluc3RhbmNlLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrID0gdW5kZWZpbmVkOwogICAgICAgIGluc3RhbmNlLmRpc3BsYXlUb29sdGlwT2ZPYmplY3RzKG5hbWUsIG9iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpOwogICAgICB9OwogICAgfSwKICAgIGxpdmVVcGRhdGVUb29sdGlwUG9zaXRpb246IGZ1bmN0aW9uIGxpdmVVcGRhdGVUb29sdGlwUG9zaXRpb24oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2VsZWN0ZWRDZW50ZXIpIHsKICAgICAgICB0aGlzLnREYXRhLnggPSB0aGlzLiRtb2R1bGUuc2VsZWN0ZWRTY3JlZW5Db29yZGluYXRlcy54OwogICAgICAgIHRoaXMudERhdGEueSA9IHRoaXMuJG1vZHVsZS5zZWxlY3RlZFNjcmVlbkNvb3JkaW5hdGVzLnk7CiAgICAgIH0KICAgIH0sCiAgICBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0czogZnVuY3Rpb24gZGlzcGxheVRvb2x0aXBPZk9iamVjdHMobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAob2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgdmFyIGNvb3JkcyA9IG9iamVjdHNbMF0uZ2V0Q2xvc2VzdFZlcnRleERPTUVsZW1lbnRDb29yZHModGhpcy4kbW9kdWxlLnNjZW5lKTsKICAgICAgICBpZiAoY29vcmRzKSB7CiAgICAgICAgICAvL1RoZSBjb29yZHMgaXMgbm90IGluIHZpZXcsIHZpZXcgYWxsIGlmIHJlc2V0VmlldyBmbGFnIGlzIHRydWUKICAgICAgICAgIGlmICghY29vcmRzLmluVmlldykgewogICAgICAgICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgICAgICAgIGlmIChyZXNldFZpZXcpIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUudmlld0FsbCgpOwogICAgICAgICAgICAgIC8vVXNlIHRoZSBwb3N0IHJlbmRlciBjYWxsYmFjayB0byBtYWtlIHN1cmUgdGhlIHNjZW5lIGhhcyBiZWVuIHVwZGF0ZWQKICAgICAgICAgICAgICAvL2JlZm9yZSBnZXR0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcC4KICAgICAgICAgICAgICBpZiAodGhpcy4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjaykgewogICAgICAgICAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5yZW1vdmVQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjayA9IHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYWRkUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy5kaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrKG5hbWUsIG9iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy50RGF0YS52aXNpYmxlID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy50RGF0YS5sYWJlbCA9IG5hbWU7CiAgICAgICAgICAgIHRoaXMudERhdGEueCA9IGNvb3Jkcy5wb3NpdGlvbi54OwogICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBjb29yZHMucG9zaXRpb24ueTsKICAgICAgICAgICAgdGhpcy50RGF0YS5yZWdpb24gPSByZWdpb25QYXRoOwogICAgICAgICAgICBpZiAodGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuJF9saXZlQ29vcmRpbmF0ZXNVcGRhdGVkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobGl2ZVVwZGF0ZXMpIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0dXBMaXZlQ29vcmRpbmF0ZXMob2JqZWN0cyk7CiAgICAgICAgICAgICAgdGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQgPSB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmFkZFBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMubGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIERpc3BsYXkgdGhlIHRvb2x0aXAgdXNlZCBmb3IgZGlzcGxheWluZyBzZWFyY2ggcmVzdWx0LgogICAgICogV2hlbiByZXNldFZpZXcgaXMgc2V0IHRvIHRydWUsIGl0IHdpbGwKICAgICAqIHJlc2V0IHZpZXcgaWYgdGhlIHRvb2x0aXAgaXMgbm90IGluIHZpZXcuCiAgICAgKiBTZXR0aW5nIGxpdmVVcGRhdGVzIHRvIHRydWUgd2lsbCB1cGRhdGUgdGhlIHRvb2x0aXAgbG9jYXRpb24KICAgICAqIGF0IGV2ZXJ5IHJlbmRlcmluZyBsb29wLgogICAgICovCiAgICBzaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzOiBmdW5jdGlvbiBzaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKGxhYmVsLCB6aW5jT2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAobGFiZWwgJiYgemluY09iamVjdHMgJiYgemluY09iamVjdHMubGVuZ3RoID4gMCAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5VG9vbHRpcE9mT2JqZWN0cyhsYWJlbCwgemluY09iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpOwogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcC4gV2hlbiByZXNldFZpZXcgaXMgc2V0IHRvIHRydWUsIGl0IHdpbGwKICAgICAqIHJlc2V0IHZpZXcgaWYgdGhlIHRvb2x0aXAgaXMgbm90IGluIHZpZXcuCiAgICAgKiBTZXR0aW5nIGxpdmVVcGRhdGVzIHRvIHRydWUgd2lsbCB1cGRhdGUgdGhlIHRvb2x0aXAgbG9jYXRpb24KICAgICAqIGF0IGV2ZXJ5IHJlbmRlcmluZyBsb29wLgogICAgICovCiAgICBzaG93UmVnaW9uVG9vbHRpcDogZnVuY3Rpb24gc2hvd1JlZ2lvblRvb2x0aXAobmFtZSwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAobmFtZSAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgcm9vdFJlZ2lvbiA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRSb290UmVnaW9uKCk7CiAgICAgICAgdmFyIGdyb3VwcyA9IFtuYW1lXTsKICAgICAgICB2YXIgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICAgIHZhciByZWdpb25QYXRoID0gdW5kZWZpbmVkOwogICAgICAgIGlmIChvYmplY3RzICYmIG9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgcmVnaW9uUGF0aCA9IG9iamVjdHNbMF0uZ2V0UmVnaW9uKCkuZ2V0RnVsbFBhdGgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd1JlZ2lvblRvb2x0aXBXaXRoT2JqZWN0cyhuYW1lLCBvYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKTsKICAgICAgfQogICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIERpc3BsYXkgdGhlIHRvb2x0aXAgdXNpbmcgdGhlIGxpc3Qgb2YgYW5ub3RhdGlvbnMuCiAgICAgKiBXaGVuIHJlc2V0VmlldyBpcyBzZXQgdG8gdHJ1ZSwgaXQgd2lsbAogICAgICogcmVzZXQgdmlldyBpZiB0aGUgdG9vbHRpcCBpcyBub3QgaW4gdmlldy4KICAgICAqIFNldHRpbmcgbGl2ZVVwZGF0ZXMgdG8gdHJ1ZSB3aWxsIHVwZGF0ZSB0aGUgdG9vbHRpcCBsb2NhdGlvbgogICAgICogYXQgZXZlcnkgcmVuZGVyaW5nIGxvb3AuCiAgICAgKi8KICAgIHNob3dSZWdpb25Ub29sdGlwV2l0aEFubm90YXRpb25zOiBmdW5jdGlvbiBzaG93UmVnaW9uVG9vbHRpcFdpdGhBbm5vdGF0aW9ucyhhbm5vdGF0aW9ucywgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHJlc3VsdCA9IGdldE9iamVjdHNGcm9tQW5ub3RhdGlvbnModGhpcy4kbW9kdWxlLnNjZW5lLCBhbm5vdGF0aW9ucyk7CiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQub2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5zaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKHJlc3VsdC5sYWJlbCwgcmVzdWx0Lm9iamVjdHMsIHJlc3VsdC5yZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgaGlkZVJlZ2lvblRvb2x0aXA6IGZ1bmN0aW9uIGhpZGVSZWdpb25Ub29sdGlwKCkgewogICAgICBpZiAodGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuJF9saXZlQ29vcmRpbmF0ZXNVcGRhdGVkKTsKICAgICAgICAvL1Vuc2V0IHRoZSB0cmFja2luZwogICAgICAgIHRoaXMuJG1vZHVsZS5zZXR1cExpdmVDb29yZGluYXRlcyh1bmRlZmluZWQpOwogICAgICB9CiAgICAgIHRoaXMudERhdGEudmlzaWJsZSA9IGZhbHNlOwogICAgICB0aGlzLnREYXRhLnJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIFNldCB0aGUgbWFya2VyIG1vZGVzIGZvciBvYmplY3RzIHdpdGggdGhlIHByb3ZpZGVkIG5hbWUsIG1vZGUgY2FuCiAgICAgKiBiZSAib24iLCAib2ZmIiBvciAiaW5oZXJpdGVkIi4KICAgICAqLwogICAgc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZTogZnVuY3Rpb24gc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZShuYW1lLCBtb2RlKSB7CiAgICAgIGlmIChuYW1lICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgICB2YXIgZ3JvdXBzID0gW25hbWVdOwogICAgICAgIHZhciBvYmplY3RzID0gZmluZE9iamVjdHNXaXRoTmFtZXMocm9vdFJlZ2lvbiwgZ3JvdXBzLCAiIiwgdHJ1ZSk7CiAgICAgICAgb2JqZWN0cy5mb3JFYWNoKGZ1bmN0aW9uIChvYmplY3QpIHsKICAgICAgICAgIHJldHVybiBvYmplY3Quc2V0TWFya2VyTW9kZShtb2RlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBtYXJrZXIgbW9kZXMgZm9yIG9iamVjdHMgc3BlY2lmaWVkIGJ5IHRoZSBsaXN0IG9mIGFubm90YXRpb25zCiAgICAgKi8KICAgIHNldE1hcmtlck1vZGVXaXRoQW5ub3RhdGlvbnM6IGZ1bmN0aW9uIHNldE1hcmtlck1vZGVXaXRoQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMsIG1vZGUpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciByZXN1bHQgPSBnZXRPYmplY3RzRnJvbUFubm90YXRpb25zKHRoaXMuJG1vZHVsZS5zY2VuZSwgYW5ub3RhdGlvbnMpOwogICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lm9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgcmVzdWx0Lm9iamVjdHMuZm9yRWFjaChmdW5jdGlvbiAob2JqZWN0KSB7CiAgICAgICAgICAgIHJldHVybiBvYmplY3Quc2V0TWFya2VyTW9kZShtb2RlKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBtb3VzZSBjdXJzb3IgZW50ZXJzIHN1cHBvcnRlZCBlbGVtZW50cwogICAgICogd2l0aCBoZWxwIHRvb3RsdGlwcy4KICAgICAqLwogICAgc2hvd0hlbHBUZXh0OiBmdW5jdGlvbiBzaG93SGVscFRleHQoaGVscFRleHROdW1iZXIpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICB0aGlzLmhlbHBUZXh0V2FpdCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMzLmhvdmVyVmlzaWJpbGl0aWVzW2hlbHBUZXh0TnVtYmVyXS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBtb3VzZSBjdXJzb3IgZXhpdHMgc3VwcG9ydGVkIGVsZW1lbnQuLgogICAgICovCiAgICBoaWRlSGVscFRleHQ6IGZ1bmN0aW9uIGhpZGVIZWxwVGV4dChoZWxwVGV4dE51bWJlcikgewogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1toZWxwVGV4dE51bWJlcl0udmFsdWUgPSBmYWxzZTsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oZWxwVGV4dFdhaXQpOwogICAgICB9CiAgICB9LAogICAgc2VhcmNoOiBmdW5jdGlvbiBzZWFyY2godGV4dCwgZGlzcGxheUxhYmVsKSB7CiAgICAgIGlmICh0aGlzLiRfc2VhcmNoSW5kZXgpIHsKICAgICAgICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQgPT09ICIiIHx8IEFycmF5LmlzQXJyYXkodGV4dCkgJiYgdGV4dC5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHRoaXMub2JqZWN0U2VsZWN0ZWQoW10sIHRydWUpOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy4kX3NlYXJjaEluZGV4LnNlYXJjaEFuZFByb2Nlc3NSZXN1bHQodGV4dCk7CiAgICAgICAgICB2YXIgemluY09iamVjdHMgPSByZXN1bHQuemluY09iamVjdHM7CiAgICAgICAgICBpZiAoemluY09iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLm9iamVjdFNlbGVjdGVkKHppbmNPYmplY3RzLCB0cnVlKTsKICAgICAgICAgICAgaWYgKGRpc3BsYXlMYWJlbCkgewogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgemluY09iamVjdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmICh6aW5jT2JqZWN0c1tpXSAmJiB6aW5jT2JqZWN0c1tpXS5ncm91cE5hbWUpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5zaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKHJlc3VsdC5sYWJlbCwgemluY09iamVjdHMsIHJlc3VsdC5yZWdpb25QYXRoLCB0cnVlLCB0cnVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLm9iamVjdFNlbGVjdGVkKFtdLCB0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogR2V0IHRoZSBsaXN0IG9mIHN1Z2dlc3RlZCB0ZXJtcwogICAgICovCiAgICBmZXRjaFN1Z2dlc3Rpb25zOiBmdW5jdGlvbiBmZXRjaFN1Z2dlc3Rpb25zKHRlcm0pIHsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW107CiAgICAgIHJldHVybiB0aGlzLiRfc2VhcmNoSW5kZXguYXV0b19zdWdnZXN0KHRlcm0pOwogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGVkIHdoZW4gbWluaW1hcCBzZXR0aW5ncyBoYXMgY2hhbmdlZC4gUGFzcyB0aGUKICAgICAqIHBhcmFtZXRlcnMgdG8gWmluY0pTIGFuZCBtYXJrZWQgaXQgZm9yIHVwZGF0ZS4KICAgICAqLwogICAgdXBkYXRlTWluaW1hcFNjaXNzb3I6IGZ1bmN0aW9uIHVwZGF0ZU1pbmltYXBTY2lzc29yKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgT2JqZWN0LmtleXModGhpcy5taW5pbWFwU2V0dGluZ3MpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgIF90aGlzNC4kbW9kdWxlLnNjZW5lLm1pbmltYXBTY2lzc29yW2tleV0gPSBfdGhpczQubWluaW1hcFNldHRpbmdzW2tleV07CiAgICAgIH0pOwogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUubWluaW1hcFNjaXNzb3IudXBkYXRlUmVxdWlyZWQgPSB0cnVlOwogICAgfSwKICAgIHVwZGF0ZVNldHRpbmdzZnJvbVNjZW5lOiBmdW5jdGlvbiB1cGRhdGVTZXR0aW5nc2Zyb21TY2VuZSgpIHsKICAgICAgdGhpcy5jdXJyZW50U3BlZWQgPSAxOwogICAgICB0aGlzLiRtb2R1bGUuc2V0UGxheVJhdGUodGhpcy5kZWZhdWx0UmF0ZSk7CiAgICAgIHRoaXMub3JnaW5hbER1cmF0aW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE1ldGFkYXRhVGFnKCJPcmlnaW5hbER1cmF0aW9uIik7CiAgICAgIHRoaXMuYW5pbWF0ZUR1cmF0aW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE1ldGFkYXRhVGFnKCJEdXJhdGlvbiIpOwogICAgICB2YXIgdGltZVN0YW1wcyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRNZXRhZGF0YVRhZygiVGltZVN0YW1wcyIpOwogICAgICB0aGlzLnRpbWVTdGFtcHMgPSB7fTsKICAgICAgZm9yICh2YXIga2V5IGluIHRpbWVTdGFtcHMpIHsKICAgICAgICB0aGlzLnRpbWVTdGFtcHNbdGltZVN0YW1wc1trZXldXSA9IGtleTsKICAgICAgfQogICAgICB0aGlzLnRpbWVNYXggPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0RHVyYXRpb24oKTsKICAgIH0sCiAgICBzZXRVUkxGaW5pc2hDYWxsYmFjazogZnVuY3Rpb24gc2V0VVJMRmluaXNoQ2FsbGJhY2sob3B0aW9ucykgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAob3B0aW9ucykgewogICAgICAgICAgaWYgKG9wdGlvbnMudmlld3BvcnQpIHsKICAgICAgICAgICAgX3RoaXM1LiRtb2R1bGUuc2NlbmUuZ2V0WmluY0NhbWVyYUNvbnRyb2xzKCkuc2V0Q3VycmVudENhbWVyYVNldHRpbmdzKG9wdGlvbnMudmlld3BvcnQpOwogICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnZpZXdVUkwgJiYgb3B0aW9ucy52aWV3VVJMICE9PSAiIikgewogICAgICAgICAgICB2YXIgdXJsID0gbmV3IFVSTChvcHRpb25zLnZpZXdVUkwsIF90aGlzNS51cmwpOwogICAgICAgICAgICBfdGhpczUuJG1vZHVsZS5zY2VuZS5sb2FkVmlld1VSTCh1cmwpOwogICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnJlZ2lvbiAmJiBvcHRpb25zLnJlZ2lvbiAhPT0gIiIpIHsKICAgICAgICAgICAgX3RoaXM1LnZpZXdSZWdpb24ob3B0aW9ucy5yZWdpb24pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdGlvbnMudmlzaWJpbGl0eSkgewogICAgICAgICAgICAvLyBTb21lIFVJcyBtYXkgbm90IGJlIHJlYWR5IGF0IHRoaXMgdGltZS4KICAgICAgICAgICAgX3RoaXM1LiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgX3RoaXM1LiRyZWZzLnRyZWVDb250cm9scy5zZXRTdGF0ZShvcHRpb25zLnZpc2liaWxpdHkpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgX3RoaXM1LnVwZGF0ZVNldHRpbmdzZnJvbVNjZW5lKCk7CiAgICAgICAgX3RoaXM1LiRtb2R1bGUudXBkYXRlVGltZSgwLjAxKTsKICAgICAgICBfdGhpczUuJG1vZHVsZS51cGRhdGVUaW1lKDApOwogICAgICAgIF90aGlzNS4kbW9kdWxlLnVuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjaygpOwogICAgICAgIF90aGlzNS5hZGRSZWdpb25zVG9TZWFyY2hJbmRleCgpOwogICAgICAgIF90aGlzNS4kZW1pdCgib24tcmVhZHkiKTsKICAgICAgICBfdGhpczUuc2V0TWFya2VycygpOwogICAgICAgIF90aGlzNS5pc1JlYWR5ID0gdHJ1ZTsKICAgICAgfTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIGdldHRpbmcgdGhlIGN1cnJlbnQgc3RhdGVzIG9mIHRoZSBzY2VuZS4gVGhpcyBleHBvcnRlZCBzdGF0ZXMKICAgICAqIGNhbiBiZSBpbXBvcnRlZCB1c2luZyB0aGUgaW1wb3J0U3RhdGVzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGdldFN0YXRlOiBmdW5jdGlvbiBnZXRTdGF0ZSgpIHsKICAgICAgdmFyIHN0YXRlID0gewogICAgICAgIGZvcm1hdDogdGhpcy5maWxlRm9ybWF0LAogICAgICAgIHVybDogdGhpcy5fY3VycmVudFVSTCwKICAgICAgICB2aWV3cG9ydDogdW5kZWZpbmVkLAogICAgICAgIHZpc2liaWxpdHk6IHVuZGVmaW5lZAogICAgICB9OwogICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHN0YXRlLnZpc2liaWxpdHkgPSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5nZXRTdGF0ZSgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHppbmNDYW1lcmFDb250cm9scyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICBzdGF0ZS52aWV3cG9ydCA9IHppbmNDYW1lcmFDb250cm9scy5nZXRDdXJyZW50Vmlld3BvcnQoKTsKICAgICAgfQogICAgICByZXR1cm4gc3RhdGU7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB1c2VkIGZvciBpbXBvcnRpbmcgdGhlIHN0YXRlcyBvZiB0aGUgc2NlbmUuIFRoaXMgZXhwb3J0ZWQgc3RhdGVzCiAgICAgKiBjYW4gYmUgaW1wb3J0ZWQgdXNpbmcgdGhlIHJlYWQgc3RhdGVzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNldFN0YXRlOiBmdW5jdGlvbiBzZXRTdGF0ZShzdGF0ZSkgewogICAgICBpZiAoc3RhdGUpIHsKICAgICAgICBpZiAoc3RhdGUudXJsICYmIHN0YXRlLnVybCAhPT0gdGhpcy5fY3VycmVudFVSTCkgewogICAgICAgICAgdGhpcy5zZXRVUkxBbmRTdGF0ZShzdGF0ZS51cmwsIHsKICAgICAgICAgICAgZmlsZUZvcm1hdDogc3RhdGUuZmlsZUZvcm1hdCwKICAgICAgICAgICAgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LAogICAgICAgICAgICB2aXNpYmlsaXR5OiBzdGF0ZS52aXNpYmlsaXR5CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKHN0YXRlLnZpZXdwb3J0IHx8IHN0YXRlLnZpc2liaWxpdHkpIHsKICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKS5zZXRDdXJyZW50Q2FtZXJhU2V0dGluZ3Moc3RhdGUudmlld3BvcnQpOwogICAgICAgICAgICAgIGlmIChzdGF0ZS52aXNpYmlsaXR5KSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5zZXRTdGF0ZShzdGF0ZS52aXNpYmlsaXR5KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgICAgIHZpZXdwb3J0OiBzdGF0ZS52aWV3cG9ydCwKICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHN0YXRlLnZpc2liaWxpdHkKICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBleHBvcnRHTFRGOiBmdW5jdGlvbiBleHBvcnRHTFRGKGJpbmFyeSkgewogICAgICByZXR1cm4gdGhpcy4kbW9kdWxlLnNjZW5lLmV4cG9ydEdMVEYoYmluYXJ5KTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIHJlYWRpbmcgaW4gbmV3IHNjYWZmb2xkIG1ldGFkYXRhIGFuZCBhIGN1c3RvbQogICAgICogdmlld3BvcnQuIFRoaXMgZnVuY3Rpb24gd2lsbCBpZ25vcmUgdGhlIHN0YXRlIHByb3AgYW5kCiAgICAgKiByZWFkIGluIHRoZSBuZXcgdXJsLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc2V0VVJMQW5kU3RhdGU6IGZ1bmN0aW9uIHNldFVSTEFuZFN0YXRlKG5ld1ZhbHVlLCBzdGF0ZSkgewogICAgICBpZiAobmV3VmFsdWUgIT0gdGhpcy5fY3VycmVudFVSTCkgewogICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5mb3JtYXQpIHRoaXMuZmlsZUZvcm1hdCA9IHN0YXRlLmZvcm1hdDsKICAgICAgICB2YXIgdmlld3BvcnQgPSBzdGF0ZSAmJiBzdGF0ZS52aWV3cG9ydCA/IHN0YXRlLnZpZXdwb3J0IDogdW5kZWZpbmVkOwogICAgICAgIHZhciB2aXNpYmlsaXR5ID0gc3RhdGUgJiYgc3RhdGUudmlzaWJpbGl0eSA/IHN0YXRlLnZpc2liaWxpdHkgOiB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5fY3VycmVudFVSTCA9IG5ld1ZhbHVlOwogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2xlYXIoKTsKICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAgIHRoaXMuaXNSZWFkeSA9IGZhbHNlOwogICAgICAgIHRoaXMuJF9zZWFyY2hJbmRleC5yZW1vdmVBbGwoKTsKICAgICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2sodGhpcy5zZXRVUkxGaW5pc2hDYWxsYmFjayh7CiAgICAgICAgICB2aWV3cG9ydDogdmlld3BvcnQsCiAgICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLAogICAgICAgICAgdmlld1VSTDogdGhpcy52aWV3VVJMLAogICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJpbGl0eQogICAgICAgIH0pKTsKICAgICAgICBpZiAodGhpcy5maWxlRm9ybWF0ID09PSAiZ2x0ZiIpIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5sb2FkR0xURkZyb21VUkwobmV3VmFsdWUsICJzY2VuZSIsIHRydWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUubG9hZE9yZ2Fuc0Zyb21VUkwobmV3VmFsdWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAic2NlbmUiLCB1bmRlZmluZWQsIHRydWUpOwogICAgICAgIH0KICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1hcmtlcnMgPSB0aGlzLmRpc3BsYXlNYXJrZXJzOwogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5mb3JjZVBpY2thYmxlT2JqZWN0c1VwZGF0ZSA9IHRydWU7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmRpc3BsYXlNaW5pbWFwID0gdGhpcy5kaXNwbGF5TWluaW1hcDsKICAgICAgICB0aGlzLnVwZGF0ZU1pbmltYXBTY2lzc29yKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIHJlYWRpbmcgaW4gbmV3IHNjYWZmb2xkIG1ldGFkYXRhLiBUaGlzIGZ1bmN0aW9uIHdpbGwgaWdub3JlCiAgICAgKiB0aGUgc3RhdGUgcHJvcCBhbmQgcmVhZCBpbiB0aGUgbmV3IHVybC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNldFVSTDogZnVuY3Rpb24gc2V0VVJMKG5ld1ZhbHVlKSB7CiAgICAgIHRoaXMuc2V0VVJMQW5kU3RhdGUobmV3VmFsdWUsIHVuZGVmaW5lZCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB3aGVuIGRyYXdlciBpcyB0b2dnbGVkLgogICAgICovCiAgICBkcmF3ZXJUb2dnbGVkOiBmdW5jdGlvbiBkcmF3ZXJUb2dnbGVkKGZsYWcpIHsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gZmxhZzsKICAgICAgdGhpcy5hZGp1c3RMYXlvdXQoKTsKICAgIH0sCiAgICAvKioKICAgICAqIENhbGxiYWNrIHVzaW5nIFJlc2l6ZU9ic2VydmVyLgogICAgICovCiAgICBhZGp1c3RMYXlvdXQ6IGZ1bmN0aW9uIGFkanVzdExheW91dCgpIHsKICAgICAgdmFyIHdpZHRoID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5jbGllbnRXaWR0aDsKICAgICAgdGhpcy5taW5pbWlzZWRTbGlkZXIgPSB3aWR0aCA8IDgxMjsKICAgICAgaWYgKHRoaXMubWluaW1pc2VkU2xpZGVyKSB7CiAgICAgICAgdGhpcy5zbGlkZXJQb3NpdGlvbiA9IHRoaXMuZHJhd2VyT3BlbiA/ICJyaWdodCIgOiAibGVmdCI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zbGlkZXJQb3NpdGlvbiA9ICIiOwogICAgICB9CiAgICB9LAogICAgdG9nZ2xlUmVuZGVyaW5nOiBmdW5jdGlvbiB0b2dnbGVSZW5kZXJpbmcoZmxhZykgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIGlmIChmbGFnKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmFuaW1hdGUoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5zdG9wQW5pbWF0ZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGZvcmNlUmVzaXplOiBmdW5jdGlvbiBmb3JjZVJlc2l6ZSgpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLm9uV2luZG93UmVzaXplKCk7CiAgICAgIH0KICAgIH0sCiAgICBzeW5jQ29udHJvbENhbGxiYWNrOiBmdW5jdGlvbiBzeW5jQ29udHJvbENhbGxiYWNrKCkgewogICAgICB2YXIgcGF5bG9hZCA9IHRoaXMuJG1vZHVsZS5ORENDYW1lcmFDb250cm9sLmdldFBhblpvb20oKTsKICAgICAgaWYgKHRoaXMudERhdGEudmlzaWJsZSkgewogICAgICAgIHRoaXMuc2hvd1JlZ2lvblRvb2x0aXAodGhpcy50RGF0YS5sYWJlbCwgdHJ1ZSwgdHJ1ZSk7CiAgICAgIH0KICAgICAgdGhpcy4kZW1pdCgic2NhZmZvbGQtbmF2aWdhdGVkIiwgcGF5bG9hZCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBSb3RhdGUgbW9kZSAtICJub25lIiwgImhvcml6b250YWwiLCAidmVydGljYWwiLCAiZnJlZSIgYnV0CiAgICAgKiBpdCB3aWxsIGJlIGlnbm9yZWQgaWYgZmxhZyBpcyBzZXQgdG8gZmFsc2UuCiAgICAgKi8KICAgIHRvZ2dsZVN5bmNDb250cm9sOiBmdW5jdGlvbiB0b2dnbGVTeW5jQ29udHJvbChmbGFnLCByb3RhdGVNb2RlKSB7CiAgICAgIHRoaXMuJG1vZHVsZS50b2dnbGVTeW5jQ29udHJvbChmbGFnLCByb3RhdGVNb2RlKTsKICAgICAgdGhpcy4kbW9kdWxlLnNldFN5bmNDb250cm9sQ2FsbGJhY2sodGhpcy5zeW5jQ29udHJvbENhbGxiYWNrKTsKICAgIH0sCiAgICAvKioKICAgICAqIFNldCB0aGUgbWFya2VycyBmb3IgdGhlIHNjZW5lLgogICAgICovCiAgICBzZXRNYXJrZXJzOiBmdW5jdGlvbiBzZXRNYXJrZXJzKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy5tYXJrZXJMYWJlbHMuZm9yRWFjaChmdW5jdGlvbiAobCkgewogICAgICAgIF90aGlzNi5zZXRNYXJrZXJNb2RlRm9yT2JqZWN0c1dpdGhOYW1lKGwsICJvbiIpOwogICAgICB9KTsKICAgIH0KICB9Cn07"},{"version":3,"names":["Vue","PrimitiveControls","ScaffoldTooltip","TreeControls","MapSvgIcon","MapSvgSpriteColor","findObjectsWithNames","getObjectsFromAnnotations","SearchIndex","lang","locale","use","_Button","_Col","_Loading","directive","_Option","_Popover","_Row","_Select","_Slider","_TabPane","_Tabs","OrgansViewer","require","EventNotifier","name","components","props","url","type","String","default","showColourPicker","Boolean","displayUI","displayAtStartUp","helpMode","displayWarning","warningMessage","displayLatestChanges","latestChangesMessage","displayMarkers","markerLabels","Array","_default","displayMinimap","format","minimapSettings","Object","x_offset","y_offset","width","height","align","enableOpenMapUI","openMapOptions","display","key","state","undefined","region","viewURL","render","data","sceneData","$module","isPlaying","isReady","isTransitioning","tooltipAppendToBody","hoverVisibilities","value","inHelp","loading","duration","drawerOpen","currentBackground","availableBackground","minimisedSlider","sliderPosition","timeMax","orginalDuration","animateDuration","playSpeed","label","currentSpeed","timeStamps","defaultCheckedKeys","tData","visible","x","y","fileFormat","previousMarkerLabels","watch","handler","immediate","newValue","setURL","setFocusedRegion","setState","deep","updateViewURL","val","setHelpMode","scene","forcePickableObjectsUpdate","sceneDataCurrentTime","$emit","currentTime","setDuration","toggleRendering","labels","_this","forEach","pml","setMarkerModeForObjectsWithName","l","beforeCreate","selectedObjects","hoveredObjects","_currentURL","$_searchIndex","mounted","$refs","treeControls","setModule","eventNotifier","subscribe","eventNotifierCallback","addNotifier","addOrganPartAddedCallback","zincObjectAdded","initialiseRenderer","ro","ResizeObserver","adjustLayout","observe","scaffoldContainer","defaultRate","getPlayRate","beforeDestroy","disconnect","destroy","methods","addZincObject","zincObject","uuid","addRegionsToSearchIndex","_this2","rootRegion","getRootRegion","regions","getChildRegions","addRegion","backgroundChangeCallback","colour","zincRenderer","getThreeJSRenderer","setClearColor","captureScreenshotCallback","removePostRenderCallbackFunction","captureID","screenshot","domElement","toDataURL","hrefElement","document","createElement","body","append","captureFilename","download","href","click","remove","captureScreenshot","filename","addPostRenderCallbackFunction","clearScene","clear","removeAll","clearAll","formatTooltip","sec","toFixed","min","fitWindow","viewAll","zoomIn","changeZoomByScrollRateUnit","zoomOut","speedChanged","speed","setPlayRate","stopFreeSpin","cameracontrol","getZincCameraControls","stopAutoTumble","findObjectsWithGroupName","objects","viewRegion","names","groups","isArray","box","getBoundingBoxOfZincObjects","isSyncControl","setSyncControlZoomToBox","dist","camera","far","near","viewAllWithBoundingBox","updateProjectionMatrix","setFinishDownloadCallback","setURLFinishCallback","URL","loadViewURL","getRendererInfo","info","freeSpin","enableAutoTumble","autoTumble","Math","PI","setTimeout","event","zincObjects","eventType","identifiers","identifier","id","group","push","length","updateActiveUI","hideRegionTooltip","removeActive","updateHoverUI","removeHover","coords","offsets","getBoundingClientRect","left","top","getCoordinatesOfSelected","getObjectsScreenXY","getDynamicSelectedCoordinates","selectedScreenCoordinates","timeChange","normalizedTime","updateTime","objectSelected","propagate","primitiveControls","setObject","setSelectedByZincObjects","objectHovered","setHighlightedByZincObjects","changeActiveByName","array","changeActiveByNames","changeHighlightedByName","changeHoverByNames","play","flag","playAnimation","item","displayTooltipOfObjectsCallback","regionPath","resetView","liveUpdates","instance","$_regionTooltipCallback","displayTooltipOfObjects","liveUpdateTooltipPosition","selectedCenter","getClosestVertexDOMElementCoords","inView","position","$_liveCoordinatesUpdated","setupLiveCoordinates","showRegionTooltipWithObjects","showRegionTooltip","getRegion","getFullPath","showRegionTooltipWithAnnotations","annotations","result","mode","object","setMarkerMode","setMarkerModeWithAnnotations","showHelpText","helpTextNumber","_this3","helpTextWait","hideHelpText","clearTimeout","search","text","displayLabel","searchAndProcessResult","i","groupName","fetchSuggestions","term","auto_suggest","updateMinimapScissor","_this4","keys","minimapScissor","updateRequired","updateSettingsfromScene","getMetadataTag","getDuration","options","_this5","viewport","setCurrentCameraSettings","visibility","$nextTick","unsetFinishDownloadCallback","setMarkers","getState","zincCameraControls","getCurrentViewport","setURLAndState","exportGLTF","binary","loadGLTFFromURL","loadOrgansFromURL","drawerToggled","clientWidth","animate","stopAnimate","forceResize","onWindowResize","syncControlCallback","payload","NDCCameraControl","getPanZoom","toggleSyncControl","rotateMode","setSyncControlCallback","_this6"],"sources":["node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue"],"sourcesContent":["\n \n \n \n \n \n \n \n Beta\n \n \n \n What's new?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Original duration:\n \n {{ orginalDuration }}\n \n \n \n Animation duration:\n \n {{ animateDuration }}\n \n \n \n Playback speed\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Fit to\n \n window\n \n \n \n \n \n \n \n {{ item.display }}\n \n \n \n \n Change background \n \n \n \n \n \n \n \n 0\"\n slot=\"reference\"\n v-popover:open-map-popover\n icon=\"openMap\"\n class=\"icon-button\"\n @mouseover.native=\"showHelpText(8)\"\n @mouseout.native=\"hideHelpText(8)\"\n />\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuTA;AACA,OAAAA,GAAA;AACA,OAAAC,iBAAA;AACA,OAAAC,eAAA;AACA,OAAAC,YAAA;AACA,SAAAC,UAAA,EAAAC,iBAAA;AACA,SAAAC,oBAAA,EAAAC,yBAAA;AACA,SAAAC,WAAA;AAaA,OAAAC,IAAA;AACA,OAAAC,MAAA;AAEAA,MAAA,CAAAC,GAAA,CAAAF,IAAA;AACAT,GAAA,CAAAW,GAAA,CAAAC,OAAA;AACAZ,GAAA,CAAAW,GAAA,CAAAE,IAAA;AACAb,GAAA,CAAAW,GAAA,CAAAG,QAAA,CAAAC,SAAA;AACAf,GAAA,CAAAW,GAAA,CAAAK,OAAA;AACAhB,GAAA,CAAAW,GAAA,CAAAM,QAAA;AACAjB,GAAA,CAAAW,GAAA,CAAAO,IAAA;AACAlB,GAAA,CAAAW,GAAA,CAAAQ,OAAA;AACAnB,GAAA,CAAAW,GAAA,CAAAS,OAAA;AACApB,GAAA,CAAAW,GAAA,CAAAU,QAAA;AACArB,GAAA,CAAAW,GAAA,CAAAW,KAAA;AAEA,IAAAC,YAAA,GAAAC,OAAA,8BAAAD,YAAA;AACA,IAAAE,aAAA,GAAAD,OAAA,6BAAAC,aAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACAC,IAAA;EACAC,UAAA;IACAvB,UAAA,EAAAA,UAAA;IACAC,iBAAA,EAAAA,iBAAA;IACAJ,iBAAA,EAAAA,iBAAA;IACAC,eAAA,EAAAA,eAAA;IACAC,YAAA,EAAAA;EACA;EACAyB,KAAA;IACA;AACA;AACA;AACA;AACA;AACA;IACAC,GAAA;MACAC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAC,gBAAA;MACAH,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAG,SAAA;MACAL,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACAI,gBAAA;MACAN,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAK,QAAA;MACAP,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAM,cAAA;MACAR,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;IACAO,cAAA;MACAT,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACAQ,oBAAA;MACAV,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAS,oBAAA;MACAX,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAU,cAAA;MACAZ,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAW,YAAA;MACAb,IAAA,EAAAc,KAAA;MACAZ,OAAA,WAAAa,SAAA;QACA;MACA;IACA;IACA;AACA;AACA;IACAC,cAAA;MACAhB,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAe,MAAA;MACAjB,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAgB,eAAA;MACAlB,IAAA,EAAAmB,MAAA;MACAjB,OAAA,WAAAa,SAAA;QACA;UACAK,QAAA;UACAC,QAAA;UACAC,KAAA;UACAC,MAAA;UACAC,KAAA;QACA;MACA;IACA;IACA;AACA;AACA;AACA;IACAC,eAAA;MACAzB,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAwB,cAAA;MACA1B,IAAA,EAAAc,KAAA;MACAZ,OAAA,WAAAa,SAAA;QACA,QACA;UACAY,OAAA;UACAC,GAAA;QACA,GACA;UACAD,OAAA;UACAC,GAAA;QACA,GACA;UACAD,OAAA;UACAC,GAAA;QACA,EACA;MACA;IACA;IACA;AACA;AACA;IACAC,KAAA;MACA7B,IAAA,EAAAmB,MAAA;MACAjB,OAAA,EAAA4B;IACA;IACA;AACA;AACA;AACA;IACAC,MAAA;MACA/B,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACA8B,OAAA;MACAhC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACA+B,MAAA;MACAjC,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;EACA;EACAgC,IAAA,WAA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"}]}