| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/element-ui/lib/progress.js","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/element-ui/lib/progress.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:cmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbCIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5kZXNjcmlwdGlvbiIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC50by1zdHJpbmctdGFnIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0Iik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5kZXgtb2YiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi50by1zdHJpbmctdGFnIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMubWF0aC50by1zdHJpbmctdGFnIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLnRvLWZpeGVkIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZyIpOwoKdmFyIF90eXBlb2YgPSByZXF1aXJlKCIvdXNyL2xvY2FsL2RldmVsb3AvcGhwL3d3dy93YWliYW8vcHJvamVjdC9OTjIwMjAwNjA4MDEvYWRkb25zL2FkbWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZiIpOwoKbW9kdWxlLmV4cG9ydHMgPQovKioqKioqLwpmdW5jdGlvbiAobW9kdWxlcykgewogIC8vIHdlYnBhY2tCb290c3RyYXAKCiAgLyoqKioqKi8KICAvLyBUaGUgbW9kdWxlIGNhY2hlCgogIC8qKioqKiovCiAgdmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTsKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uCgogIC8qKioqKiovCgogIGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHsKICAgIC8qKioqKiovCgogICAgLyoqKioqKi8KICAgIC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZQoKICAgIC8qKioqKiovCiAgICBpZiAoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHsKICAgICAgLyoqKioqKi8KICAgICAgcmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7CiAgICAgIC8qKioqKiovCiAgICB9CiAgICAvKioqKioqLwogICAgLy8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSkKCiAgICAvKioqKioqLwoKCiAgICB2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7CiAgICAgIC8qKioqKiovCiAgICAgIGk6IG1vZHVsZUlkLAoKICAgICAgLyoqKioqKi8KICAgICAgbDogZmFsc2UsCgogICAgICAvKioqKioqLwogICAgICBleHBvcnRzOiB7fQogICAgICAvKioqKioqLwoKICAgIH07CiAgICAvKioqKioqLwoKICAgIC8qKioqKiovCiAgICAvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb24KCiAgICAvKioqKioqLwoKICAgIG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pOwogICAgLyoqKioqKi8KCiAgICAvKioqKioqLwogICAgLy8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZAoKICAgIC8qKioqKiovCgogICAgbW9kdWxlLmwgPSB0cnVlOwogICAgLyoqKioqKi8KCiAgICAvKioqKioqLwogICAgLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGUKCiAgICAvKioqKioqLwoKICAgIHJldHVybiBtb2R1bGUuZXhwb3J0czsKICAgIC8qKioqKiovCiAgfQogIC8qKioqKiovCgogIC8qKioqKiovCgogIC8qKioqKiovCiAgLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXykKCiAgLyoqKioqKi8KCgogIF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7CiAgLyoqKioqKi8KCiAgLyoqKioqKi8KICAvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZQoKICAvKioqKioqLwoKICBfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzOwogIC8qKioqKiovCgogIC8qKioqKiovCiAgLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzCgogIC8qKioqKiovCgogIF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uIChleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHsKICAgIC8qKioqKiovCiAgICBpZiAoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkgewogICAgICAvKioqKioqLwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgewogICAgICAgIGVudW1lcmFibGU6IHRydWUsCiAgICAgICAgZ2V0OiBnZXR0ZXIKICAgICAgfSk7CiAgICAgIC8qKioqKiovCiAgICB9CiAgICAvKioqKioqLwoKICB9OwogIC8qKioqKiovCgogIC8qKioqKiovCiAgLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0cwoKICAvKioqKioqLwoKCiAgX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24gKGV4cG9ydHMpIHsKICAgIC8qKioqKiovCiAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7CiAgICAgIC8qKioqKiovCiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsKICAgICAgICB2YWx1ZTogJ01vZHVsZScKICAgICAgfSk7CiAgICAgIC8qKioqKiovCiAgICB9CiAgICAvKioqKioqLwoKCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7CiAgICAgIHZhbHVlOiB0cnVlCiAgICB9KTsKICAgIC8qKioqKiovCiAgfTsKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdAoKICAvKioqKioqLwogIC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdAoKICAvKioqKioqLwogIC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBucwoKICAvKioqKioqLwogIC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdAoKICAvKioqKioqLwogIC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmUKCiAgLyoqKioqKi8KCgogIF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uICh2YWx1ZSwgbW9kZSkgewogICAgLyoqKioqKi8KICAgIGlmIChtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTsKICAgIC8qKioqKiovCgogICAgaWYgKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7CiAgICAvKioqKioqLwoKICAgIGlmIChtb2RlICYgNCAmJiBfdHlwZW9mKHZhbHVlKSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlOwogICAgLyoqKioqKi8KCiAgICB2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgLyoqKioqKi8KCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpOwogICAgLyoqKioqKi8KCgogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsKICAgICAgZW51bWVyYWJsZTogdHJ1ZSwKICAgICAgdmFsdWU6IHZhbHVlCiAgICB9KTsKICAgIC8qKioqKiovCgogICAgaWYgKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7CiAgICAgIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgcmV0dXJuIHZhbHVlW2tleV07CiAgICAgIH0uYmluZChudWxsLCBrZXkpKTsKICAgIH0KICAgIC8qKioqKiovCgogICAgcmV0dXJuIG5zOwogICAgLyoqKioqKi8KICB9OwogIC8qKioqKiovCgogIC8qKioqKiovCiAgLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXMKCiAgLyoqKioqKi8KCgogIF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uIChtb2R1bGUpIHsKICAgIC8qKioqKiovCiAgICB2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID8KICAgIC8qKioqKiovCiAgICBmdW5jdGlvbiBnZXREZWZhdWx0KCkgewogICAgICByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107CiAgICB9IDoKICAgIC8qKioqKiovCiAgICBmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgewogICAgICByZXR1cm4gbW9kdWxlOwogICAgfTsKICAgIC8qKioqKiovCgogICAgX193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpOwogICAgLyoqKioqKi8KCgogICAgcmV0dXJuIGdldHRlcjsKICAgIC8qKioqKiovCiAgfTsKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbAoKICAvKioqKioqLwoKCiAgX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24gKG9iamVjdCwgcHJvcGVydHkpIHsKICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7CiAgfTsKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fCgogIC8qKioqKiovCgoKICBfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSAiL2Rpc3QvIjsKICAvKioqKioqLwoKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0cwoKICAvKioqKioqLwoKICByZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMTkpOwogIC8qKioqKiovCn0oCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKioqKioqLwp7CiAgLyoqKi8KICAwOgogIC8qKiovCiAgZnVuY3Rpb24gXyhtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIC8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLwoKICAgIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYSIsIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIG5vcm1hbGl6ZUNvbXBvbmVudDsKICAgIH0pOwogICAgLyogZ2xvYmFscyBfX1ZVRV9TU1JfQ09OVEVYVF9fICovCiAgICAvLyBJTVBPUlRBTlQ6IERvIE5PVCB1c2UgRVMyMDE1IGZlYXR1cmVzIGluIHRoaXMgZmlsZSAoZXhjZXB0IGZvciBtb2R1bGVzKS4KICAgIC8vIFRoaXMgbW9kdWxlIGlzIGEgcnVudGltZSB1dGlsaXR5IGZvciBjbGVhbmVyIGNvbXBvbmVudCBtb2R1bGUgb3V0cHV0IGFuZCB3aWxsCiAgICAvLyBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgd2VicGFjayB1c2VyIGJ1bmRsZS4KCgogICAgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50KHNjcmlwdEV4cG9ydHMsIHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCBmdW5jdGlvbmFsVGVtcGxhdGUsIGluamVjdFN0eWxlcywgc2NvcGVJZCwgbW9kdWxlSWRlbnRpZmllciwKICAgIC8qIHNlcnZlciBvbmx5ICovCiAgICBzaGFkb3dNb2RlCiAgICAvKiB2dWUtY2xpIG9ubHkgKi8KICAgICkgewogICAgICAvLyBWdWUuZXh0ZW5kIGNvbnN0cnVjdG9yIGV4cG9ydCBpbnRlcm9wCiAgICAgIHZhciBvcHRpb25zID0gdHlwZW9mIHNjcmlwdEV4cG9ydHMgPT09ICdmdW5jdGlvbicgPyBzY3JpcHRFeHBvcnRzLm9wdGlvbnMgOiBzY3JpcHRFeHBvcnRzOyAvLyByZW5kZXIgZnVuY3Rpb25zCgogICAgICBpZiAocmVuZGVyKSB7CiAgICAgICAgb3B0aW9ucy5yZW5kZXIgPSByZW5kZXI7CiAgICAgICAgb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBzdGF0aWNSZW5kZXJGbnM7CiAgICAgICAgb3B0aW9ucy5fY29tcGlsZWQgPSB0cnVlOwogICAgICB9IC8vIGZ1bmN0aW9uYWwgdGVtcGxhdGUKCgogICAgICBpZiAoZnVuY3Rpb25hbFRlbXBsYXRlKSB7CiAgICAgICAgb3B0aW9ucy5mdW5jdGlvbmFsID0gdHJ1ZTsKICAgICAgfSAvLyBzY29wZWRJZAoKCiAgICAgIGlmIChzY29wZUlkKSB7CiAgICAgICAgb3B0aW9ucy5fc2NvcGVJZCA9ICdkYXRhLXYtJyArIHNjb3BlSWQ7CiAgICAgIH0KCiAgICAgIHZhciBob29rOwoKICAgICAgaWYgKG1vZHVsZUlkZW50aWZpZXIpIHsKICAgICAgICAvLyBzZXJ2ZXIgYnVpbGQKICAgICAgICBob29rID0gZnVuY3Rpb24gaG9vayhjb250ZXh0KSB7CiAgICAgICAgICAvLyAyLjMgaW5qZWN0aW9uCiAgICAgICAgICBjb250ZXh0ID0gY29udGV4dCB8fCAvLyBjYWNoZWQgY2FsbAogICAgICAgICAgdGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dCB8fCAvLyBzdGF0ZWZ1bAogICAgICAgICAgdGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuJHZub2RlICYmIHRoaXMucGFyZW50LiR2bm9kZS5zc3JDb250ZXh0OyAvLyBmdW5jdGlvbmFsCiAgICAgICAgICAvLyAyLjIgd2l0aCBydW5Jbk5ld0NvbnRleHQ6IHRydWUKCiAgICAgICAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIF9fVlVFX1NTUl9DT05URVhUX18gIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIGNvbnRleHQgPSBfX1ZVRV9TU1JfQ09OVEVYVF9fOwogICAgICAgICAgfSAvLyBpbmplY3QgY29tcG9uZW50IHN0eWxlcwoKCiAgICAgICAgICBpZiAoaW5qZWN0U3R5bGVzKSB7CiAgICAgICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIGNvbnRleHQpOwogICAgICAgICAgfSAvLyByZWdpc3RlciBjb21wb25lbnQgbW9kdWxlIGlkZW50aWZpZXIgZm9yIGFzeW5jIGNodW5rIGluZmVycmVuY2UKCgogICAgICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMpIHsKICAgICAgICAgICAgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG1vZHVsZUlkZW50aWZpZXIpOwogICAgICAgICAgfQogICAgICAgIH07IC8vIHVzZWQgYnkgc3NyIGluIGNhc2UgY29tcG9uZW50IGlzIGNhY2hlZCBhbmQgYmVmb3JlQ3JlYXRlCiAgICAgICAgLy8gbmV2ZXIgZ2V0cyBjYWxsZWQKCgogICAgICAgIG9wdGlvbnMuX3NzclJlZ2lzdGVyID0gaG9vazsKICAgICAgfSBlbHNlIGlmIChpbmplY3RTdHlsZXMpIHsKICAgICAgICBob29rID0gc2hhZG93TW9kZSA/IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIHRoaXMuJHJvb3QuJG9wdGlvbnMuc2hhZG93Um9vdCk7CiAgICAgICAgfSA6IGluamVjdFN0eWxlczsKICAgICAgfQoKICAgICAgaWYgKGhvb2spIHsKICAgICAgICBpZiAob3B0aW9ucy5mdW5jdGlvbmFsKSB7CiAgICAgICAgICAvLyBmb3IgdGVtcGxhdGUtb25seSBob3QtcmVsb2FkIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSByZW5kZXIgZm4gZG9lc24ndAogICAgICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsaXplcgogICAgICAgICAgb3B0aW9ucy5faW5qZWN0U3R5bGVzID0gaG9vazsgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9hbCBjb21wb25lbnQgaW4gdnVlIGZpbGUKCiAgICAgICAgICB2YXIgb3JpZ2luYWxSZW5kZXIgPSBvcHRpb25zLnJlbmRlcjsKCiAgICAgICAgICBvcHRpb25zLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcldpdGhTdHlsZUluamVjdGlvbihoLCBjb250ZXh0KSB7CiAgICAgICAgICAgIGhvb2suY2FsbChjb250ZXh0KTsKICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVuZGVyKGgsIGNvbnRleHQpOwogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCByZWdpc3RyYXRpb24gYXMgYmVmb3JlQ3JlYXRlIGhvb2sKICAgICAgICAgIHZhciBleGlzdGluZyA9IG9wdGlvbnMuYmVmb3JlQ3JlYXRlOwogICAgICAgICAgb3B0aW9ucy5iZWZvcmVDcmVhdGUgPSBleGlzdGluZyA/IFtdLmNvbmNhdChleGlzdGluZywgaG9vaykgOiBbaG9va107CiAgICAgICAgfQogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGV4cG9ydHM6IHNjcmlwdEV4cG9ydHMsCiAgICAgICAgb3B0aW9uczogb3B0aW9ucwogICAgICB9OwogICAgfQogICAgLyoqKi8KCiAgfSwKCiAgLyoqKi8KICAxMTk6CiAgLyoqKi8KICBmdW5jdGlvbiBfKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykgewogICAgInVzZSBzdHJpY3QiOwoKICAgIF9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKTsgLy8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9wYWNrYWdlcy9wcm9ncmVzcy9zcmMvcHJvZ3Jlc3MudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIyOWVlNDA2JgoKCiAgICB2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkgewogICAgICB2YXIgX3ZtID0gdGhpczsKCiAgICAgIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudDsKCiAgICAgIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaDsKCiAgICAgIHJldHVybiBfYygiZGl2IiwgewogICAgICAgIHN0YXRpY0NsYXNzOiAiZWwtcHJvZ3Jlc3MiLAogICAgICAgIGNsYXNzOiBbImVsLXByb2dyZXNzLS0iICsgX3ZtLnR5cGUsIF92bS5zdGF0dXMgPyAiaXMtIiArIF92bS5zdGF0dXMgOiAiIiwgewogICAgICAgICAgImVsLXByb2dyZXNzLS13aXRob3V0LXRleHQiOiAhX3ZtLnNob3dUZXh0LAogICAgICAgICAgImVsLXByb2dyZXNzLS10ZXh0LWluc2lkZSI6IF92bS50ZXh0SW5zaWRlCiAgICAgICAgfV0sCiAgICAgICAgYXR0cnM6IHsKICAgICAgICAgIHJvbGU6ICJwcm9ncmVzc2JhciIsCiAgICAgICAgICAiYXJpYS12YWx1ZW5vdyI6IF92bS5wZXJjZW50YWdlLAogICAgICAgICAgImFyaWEtdmFsdWVtaW4iOiAiMCIsCiAgICAgICAgICAiYXJpYS12YWx1ZW1heCI6ICIxMDAiCiAgICAgICAgfQogICAgICB9LCBbX3ZtLnR5cGUgPT09ICJsaW5lIiA/IF9jKCJkaXYiLCB7CiAgICAgICAgc3RhdGljQ2xhc3M6ICJlbC1wcm9ncmVzcy1iYXIiCiAgICAgIH0sIFtfYygiZGl2IiwgewogICAgICAgIHN0YXRpY0NsYXNzOiAiZWwtcHJvZ3Jlc3MtYmFyX19vdXRlciIsCiAgICAgICAgc3R5bGU6IHsKICAgICAgICAgIGhlaWdodDogX3ZtLnN0cm9rZVdpZHRoICsgInB4IgogICAgICAgIH0KICAgICAgfSwgW19jKCJkaXYiLCB7CiAgICAgICAgc3RhdGljQ2xhc3M6ICJlbC1wcm9ncmVzcy1iYXJfX2lubmVyIiwKICAgICAgICBzdHlsZTogX3ZtLmJhclN0eWxlCiAgICAgIH0sIFtfdm0uc2hvd1RleHQgJiYgX3ZtLnRleHRJbnNpZGUgPyBfYygiZGl2IiwgewogICAgICAgIHN0YXRpY0NsYXNzOiAiZWwtcHJvZ3Jlc3MtYmFyX19pbm5lclRleHQiCiAgICAgIH0sIFtfdm0uX3YoX3ZtLl9zKF92bS5jb250ZW50KSldKSA6IF92bS5fZSgpXSldKV0pIDogX2MoImRpdiIsIHsKICAgICAgICBzdGF0aWNDbGFzczogImVsLXByb2dyZXNzLWNpcmNsZSIsCiAgICAgICAgc3R5bGU6IHsKICAgICAgICAgIGhlaWdodDogX3ZtLndpZHRoICsgInB4IiwKICAgICAgICAgIHdpZHRoOiBfdm0ud2lkdGggKyAicHgiCiAgICAgICAgfQogICAgICB9LCBbX2MoInN2ZyIsIHsKICAgICAgICBhdHRyczogewogICAgICAgICAgdmlld0JveDogIjAgMCAxMDAgMTAwIgogICAgICAgIH0KICAgICAgfSwgW19jKCJwYXRoIiwgewogICAgICAgIHN0YXRpY0NsYXNzOiAiZWwtcHJvZ3Jlc3MtY2lyY2xlX190cmFjayIsCiAgICAgICAgc3R5bGU6IF92bS50cmFpbFBhdGhTdHlsZSwKICAgICAgICBhdHRyczogewogICAgICAgICAgZDogX3ZtLnRyYWNrUGF0aCwKICAgICAgICAgIHN0cm9rZTogIiNlNWU5ZjIiLAogICAgICAgICAgInN0cm9rZS13aWR0aCI6IF92bS5yZWxhdGl2ZVN0cm9rZVdpZHRoLAogICAgICAgICAgZmlsbDogIm5vbmUiCiAgICAgICAgfQogICAgICB9KSwgX2MoInBhdGgiLCB7CiAgICAgICAgc3RhdGljQ2xhc3M6ICJlbC1wcm9ncmVzcy1jaXJjbGVfX3BhdGgiLAogICAgICAgIHN0eWxlOiBfdm0uY2lyY2xlUGF0aFN0eWxlLAogICAgICAgIGF0dHJzOiB7CiAgICAgICAgICBkOiBfdm0udHJhY2tQYXRoLAogICAgICAgICAgc3Ryb2tlOiBfdm0uc3Ryb2tlLAogICAgICAgICAgZmlsbDogIm5vbmUiLAogICAgICAgICAgInN0cm9rZS1saW5lY2FwIjogX3ZtLnN0cm9rZUxpbmVjYXAsCiAgICAgICAgICAic3Ryb2tlLXdpZHRoIjogX3ZtLnBlcmNlbnRhZ2UgPyBfdm0ucmVsYXRpdmVTdHJva2VXaWR0aCA6IDAKICAgICAgICB9CiAgICAgIH0pXSldKSwgX3ZtLnNob3dUZXh0ICYmICFfdm0udGV4dEluc2lkZSA/IF9jKCJkaXYiLCB7CiAgICAgICAgc3RhdGljQ2xhc3M6ICJlbC1wcm9ncmVzc19fdGV4dCIsCiAgICAgICAgc3R5bGU6IHsKICAgICAgICAgIGZvbnRTaXplOiBfdm0ucHJvZ3Jlc3NUZXh0U2l6ZSArICJweCIKICAgICAgICB9CiAgICAgIH0sIFshX3ZtLnN0YXR1cyA/IFtfdm0uX3YoX3ZtLl9zKF92bS5jb250ZW50KSldIDogX2MoImkiLCB7CiAgICAgICAgY2xhc3M6IF92bS5pY29uQ2xhc3MKICAgICAgfSldLCAyKSA6IF92bS5fZSgpXSk7CiAgICB9OwoKICAgIHZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXTsKICAgIHJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZTsgLy8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9wYWNrYWdlcy9wcm9ncmVzcy9zcmMvcHJvZ3Jlc3MudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIyOWVlNDA2JgogICAgLy8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYiEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYj8/dnVlLWxvYWRlci1vcHRpb25zIS4vcGFja2FnZXMvcHJvZ3Jlc3Mvc3JjL3Byb2dyZXNzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyYKICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCgogICAgLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLwoKICAgIHZhciBwcm9ncmVzc3Z1ZV90eXBlX3NjcmlwdF9sYW5nX2pzXyA9IHsKICAgICAgbmFtZTogJ0VsUHJvZ3Jlc3MnLAogICAgICBwcm9wczogewogICAgICAgIHR5cGU6IHsKICAgICAgICAgIHR5cGU6IFN0cmluZywKICAgICAgICAgIGRlZmF1bHQ6ICdsaW5lJywKICAgICAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24gdmFsaWRhdG9yKHZhbCkgewogICAgICAgICAgICByZXR1cm4gWydsaW5lJywgJ2NpcmNsZScsICdkYXNoYm9hcmQnXS5pbmRleE9mKHZhbCkgPiAtMTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHBlcmNlbnRhZ2U6IHsKICAgICAgICAgIHR5cGU6IE51bWJlciwKICAgICAgICAgIGRlZmF1bHQ6IDAsCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24gdmFsaWRhdG9yKHZhbCkgewogICAgICAgICAgICByZXR1cm4gdmFsID49IDAgJiYgdmFsIDw9IDEwMDsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHN0YXR1czogewogICAgICAgICAgdHlwZTogU3RyaW5nLAogICAgICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbiB2YWxpZGF0b3IodmFsKSB7CiAgICAgICAgICAgIHJldHVybiBbJ3N1Y2Nlc3MnLCAnZXhjZXB0aW9uJywgJ3dhcm5pbmcnXS5pbmRleE9mKHZhbCkgPiAtMTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHN0cm9rZVdpZHRoOiB7CiAgICAgICAgICB0eXBlOiBOdW1iZXIsCiAgICAgICAgICBkZWZhdWx0OiA2CiAgICAgICAgfSwKICAgICAgICBzdHJva2VMaW5lY2FwOiB7CiAgICAgICAgICB0eXBlOiBTdHJpbmcsCiAgICAgICAgICBkZWZhdWx0OiAncm91bmQnCiAgICAgICAgfSwKICAgICAgICB0ZXh0SW5zaWRlOiB7CiAgICAgICAgICB0eXBlOiBCb29sZWFuLAogICAgICAgICAgZGVmYXVsdDogZmFsc2UKICAgICAgICB9LAogICAgICAgIHdpZHRoOiB7CiAgICAgICAgICB0eXBlOiBOdW1iZXIsCiAgICAgICAgICBkZWZhdWx0OiAxMjYKICAgICAgICB9LAogICAgICAgIHNob3dUZXh0OiB7CiAgICAgICAgICB0eXBlOiBCb29sZWFuLAogICAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgY29sb3I6IHsKICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIEFycmF5LCBGdW5jdGlvbl0sCiAgICAgICAgICBkZWZhdWx0OiAnJwogICAgICAgIH0sCiAgICAgICAgZm9ybWF0OiBGdW5jdGlvbgogICAgICB9LAogICAgICBjb21wdXRlZDogewogICAgICAgIGJhclN0eWxlOiBmdW5jdGlvbiBiYXJTdHlsZSgpIHsKICAgICAgICAgIHZhciBzdHlsZSA9IHt9OwogICAgICAgICAgc3R5bGUud2lkdGggPSB0aGlzLnBlcmNlbnRhZ2UgKyAnJSc7CiAgICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmdldEN1cnJlbnRDb2xvcih0aGlzLnBlcmNlbnRhZ2UpOwogICAgICAgICAgcmV0dXJuIHN0eWxlOwogICAgICAgIH0sCiAgICAgICAgcmVsYXRpdmVTdHJva2VXaWR0aDogZnVuY3Rpb24gcmVsYXRpdmVTdHJva2VXaWR0aCgpIHsKICAgICAgICAgIHJldHVybiAodGhpcy5zdHJva2VXaWR0aCAvIHRoaXMud2lkdGggKiAxMDApLnRvRml4ZWQoMSk7CiAgICAgICAgfSwKICAgICAgICByYWRpdXM6IGZ1bmN0aW9uIHJhZGl1cygpIHsKICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdjaXJjbGUnIHx8IHRoaXMudHlwZSA9PT0gJ2Rhc2hib2FyZCcpIHsKICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KDUwIC0gcGFyc2VGbG9hdCh0aGlzLnJlbGF0aXZlU3Ryb2tlV2lkdGgpIC8gMiwgMTApOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB0cmFja1BhdGg6IGZ1bmN0aW9uIHRyYWNrUGF0aCgpIHsKICAgICAgICAgIHZhciByYWRpdXMgPSB0aGlzLnJhZGl1czsKICAgICAgICAgIHZhciBpc0Rhc2hib2FyZCA9IHRoaXMudHlwZSA9PT0gJ2Rhc2hib2FyZCc7CiAgICAgICAgICByZXR1cm4gJ1xuICAgICAgICBNIDUwIDUwXG4gICAgICAgIG0gMCAnICsgKGlzRGFzaGJvYXJkID8gJycgOiAnLScpICsgcmFkaXVzICsgJ1xuICAgICAgICBhICcgKyByYWRpdXMgKyAnICcgKyByYWRpdXMgKyAnIDAgMSAxIDAgJyArIChpc0Rhc2hib2FyZCA/ICctJyA6ICcnKSArIHJhZGl1cyAqIDIgKyAnXG4gICAgICAgIGEgJyArIHJhZGl1cyArICcgJyArIHJhZGl1cyArICcgMCAxIDEgMCAnICsgKGlzRGFzaGJvYXJkID8gJycgOiAnLScpICsgcmFkaXVzICogMiArICdcbiAgICAgICAgJzsKICAgICAgICB9LAogICAgICAgIHBlcmltZXRlcjogZnVuY3Rpb24gcGVyaW1ldGVyKCkgewogICAgICAgICAgcmV0dXJuIDIgKiBNYXRoLlBJICogdGhpcy5yYWRpdXM7CiAgICAgICAgfSwKICAgICAgICByYXRlOiBmdW5jdGlvbiByYXRlKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2Rhc2hib2FyZCcgPyAwLjc1IDogMTsKICAgICAgICB9LAogICAgICAgIHN0cm9rZURhc2hvZmZzZXQ6IGZ1bmN0aW9uIHN0cm9rZURhc2hvZmZzZXQoKSB7CiAgICAgICAgICB2YXIgb2Zmc2V0ID0gLTEgKiB0aGlzLnBlcmltZXRlciAqICgxIC0gdGhpcy5yYXRlKSAvIDI7CiAgICAgICAgICByZXR1cm4gb2Zmc2V0ICsgJ3B4JzsKICAgICAgICB9LAogICAgICAgIHRyYWlsUGF0aFN0eWxlOiBmdW5jdGlvbiB0cmFpbFBhdGhTdHlsZSgpIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHN0cm9rZURhc2hhcnJheTogdGhpcy5wZXJpbWV0ZXIgKiB0aGlzLnJhdGUgKyAncHgsICcgKyB0aGlzLnBlcmltZXRlciArICdweCcsCiAgICAgICAgICAgIHN0cm9rZURhc2hvZmZzZXQ6IHRoaXMuc3Ryb2tlRGFzaG9mZnNldAogICAgICAgICAgfTsKICAgICAgICB9LAogICAgICAgIGNpcmNsZVBhdGhTdHlsZTogZnVuY3Rpb24gY2lyY2xlUGF0aFN0eWxlKCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5OiB0aGlzLnBlcmltZXRlciAqIHRoaXMucmF0ZSAqICh0aGlzLnBlcmNlbnRhZ2UgLyAxMDApICsgJ3B4LCAnICsgdGhpcy5wZXJpbWV0ZXIgKyAncHgnLAogICAgICAgICAgICBzdHJva2VEYXNob2Zmc2V0OiB0aGlzLnN0cm9rZURhc2hvZmZzZXQsCiAgICAgICAgICAgIHRyYW5zaXRpb246ICdzdHJva2UtZGFzaGFycmF5IDAuNnMgZWFzZSAwcywgc3Ryb2tlIDAuNnMgZWFzZScKICAgICAgICAgIH07CiAgICAgICAgfSwKICAgICAgICBzdHJva2U6IGZ1bmN0aW9uIHN0cm9rZSgpIHsKICAgICAgICAgIHZhciByZXQgPSB2b2lkIDA7CgogICAgICAgICAgaWYgKHRoaXMuY29sb3IpIHsKICAgICAgICAgICAgcmV0ID0gdGhpcy5nZXRDdXJyZW50Q29sb3IodGhpcy5wZXJjZW50YWdlKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5zdGF0dXMpIHsKICAgICAgICAgICAgICBjYXNlICdzdWNjZXNzJzoKICAgICAgICAgICAgICAgIHJldCA9ICcjMTNjZTY2JzsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICBjYXNlICdleGNlcHRpb24nOgogICAgICAgICAgICAgICAgcmV0ID0gJyNmZjQ5NDknOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOgogICAgICAgICAgICAgICAgcmV0ID0gJyNlNmEyM2MnOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXQgPSAnIzIwYTBmZic7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgaWNvbkNsYXNzOiBmdW5jdGlvbiBpY29uQ2xhc3MoKSB7CiAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09ICd3YXJuaW5nJykgewogICAgICAgICAgICByZXR1cm4gJ2VsLWljb24td2FybmluZyc7CiAgICAgICAgICB9CgogICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2xpbmUnKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnID8gJ2VsLWljb24tY2lyY2xlLWNoZWNrJyA6ICdlbC1pY29uLWNpcmNsZS1jbG9zZSc7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09ICdzdWNjZXNzJyA/ICdlbC1pY29uLWNoZWNrJyA6ICdlbC1pY29uLWNsb3NlJzsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHByb2dyZXNzVGV4dFNpemU6IGZ1bmN0aW9uIHByb2dyZXNzVGV4dFNpemUoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSAnbGluZScgPyAxMiArIHRoaXMuc3Ryb2tlV2lkdGggKiAwLjQgOiB0aGlzLndpZHRoICogMC4xMTExMTEgKyAyOwogICAgICAgIH0sCiAgICAgICAgY29udGVudDogZnVuY3Rpb24gY29udGVudCgpIHsKICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb3JtYXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KHRoaXMucGVyY2VudGFnZSkgfHwgJyc7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gdGhpcy5wZXJjZW50YWdlICsgJyUnOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgbWV0aG9kczogewogICAgICAgIGdldEN1cnJlbnRDb2xvcjogZnVuY3Rpb24gZ2V0Q3VycmVudENvbG9yKHBlcmNlbnRhZ2UpIHsKICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb2xvciA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICByZXR1cm4gdGhpcy5jb2xvcihwZXJjZW50YWdlKTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuY29sb3IgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbG9yOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGV2ZWxDb2xvcihwZXJjZW50YWdlKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIGdldExldmVsQ29sb3I6IGZ1bmN0aW9uIGdldExldmVsQ29sb3IocGVyY2VudGFnZSkgewogICAgICAgICAgdmFyIGNvbG9yQXJyYXkgPSB0aGlzLmdldENvbG9yQXJyYXkoKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgICAgICAgIHJldHVybiBhLnBlcmNlbnRhZ2UgLSBiLnBlcmNlbnRhZ2U7CiAgICAgICAgICB9KTsKCiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbG9yQXJyYXkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGNvbG9yQXJyYXlbaV0ucGVyY2VudGFnZSA+IHBlcmNlbnRhZ2UpIHsKICAgICAgICAgICAgICByZXR1cm4gY29sb3JBcnJheVtpXS5jb2xvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBjb2xvckFycmF5W2NvbG9yQXJyYXkubGVuZ3RoIC0gMV0uY29sb3I7CiAgICAgICAgfSwKICAgICAgICBnZXRDb2xvckFycmF5OiBmdW5jdGlvbiBnZXRDb2xvckFycmF5KCkgewogICAgICAgICAgdmFyIGNvbG9yID0gdGhpcy5jb2xvcjsKICAgICAgICAgIHZhciBzcGFuID0gMTAwIC8gY29sb3IubGVuZ3RoOwogICAgICAgICAgcmV0dXJuIGNvbG9yLm1hcChmdW5jdGlvbiAoc2VyaWVzQ29sb3IsIGluZGV4KSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2VyaWVzQ29sb3IgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIGNvbG9yOiBzZXJpZXNDb2xvciwKICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2U6IChpbmRleCArIDEpICogc3BhbgogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBzZXJpZXNDb2xvcjsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfTsgLy8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9wYWNrYWdlcy9wcm9ncmVzcy9zcmMvcHJvZ3Jlc3MudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJgoKICAgIC8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8KCiAgICB2YXIgc3JjX3Byb2dyZXNzdnVlX3R5cGVfc2NyaXB0X2xhbmdfanNfID0gcHJvZ3Jlc3N2dWVfdHlwZV9zY3JpcHRfbGFuZ19qc187IC8vIEVYVEVSTkFMIE1PRFVMRTogLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzCgogICAgdmFyIGNvbXBvbmVudE5vcm1hbGl6ZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApOyAvLyBDT05DQVRFTkFURUQgTU9EVUxFOiAuL3BhY2thZ2VzL3Byb2dyZXNzL3NyYy9wcm9ncmVzcy52dWUKCiAgICAvKiBub3JtYWxpemUgY29tcG9uZW50ICovCgoKICAgIHZhciBjb21wb25lbnQgPSBPYmplY3QoY29tcG9uZW50Tm9ybWFsaXplclsiYSIKICAgIC8qIGRlZmF1bHQgKi8KICAgIF0pKHNyY19wcm9ncmVzc3Z1ZV90eXBlX3NjcmlwdF9sYW5nX2pzXywgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIGZhbHNlLCBudWxsLCBudWxsLCBudWxsKTsKICAgIC8qIGhvdCByZWxvYWQgKi8KCiAgICBpZiAoZmFsc2UpIHsKICAgICAgdmFyIGFwaTsKICAgIH0KCiAgICBjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAicGFja2FnZXMvcHJvZ3Jlc3Mvc3JjL3Byb2dyZXNzLnZ1ZSI7CiAgICAvKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovCgogICAgdmFyIHByb2dyZXNzID0gY29tcG9uZW50LmV4cG9ydHM7IC8vIENPTkNBVEVOQVRFRCBNT0RVTEU6IC4vcGFja2FnZXMvcHJvZ3Jlc3MvaW5kZXguanMKCiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLwoKICAgIHByb2dyZXNzLmluc3RhbGwgPSBmdW5jdGlvbiAoVnVlKSB7CiAgICAgIFZ1ZS5jb21wb25lbnQocHJvZ3Jlc3MubmFtZSwgcHJvZ3Jlc3MpOwogICAgfTsKICAgIC8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8KCgogICAgdmFyIHBhY2thZ2VzX3Byb2dyZXNzID0gX193ZWJwYWNrX2V4cG9ydHNfX1siZGVmYXVsdCJdID0gcHJvZ3Jlc3M7CiAgICAvKioqLwogIH0KICAvKioqKioqLwoKfSk7"},null]}
|