From adf96f3aecbb988811f02d0b696576fcf3f353cc Mon Sep 17 00:00:00 2001 From: Eugene Tulika Date: Mon, 9 Oct 2017 21:10:58 +0300 Subject: [PATCH] Extend example of rendering of the product items retrieved from the GraphQL --- .../react-product-webcomponent/npm-debug.log | 45 +++ .../react-product-webcomponent/package.json | 2 + .../placeholder.jpg | Bin 0 -> 1032 bytes .../public/index.js | 321 +++++++++++------- .../public/placeholder.jpg | Bin 0 -> 1032 bytes .../src/ApolloFactory.js | 35 ++ .../src/MagentoProduct.js | 95 ------ .../src/MagentoProduct.test.js | 8 - .../src/components/App/index.js | 20 ++ .../MagentoProductItem/ProductItem.css | 0 .../components/MagentoProductItem/index.js | 60 ++++ .../MagentoProductList/ProductList.css} | 12 +- .../components/MagentoProductList/index.js | 105 ++++++ .../react-product-webcomponent/src/index.js | 49 ++- npm-debug.log | 23 ++ 15 files changed, 537 insertions(+), 238 deletions(-) create mode 100644 examples/react-product-webcomponent/npm-debug.log create mode 100644 examples/react-product-webcomponent/placeholder.jpg create mode 100644 examples/react-product-webcomponent/public/placeholder.jpg create mode 100644 examples/react-product-webcomponent/src/ApolloFactory.js delete mode 100644 examples/react-product-webcomponent/src/MagentoProduct.js delete mode 100644 examples/react-product-webcomponent/src/MagentoProduct.test.js create mode 100644 examples/react-product-webcomponent/src/components/App/index.js create mode 100644 examples/react-product-webcomponent/src/components/MagentoProductItem/ProductItem.css create mode 100644 examples/react-product-webcomponent/src/components/MagentoProductItem/index.js rename examples/react-product-webcomponent/src/{MagentoProduct.css => components/MagentoProductList/ProductList.css} (99%) create mode 100644 examples/react-product-webcomponent/src/components/MagentoProductList/index.js create mode 100644 npm-debug.log diff --git a/examples/react-product-webcomponent/npm-debug.log b/examples/react-product-webcomponent/npm-debug.log new file mode 100644 index 0000000..aa2012c --- /dev/null +++ b/examples/react-product-webcomponent/npm-debug.log @@ -0,0 +1,45 @@ +0 info it worked if it ends with ok +1 verbose cli [ '/opt/local/bin/node', '/opt/local/bin/npm', 'start' ] +2 info using npm@3.10.9 +3 info using node@v6.9.1 +4 verbose run-script [ 'prestart', 'start', 'poststart' ] +5 info lifecycle my-app@0.1.0~prestart: my-app@0.1.0 +6 silly lifecycle my-app@0.1.0~prestart: no script for prestart, continuing +7 info lifecycle my-app@0.1.0~start: my-app@0.1.0 +8 verbose lifecycle my-app@0.1.0~start: unsafe-perm in lifecycle true +9 verbose lifecycle my-app@0.1.0~start: PATH: /opt/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/etulika/Projects/php/m2graphql/examples/react-product-webcomponent/node_modules/.bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin +10 verbose lifecycle my-app@0.1.0~start: CWD: /Users/etulika/Projects/php/m2graphql/examples/react-product-webcomponent +11 silly lifecycle my-app@0.1.0~start: Args: [ '-c', 'react-scripts start' ] +12 silly lifecycle my-app@0.1.0~start: Returned: code: 1 signal: null +13 info lifecycle my-app@0.1.0~start: Failed to exec start script +14 verbose stack Error: my-app@0.1.0 start: `react-scripts start` +14 verbose stack Exit status 1 +14 verbose stack at EventEmitter. (/opt/local/lib/node_modules/npm/lib/utils/lifecycle.js:255:16) +14 verbose stack at emitTwo (events.js:106:13) +14 verbose stack at EventEmitter.emit (events.js:191:7) +14 verbose stack at ChildProcess. (/opt/local/lib/node_modules/npm/lib/utils/spawn.js:40:14) +14 verbose stack at emitTwo (events.js:106:13) +14 verbose stack at ChildProcess.emit (events.js:191:7) +14 verbose stack at maybeClose (internal/child_process.js:877:16) +14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) +15 verbose pkgid my-app@0.1.0 +16 verbose cwd /Users/etulika/Projects/php/m2graphql/examples/react-product-webcomponent +17 error Darwin 15.5.0 +18 error argv "/opt/local/bin/node" "/opt/local/bin/npm" "start" +19 error node v6.9.1 +20 error npm v3.10.9 +21 error code ELIFECYCLE +22 error my-app@0.1.0 start: `react-scripts start` +22 error Exit status 1 +23 error Failed at the my-app@0.1.0 start script 'react-scripts start'. +23 error Make sure you have the latest version of node.js and npm installed. +23 error If you do, this is most likely a problem with the my-app package, +23 error not with npm itself. +23 error Tell the author that this fails on your system: +23 error react-scripts start +23 error You can get information on how to open an issue for this project with: +23 error npm bugs my-app +23 error Or if that isn't available, you can get their info via: +23 error npm owner ls my-app +23 error There is likely additional logging output above. +24 verbose exit [ 1, true ] diff --git a/examples/react-product-webcomponent/package.json b/examples/react-product-webcomponent/package.json index 861ce7e..13a03e9 100644 --- a/examples/react-product-webcomponent/package.json +++ b/examples/react-product-webcomponent/package.json @@ -10,6 +10,8 @@ "react": "^15.6.1", "react-css-modules": "^4.7.1", "react-dom": "^15.6.1", + "react-redux": "^5.0.6", + "react-router-dom": "^4.2.2", "react-scripts": "0.9.5" }, "devDependencies": { diff --git a/examples/react-product-webcomponent/placeholder.jpg b/examples/react-product-webcomponent/placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aeda35c364bd802bfa132d28e7479c6a10f875bc GIT binary patch literal 1032 zcmex=28ygoVmoP7{u$Um9pcq_&SjPVY41ydC?F{YA zjDieIf{e_9jQ@`?Br!080RsXsvoJAo2rw`)GP5wUf+QhQj7-dmMuLWgje)|(j)@zE zCMqq2Ng?zKLKP!K{@-HYVP*tc$SlZU&+r=|fy81rnv=Zy1!vX!*!|BBi1s|zo$pYB zkmg;owVF}#+K={MEYW%I-taSgHCwlxX~Wu&_FuS{&AJ*3Q^{1kTH%S<^5> zZpBVpp)1^ny27X4?{CmzU=W%s@?P5h50g-L_rEKVp1C|)$j$V-D@BB z1mnhtprSo%8g_YUyKHf&VwYPIGbQxjfj4}z9xLnh?kAM7_iE}&U1j9FnDuej2bPAt zyz>q#p^% zOkd1u8WR{87`1-rIhyuKle*)->dFte|WHSHa zu$SyTdjEk`!`WyvmIIgF`3}5`*e4-z;G(Ok_^QjX4J&{iV6?o{vwrg@_QEJveQpPf zwe1OM%)8Lx3#=hpfFxfk$H~|-7Im+{UAveP nf<%^T@77m{Gw3OcZM* 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qvbm9kZV9tb2R1bGVzL2ZianMvbGliL3dhcm5pbmcuanM/ZGZiOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW1wdHlGdW5jdGlvbiA9IHJlcXVpcmUoJy4vZW1wdHlGdW5jdGlvbicpO1xuXG4vKipcbiAqIFNpbWlsYXIgdG8gaW52YXJpYW50IGJ1dCBvbmx5IGxvZ3MgYSB3YXJuaW5nIGlmIHRoZSBjb25kaXRpb24gaXMgbm90IG1ldC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gbG9nIGlzc3VlcyBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaW4gY3JpdGljYWxcbiAqIHBhdGhzLiBSZW1vdmluZyB0aGUgbG9nZ2luZyBjb2RlIGZvciBwcm9kdWN0aW9uIGVudmlyb25tZW50cyB3aWxsIGtlZXAgdGhlXG4gKiBzYW1lIGxvZ2ljIGFuZCBmb2xsb3cgdGhlIHNhbWUgY29kZSBwYXRocy5cbiAqL1xuXG52YXIgd2FybmluZyA9IGVtcHR5RnVuY3Rpb247XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbiBwcmludFdhcm5pbmcoZm9ybWF0KSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107XG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfTtcblxuICB3YXJuaW5nID0gZnVuY3Rpb24gd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCkge1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyAnICsgJ21lc3NhZ2UgYXJndW1lbnQnKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0LmluZGV4T2YoJ0ZhaWxlZCBDb21wb3NpdGUgcHJvcFR5cGU6ICcpID09PSAwKSB7XG4gICAgICByZXR1cm47IC8vIElnbm9yZSBDb21wb3NpdGVDb21wb25lbnQgcHJvcHR5cGUgY2hlY2suXG4gICAgfVxuXG4gICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4yID4gMiA/IF9sZW4yIC0gMiA6IDApLCBfa2V5MiA9IDI7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nLmFwcGx5KHVuZGVmaW5lZCwgW2Zvcm1hdF0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd2FybmluZztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9ub2RlX21vZHVsZXMvZmJqcy9saWIvd2FybmluZy5qc1xuLy8gbW9kdWxlIGlkID0gMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///12\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ 45);\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qvbm9kZV9tb2R1bGVzL2ZianMvbGliL3dhcm5pbmcuanM/ZGZiOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW1wdHlGdW5jdGlvbiA9IHJlcXVpcmUoJy4vZW1wdHlGdW5jdGlvbicpO1xuXG4vKipcbiAqIFNpbWlsYXIgdG8gaW52YXJpYW50IGJ1dCBvbmx5IGxvZ3MgYSB3YXJuaW5nIGlmIHRoZSBjb25kaXRpb24gaXMgbm90IG1ldC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gbG9nIGlzc3VlcyBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaW4gY3JpdGljYWxcbiAqIHBhdGhzLiBSZW1vdmluZyB0aGUgbG9nZ2luZyBjb2RlIGZvciBwcm9kdWN0aW9uIGVudmlyb25tZW50cyB3aWxsIGtlZXAgdGhlXG4gKiBzYW1lIGxvZ2ljIGFuZCBmb2xsb3cgdGhlIHNhbWUgY29kZSBwYXRocy5cbiAqL1xuXG52YXIgd2FybmluZyA9IGVtcHR5RnVuY3Rpb247XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbiBwcmludFdhcm5pbmcoZm9ybWF0KSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107XG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfTtcblxuICB3YXJuaW5nID0gZnVuY3Rpb24gd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCkge1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyAnICsgJ21lc3NhZ2UgYXJndW1lbnQnKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0LmluZGV4T2YoJ0ZhaWxlZCBDb21wb3NpdGUgcHJvcFR5cGU6ICcpID09PSAwKSB7XG4gICAgICByZXR1cm47IC8vIElnbm9yZSBDb21wb3NpdGVDb21wb25lbnQgcHJvcHR5cGUgY2hlY2suXG4gICAgfVxuXG4gICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4yID4gMiA/IF9sZW4yIC0gMiA6IDApLCBfa2V5MiA9IDI7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nLmFwcGx5KHVuZGVmaW5lZCwgW2Zvcm1hdF0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd2FybmluZztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9ub2RlX21vZHVsZXMvZmJqcy9saWIvd2FybmluZy5qc1xuLy8gbW9kdWxlIGlkID0gMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///12\n"); /***/ }), /* 13 */ @@ -312,7 +312,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 34);\n\nvar ReactBaseClasses = __webpack_require__(/*! ./ReactBaseClasses */ 72);\nvar ReactChildren = __webpack_require__(/*! ./ReactChildren */ 129);\nvar ReactDOMFactories = __webpack_require__(/*! ./ReactDOMFactories */ 133);\nvar ReactElement = __webpack_require__(/*! ./ReactElement */ 18);\nvar ReactPropTypes = __webpack_require__(/*! ./ReactPropTypes */ 137);\nvar ReactVersion = __webpack_require__(/*! ./ReactVersion */ 141);\n\nvar createReactClass = __webpack_require__(/*! ./createClass */ 142);\nvar onlyChild = __webpack_require__(/*! ./onlyChild */ 144);\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var lowPriorityWarning = __webpack_require__(/*! ./lowPriorityWarning */ 45);\n var canDefineProperty = __webpack_require__(/*! ./canDefineProperty */ 35);\n var ReactElementValidator = __webpack_require__(/*! ./ReactElementValidator */ 77);\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\nvar createMixin = function (mixin) {\n return mixin;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForSpread = false;\n var warnedForCreateMixin = false;\n __spread = function () {\n lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');\n warnedForSpread = true;\n return _assign.apply(null, arguments);\n };\n\n createMixin = function (mixin) {\n lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');\n warnedForCreateMixin = true;\n return mixin;\n };\n}\n\nvar React = {\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactBaseClasses.Component,\n PureComponent: ReactBaseClasses.PureComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: createReactClass,\n createFactory: createFactory,\n createMixin: createMixin,\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForCreateClass = false;\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function () {\n lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n\n Object.defineProperty(React, 'createClass', {\n get: function () {\n lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + \" Use a plain JavaScript class instead. If you're not yet \" + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');\n warnedForCreateClass = true;\n return createReactClass;\n }\n });\n }\n\n // React.DOM factories are deprecated. Wrap these methods so that\n // invocations of the React.DOM namespace and alert users to switch\n // to the `react-dom-factories` package.\n React.DOM = {};\n var warnedForFactories = false;\n Object.keys(ReactDOMFactories).forEach(function (factory) {\n React.DOM[factory] = function () {\n if (!warnedForFactories) {\n lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);\n warnedForFactories = true;\n }\n return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);\n };\n });\n}\n\nmodule.exports = React;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL1JlYWN0LmpzPzFiNWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdEJhc2VDbGFzc2VzID0gcmVxdWlyZSgnLi9SZWFjdEJhc2VDbGFzc2VzJyk7XG52YXIgUmVhY3RDaGlsZHJlbiA9IHJlcXVpcmUoJy4vUmVhY3RDaGlsZHJlbicpO1xudmFyIFJlYWN0RE9NRmFjdG9yaWVzID0gcmVxdWlyZSgnLi9SZWFjdERPTUZhY3RvcmllcycpO1xudmFyIFJlYWN0RWxlbWVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50Jyk7XG52YXIgUmVhY3RQcm9wVHlwZXMgPSByZXF1aXJlKCcuL1JlYWN0UHJvcFR5cGVzJyk7XG52YXIgUmVhY3RWZXJzaW9uID0gcmVxdWlyZSgnLi9SZWFjdFZlcnNpb24nKTtcblxudmFyIGNyZWF0ZVJlYWN0Q2xhc3MgPSByZXF1aXJlKCcuL2NyZWF0ZUNsYXNzJyk7XG52YXIgb25seUNoaWxkID0gcmVxdWlyZSgnLi9vbmx5Q2hpbGQnKTtcblxudmFyIGNyZWF0ZUVsZW1lbnQgPSBSZWFjdEVsZW1lbnQuY3JlYXRlRWxlbWVudDtcbnZhciBjcmVhdGVGYWN0b3J5ID0gUmVhY3RFbGVtZW50LmNyZWF0ZUZhY3Rvcnk7XG52YXIgY2xvbmVFbGVtZW50ID0gUmVhY3RFbGVtZW50LmNsb25lRWxlbWVudDtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIGxvd1ByaW9yaXR5V2FybmluZyA9IHJlcXVpcmUoJy4vbG93UHJpb3JpdHlXYXJuaW5nJyk7XG4gIHZhciBjYW5EZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vY2FuRGVmaW5lUHJvcGVydHknKTtcbiAgdmFyIFJlYWN0RWxlbWVudFZhbGlkYXRvciA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50VmFsaWRhdG9yJyk7XG4gIHZhciBkaWRXYXJuUHJvcFR5cGVzRGVwcmVjYXRlZCA9IGZhbHNlO1xuICBjcmVhdGVFbGVtZW50ID0gUmVhY3RFbGVtZW50VmFsaWRhdG9yLmNyZWF0ZUVsZW1lbnQ7XG4gIGNyZWF0ZUZhY3RvcnkgPSBSZWFjdEVsZW1lbnRWYWxpZGF0b3IuY3JlYXRlRmFjdG9yeTtcbiAgY2xvbmVFbGVtZW50ID0gUmVhY3RFbGVtZW50VmFsaWRhdG9yLmNsb25lRWxlbWVudDtcbn1cblxudmFyIF9fc3ByZWFkID0gX2Fzc2lnbjtcbnZhciBjcmVhdGVNaXhpbiA9IGZ1bmN0aW9uIChtaXhpbikge1xuICByZXR1cm4gbWl4aW47XG59O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgd2FybmVkRm9yU3ByZWFkID0gZmFsc2U7XG4gIHZhciB3YXJuZWRGb3JDcmVhdGVNaXhpbiA9IGZhbHNlO1xuICBfX3NwcmVhZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBsb3dQcmlvcml0eVdhcm5pbmcod2FybmVkRm9yU3ByZWFkLCAnUmVhY3QuX19zcHJlYWQgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgJyArICdPYmplY3QuYXNzaWduIGRpcmVjdGx5IG9yIGFub3RoZXIgaGVscGVyIGZ1bmN0aW9uIHdpdGggc2ltaWxhciAnICsgJ3NlbWFudGljcy4gWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byB5b3VyIGNvbXBpbGVyLiAnICsgJ1NlZSBodHRwczovL2ZiLm1lL3JlYWN0LXNwcmVhZC1kZXByZWNhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLicpO1xuICAgIHdhcm5lZEZvclNwcmVhZCA9IHRydWU7XG4gICAgcmV0dXJuIF9hc3NpZ24uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgfTtcblxuICBjcmVhdGVNaXhpbiA9IGZ1bmN0aW9uIChtaXhpbikge1xuICAgIGxvd1ByaW9yaXR5V2FybmluZyh3YXJuZWRGb3JDcmVhdGVNaXhpbiwgJ1JlYWN0LmNyZWF0ZU1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4gJyArICdJbiBSZWFjdCB2MTYuMCwgaXQgd2lsbCBiZSByZW1vdmVkLiAnICsgJ1lvdSBjYW4gdXNlIHRoaXMgbWl4aW4gZGlyZWN0bHkgaW5zdGVhZC4gJyArICdTZWUgaHR0cHM6Ly9mYi5tZS9jcmVhdGVtaXhpbi13YXMtbmV2ZXItaW1wbGVtZW50ZWQgZm9yIG1vcmUgaW5mby4nKTtcbiAgICB3YXJuZWRGb3JDcmVhdGVNaXhpbiA9IHRydWU7XG4gICAgcmV0dXJuIG1peGluO1xuICB9O1xufVxuXG52YXIgUmVhY3QgPSB7XG4gIC8vIE1vZGVyblxuXG4gIENoaWxkcmVuOiB7XG4gICAgbWFwOiBSZWFjdENoaWxkcmVuLm1hcCxcbiAgICBmb3JFYWNoOiBSZWFjdENoaWxkcmVuLmZvckVhY2gsXG4gICAgY291bnQ6IFJlYWN0Q2hpbGRyZW4uY291bnQsXG4gICAgdG9BcnJheTogUmVhY3RDaGlsZHJlbi50b0FycmF5LFxuICAgIG9ubHk6IG9ubHlDaGlsZFxuICB9LFxuXG4gIENvbXBvbmVudDogUmVhY3RCYXNlQ2xhc3Nlcy5Db21wb25lbnQsXG4gIFB1cmVDb21wb25lbnQ6IFJlYWN0QmFzZUNsYXNzZXMuUHVyZUNvbXBvbmVudCxcblxuICBjcmVhdGVFbGVtZW50OiBjcmVhdGVFbGVtZW50LFxuICBjbG9uZUVsZW1lbnQ6IGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQ6IFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudCxcblxuICAvLyBDbGFzc2ljXG5cbiAgUHJvcFR5cGVzOiBSZWFjdFByb3BUeXBlcyxcbiAgY3JlYXRlQ2xhc3M6IGNyZWF0ZVJlYWN0Q2xhc3MsXG4gIGNyZWF0ZUZhY3Rvcnk6IGNyZWF0ZUZhY3RvcnksXG4gIGNyZWF0ZU1peGluOiBjcmVhdGVNaXhpbixcblxuICAvLyBUaGlzIGxvb2tzIERPTSBzcGVjaWZpYyBidXQgdGhlc2UgYXJlIGFjdHVhbGx5IGlzb21vcnBoaWMgaGVscGVyc1xuICAvLyBzaW5jZSB0aGV5IGFyZSBqdXN0IGdlbmVyYXRpbmcgRE9NIHN0cmluZ3MuXG4gIERPTTogUmVhY3RET01GYWN0b3JpZXMsXG5cbiAgdmVyc2lvbjogUmVhY3RWZXJzaW9uLFxuXG4gIC8vIERlcHJlY2F0ZWQgaG9vayBmb3IgSlNYIHNwcmVhZCwgZG9uJ3QgdXNlIHRoaXMgZm9yIGFueXRoaW5nLlxuICBfX3NwcmVhZDogX19zcHJlYWRcbn07XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciB3YXJuZWRGb3JDcmVhdGVDbGFzcyA9IGZhbHNlO1xuICBpZiAoY2FuRGVmaW5lUHJvcGVydHkpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhY3QsICdQcm9wVHlwZXMnLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG93UHJpb3JpdHlXYXJuaW5nKGRpZFdhcm5Qcm9wVHlwZXNEZXByZWNhdGVkLCAnQWNjZXNzaW5nIFByb3BUeXBlcyB2aWEgdGhlIG1haW4gUmVhY3QgcGFja2FnZSBpcyBkZXByZWNhdGVkLCcgKyAnIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gIFJlYWN0IHYxNi4wLicgKyAnIFVzZSB0aGUgbGF0ZXN0IGF2YWlsYWJsZSB2MTUuKiBwcm9wLXR5cGVzIHBhY2thZ2UgZnJvbSBucG0gaW5zdGVhZC4nICsgJyBGb3IgaW5mbyBvbiB1c2FnZSwgY29tcGF0aWJpbGl0eSwgbWlncmF0aW9uIGFuZCBtb3JlLCBzZWUgJyArICdodHRwczovL2ZiLm1lL3Byb3AtdHlwZXMtZG9jcycpO1xuICAgICAgICBkaWRXYXJuUHJvcFR5cGVzRGVwcmVjYXRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBSZWFjdFByb3BUeXBlcztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFjdCwgJ2NyZWF0ZUNsYXNzJywge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxvd1ByaW9yaXR5V2FybmluZyh3YXJuZWRGb3JDcmVhdGVDbGFzcywgJ0FjY2Vzc2luZyBjcmVhdGVDbGFzcyB2aWEgdGhlIG1haW4gUmVhY3QgcGFja2FnZSBpcyBkZXByZWNhdGVkLCcgKyAnIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgdjE2LjAuJyArIFwiIFVzZSBhIHBsYWluIEphdmFTY3JpcHQgY2xhc3MgaW5zdGVhZC4gSWYgeW91J3JlIG5vdCB5ZXQgXCIgKyAncmVhZHkgdG8gbWlncmF0ZSwgY3JlYXRlLXJlYWN0LWNsYXNzIHYxNS4qIGlzIGF2YWlsYWJsZSAnICsgJ29uIG5wbSBhcyBhIHRlbXBvcmFyeSwgZHJvcC1pbiByZXBsYWNlbWVudC4gJyArICdGb3IgbW9yZSBpbmZvIHNlZSBodHRwczovL2ZiLm1lL3JlYWN0LWNyZWF0ZS1jbGFzcycpO1xuICAgICAgICB3YXJuZWRGb3JDcmVhdGVDbGFzcyA9IHRydWU7XG4gICAgICAgIHJldHVybiBjcmVhdGVSZWFjdENsYXNzO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gUmVhY3QuRE9NIGZhY3RvcmllcyBhcmUgZGVwcmVjYXRlZC4gV3JhcCB0aGVzZSBtZXRob2RzIHNvIHRoYXRcbiAgLy8gaW52b2NhdGlvbnMgb2YgdGhlIFJlYWN0LkRPTSBuYW1lc3BhY2UgYW5kIGFsZXJ0IHVzZXJzIHRvIHN3aXRjaFxuICAvLyB0byB0aGUgYHJlYWN0LWRvbS1mYWN0b3JpZXNgIHBhY2thZ2UuXG4gIFJlYWN0LkRPTSA9IHt9O1xuICB2YXIgd2FybmVkRm9yRmFjdG9yaWVzID0gZmFsc2U7XG4gIE9iamVjdC5rZXlzKFJlYWN0RE9NRmFjdG9yaWVzKS5mb3JFYWNoKGZ1bmN0aW9uIChmYWN0b3J5KSB7XG4gICAgUmVhY3QuRE9NW2ZhY3RvcnldID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCF3YXJuZWRGb3JGYWN0b3JpZXMpIHtcbiAgICAgICAgbG93UHJpb3JpdHlXYXJuaW5nKGZhbHNlLCAnQWNjZXNzaW5nIGZhY3RvcmllcyBsaWtlIFJlYWN0LkRPTS4lcyBoYXMgYmVlbiBkZXByZWNhdGVkICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTYuMCsuIFVzZSB0aGUgJyArICdyZWFjdC1kb20tZmFjdG9yaWVzIHBhY2thZ2UgaW5zdGVhZC4gJyArICcgVmVyc2lvbiAxLjAgcHJvdmlkZXMgYSBkcm9wLWluIHJlcGxhY2VtZW50LicgKyAnIEZvciBtb3JlIGluZm8sIHNlZSBodHRwczovL2ZiLm1lL3JlYWN0LWRvbS1mYWN0b3JpZXMnLCBmYWN0b3J5KTtcbiAgICAgICAgd2FybmVkRm9yRmFjdG9yaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdERPTUZhY3Rvcmllc1tmYWN0b3J5XS5hcHBseShSZWFjdERPTUZhY3RvcmllcywgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9saWIvUmVhY3QuanNcbi8vIG1vZHVsZSBpZCA9IDIwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 34);\n\nvar ReactBaseClasses = __webpack_require__(/*! ./ReactBaseClasses */ 72);\nvar ReactChildren = __webpack_require__(/*! ./ReactChildren */ 129);\nvar ReactDOMFactories = __webpack_require__(/*! ./ReactDOMFactories */ 133);\nvar ReactElement = __webpack_require__(/*! ./ReactElement */ 18);\nvar ReactPropTypes = __webpack_require__(/*! ./ReactPropTypes */ 137);\nvar ReactVersion = __webpack_require__(/*! ./ReactVersion */ 141);\n\nvar createReactClass = __webpack_require__(/*! ./createClass */ 142);\nvar onlyChild = __webpack_require__(/*! ./onlyChild */ 144);\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var lowPriorityWarning = __webpack_require__(/*! ./lowPriorityWarning */ 46);\n var canDefineProperty = __webpack_require__(/*! ./canDefineProperty */ 35);\n var ReactElementValidator = __webpack_require__(/*! ./ReactElementValidator */ 77);\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\nvar createMixin = function (mixin) {\n return mixin;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForSpread = false;\n var warnedForCreateMixin = false;\n __spread = function () {\n lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');\n warnedForSpread = true;\n return _assign.apply(null, arguments);\n };\n\n createMixin = function (mixin) {\n lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');\n warnedForCreateMixin = true;\n return mixin;\n };\n}\n\nvar React = {\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactBaseClasses.Component,\n PureComponent: ReactBaseClasses.PureComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: createReactClass,\n createFactory: createFactory,\n createMixin: createMixin,\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var warnedForCreateClass = false;\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function () {\n lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n\n Object.defineProperty(React, 'createClass', {\n get: function () {\n lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + \" Use a plain JavaScript class instead. If you're not yet \" + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');\n warnedForCreateClass = true;\n return createReactClass;\n }\n });\n }\n\n // React.DOM factories are deprecated. Wrap these methods so that\n // invocations of the React.DOM namespace and alert users to switch\n // to the `react-dom-factories` package.\n React.DOM = {};\n var warnedForFactories = false;\n Object.keys(ReactDOMFactories).forEach(function (factory) {\n React.DOM[factory] = function () {\n if (!warnedForFactories) {\n lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);\n warnedForFactories = true;\n }\n return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);\n };\n });\n}\n\nmodule.exports = React;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL1JlYWN0LmpzPzFiNWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdEJhc2VDbGFzc2VzID0gcmVxdWlyZSgnLi9SZWFjdEJhc2VDbGFzc2VzJyk7XG52YXIgUmVhY3RDaGlsZHJlbiA9IHJlcXVpcmUoJy4vUmVhY3RDaGlsZHJlbicpO1xudmFyIFJlYWN0RE9NRmFjdG9yaWVzID0gcmVxdWlyZSgnLi9SZWFjdERPTUZhY3RvcmllcycpO1xudmFyIFJlYWN0RWxlbWVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50Jyk7XG52YXIgUmVhY3RQcm9wVHlwZXMgPSByZXF1aXJlKCcuL1JlYWN0UHJvcFR5cGVzJyk7XG52YXIgUmVhY3RWZXJzaW9uID0gcmVxdWlyZSgnLi9SZWFjdFZlcnNpb24nKTtcblxudmFyIGNyZWF0ZVJlYWN0Q2xhc3MgPSByZXF1aXJlKCcuL2NyZWF0ZUNsYXNzJyk7XG52YXIgb25seUNoaWxkID0gcmVxdWlyZSgnLi9vbmx5Q2hpbGQnKTtcblxudmFyIGNyZWF0ZUVsZW1lbnQgPSBSZWFjdEVsZW1lbnQuY3JlYXRlRWxlbWVudDtcbnZhciBjcmVhdGVGYWN0b3J5ID0gUmVhY3RFbGVtZW50LmNyZWF0ZUZhY3Rvcnk7XG52YXIgY2xvbmVFbGVtZW50ID0gUmVhY3RFbGVtZW50LmNsb25lRWxlbWVudDtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIGxvd1ByaW9yaXR5V2FybmluZyA9IHJlcXVpcmUoJy4vbG93UHJpb3JpdHlXYXJuaW5nJyk7XG4gIHZhciBjYW5EZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vY2FuRGVmaW5lUHJvcGVydHknKTtcbiAgdmFyIFJlYWN0RWxlbWVudFZhbGlkYXRvciA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50VmFsaWRhdG9yJyk7XG4gIHZhciBkaWRXYXJuUHJvcFR5cGVzRGVwcmVjYXRlZCA9IGZhbHNlO1xuICBjcmVhdGVFbGVtZW50ID0gUmVhY3RFbGVtZW50VmFsaWRhdG9yLmNyZWF0ZUVsZW1lbnQ7XG4gIGNyZWF0ZUZhY3RvcnkgPSBSZWFjdEVsZW1lbnRWYWxpZGF0b3IuY3JlYXRlRmFjdG9yeTtcbiAgY2xvbmVFbGVtZW50ID0gUmVhY3RFbGVtZW50VmFsaWRhdG9yLmNsb25lRWxlbWVudDtcbn1cblxudmFyIF9fc3ByZWFkID0gX2Fzc2lnbjtcbnZhciBjcmVhdGVNaXhpbiA9IGZ1bmN0aW9uIChtaXhpbikge1xuICByZXR1cm4gbWl4aW47XG59O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgd2FybmVkRm9yU3ByZWFkID0gZmFsc2U7XG4gIHZhciB3YXJuZWRGb3JDcmVhdGVNaXhpbiA9IGZhbHNlO1xuICBfX3NwcmVhZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBsb3dQcmlvcml0eVdhcm5pbmcod2FybmVkRm9yU3ByZWFkLCAnUmVhY3QuX19zcHJlYWQgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBVc2UgJyArICdPYmplY3QuYXNzaWduIGRpcmVjdGx5IG9yIGFub3RoZXIgaGVscGVyIGZ1bmN0aW9uIHdpdGggc2ltaWxhciAnICsgJ3NlbWFudGljcy4gWW91IG1heSBiZSBzZWVpbmcgdGhpcyB3YXJuaW5nIGR1ZSB0byB5b3VyIGNvbXBpbGVyLiAnICsgJ1NlZSBodHRwczovL2ZiLm1lL3JlYWN0LXNwcmVhZC1kZXByZWNhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLicpO1xuICAgIHdhcm5lZEZvclNwcmVhZCA9IHRydWU7XG4gICAgcmV0dXJuIF9hc3NpZ24uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgfTtcblxuICBjcmVhdGVNaXhpbiA9IGZ1bmN0aW9uIChtaXhpbikge1xuICAgIGxvd1ByaW9yaXR5V2FybmluZyh3YXJuZWRGb3JDcmVhdGVNaXhpbiwgJ1JlYWN0LmNyZWF0ZU1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4gJyArICdJbiBSZWFjdCB2MTYuMCwgaXQgd2lsbCBiZSByZW1vdmVkLiAnICsgJ1lvdSBjYW4gdXNlIHRoaXMgbWl4aW4gZGlyZWN0bHkgaW5zdGVhZC4gJyArICdTZWUgaHR0cHM6Ly9mYi5tZS9jcmVhdGVtaXhpbi13YXMtbmV2ZXItaW1wbGVtZW50ZWQgZm9yIG1vcmUgaW5mby4nKTtcbiAgICB3YXJuZWRGb3JDcmVhdGVNaXhpbiA9IHRydWU7XG4gICAgcmV0dXJuIG1peGluO1xuICB9O1xufVxuXG52YXIgUmVhY3QgPSB7XG4gIC8vIE1vZGVyblxuXG4gIENoaWxkcmVuOiB7XG4gICAgbWFwOiBSZWFjdENoaWxkcmVuLm1hcCxcbiAgICBmb3JFYWNoOiBSZWFjdENoaWxkcmVuLmZvckVhY2gsXG4gICAgY291bnQ6IFJlYWN0Q2hpbGRyZW4uY291bnQsXG4gICAgdG9BcnJheTogUmVhY3RDaGlsZHJlbi50b0FycmF5LFxuICAgIG9ubHk6IG9ubHlDaGlsZFxuICB9LFxuXG4gIENvbXBvbmVudDogUmVhY3RCYXNlQ2xhc3Nlcy5Db21wb25lbnQsXG4gIFB1cmVDb21wb25lbnQ6IFJlYWN0QmFzZUNsYXNzZXMuUHVyZUNvbXBvbmVudCxcblxuICBjcmVhdGVFbGVtZW50OiBjcmVhdGVFbGVtZW50LFxuICBjbG9uZUVsZW1lbnQ6IGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQ6IFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudCxcblxuICAvLyBDbGFzc2ljXG5cbiAgUHJvcFR5cGVzOiBSZWFjdFByb3BUeXBlcyxcbiAgY3JlYXRlQ2xhc3M6IGNyZWF0ZVJlYWN0Q2xhc3MsXG4gIGNyZWF0ZUZhY3Rvcnk6IGNyZWF0ZUZhY3RvcnksXG4gIGNyZWF0ZU1peGluOiBjcmVhdGVNaXhpbixcblxuICAvLyBUaGlzIGxvb2tzIERPTSBzcGVjaWZpYyBidXQgdGhlc2UgYXJlIGFjdHVhbGx5IGlzb21vcnBoaWMgaGVscGVyc1xuICAvLyBzaW5jZSB0aGV5IGFyZSBqdXN0IGdlbmVyYXRpbmcgRE9NIHN0cmluZ3MuXG4gIERPTTogUmVhY3RET01GYWN0b3JpZXMsXG5cbiAgdmVyc2lvbjogUmVhY3RWZXJzaW9uLFxuXG4gIC8vIERlcHJlY2F0ZWQgaG9vayBmb3IgSlNYIHNwcmVhZCwgZG9uJ3QgdXNlIHRoaXMgZm9yIGFueXRoaW5nLlxuICBfX3NwcmVhZDogX19zcHJlYWRcbn07XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciB3YXJuZWRGb3JDcmVhdGVDbGFzcyA9IGZhbHNlO1xuICBpZiAoY2FuRGVmaW5lUHJvcGVydHkpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhY3QsICdQcm9wVHlwZXMnLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG93UHJpb3JpdHlXYXJuaW5nKGRpZFdhcm5Qcm9wVHlwZXNEZXByZWNhdGVkLCAnQWNjZXNzaW5nIFByb3BUeXBlcyB2aWEgdGhlIG1haW4gUmVhY3QgcGFja2FnZSBpcyBkZXByZWNhdGVkLCcgKyAnIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gIFJlYWN0IHYxNi4wLicgKyAnIFVzZSB0aGUgbGF0ZXN0IGF2YWlsYWJsZSB2MTUuKiBwcm9wLXR5cGVzIHBhY2thZ2UgZnJvbSBucG0gaW5zdGVhZC4nICsgJyBGb3IgaW5mbyBvbiB1c2FnZSwgY29tcGF0aWJpbGl0eSwgbWlncmF0aW9uIGFuZCBtb3JlLCBzZWUgJyArICdodHRwczovL2ZiLm1lL3Byb3AtdHlwZXMtZG9jcycpO1xuICAgICAgICBkaWRXYXJuUHJvcFR5cGVzRGVwcmVjYXRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBSZWFjdFByb3BUeXBlcztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFjdCwgJ2NyZWF0ZUNsYXNzJywge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxvd1ByaW9yaXR5V2FybmluZyh3YXJuZWRGb3JDcmVhdGVDbGFzcywgJ0FjY2Vzc2luZyBjcmVhdGVDbGFzcyB2aWEgdGhlIG1haW4gUmVhY3QgcGFja2FnZSBpcyBkZXByZWNhdGVkLCcgKyAnIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gUmVhY3QgdjE2LjAuJyArIFwiIFVzZSBhIHBsYWluIEphdmFTY3JpcHQgY2xhc3MgaW5zdGVhZC4gSWYgeW91J3JlIG5vdCB5ZXQgXCIgKyAncmVhZHkgdG8gbWlncmF0ZSwgY3JlYXRlLXJlYWN0LWNsYXNzIHYxNS4qIGlzIGF2YWlsYWJsZSAnICsgJ29uIG5wbSBhcyBhIHRlbXBvcmFyeSwgZHJvcC1pbiByZXBsYWNlbWVudC4gJyArICdGb3IgbW9yZSBpbmZvIHNlZSBodHRwczovL2ZiLm1lL3JlYWN0LWNyZWF0ZS1jbGFzcycpO1xuICAgICAgICB3YXJuZWRGb3JDcmVhdGVDbGFzcyA9IHRydWU7XG4gICAgICAgIHJldHVybiBjcmVhdGVSZWFjdENsYXNzO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gUmVhY3QuRE9NIGZhY3RvcmllcyBhcmUgZGVwcmVjYXRlZC4gV3JhcCB0aGVzZSBtZXRob2RzIHNvIHRoYXRcbiAgLy8gaW52b2NhdGlvbnMgb2YgdGhlIFJlYWN0LkRPTSBuYW1lc3BhY2UgYW5kIGFsZXJ0IHVzZXJzIHRvIHN3aXRjaFxuICAvLyB0byB0aGUgYHJlYWN0LWRvbS1mYWN0b3JpZXNgIHBhY2thZ2UuXG4gIFJlYWN0LkRPTSA9IHt9O1xuICB2YXIgd2FybmVkRm9yRmFjdG9yaWVzID0gZmFsc2U7XG4gIE9iamVjdC5rZXlzKFJlYWN0RE9NRmFjdG9yaWVzKS5mb3JFYWNoKGZ1bmN0aW9uIChmYWN0b3J5KSB7XG4gICAgUmVhY3QuRE9NW2ZhY3RvcnldID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCF3YXJuZWRGb3JGYWN0b3JpZXMpIHtcbiAgICAgICAgbG93UHJpb3JpdHlXYXJuaW5nKGZhbHNlLCAnQWNjZXNzaW5nIGZhY3RvcmllcyBsaWtlIFJlYWN0LkRPTS4lcyBoYXMgYmVlbiBkZXByZWNhdGVkICcgKyAnYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTYuMCsuIFVzZSB0aGUgJyArICdyZWFjdC1kb20tZmFjdG9yaWVzIHBhY2thZ2UgaW5zdGVhZC4gJyArICcgVmVyc2lvbiAxLjAgcHJvdmlkZXMgYSBkcm9wLWluIHJlcGxhY2VtZW50LicgKyAnIEZvciBtb3JlIGluZm8sIHNlZSBodHRwczovL2ZiLm1lL3JlYWN0LWRvbS1mYWN0b3JpZXMnLCBmYWN0b3J5KTtcbiAgICAgICAgd2FybmVkRm9yRmFjdG9yaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdERPTUZhY3Rvcmllc1tmYWN0b3J5XS5hcHBseShSZWFjdERPTUZhY3RvcmllcywgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9saWIvUmVhY3QuanNcbi8vIG1vZHVsZSBpZCA9IDIwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20\n"); /***/ }), /* 21 */ @@ -348,7 +348,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = __webpack_require__(/*! ./DOMNamespaces */ 52);\nvar setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ 39);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ 53);\nvar setTextContent = __webpack_require__(/*! ./setTextContent */ 88);\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some plugins (like Flash Player) will read\n // nodes immediately upon insertion into the DOM, so \n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9ET01MYXp5VHJlZS5qcz84NGM5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBET01OYW1lc3BhY2VzID0gcmVxdWlyZSgnLi9ET01OYW1lc3BhY2VzJyk7XG52YXIgc2V0SW5uZXJIVE1MID0gcmVxdWlyZSgnLi9zZXRJbm5lckhUTUwnKTtcblxudmFyIGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24gPSByZXF1aXJlKCcuL2NyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24nKTtcbnZhciBzZXRUZXh0Q29udGVudCA9IHJlcXVpcmUoJy4vc2V0VGV4dENvbnRlbnQnKTtcblxudmFyIEVMRU1FTlRfTk9ERV9UWVBFID0gMTtcbnZhciBET0NVTUVOVF9GUkFHTUVOVF9OT0RFX1RZUEUgPSAxMTtcblxuLyoqXG4gKiBJbiBJRSAoOC0xMSkgYW5kIEVkZ2UsIGFwcGVuZGluZyBub2RlcyB3aXRoIG5vIGNoaWxkcmVuIGlzIGRyYW1hdGljYWxseVxuICogZmFzdGVyIHRoYW4gYXBwZW5kaW5nIGEgZnVsbCBzdWJ0cmVlLCBzbyB3ZSBlc3NlbnRpYWxseSBxdWV1ZSB1cCB0aGVcbiAqIC5hcHBlbmRDaGlsZCBjYWxscyBoZXJlIGFuZCBhcHBseSB0aGVtIHNvIGVhY2ggbm9kZSBpcyBhZGRlZCB0byBpdHMgcGFyZW50XG4gKiBiZWZvcmUgYW55IGNoaWxkcmVuIGFyZSBhZGRlZC5cbiAqXG4gKiBJbiBvdGhlciBicm93c2VycywgZG9pbmcgc28gaXMgc2xvd2VyIG9yIG5ldXRyYWwgY29tcGFyZWQgdG8gdGhlIG90aGVyIG9yZGVyXG4gKiAoaW4gRmlyZWZveCwgdHdpY2UgYXMgc2xvdykgc28gd2Ugb25seSBkbyB0aGlzIGludmVyc2lvbiBpbiBJRS5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NwaWN5ai9pbm5lcmh0bWwtdnMtY3JlYXRlZWxlbWVudC12cy1jbG9uZW5vZGUuXG4gKi9cbnZhciBlbmFibGVMYXp5ID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRNb2RlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgbmF2aWdhdG9yLnVzZXJBZ2VudCA9PT0gJ3N0cmluZycgJiYgL1xcYkVkZ2VcXC9cXGQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbmZ1bmN0aW9uIGluc2VydFRyZWVDaGlsZHJlbih0cmVlKSB7XG4gIGlmICghZW5hYmxlTGF6eSkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbm9kZSA9IHRyZWUubm9kZTtcbiAgdmFyIGNoaWxkcmVuID0gdHJlZS5jaGlsZHJlbjtcbiAgaWYgKGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGluc2VydFRyZWVCZWZvcmUobm9kZSwgY2hpbGRyZW5baV0sIG51bGwpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0cmVlLmh0bWwgIT0gbnVsbCkge1xuICAgIHNldElubmVySFRNTChub2RlLCB0cmVlLmh0bWwpO1xuICB9IGVsc2UgaWYgKHRyZWUudGV4dCAhPSBudWxsKSB7XG4gICAgc2V0VGV4dENvbnRlbnQobm9kZSwgdHJlZS50ZXh0KTtcbiAgfVxufVxuXG52YXIgaW5zZXJ0VHJlZUJlZm9yZSA9IGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24gKHBhcmVudE5vZGUsIHRyZWUsIHJlZmVyZW5jZU5vZGUpIHtcbiAgLy8gRG9jdW1lbnRGcmFnbWVudHMgYXJlbid0IGFjdHVhbGx5IHBhcnQgb2YgdGhlIERPTSBhZnRlciBpbnNlcnRpb24gc29cbiAgLy8gYXBwZW5kaW5nIGNoaWxkcmVuIHdvbid0IHVwZGF0ZSB0aGUgRE9NLiBXZSBuZWVkIHRvIGVuc3VyZSB0aGUgZnJhZ21lbnRcbiAgLy8gaXMgcHJvcGVybHkgcG9wdWxhdGVkIGZpcnN0LCBicmVha2luZyBvdXQgb2Ygb3VyIGxhenkgYXBwcm9hY2ggZm9yIGp1c3RcbiAgLy8gdGhpcyBsZXZlbC4gQWxzbywgc29tZSA8b2JqZWN0PiBwbHVnaW5zIChsaWtlIEZsYXNoIFBsYXllcikgd2lsbCByZWFkXG4gIC8vIDxwYXJhbT4gbm9kZXMgaW1tZWRpYXRlbHkgdXBvbiBpbnNlcnRpb24gaW50byB0aGUgRE9NLCBzbyA8b2JqZWN0PlxuICAvLyBtdXN0IGFsc28gYmUgcG9wdWxhdGVkIHByaW9yIHRvIGluc2VydGlvbiBpbnRvIHRoZSBET00uXG4gIGlmICh0cmVlLm5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX0ZSQUdNRU5UX05PREVfVFlQRSB8fCB0cmVlLm5vZGUubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERV9UWVBFICYmIHRyZWUubm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnb2JqZWN0JyAmJiAodHJlZS5ub2RlLm5hbWVzcGFjZVVSSSA9PSBudWxsIHx8IHRyZWUubm9kZS5uYW1lc3BhY2VVUkkgPT09IERPTU5hbWVzcGFjZXMuaHRtbCkpIHtcbiAgICBpbnNlcnRUcmVlQ2hpbGRyZW4odHJlZSk7XG4gICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodHJlZS5ub2RlLCByZWZlcmVuY2VOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZSh0cmVlLm5vZGUsIHJlZmVyZW5jZU5vZGUpO1xuICAgIGluc2VydFRyZWVDaGlsZHJlbih0cmVlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHJlcGxhY2VDaGlsZFdpdGhUcmVlKG9sZE5vZGUsIG5ld1RyZWUpIHtcbiAgb2xkTm9kZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuZXdUcmVlLm5vZGUsIG9sZE5vZGUpO1xuICBpbnNlcnRUcmVlQ2hpbGRyZW4obmV3VHJlZSk7XG59XG5cbmZ1bmN0aW9uIHF1ZXVlQ2hpbGQocGFyZW50VHJlZSwgY2hpbGRUcmVlKSB7XG4gIGlmIChlbmFibGVMYXp5KSB7XG4gICAgcGFyZW50VHJlZS5jaGlsZHJlbi5wdXNoKGNoaWxkVHJlZSk7XG4gIH0gZWxzZSB7XG4gICAgcGFyZW50VHJlZS5ub2RlLmFwcGVuZENoaWxkKGNoaWxkVHJlZS5ub2RlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBxdWV1ZUhUTUwodHJlZSwgaHRtbCkge1xuICBpZiAoZW5hYmxlTGF6eSkge1xuICAgIHRyZWUuaHRtbCA9IGh0bWw7XG4gIH0gZWxzZSB7XG4gICAgc2V0SW5uZXJIVE1MKHRyZWUubm9kZSwgaHRtbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcXVldWVUZXh0KHRyZWUsIHRleHQpIHtcbiAgaWYgKGVuYWJsZUxhenkpIHtcbiAgICB0cmVlLnRleHQgPSB0ZXh0O1xuICB9IGVsc2Uge1xuICAgIHNldFRleHRDb250ZW50KHRyZWUubm9kZSwgdGV4dCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0aGlzLm5vZGUubm9kZU5hbWU7XG59XG5cbmZ1bmN0aW9uIERPTUxhenlUcmVlKG5vZGUpIHtcbiAgcmV0dXJuIHtcbiAgICBub2RlOiBub2RlLFxuICAgIGNoaWxkcmVuOiBbXSxcbiAgICBodG1sOiBudWxsLFxuICAgIHRleHQ6IG51bGwsXG4gICAgdG9TdHJpbmc6IHRvU3RyaW5nXG4gIH07XG59XG5cbkRPTUxhenlUcmVlLmluc2VydFRyZWVCZWZvcmUgPSBpbnNlcnRUcmVlQmVmb3JlO1xuRE9NTGF6eVRyZWUucmVwbGFjZUNoaWxkV2l0aFRyZWUgPSByZXBsYWNlQ2hpbGRXaXRoVHJlZTtcbkRPTUxhenlUcmVlLnF1ZXVlQ2hpbGQgPSBxdWV1ZUNoaWxkO1xuRE9NTGF6eVRyZWUucXVldWVIVE1MID0gcXVldWVIVE1MO1xuRE9NTGF6eVRyZWUucXVldWVUZXh0ID0gcXVldWVUZXh0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERPTUxhenlUcmVlO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvRE9NTGF6eVRyZWUuanNcbi8vIG1vZHVsZSBpZCA9IDIzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///23\n"); +eval("/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = __webpack_require__(/*! ./DOMNamespaces */ 53);\nvar setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ 39);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ 54);\nvar setTextContent = __webpack_require__(/*! ./setTextContent */ 88);\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some plugins (like Flash Player) will read\n // nodes immediately upon insertion into the DOM, so \n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9ET01MYXp5VHJlZS5qcz84NGM5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBET01OYW1lc3BhY2VzID0gcmVxdWlyZSgnLi9ET01OYW1lc3BhY2VzJyk7XG52YXIgc2V0SW5uZXJIVE1MID0gcmVxdWlyZSgnLi9zZXRJbm5lckhUTUwnKTtcblxudmFyIGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24gPSByZXF1aXJlKCcuL2NyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24nKTtcbnZhciBzZXRUZXh0Q29udGVudCA9IHJlcXVpcmUoJy4vc2V0VGV4dENvbnRlbnQnKTtcblxudmFyIEVMRU1FTlRfTk9ERV9UWVBFID0gMTtcbnZhciBET0NVTUVOVF9GUkFHTUVOVF9OT0RFX1RZUEUgPSAxMTtcblxuLyoqXG4gKiBJbiBJRSAoOC0xMSkgYW5kIEVkZ2UsIGFwcGVuZGluZyBub2RlcyB3aXRoIG5vIGNoaWxkcmVuIGlzIGRyYW1hdGljYWxseVxuICogZmFzdGVyIHRoYW4gYXBwZW5kaW5nIGEgZnVsbCBzdWJ0cmVlLCBzbyB3ZSBlc3NlbnRpYWxseSBxdWV1ZSB1cCB0aGVcbiAqIC5hcHBlbmRDaGlsZCBjYWxscyBoZXJlIGFuZCBhcHBseSB0aGVtIHNvIGVhY2ggbm9kZSBpcyBhZGRlZCB0byBpdHMgcGFyZW50XG4gKiBiZWZvcmUgYW55IGNoaWxkcmVuIGFyZSBhZGRlZC5cbiAqXG4gKiBJbiBvdGhlciBicm93c2VycywgZG9pbmcgc28gaXMgc2xvd2VyIG9yIG5ldXRyYWwgY29tcGFyZWQgdG8gdGhlIG90aGVyIG9yZGVyXG4gKiAoaW4gRmlyZWZveCwgdHdpY2UgYXMgc2xvdykgc28gd2Ugb25seSBkbyB0aGlzIGludmVyc2lvbiBpbiBJRS5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3NwaWN5ai9pbm5lcmh0bWwtdnMtY3JlYXRlZWxlbWVudC12cy1jbG9uZW5vZGUuXG4gKi9cbnZhciBlbmFibGVMYXp5ID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRNb2RlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgbmF2aWdhdG9yLnVzZXJBZ2VudCA9PT0gJ3N0cmluZycgJiYgL1xcYkVkZ2VcXC9cXGQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbmZ1bmN0aW9uIGluc2VydFRyZWVDaGlsZHJlbih0cmVlKSB7XG4gIGlmICghZW5hYmxlTGF6eSkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbm9kZSA9IHRyZWUubm9kZTtcbiAgdmFyIGNoaWxkcmVuID0gdHJlZS5jaGlsZHJlbjtcbiAgaWYgKGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGluc2VydFRyZWVCZWZvcmUobm9kZSwgY2hpbGRyZW5baV0sIG51bGwpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0cmVlLmh0bWwgIT0gbnVsbCkge1xuICAgIHNldElubmVySFRNTChub2RlLCB0cmVlLmh0bWwpO1xuICB9IGVsc2UgaWYgKHRyZWUudGV4dCAhPSBudWxsKSB7XG4gICAgc2V0VGV4dENvbnRlbnQobm9kZSwgdHJlZS50ZXh0KTtcbiAgfVxufVxuXG52YXIgaW5zZXJ0VHJlZUJlZm9yZSA9IGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24gKHBhcmVudE5vZGUsIHRyZWUsIHJlZmVyZW5jZU5vZGUpIHtcbiAgLy8gRG9jdW1lbnRGcmFnbWVudHMgYXJlbid0IGFjdHVhbGx5IHBhcnQgb2YgdGhlIERPTSBhZnRlciBpbnNlcnRpb24gc29cbiAgLy8gYXBwZW5kaW5nIGNoaWxkcmVuIHdvbid0IHVwZGF0ZSB0aGUgRE9NLiBXZSBuZWVkIHRvIGVuc3VyZSB0aGUgZnJhZ21lbnRcbiAgLy8gaXMgcHJvcGVybHkgcG9wdWxhdGVkIGZpcnN0LCBicmVha2luZyBvdXQgb2Ygb3VyIGxhenkgYXBwcm9hY2ggZm9yIGp1c3RcbiAgLy8gdGhpcyBsZXZlbC4gQWxzbywgc29tZSA8b2JqZWN0PiBwbHVnaW5zIChsaWtlIEZsYXNoIFBsYXllcikgd2lsbCByZWFkXG4gIC8vIDxwYXJhbT4gbm9kZXMgaW1tZWRpYXRlbHkgdXBvbiBpbnNlcnRpb24gaW50byB0aGUgRE9NLCBzbyA8b2JqZWN0PlxuICAvLyBtdXN0IGFsc28gYmUgcG9wdWxhdGVkIHByaW9yIHRvIGluc2VydGlvbiBpbnRvIHRoZSBET00uXG4gIGlmICh0cmVlLm5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX0ZSQUdNRU5UX05PREVfVFlQRSB8fCB0cmVlLm5vZGUubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERV9UWVBFICYmIHRyZWUubm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnb2JqZWN0JyAmJiAodHJlZS5ub2RlLm5hbWVzcGFjZVVSSSA9PSBudWxsIHx8IHRyZWUubm9kZS5uYW1lc3BhY2VVUkkgPT09IERPTU5hbWVzcGFjZXMuaHRtbCkpIHtcbiAgICBpbnNlcnRUcmVlQ2hpbGRyZW4odHJlZSk7XG4gICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodHJlZS5ub2RlLCByZWZlcmVuY2VOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZSh0cmVlLm5vZGUsIHJlZmVyZW5jZU5vZGUpO1xuICAgIGluc2VydFRyZWVDaGlsZHJlbih0cmVlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHJlcGxhY2VDaGlsZFdpdGhUcmVlKG9sZE5vZGUsIG5ld1RyZWUpIHtcbiAgb2xkTm9kZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuZXdUcmVlLm5vZGUsIG9sZE5vZGUpO1xuICBpbnNlcnRUcmVlQ2hpbGRyZW4obmV3VHJlZSk7XG59XG5cbmZ1bmN0aW9uIHF1ZXVlQ2hpbGQocGFyZW50VHJlZSwgY2hpbGRUcmVlKSB7XG4gIGlmIChlbmFibGVMYXp5KSB7XG4gICAgcGFyZW50VHJlZS5jaGlsZHJlbi5wdXNoKGNoaWxkVHJlZSk7XG4gIH0gZWxzZSB7XG4gICAgcGFyZW50VHJlZS5ub2RlLmFwcGVuZENoaWxkKGNoaWxkVHJlZS5ub2RlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBxdWV1ZUhUTUwodHJlZSwgaHRtbCkge1xuICBpZiAoZW5hYmxlTGF6eSkge1xuICAgIHRyZWUuaHRtbCA9IGh0bWw7XG4gIH0gZWxzZSB7XG4gICAgc2V0SW5uZXJIVE1MKHRyZWUubm9kZSwgaHRtbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcXVldWVUZXh0KHRyZWUsIHRleHQpIHtcbiAgaWYgKGVuYWJsZUxhenkpIHtcbiAgICB0cmVlLnRleHQgPSB0ZXh0O1xuICB9IGVsc2Uge1xuICAgIHNldFRleHRDb250ZW50KHRyZWUubm9kZSwgdGV4dCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0aGlzLm5vZGUubm9kZU5hbWU7XG59XG5cbmZ1bmN0aW9uIERPTUxhenlUcmVlKG5vZGUpIHtcbiAgcmV0dXJuIHtcbiAgICBub2RlOiBub2RlLFxuICAgIGNoaWxkcmVuOiBbXSxcbiAgICBodG1sOiBudWxsLFxuICAgIHRleHQ6IG51bGwsXG4gICAgdG9TdHJpbmc6IHRvU3RyaW5nXG4gIH07XG59XG5cbkRPTUxhenlUcmVlLmluc2VydFRyZWVCZWZvcmUgPSBpbnNlcnRUcmVlQmVmb3JlO1xuRE9NTGF6eVRyZWUucmVwbGFjZUNoaWxkV2l0aFRyZWUgPSByZXBsYWNlQ2hpbGRXaXRoVHJlZTtcbkRPTUxhenlUcmVlLnF1ZXVlQ2hpbGQgPSBxdWV1ZUNoaWxkO1xuRE9NTGF6eVRyZWUucXVldWVIVE1MID0gcXVldWVIVE1MO1xuRE9NTGF6eVRyZWUucXVldWVUZXh0ID0gcXVldWVUZXh0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERPTUxhenlUcmVlO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvRE9NTGF6eVRyZWUuanNcbi8vIG1vZHVsZSBpZCA9IDIzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///23\n"); /***/ }), /* 24 */ @@ -396,7 +396,7 @@ eval("/* unused harmony export ID_KEY */\n/* harmony export (immutable) */ __web /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ 46);\n\nvar accumulateInto = __webpack_require__(/*! ./accumulateInto */ 80);\nvar forEachAccumulated = __webpack_require__(/*! ./forEachAccumulated */ 81);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFByb3BhZ2F0b3JzLmpzPzJhZGQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV2ZW50UGx1Z2luSHViID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpbkh1YicpO1xudmFyIEV2ZW50UGx1Z2luVXRpbHMgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luVXRpbHMnKTtcblxudmFyIGFjY3VtdWxhdGVJbnRvID0gcmVxdWlyZSgnLi9hY2N1bXVsYXRlSW50bycpO1xudmFyIGZvckVhY2hBY2N1bXVsYXRlZCA9IHJlcXVpcmUoJy4vZm9yRWFjaEFjY3VtdWxhdGVkJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIGdldExpc3RlbmVyID0gRXZlbnRQbHVnaW5IdWIuZ2V0TGlzdGVuZXI7XG5cbi8qKlxuICogU29tZSBldmVudCB0eXBlcyBoYXZlIGEgbm90aW9uIG9mIGRpZmZlcmVudCByZWdpc3RyYXRpb24gbmFtZXMgZm9yIGRpZmZlcmVudFxuICogXCJwaGFzZXNcIiBvZiBwcm9wYWdhdGlvbi4gVGhpcyBmaW5kcyBsaXN0ZW5lcnMgYnkgYSBnaXZlbiBwaGFzZS5cbiAqL1xuZnVuY3Rpb24gbGlzdGVuZXJBdFBoYXNlKGluc3QsIGV2ZW50LCBwcm9wYWdhdGlvblBoYXNlKSB7XG4gIHZhciByZWdpc3RyYXRpb25OYW1lID0gZXZlbnQuZGlzcGF0Y2hDb25maWcucGhhc2VkUmVnaXN0cmF0aW9uTmFtZXNbcHJvcGFnYXRpb25QaGFzZV07XG4gIHJldHVybiBnZXRMaXN0ZW5lcihpbnN0LCByZWdpc3RyYXRpb25OYW1lKTtcbn1cblxuLyoqXG4gKiBUYWdzIGEgYFN5bnRoZXRpY0V2ZW50YCB3aXRoIGRpc3BhdGNoZWQgbGlzdGVuZXJzLiBDcmVhdGluZyB0aGlzIGZ1bmN0aW9uXG4gKiBoZXJlLCBhbGxvd3MgdXMgdG8gbm90IGhhdmUgdG8gYmluZCBvciBjcmVhdGUgZnVuY3Rpb25zIGZvciBlYWNoIGV2ZW50LlxuICogTXV0YXRpbmcgdGhlIGV2ZW50J3MgbWVtYmVycyBhbGxvd3MgdXMgdG8gbm90IGhhdmUgdG8gY3JlYXRlIGEgd3JhcHBpbmdcbiAqIFwiZGlzcGF0Y2hcIiBvYmplY3QgdGhhdCBwYWlycyB0aGUgZXZlbnQgd2l0aCB0aGUgbGlzdGVuZXIuXG4gKi9cbmZ1bmN0aW9uIGFjY3VtdWxhdGVEaXJlY3Rpb25hbERpc3BhdGNoZXMoaW5zdCwgcGhhc2UsIGV2ZW50KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoaW5zdCwgJ0Rpc3BhdGNoaW5nIGluc3QgbXVzdCBub3QgYmUgbnVsbCcpIDogdm9pZCAwO1xuICB9XG4gIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyQXRQaGFzZShpbnN0LCBldmVudCwgcGhhc2UpO1xuICBpZiAobGlzdGVuZXIpIHtcbiAgICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMsIGxpc3RlbmVyKTtcbiAgICBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMsIGluc3QpO1xuICB9XG59XG5cbi8qKlxuICogQ29sbGVjdCBkaXNwYXRjaGVzIChtdXN0IGJlIGVudGlyZWx5IGNvbGxlY3RlZCBiZWZvcmUgZGlzcGF0Y2hpbmcgLSBzZWUgdW5pdFxuICogdGVzdHMpLiBMYXppbHkgYWxsb2NhdGUgdGhlIGFycmF5IHRvIGNvbnNlcnZlIG1lbW9yeS4gIFdlIG11c3QgbG9vcCB0aHJvdWdoXG4gKiBlYWNoIGV2ZW50IGFuZCBwZXJmb3JtIHRoZSB0cmF2ZXJzYWwgZm9yIGVhY2ggb25lLiBXZSBjYW5ub3QgcGVyZm9ybSBhXG4gKiBzaW5nbGUgdHJhdmVyc2FsIGZvciB0aGUgZW50aXJlIGNvbGxlY3Rpb24gb2YgZXZlbnRzIGJlY2F1c2UgZWFjaCBldmVudCBtYXlcbiAqIGhhdmUgYSBkaWZmZXJlbnQgdGFyZ2V0LlxuICovXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2luZ2xlKGV2ZW50KSB7XG4gIGlmIChldmVudCAmJiBldmVudC5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lcykge1xuICAgIEV2ZW50UGx1Z2luVXRpbHMudHJhdmVyc2VUd29QaGFzZShldmVudC5fdGFyZ2V0SW5zdCwgYWNjdW11bGF0ZURpcmVjdGlvbmFsRGlzcGF0Y2hlcywgZXZlbnQpO1xuICB9XG59XG5cbi8qKlxuICogU2FtZSBhcyBgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZWAsIGJ1dCBza2lwcyBvdmVyIHRoZSB0YXJnZXRJRC5cbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZVNraXBUYXJnZXQoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LmRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzKSB7XG4gICAgdmFyIHRhcmdldEluc3QgPSBldmVudC5fdGFyZ2V0SW5zdDtcbiAgICB2YXIgcGFyZW50SW5zdCA9IHRhcmdldEluc3QgPyBFdmVudFBsdWdpblV0aWxzLmdldFBhcmVudEluc3RhbmNlKHRhcmdldEluc3QpIDogbnVsbDtcbiAgICBFdmVudFBsdWdpblV0aWxzLnRyYXZlcnNlVHdvUGhhc2UocGFyZW50SW5zdCwgYWNjdW11bGF0ZURpcmVjdGlvbmFsRGlzcGF0Y2hlcywgZXZlbnQpO1xuICB9XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZXMgd2l0aG91dCByZWdhcmQgdG8gZGlyZWN0aW9uLCBkb2VzIG5vdCBsb29rIGZvciBwaGFzZWRcbiAqIHJlZ2lzdHJhdGlvbiBuYW1lcy4gU2FtZSBhcyBgYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXNTaW5nbGVgIGJ1dCB3aXRob3V0XG4gKiByZXF1aXJpbmcgdGhhdCB0aGUgYGRpc3BhdGNoTWFya2VyYCBiZSB0aGUgc2FtZSBhcyB0aGUgZGlzcGF0Y2hlZCBJRC5cbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZURpc3BhdGNoZXMoaW5zdCwgaWdub3JlZERpcmVjdGlvbiwgZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICB2YXIgcmVnaXN0cmF0aW9uTmFtZSA9IGV2ZW50LmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWU7XG4gICAgdmFyIGxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMsIGxpc3RlbmVyKTtcbiAgICAgIGV2ZW50Ll9kaXNwYXRjaEluc3RhbmNlcyA9IGFjY3VtdWxhdGVJbnRvKGV2ZW50Ll9kaXNwYXRjaEluc3RhbmNlcywgaW5zdCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZXMgZGlzcGF0Y2hlcyBvbiBhbiBgU3ludGhldGljRXZlbnRgLCBidXQgb25seSBmb3IgdGhlXG4gKiBgZGlzcGF0Y2hNYXJrZXJgLlxuICogQHBhcmFtIHtTeW50aGV0aWNFdmVudH0gZXZlbnRcbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXNTaW5nbGUoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICBhY2N1bXVsYXRlRGlzcGF0Y2hlcyhldmVudC5fdGFyZ2V0SW5zdCwgbnVsbCwgZXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoZXZlbnRzKSB7XG4gIGZvckVhY2hBY2N1bXVsYXRlZChldmVudHMsIGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTaW5nbGUpO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2tpcFRhcmdldChldmVudHMpIHtcbiAgZm9yRWFjaEFjY3VtdWxhdGVkKGV2ZW50cywgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZVNraXBUYXJnZXQpO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZURpc3BhdGNoZXMobGVhdmUsIGVudGVyLCBmcm9tLCB0bykge1xuICBFdmVudFBsdWdpblV0aWxzLnRyYXZlcnNlRW50ZXJMZWF2ZShmcm9tLCB0bywgYWNjdW11bGF0ZURpc3BhdGNoZXMsIGxlYXZlLCBlbnRlcik7XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVEaXJlY3REaXNwYXRjaGVzKGV2ZW50cykge1xuICBmb3JFYWNoQWNjdW11bGF0ZWQoZXZlbnRzLCBhY2N1bXVsYXRlRGlyZWN0RGlzcGF0Y2hlc1NpbmdsZSk7XG59XG5cbi8qKlxuICogQSBzbWFsbCBzZXQgb2YgcHJvcGFnYXRpb24gcGF0dGVybnMsIGVhY2ggb2Ygd2hpY2ggd2lsbCBhY2NlcHQgYSBzbWFsbCBhbW91bnRcbiAqIG9mIGluZm9ybWF0aW9uLCBhbmQgZ2VuZXJhdGUgYSBzZXQgb2YgXCJkaXNwYXRjaCByZWFkeSBldmVudCBvYmplY3RzXCIgLSB3aGljaFxuICogYXJlIHNldHMgb2YgZXZlbnRzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYW5ub3RhdGVkIHdpdGggYSBzZXQgb2YgZGlzcGF0Y2hlZFxuICogbGlzdGVuZXIgZnVuY3Rpb25zL2lkcy4gVGhlIEFQSSBpcyBkZXNpZ25lZCB0aGlzIHdheSB0byBkaXNjb3VyYWdlIHRoZXNlXG4gKiBwcm9wYWdhdGlvbiBzdHJhdGVnaWVzIGZyb20gYWN0dWFsbHkgZXhlY3V0aW5nIHRoZSBkaXNwYXRjaGVzLCBzaW5jZSB3ZVxuICogYWx3YXlzIHdhbnQgdG8gY29sbGVjdCB0aGUgZW50aXJlIHNldCBvZiBkaXNwYXRjaGVzIGJlZm9yZSBleGVjdXRpbmcgZXZlbnQgYVxuICogc2luZ2xlIG9uZS5cbiAqXG4gKiBAY29uc3RydWN0b3IgRXZlbnRQcm9wYWdhdG9yc1xuICovXG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHtcbiAgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlczogYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyxcbiAgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NraXBUYXJnZXQ6IGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTa2lwVGFyZ2V0LFxuICBhY2N1bXVsYXRlRGlyZWN0RGlzcGF0Y2hlczogYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXMsXG4gIGFjY3VtdWxhdGVFbnRlckxlYXZlRGlzcGF0Y2hlczogYWNjdW11bGF0ZUVudGVyTGVhdmVEaXNwYXRjaGVzXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50UHJvcGFnYXRvcnM7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFByb3BhZ2F0b3JzLmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///27\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ 47);\n\nvar accumulateInto = __webpack_require__(/*! ./accumulateInto */ 80);\nvar forEachAccumulated = __webpack_require__(/*! ./forEachAccumulated */ 81);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event._targetInst, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFByb3BhZ2F0b3JzLmpzPzJhZGQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV2ZW50UGx1Z2luSHViID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpbkh1YicpO1xudmFyIEV2ZW50UGx1Z2luVXRpbHMgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luVXRpbHMnKTtcblxudmFyIGFjY3VtdWxhdGVJbnRvID0gcmVxdWlyZSgnLi9hY2N1bXVsYXRlSW50bycpO1xudmFyIGZvckVhY2hBY2N1bXVsYXRlZCA9IHJlcXVpcmUoJy4vZm9yRWFjaEFjY3VtdWxhdGVkJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIGdldExpc3RlbmVyID0gRXZlbnRQbHVnaW5IdWIuZ2V0TGlzdGVuZXI7XG5cbi8qKlxuICogU29tZSBldmVudCB0eXBlcyBoYXZlIGEgbm90aW9uIG9mIGRpZmZlcmVudCByZWdpc3RyYXRpb24gbmFtZXMgZm9yIGRpZmZlcmVudFxuICogXCJwaGFzZXNcIiBvZiBwcm9wYWdhdGlvbi4gVGhpcyBmaW5kcyBsaXN0ZW5lcnMgYnkgYSBnaXZlbiBwaGFzZS5cbiAqL1xuZnVuY3Rpb24gbGlzdGVuZXJBdFBoYXNlKGluc3QsIGV2ZW50LCBwcm9wYWdhdGlvblBoYXNlKSB7XG4gIHZhciByZWdpc3RyYXRpb25OYW1lID0gZXZlbnQuZGlzcGF0Y2hDb25maWcucGhhc2VkUmVnaXN0cmF0aW9uTmFtZXNbcHJvcGFnYXRpb25QaGFzZV07XG4gIHJldHVybiBnZXRMaXN0ZW5lcihpbnN0LCByZWdpc3RyYXRpb25OYW1lKTtcbn1cblxuLyoqXG4gKiBUYWdzIGEgYFN5bnRoZXRpY0V2ZW50YCB3aXRoIGRpc3BhdGNoZWQgbGlzdGVuZXJzLiBDcmVhdGluZyB0aGlzIGZ1bmN0aW9uXG4gKiBoZXJlLCBhbGxvd3MgdXMgdG8gbm90IGhhdmUgdG8gYmluZCBvciBjcmVhdGUgZnVuY3Rpb25zIGZvciBlYWNoIGV2ZW50LlxuICogTXV0YXRpbmcgdGhlIGV2ZW50J3MgbWVtYmVycyBhbGxvd3MgdXMgdG8gbm90IGhhdmUgdG8gY3JlYXRlIGEgd3JhcHBpbmdcbiAqIFwiZGlzcGF0Y2hcIiBvYmplY3QgdGhhdCBwYWlycyB0aGUgZXZlbnQgd2l0aCB0aGUgbGlzdGVuZXIuXG4gKi9cbmZ1bmN0aW9uIGFjY3VtdWxhdGVEaXJlY3Rpb25hbERpc3BhdGNoZXMoaW5zdCwgcGhhc2UsIGV2ZW50KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoaW5zdCwgJ0Rpc3BhdGNoaW5nIGluc3QgbXVzdCBub3QgYmUgbnVsbCcpIDogdm9pZCAwO1xuICB9XG4gIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyQXRQaGFzZShpbnN0LCBldmVudCwgcGhhc2UpO1xuICBpZiAobGlzdGVuZXIpIHtcbiAgICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMsIGxpc3RlbmVyKTtcbiAgICBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMsIGluc3QpO1xuICB9XG59XG5cbi8qKlxuICogQ29sbGVjdCBkaXNwYXRjaGVzIChtdXN0IGJlIGVudGlyZWx5IGNvbGxlY3RlZCBiZWZvcmUgZGlzcGF0Y2hpbmcgLSBzZWUgdW5pdFxuICogdGVzdHMpLiBMYXppbHkgYWxsb2NhdGUgdGhlIGFycmF5IHRvIGNvbnNlcnZlIG1lbW9yeS4gIFdlIG11c3QgbG9vcCB0aHJvdWdoXG4gKiBlYWNoIGV2ZW50IGFuZCBwZXJmb3JtIHRoZSB0cmF2ZXJzYWwgZm9yIGVhY2ggb25lLiBXZSBjYW5ub3QgcGVyZm9ybSBhXG4gKiBzaW5nbGUgdHJhdmVyc2FsIGZvciB0aGUgZW50aXJlIGNvbGxlY3Rpb24gb2YgZXZlbnRzIGJlY2F1c2UgZWFjaCBldmVudCBtYXlcbiAqIGhhdmUgYSBkaWZmZXJlbnQgdGFyZ2V0LlxuICovXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2luZ2xlKGV2ZW50KSB7XG4gIGlmIChldmVudCAmJiBldmVudC5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lcykge1xuICAgIEV2ZW50UGx1Z2luVXRpbHMudHJhdmVyc2VUd29QaGFzZShldmVudC5fdGFyZ2V0SW5zdCwgYWNjdW11bGF0ZURpcmVjdGlvbmFsRGlzcGF0Y2hlcywgZXZlbnQpO1xuICB9XG59XG5cbi8qKlxuICogU2FtZSBhcyBgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZWAsIGJ1dCBza2lwcyBvdmVyIHRoZSB0YXJnZXRJRC5cbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZVNraXBUYXJnZXQoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LmRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzKSB7XG4gICAgdmFyIHRhcmdldEluc3QgPSBldmVudC5fdGFyZ2V0SW5zdDtcbiAgICB2YXIgcGFyZW50SW5zdCA9IHRhcmdldEluc3QgPyBFdmVudFBsdWdpblV0aWxzLmdldFBhcmVudEluc3RhbmNlKHRhcmdldEluc3QpIDogbnVsbDtcbiAgICBFdmVudFBsdWdpblV0aWxzLnRyYXZlcnNlVHdvUGhhc2UocGFyZW50SW5zdCwgYWNjdW11bGF0ZURpcmVjdGlvbmFsRGlzcGF0Y2hlcywgZXZlbnQpO1xuICB9XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZXMgd2l0aG91dCByZWdhcmQgdG8gZGlyZWN0aW9uLCBkb2VzIG5vdCBsb29rIGZvciBwaGFzZWRcbiAqIHJlZ2lzdHJhdGlvbiBuYW1lcy4gU2FtZSBhcyBgYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXNTaW5nbGVgIGJ1dCB3aXRob3V0XG4gKiByZXF1aXJpbmcgdGhhdCB0aGUgYGRpc3BhdGNoTWFya2VyYCBiZSB0aGUgc2FtZSBhcyB0aGUgZGlzcGF0Y2hlZCBJRC5cbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZURpc3BhdGNoZXMoaW5zdCwgaWdub3JlZERpcmVjdGlvbiwgZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICB2YXIgcmVnaXN0cmF0aW9uTmFtZSA9IGV2ZW50LmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWU7XG4gICAgdmFyIGxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMsIGxpc3RlbmVyKTtcbiAgICAgIGV2ZW50Ll9kaXNwYXRjaEluc3RhbmNlcyA9IGFjY3VtdWxhdGVJbnRvKGV2ZW50Ll9kaXNwYXRjaEluc3RhbmNlcywgaW5zdCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZXMgZGlzcGF0Y2hlcyBvbiBhbiBgU3ludGhldGljRXZlbnRgLCBidXQgb25seSBmb3IgdGhlXG4gKiBgZGlzcGF0Y2hNYXJrZXJgLlxuICogQHBhcmFtIHtTeW50aGV0aWNFdmVudH0gZXZlbnRcbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXNTaW5nbGUoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICBhY2N1bXVsYXRlRGlzcGF0Y2hlcyhldmVudC5fdGFyZ2V0SW5zdCwgbnVsbCwgZXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoZXZlbnRzKSB7XG4gIGZvckVhY2hBY2N1bXVsYXRlZChldmVudHMsIGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTaW5nbGUpO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2tpcFRhcmdldChldmVudHMpIHtcbiAgZm9yRWFjaEFjY3VtdWxhdGVkKGV2ZW50cywgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZVNraXBUYXJnZXQpO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZURpc3BhdGNoZXMobGVhdmUsIGVudGVyLCBmcm9tLCB0bykge1xuICBFdmVudFBsdWdpblV0aWxzLnRyYXZlcnNlRW50ZXJMZWF2ZShmcm9tLCB0bywgYWNjdW11bGF0ZURpc3BhdGNoZXMsIGxlYXZlLCBlbnRlcik7XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVEaXJlY3REaXNwYXRjaGVzKGV2ZW50cykge1xuICBmb3JFYWNoQWNjdW11bGF0ZWQoZXZlbnRzLCBhY2N1bXVsYXRlRGlyZWN0RGlzcGF0Y2hlc1NpbmdsZSk7XG59XG5cbi8qKlxuICogQSBzbWFsbCBzZXQgb2YgcHJvcGFnYXRpb24gcGF0dGVybnMsIGVhY2ggb2Ygd2hpY2ggd2lsbCBhY2NlcHQgYSBzbWFsbCBhbW91bnRcbiAqIG9mIGluZm9ybWF0aW9uLCBhbmQgZ2VuZXJhdGUgYSBzZXQgb2YgXCJkaXNwYXRjaCByZWFkeSBldmVudCBvYmplY3RzXCIgLSB3aGljaFxuICogYXJlIHNldHMgb2YgZXZlbnRzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYW5ub3RhdGVkIHdpdGggYSBzZXQgb2YgZGlzcGF0Y2hlZFxuICogbGlzdGVuZXIgZnVuY3Rpb25zL2lkcy4gVGhlIEFQSSBpcyBkZXNpZ25lZCB0aGlzIHdheSB0byBkaXNjb3VyYWdlIHRoZXNlXG4gKiBwcm9wYWdhdGlvbiBzdHJhdGVnaWVzIGZyb20gYWN0dWFsbHkgZXhlY3V0aW5nIHRoZSBkaXNwYXRjaGVzLCBzaW5jZSB3ZVxuICogYWx3YXlzIHdhbnQgdG8gY29sbGVjdCB0aGUgZW50aXJlIHNldCBvZiBkaXNwYXRjaGVzIGJlZm9yZSBleGVjdXRpbmcgZXZlbnQgYVxuICogc2luZ2xlIG9uZS5cbiAqXG4gKiBAY29uc3RydWN0b3IgRXZlbnRQcm9wYWdhdG9yc1xuICovXG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHtcbiAgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlczogYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyxcbiAgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NraXBUYXJnZXQ6IGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTa2lwVGFyZ2V0LFxuICBhY2N1bXVsYXRlRGlyZWN0RGlzcGF0Y2hlczogYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXMsXG4gIGFjY3VtdWxhdGVFbnRlckxlYXZlRGlzcGF0Y2hlczogYWNjdW11bGF0ZUVudGVyTGVhdmVEaXNwYXRjaGVzXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50UHJvcGFnYXRvcnM7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFByb3BhZ2F0b3JzLmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///27\n"); /***/ }), /* 28 */ @@ -408,7 +408,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ 36);\nvar EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ 46);\nvar ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ 47);\n\nvar accumulateInto = __webpack_require__(/*! ./accumulateInto */ 80);\nvar forEachAccumulated = __webpack_require__(/*! ./forEachAccumulated */ 81);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n if (event) {\n EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function (inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n },\n\n /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, registrationName, listener) {\n !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function (events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function (simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function () {\n listenerBank = {};\n },\n\n __getListenerBank: function () {\n return listenerBank;\n }\n};\n\nmodule.exports = EventPluginHub;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFBsdWdpbkh1Yi5qcz8zYzQ0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBFdmVudFBsdWdpblJlZ2lzdHJ5ID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpblJlZ2lzdHJ5Jyk7XG52YXIgRXZlbnRQbHVnaW5VdGlscyA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5VdGlscycpO1xudmFyIFJlYWN0RXJyb3JVdGlscyA9IHJlcXVpcmUoJy4vUmVhY3RFcnJvclV0aWxzJyk7XG5cbnZhciBhY2N1bXVsYXRlSW50byA9IHJlcXVpcmUoJy4vYWNjdW11bGF0ZUludG8nKTtcbnZhciBmb3JFYWNoQWNjdW11bGF0ZWQgPSByZXF1aXJlKCcuL2ZvckVhY2hBY2N1bXVsYXRlZCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIEludGVybmFsIHN0b3JlIGZvciBldmVudCBsaXN0ZW5lcnNcbiAqL1xudmFyIGxpc3RlbmVyQmFuayA9IHt9O1xuXG4vKipcbiAqIEludGVybmFsIHF1ZXVlIG9mIGV2ZW50cyB0aGF0IGhhdmUgYWNjdW11bGF0ZWQgdGhlaXIgZGlzcGF0Y2hlcyBhbmQgYXJlXG4gKiB3YWl0aW5nIHRvIGhhdmUgdGhlaXIgZGlzcGF0Y2hlcyBleGVjdXRlZC5cbiAqL1xudmFyIGV2ZW50UXVldWUgPSBudWxsO1xuXG4vKipcbiAqIERpc3BhdGNoZXMgYW4gZXZlbnQgYW5kIHJlbGVhc2VzIGl0IGJhY2sgaW50byB0aGUgcG9vbCwgdW5sZXNzIHBlcnNpc3RlbnQuXG4gKlxuICogQHBhcmFtIHs/b2JqZWN0fSBldmVudCBTeW50aGV0aWMgZXZlbnQgdG8gYmUgZGlzcGF0Y2hlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2ltdWxhdGVkIElmIHRoZSBldmVudCBpcyBzaW11bGF0ZWQgKGNoYW5nZXMgZXhuIGJlaGF2aW9yKVxuICogQHByaXZhdGVcbiAqL1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZSA9IGZ1bmN0aW9uIChldmVudCwgc2ltdWxhdGVkKSB7XG4gIGlmIChldmVudCkge1xuICAgIEV2ZW50UGx1Z2luVXRpbHMuZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyKGV2ZW50LCBzaW11bGF0ZWQpO1xuXG4gICAgaWYgKCFldmVudC5pc1BlcnNpc3RlbnQoKSkge1xuICAgICAgZXZlbnQuY29uc3RydWN0b3IucmVsZWFzZShldmVudCk7XG4gICAgfVxuICB9XG59O1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVNpbXVsYXRlZCA9IGZ1bmN0aW9uIChlKSB7XG4gIHJldHVybiBleGVjdXRlRGlzcGF0Y2hlc0FuZFJlbGVhc2UoZSwgdHJ1ZSk7XG59O1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVRvcExldmVsID0gZnVuY3Rpb24gKGUpIHtcbiAgcmV0dXJuIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZShlLCBmYWxzZSk7XG59O1xuXG52YXIgZ2V0RGljdGlvbmFyeUtleSA9IGZ1bmN0aW9uIChpbnN0KSB7XG4gIC8vIFByZXZlbnRzIFY4IHBlcmZvcm1hbmNlIGlzc3VlOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MjMyXG4gIHJldHVybiAnLicgKyBpbnN0Ll9yb290Tm9kZUlEO1xufTtcblxuZnVuY3Rpb24gaXNJbnRlcmFjdGl2ZSh0YWcpIHtcbiAgcmV0dXJuIHRhZyA9PT0gJ2J1dHRvbicgfHwgdGFnID09PSAnaW5wdXQnIHx8IHRhZyA9PT0gJ3NlbGVjdCcgfHwgdGFnID09PSAndGV4dGFyZWEnO1xufVxuXG5mdW5jdGlvbiBzaG91bGRQcmV2ZW50TW91c2VFdmVudChuYW1lLCB0eXBlLCBwcm9wcykge1xuICBzd2l0Y2ggKG5hbWUpIHtcbiAgICBjYXNlICdvbkNsaWNrJzpcbiAgICBjYXNlICdvbkNsaWNrQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Eb3VibGVDbGljayc6XG4gICAgY2FzZSAnb25Eb3VibGVDbGlja0NhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VEb3duJzpcbiAgICBjYXNlICdvbk1vdXNlRG93bkNhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VNb3ZlJzpcbiAgICBjYXNlICdvbk1vdXNlTW92ZUNhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VVcCc6XG4gICAgY2FzZSAnb25Nb3VzZVVwQ2FwdHVyZSc6XG4gICAgICByZXR1cm4gISEocHJvcHMuZGlzYWJsZWQgJiYgaXNJbnRlcmFjdGl2ZSh0eXBlKSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYSB1bmlmaWVkIGludGVyZmFjZSBmb3IgZXZlbnQgcGx1Z2lucyB0byBiZSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuXG4gKlxuICogRXZlbnQgcGx1Z2lucyBjYW4gaW1wbGVtZW50IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIGBleHRyYWN0RXZlbnRzYCB7ZnVuY3Rpb24oc3RyaW5nLCBET01FdmVudFRhcmdldCwgc3RyaW5nLCBvYmplY3QpOiAqfVxuICogICAgIFJlcXVpcmVkLiBXaGVuIGEgdG9wLWxldmVsIGV2ZW50IGlzIGZpcmVkLCB0aGlzIG1ldGhvZCBpcyBleHBlY3RlZCB0b1xuICogICAgIGV4dHJhY3Qgc3ludGhldGljIGV2ZW50cyB0aGF0IHdpbGwgaW4gdHVybiBiZSBxdWV1ZWQgYW5kIGRpc3BhdGNoZWQuXG4gKlxuICogICBgZXZlbnRUeXBlc2Age29iamVjdH1cbiAqICAgICBPcHRpb25hbCwgcGx1Z2lucyB0aGF0IGZpcmUgZXZlbnRzIG11c3QgcHVibGlzaCBhIG1hcHBpbmcgb2YgcmVnaXN0cmF0aW9uXG4gKiAgICAgbmFtZXMgdGhhdCBhcmUgdXNlZCB0byByZWdpc3RlciBsaXN0ZW5lcnMuIFZhbHVlcyBvZiB0aGlzIG1hcHBpbmcgbXVzdFxuICogICAgIGJlIG9iamVjdHMgdGhhdCBjb250YWluIGByZWdpc3RyYXRpb25OYW1lYCBvciBgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXNgLlxuICpcbiAqICAgYGV4ZWN1dGVEaXNwYXRjaGAge2Z1bmN0aW9uKG9iamVjdCwgZnVuY3Rpb24sIHN0cmluZyl9XG4gKiAgICAgT3B0aW9uYWwsIGFsbG93cyBwbHVnaW5zIHRvIG92ZXJyaWRlIGhvdyBhbiBldmVudCBnZXRzIGRpc3BhdGNoZWQuIEJ5XG4gKiAgICAgZGVmYXVsdCwgdGhlIGxpc3RlbmVyIGlzIHNpbXBseSBpbnZva2VkLlxuICpcbiAqIEVhY2ggcGx1Z2luIHRoYXQgaXMgaW5qZWN0ZWQgaW50byBgRXZlbnRzUGx1Z2luSHViYCBpcyBpbW1lZGlhdGVseSBvcGVyYWJsZS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbnZhciBFdmVudFBsdWdpbkh1YiA9IHtcbiAgLyoqXG4gICAqIE1ldGhvZHMgZm9yIGluamVjdGluZyBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBpbmplY3Rpb246IHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge2FycmF5fSBJbmplY3RlZEV2ZW50UGx1Z2luT3JkZXJcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgaW5qZWN0RXZlbnRQbHVnaW5PcmRlcjogRXZlbnRQbHVnaW5SZWdpc3RyeS5pbmplY3RFdmVudFBsdWdpbk9yZGVyLFxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGluamVjdGVkTmFtZXNUb1BsdWdpbnMgTWFwIGZyb20gbmFtZXMgdG8gcGx1Z2luIG1vZHVsZXMuXG4gICAgICovXG4gICAgaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lOiBFdmVudFBsdWdpblJlZ2lzdHJ5LmluamVjdEV2ZW50UGx1Z2luc0J5TmFtZVxuICB9LFxuXG4gIC8qKlxuICAgKiBTdG9yZXMgYGxpc3RlbmVyYCBhdCBgbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdW2tleV1gLiBJcyBpZGVtcG90ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGxpc3RlbmVyIFRoZSBjYWxsYmFjayB0byBzdG9yZS5cbiAgICovXG4gIHB1dExpc3RlbmVyOiBmdW5jdGlvbiAoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSwgbGlzdGVuZXIpIHtcbiAgICAhKHR5cGVvZiBsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnRXhwZWN0ZWQgJXMgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgdHlwZSAlcycsIHJlZ2lzdHJhdGlvbk5hbWUsIHR5cGVvZiBsaXN0ZW5lcikgOiBfcHJvZEludmFyaWFudCgnOTQnLCByZWdpc3RyYXRpb25OYW1lLCB0eXBlb2YgbGlzdGVuZXIpIDogdm9pZCAwO1xuXG4gICAgdmFyIGtleSA9IGdldERpY3Rpb25hcnlLZXkoaW5zdCk7XG4gICAgdmFyIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lID0gbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdIHx8IChsaXN0ZW5lckJhbmtbcmVnaXN0cmF0aW9uTmFtZV0gPSB7fSk7XG4gICAgYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWVba2V5XSA9IGxpc3RlbmVyO1xuXG4gICAgdmFyIFBsdWdpbk1vZHVsZSA9IEV2ZW50UGx1Z2luUmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZU1vZHVsZXNbcmVnaXN0cmF0aW9uTmFtZV07XG4gICAgaWYgKFBsdWdpbk1vZHVsZSAmJiBQbHVnaW5Nb2R1bGUuZGlkUHV0TGlzdGVuZXIpIHtcbiAgICAgIFBsdWdpbk1vZHVsZS5kaWRQdXRMaXN0ZW5lcihpbnN0LCByZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqIEByZXR1cm4gez9mdW5jdGlvbn0gVGhlIHN0b3JlZCBjYWxsYmFjay5cbiAgICovXG4gIGdldExpc3RlbmVyOiBmdW5jdGlvbiAoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSkge1xuICAgIC8vIFRPRE86IHNob3VsZFByZXZlbnRNb3VzZUV2ZW50IGlzIERPTS1zcGVjaWZpYyBhbmQgZGVmaW5pdGVseSBzaG91bGQgbm90XG4gICAgLy8gbGl2ZSBoZXJlOyBuZWVkcyB0byBiZSBtb3ZlZCB0byBhIGJldHRlciBwbGFjZSBzb29uXG4gICAgdmFyIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lID0gbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgIGlmIChzaG91bGRQcmV2ZW50TW91c2VFdmVudChyZWdpc3RyYXRpb25OYW1lLCBpbnN0Ll9jdXJyZW50RWxlbWVudC50eXBlLCBpbnN0Ll9jdXJyZW50RWxlbWVudC5wcm9wcykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIga2V5ID0gZ2V0RGljdGlvbmFyeUtleShpbnN0KTtcbiAgICByZXR1cm4gYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWUgJiYgYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWVba2V5XTtcbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlcyBhIGxpc3RlbmVyIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBiYW5rLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqL1xuICBkZWxldGVMaXN0ZW5lcjogZnVuY3Rpb24gKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICB2YXIgUGx1Z2luTW9kdWxlID0gRXZlbnRQbHVnaW5SZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlc1tyZWdpc3RyYXRpb25OYW1lXTtcbiAgICBpZiAoUGx1Z2luTW9kdWxlICYmIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIpIHtcbiAgICAgIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lID0gbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgIC8vIFRPRE86IFRoaXMgc2hvdWxkIG5ldmVyIGJlIG51bGwgLS0gd2hlbiBpcyBpdD9cbiAgICBpZiAoYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICAgIHZhciBrZXkgPSBnZXREaWN0aW9uYXJ5S2V5KGluc3QpO1xuICAgICAgZGVsZXRlIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lW2tleV07XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGFsbCBsaXN0ZW5lcnMgZm9yIHRoZSBET00gZWxlbWVudCB3aXRoIHRoZSBzdXBwbGllZCBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGluc3QgVGhlIGluc3RhbmNlLCB3aGljaCBpcyB0aGUgc291cmNlIG9mIGV2ZW50cy5cbiAgICovXG4gIGRlbGV0ZUFsbExpc3RlbmVyczogZnVuY3Rpb24gKGluc3QpIHtcbiAgICB2YXIga2V5ID0gZ2V0RGljdGlvbmFyeUtleShpbnN0KTtcbiAgICBmb3IgKHZhciByZWdpc3RyYXRpb25OYW1lIGluIGxpc3RlbmVyQmFuaykge1xuICAgICAgaWYgKCFsaXN0ZW5lckJhbmsuaGFzT3duUHJvcGVydHkocmVnaXN0cmF0aW9uTmFtZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdW2tleV0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBQbHVnaW5Nb2R1bGUgPSBFdmVudFBsdWdpblJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgICAgaWYgKFBsdWdpbk1vZHVsZSAmJiBQbHVnaW5Nb2R1bGUud2lsbERlbGV0ZUxpc3RlbmVyKSB7XG4gICAgICAgIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSBsaXN0ZW5lckJhbmtbcmVnaXN0cmF0aW9uTmFtZV1ba2V5XTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFsbG93cyByZWdpc3RlcmVkIHBsdWdpbnMgYW4gb3Bwb3J0dW5pdHkgdG8gZXh0cmFjdCBldmVudHMgZnJvbSB0b3AtbGV2ZWxcbiAgICogbmF0aXZlIGJyb3dzZXIgZXZlbnRzLlxuICAgKlxuICAgKiBAcmV0dXJuIHsqfSBBbiBhY2N1bXVsYXRpb24gb2Ygc3ludGhldGljIGV2ZW50cy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgZXZlbnRzO1xuICAgIHZhciBwbHVnaW5zID0gRXZlbnRQbHVnaW5SZWdpc3RyeS5wbHVnaW5zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGx1Z2lucy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gTm90IGV2ZXJ5IHBsdWdpbiBpbiB0aGUgb3JkZXJpbmcgbWF5IGJlIGxvYWRlZCBhdCBydW50aW1lLlxuICAgICAgdmFyIHBvc3NpYmxlUGx1Z2luID0gcGx1Z2luc1tpXTtcbiAgICAgIGlmIChwb3NzaWJsZVBsdWdpbikge1xuICAgICAgICB2YXIgZXh0cmFjdGVkRXZlbnRzID0gcG9zc2libGVQbHVnaW4uZXh0cmFjdEV2ZW50cyh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgICAgIGlmIChleHRyYWN0ZWRFdmVudHMpIHtcbiAgICAgICAgICBldmVudHMgPSBhY2N1bXVsYXRlSW50byhldmVudHMsIGV4dHJhY3RlZEV2ZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfSxcblxuICAvKipcbiAgICogRW5xdWV1ZXMgYSBzeW50aGV0aWMgZXZlbnQgdGhhdCBzaG91bGQgYmUgZGlzcGF0Y2hlZCB3aGVuXG4gICAqIGBwcm9jZXNzRXZlbnRRdWV1ZWAgaXMgaW52b2tlZC5cbiAgICpcbiAgICogQHBhcmFtIHsqfSBldmVudHMgQW4gYWNjdW11bGF0aW9uIG9mIHN5bnRoZXRpYyBldmVudHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZUV2ZW50czogZnVuY3Rpb24gKGV2ZW50cykge1xuICAgIGlmIChldmVudHMpIHtcbiAgICAgIGV2ZW50UXVldWUgPSBhY2N1bXVsYXRlSW50byhldmVudFF1ZXVlLCBldmVudHMpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhbGwgc3ludGhldGljIGV2ZW50cyBvbiB0aGUgZXZlbnQgcXVldWUuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvY2Vzc0V2ZW50UXVldWU6IGZ1bmN0aW9uIChzaW11bGF0ZWQpIHtcbiAgICAvLyBTZXQgYGV2ZW50UXVldWVgIHRvIG51bGwgYmVmb3JlIHByb2Nlc3NpbmcgaXQgc28gdGhhdCB3ZSBjYW4gdGVsbCBpZiBtb3JlXG4gICAgLy8gZXZlbnRzIGdldCBlbnF1ZXVlZCB3aGlsZSBwcm9jZXNzaW5nLlxuICAgIHZhciBwcm9jZXNzaW5nRXZlbnRRdWV1ZSA9IGV2ZW50UXVldWU7XG4gICAgZXZlbnRRdWV1ZSA9IG51bGw7XG4gICAgaWYgKHNpbXVsYXRlZCkge1xuICAgICAgZm9yRWFjaEFjY3VtdWxhdGVkKHByb2Nlc3NpbmdFdmVudFF1ZXVlLCBleGVjdXRlRGlzcGF0Y2hlc0FuZFJlbGVhc2VTaW11bGF0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JFYWNoQWNjdW11bGF0ZWQocHJvY2Vzc2luZ0V2ZW50UXVldWUsIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVRvcExldmVsKTtcbiAgICB9XG4gICAgISFldmVudFF1ZXVlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3Byb2Nlc3NFdmVudFF1ZXVlKCk6IEFkZGl0aW9uYWwgZXZlbnRzIHdlcmUgZW5xdWV1ZWQgd2hpbGUgcHJvY2Vzc2luZyBhbiBldmVudCBxdWV1ZS4gU3VwcG9ydCBmb3IgdGhpcyBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkLicpIDogX3Byb2RJbnZhcmlhbnQoJzk1JykgOiB2b2lkIDA7XG4gICAgLy8gVGhpcyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byByZXRocm93IGlmIGFueSBvZiB0aGUgZXZlbnQgaGFuZGxlcnMgdGhyZXcuXG4gICAgUmVhY3RFcnJvclV0aWxzLnJldGhyb3dDYXVnaHRFcnJvcigpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUaGVzZSBhcmUgbmVlZGVkIGZvciB0ZXN0cyBvbmx5LiBEbyBub3QgdXNlIVxuICAgKi9cbiAgX19wdXJnZTogZnVuY3Rpb24gKCkge1xuICAgIGxpc3RlbmVyQmFuayA9IHt9O1xuICB9LFxuXG4gIF9fZ2V0TGlzdGVuZXJCYW5rOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQmFuaztcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBFdmVudFBsdWdpbkh1YjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0V2ZW50UGx1Z2luSHViLmpzXG4vLyBtb2R1bGUgaWQgPSAyOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///28\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ 36);\nvar EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ 47);\nvar ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ 48);\n\nvar accumulateInto = __webpack_require__(/*! ./accumulateInto */ 80);\nvar forEachAccumulated = __webpack_require__(/*! ./forEachAccumulated */ 81);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n if (event) {\n EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function (inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n },\n\n /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, registrationName, listener) {\n !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function (events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function (simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function () {\n listenerBank = {};\n },\n\n __getListenerBank: function () {\n return listenerBank;\n }\n};\n\nmodule.exports = EventPluginHub;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFBsdWdpbkh1Yi5qcz8zYzQ0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBFdmVudFBsdWdpblJlZ2lzdHJ5ID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpblJlZ2lzdHJ5Jyk7XG52YXIgRXZlbnRQbHVnaW5VdGlscyA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5VdGlscycpO1xudmFyIFJlYWN0RXJyb3JVdGlscyA9IHJlcXVpcmUoJy4vUmVhY3RFcnJvclV0aWxzJyk7XG5cbnZhciBhY2N1bXVsYXRlSW50byA9IHJlcXVpcmUoJy4vYWNjdW11bGF0ZUludG8nKTtcbnZhciBmb3JFYWNoQWNjdW11bGF0ZWQgPSByZXF1aXJlKCcuL2ZvckVhY2hBY2N1bXVsYXRlZCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIEludGVybmFsIHN0b3JlIGZvciBldmVudCBsaXN0ZW5lcnNcbiAqL1xudmFyIGxpc3RlbmVyQmFuayA9IHt9O1xuXG4vKipcbiAqIEludGVybmFsIHF1ZXVlIG9mIGV2ZW50cyB0aGF0IGhhdmUgYWNjdW11bGF0ZWQgdGhlaXIgZGlzcGF0Y2hlcyBhbmQgYXJlXG4gKiB3YWl0aW5nIHRvIGhhdmUgdGhlaXIgZGlzcGF0Y2hlcyBleGVjdXRlZC5cbiAqL1xudmFyIGV2ZW50UXVldWUgPSBudWxsO1xuXG4vKipcbiAqIERpc3BhdGNoZXMgYW4gZXZlbnQgYW5kIHJlbGVhc2VzIGl0IGJhY2sgaW50byB0aGUgcG9vbCwgdW5sZXNzIHBlcnNpc3RlbnQuXG4gKlxuICogQHBhcmFtIHs/b2JqZWN0fSBldmVudCBTeW50aGV0aWMgZXZlbnQgdG8gYmUgZGlzcGF0Y2hlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2ltdWxhdGVkIElmIHRoZSBldmVudCBpcyBzaW11bGF0ZWQgKGNoYW5nZXMgZXhuIGJlaGF2aW9yKVxuICogQHByaXZhdGVcbiAqL1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZSA9IGZ1bmN0aW9uIChldmVudCwgc2ltdWxhdGVkKSB7XG4gIGlmIChldmVudCkge1xuICAgIEV2ZW50UGx1Z2luVXRpbHMuZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyKGV2ZW50LCBzaW11bGF0ZWQpO1xuXG4gICAgaWYgKCFldmVudC5pc1BlcnNpc3RlbnQoKSkge1xuICAgICAgZXZlbnQuY29uc3RydWN0b3IucmVsZWFzZShldmVudCk7XG4gICAgfVxuICB9XG59O1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVNpbXVsYXRlZCA9IGZ1bmN0aW9uIChlKSB7XG4gIHJldHVybiBleGVjdXRlRGlzcGF0Y2hlc0FuZFJlbGVhc2UoZSwgdHJ1ZSk7XG59O1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVRvcExldmVsID0gZnVuY3Rpb24gKGUpIHtcbiAgcmV0dXJuIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZShlLCBmYWxzZSk7XG59O1xuXG52YXIgZ2V0RGljdGlvbmFyeUtleSA9IGZ1bmN0aW9uIChpbnN0KSB7XG4gIC8vIFByZXZlbnRzIFY4IHBlcmZvcm1hbmNlIGlzc3VlOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MjMyXG4gIHJldHVybiAnLicgKyBpbnN0Ll9yb290Tm9kZUlEO1xufTtcblxuZnVuY3Rpb24gaXNJbnRlcmFjdGl2ZSh0YWcpIHtcbiAgcmV0dXJuIHRhZyA9PT0gJ2J1dHRvbicgfHwgdGFnID09PSAnaW5wdXQnIHx8IHRhZyA9PT0gJ3NlbGVjdCcgfHwgdGFnID09PSAndGV4dGFyZWEnO1xufVxuXG5mdW5jdGlvbiBzaG91bGRQcmV2ZW50TW91c2VFdmVudChuYW1lLCB0eXBlLCBwcm9wcykge1xuICBzd2l0Y2ggKG5hbWUpIHtcbiAgICBjYXNlICdvbkNsaWNrJzpcbiAgICBjYXNlICdvbkNsaWNrQ2FwdHVyZSc6XG4gICAgY2FzZSAnb25Eb3VibGVDbGljayc6XG4gICAgY2FzZSAnb25Eb3VibGVDbGlja0NhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VEb3duJzpcbiAgICBjYXNlICdvbk1vdXNlRG93bkNhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VNb3ZlJzpcbiAgICBjYXNlICdvbk1vdXNlTW92ZUNhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VVcCc6XG4gICAgY2FzZSAnb25Nb3VzZVVwQ2FwdHVyZSc6XG4gICAgICByZXR1cm4gISEocHJvcHMuZGlzYWJsZWQgJiYgaXNJbnRlcmFjdGl2ZSh0eXBlKSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYSB1bmlmaWVkIGludGVyZmFjZSBmb3IgZXZlbnQgcGx1Z2lucyB0byBiZSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuXG4gKlxuICogRXZlbnQgcGx1Z2lucyBjYW4gaW1wbGVtZW50IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIGBleHRyYWN0RXZlbnRzYCB7ZnVuY3Rpb24oc3RyaW5nLCBET01FdmVudFRhcmdldCwgc3RyaW5nLCBvYmplY3QpOiAqfVxuICogICAgIFJlcXVpcmVkLiBXaGVuIGEgdG9wLWxldmVsIGV2ZW50IGlzIGZpcmVkLCB0aGlzIG1ldGhvZCBpcyBleHBlY3RlZCB0b1xuICogICAgIGV4dHJhY3Qgc3ludGhldGljIGV2ZW50cyB0aGF0IHdpbGwgaW4gdHVybiBiZSBxdWV1ZWQgYW5kIGRpc3BhdGNoZWQuXG4gKlxuICogICBgZXZlbnRUeXBlc2Age29iamVjdH1cbiAqICAgICBPcHRpb25hbCwgcGx1Z2lucyB0aGF0IGZpcmUgZXZlbnRzIG11c3QgcHVibGlzaCBhIG1hcHBpbmcgb2YgcmVnaXN0cmF0aW9uXG4gKiAgICAgbmFtZXMgdGhhdCBhcmUgdXNlZCB0byByZWdpc3RlciBsaXN0ZW5lcnMuIFZhbHVlcyBvZiB0aGlzIG1hcHBpbmcgbXVzdFxuICogICAgIGJlIG9iamVjdHMgdGhhdCBjb250YWluIGByZWdpc3RyYXRpb25OYW1lYCBvciBgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXNgLlxuICpcbiAqICAgYGV4ZWN1dGVEaXNwYXRjaGAge2Z1bmN0aW9uKG9iamVjdCwgZnVuY3Rpb24sIHN0cmluZyl9XG4gKiAgICAgT3B0aW9uYWwsIGFsbG93cyBwbHVnaW5zIHRvIG92ZXJyaWRlIGhvdyBhbiBldmVudCBnZXRzIGRpc3BhdGNoZWQuIEJ5XG4gKiAgICAgZGVmYXVsdCwgdGhlIGxpc3RlbmVyIGlzIHNpbXBseSBpbnZva2VkLlxuICpcbiAqIEVhY2ggcGx1Z2luIHRoYXQgaXMgaW5qZWN0ZWQgaW50byBgRXZlbnRzUGx1Z2luSHViYCBpcyBpbW1lZGlhdGVseSBvcGVyYWJsZS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbnZhciBFdmVudFBsdWdpbkh1YiA9IHtcbiAgLyoqXG4gICAqIE1ldGhvZHMgZm9yIGluamVjdGluZyBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBpbmplY3Rpb246IHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge2FycmF5fSBJbmplY3RlZEV2ZW50UGx1Z2luT3JkZXJcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgaW5qZWN0RXZlbnRQbHVnaW5PcmRlcjogRXZlbnRQbHVnaW5SZWdpc3RyeS5pbmplY3RFdmVudFBsdWdpbk9yZGVyLFxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGluamVjdGVkTmFtZXNUb1BsdWdpbnMgTWFwIGZyb20gbmFtZXMgdG8gcGx1Z2luIG1vZHVsZXMuXG4gICAgICovXG4gICAgaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lOiBFdmVudFBsdWdpblJlZ2lzdHJ5LmluamVjdEV2ZW50UGx1Z2luc0J5TmFtZVxuICB9LFxuXG4gIC8qKlxuICAgKiBTdG9yZXMgYGxpc3RlbmVyYCBhdCBgbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdW2tleV1gLiBJcyBpZGVtcG90ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGxpc3RlbmVyIFRoZSBjYWxsYmFjayB0byBzdG9yZS5cbiAgICovXG4gIHB1dExpc3RlbmVyOiBmdW5jdGlvbiAoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSwgbGlzdGVuZXIpIHtcbiAgICAhKHR5cGVvZiBsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnRXhwZWN0ZWQgJXMgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgdHlwZSAlcycsIHJlZ2lzdHJhdGlvbk5hbWUsIHR5cGVvZiBsaXN0ZW5lcikgOiBfcHJvZEludmFyaWFudCgnOTQnLCByZWdpc3RyYXRpb25OYW1lLCB0eXBlb2YgbGlzdGVuZXIpIDogdm9pZCAwO1xuXG4gICAgdmFyIGtleSA9IGdldERpY3Rpb25hcnlLZXkoaW5zdCk7XG4gICAgdmFyIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lID0gbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdIHx8IChsaXN0ZW5lckJhbmtbcmVnaXN0cmF0aW9uTmFtZV0gPSB7fSk7XG4gICAgYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWVba2V5XSA9IGxpc3RlbmVyO1xuXG4gICAgdmFyIFBsdWdpbk1vZHVsZSA9IEV2ZW50UGx1Z2luUmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZU1vZHVsZXNbcmVnaXN0cmF0aW9uTmFtZV07XG4gICAgaWYgKFBsdWdpbk1vZHVsZSAmJiBQbHVnaW5Nb2R1bGUuZGlkUHV0TGlzdGVuZXIpIHtcbiAgICAgIFBsdWdpbk1vZHVsZS5kaWRQdXRMaXN0ZW5lcihpbnN0LCByZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqIEByZXR1cm4gez9mdW5jdGlvbn0gVGhlIHN0b3JlZCBjYWxsYmFjay5cbiAgICovXG4gIGdldExpc3RlbmVyOiBmdW5jdGlvbiAoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSkge1xuICAgIC8vIFRPRE86IHNob3VsZFByZXZlbnRNb3VzZUV2ZW50IGlzIERPTS1zcGVjaWZpYyBhbmQgZGVmaW5pdGVseSBzaG91bGQgbm90XG4gICAgLy8gbGl2ZSBoZXJlOyBuZWVkcyB0byBiZSBtb3ZlZCB0byBhIGJldHRlciBwbGFjZSBzb29uXG4gICAgdmFyIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lID0gbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgIGlmIChzaG91bGRQcmV2ZW50TW91c2VFdmVudChyZWdpc3RyYXRpb25OYW1lLCBpbnN0Ll9jdXJyZW50RWxlbWVudC50eXBlLCBpbnN0Ll9jdXJyZW50RWxlbWVudC5wcm9wcykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIga2V5ID0gZ2V0RGljdGlvbmFyeUtleShpbnN0KTtcbiAgICByZXR1cm4gYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWUgJiYgYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWVba2V5XTtcbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlcyBhIGxpc3RlbmVyIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBiYW5rLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5zdCBUaGUgaW5zdGFuY2UsIHdoaWNoIGlzIHRoZSBzb3VyY2Ugb2YgZXZlbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqL1xuICBkZWxldGVMaXN0ZW5lcjogZnVuY3Rpb24gKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICB2YXIgUGx1Z2luTW9kdWxlID0gRXZlbnRQbHVnaW5SZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlc1tyZWdpc3RyYXRpb25OYW1lXTtcbiAgICBpZiAoUGx1Z2luTW9kdWxlICYmIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIpIHtcbiAgICAgIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lID0gbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgIC8vIFRPRE86IFRoaXMgc2hvdWxkIG5ldmVyIGJlIG51bGwgLS0gd2hlbiBpcyBpdD9cbiAgICBpZiAoYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICAgIHZhciBrZXkgPSBnZXREaWN0aW9uYXJ5S2V5KGluc3QpO1xuICAgICAgZGVsZXRlIGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lW2tleV07XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGFsbCBsaXN0ZW5lcnMgZm9yIHRoZSBET00gZWxlbWVudCB3aXRoIHRoZSBzdXBwbGllZCBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGluc3QgVGhlIGluc3RhbmNlLCB3aGljaCBpcyB0aGUgc291cmNlIG9mIGV2ZW50cy5cbiAgICovXG4gIGRlbGV0ZUFsbExpc3RlbmVyczogZnVuY3Rpb24gKGluc3QpIHtcbiAgICB2YXIga2V5ID0gZ2V0RGljdGlvbmFyeUtleShpbnN0KTtcbiAgICBmb3IgKHZhciByZWdpc3RyYXRpb25OYW1lIGluIGxpc3RlbmVyQmFuaykge1xuICAgICAgaWYgKCFsaXN0ZW5lckJhbmsuaGFzT3duUHJvcGVydHkocmVnaXN0cmF0aW9uTmFtZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdW2tleV0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBQbHVnaW5Nb2R1bGUgPSBFdmVudFBsdWdpblJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgICAgaWYgKFBsdWdpbk1vZHVsZSAmJiBQbHVnaW5Nb2R1bGUud2lsbERlbGV0ZUxpc3RlbmVyKSB7XG4gICAgICAgIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGRlbGV0ZSBsaXN0ZW5lckJhbmtbcmVnaXN0cmF0aW9uTmFtZV1ba2V5XTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFsbG93cyByZWdpc3RlcmVkIHBsdWdpbnMgYW4gb3Bwb3J0dW5pdHkgdG8gZXh0cmFjdCBldmVudHMgZnJvbSB0b3AtbGV2ZWxcbiAgICogbmF0aXZlIGJyb3dzZXIgZXZlbnRzLlxuICAgKlxuICAgKiBAcmV0dXJuIHsqfSBBbiBhY2N1bXVsYXRpb24gb2Ygc3ludGhldGljIGV2ZW50cy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgZXZlbnRzO1xuICAgIHZhciBwbHVnaW5zID0gRXZlbnRQbHVnaW5SZWdpc3RyeS5wbHVnaW5zO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGx1Z2lucy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gTm90IGV2ZXJ5IHBsdWdpbiBpbiB0aGUgb3JkZXJpbmcgbWF5IGJlIGxvYWRlZCBhdCBydW50aW1lLlxuICAgICAgdmFyIHBvc3NpYmxlUGx1Z2luID0gcGx1Z2luc1tpXTtcbiAgICAgIGlmIChwb3NzaWJsZVBsdWdpbikge1xuICAgICAgICB2YXIgZXh0cmFjdGVkRXZlbnRzID0gcG9zc2libGVQbHVnaW4uZXh0cmFjdEV2ZW50cyh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgICAgIGlmIChleHRyYWN0ZWRFdmVudHMpIHtcbiAgICAgICAgICBldmVudHMgPSBhY2N1bXVsYXRlSW50byhldmVudHMsIGV4dHJhY3RlZEV2ZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfSxcblxuICAvKipcbiAgICogRW5xdWV1ZXMgYSBzeW50aGV0aWMgZXZlbnQgdGhhdCBzaG91bGQgYmUgZGlzcGF0Y2hlZCB3aGVuXG4gICAqIGBwcm9jZXNzRXZlbnRRdWV1ZWAgaXMgaW52b2tlZC5cbiAgICpcbiAgICogQHBhcmFtIHsqfSBldmVudHMgQW4gYWNjdW11bGF0aW9uIG9mIHN5bnRoZXRpYyBldmVudHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZUV2ZW50czogZnVuY3Rpb24gKGV2ZW50cykge1xuICAgIGlmIChldmVudHMpIHtcbiAgICAgIGV2ZW50UXVldWUgPSBhY2N1bXVsYXRlSW50byhldmVudFF1ZXVlLCBldmVudHMpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhbGwgc3ludGhldGljIGV2ZW50cyBvbiB0aGUgZXZlbnQgcXVldWUuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvY2Vzc0V2ZW50UXVldWU6IGZ1bmN0aW9uIChzaW11bGF0ZWQpIHtcbiAgICAvLyBTZXQgYGV2ZW50UXVldWVgIHRvIG51bGwgYmVmb3JlIHByb2Nlc3NpbmcgaXQgc28gdGhhdCB3ZSBjYW4gdGVsbCBpZiBtb3JlXG4gICAgLy8gZXZlbnRzIGdldCBlbnF1ZXVlZCB3aGlsZSBwcm9jZXNzaW5nLlxuICAgIHZhciBwcm9jZXNzaW5nRXZlbnRRdWV1ZSA9IGV2ZW50UXVldWU7XG4gICAgZXZlbnRRdWV1ZSA9IG51bGw7XG4gICAgaWYgKHNpbXVsYXRlZCkge1xuICAgICAgZm9yRWFjaEFjY3VtdWxhdGVkKHByb2Nlc3NpbmdFdmVudFF1ZXVlLCBleGVjdXRlRGlzcGF0Y2hlc0FuZFJlbGVhc2VTaW11bGF0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JFYWNoQWNjdW11bGF0ZWQocHJvY2Vzc2luZ0V2ZW50UXVldWUsIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVRvcExldmVsKTtcbiAgICB9XG4gICAgISFldmVudFF1ZXVlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3Byb2Nlc3NFdmVudFF1ZXVlKCk6IEFkZGl0aW9uYWwgZXZlbnRzIHdlcmUgZW5xdWV1ZWQgd2hpbGUgcHJvY2Vzc2luZyBhbiBldmVudCBxdWV1ZS4gU3VwcG9ydCBmb3IgdGhpcyBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkLicpIDogX3Byb2RJbnZhcmlhbnQoJzk1JykgOiB2b2lkIDA7XG4gICAgLy8gVGhpcyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byByZXRocm93IGlmIGFueSBvZiB0aGUgZXZlbnQgaGFuZGxlcnMgdGhyZXcuXG4gICAgUmVhY3RFcnJvclV0aWxzLnJldGhyb3dDYXVnaHRFcnJvcigpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUaGVzZSBhcmUgbmVlZGVkIGZvciB0ZXN0cyBvbmx5LiBEbyBub3QgdXNlIVxuICAgKi9cbiAgX19wdXJnZTogZnVuY3Rpb24gKCkge1xuICAgIGxpc3RlbmVyQmFuayA9IHt9O1xuICB9LFxuXG4gIF9fZ2V0TGlzdGVuZXJCYW5rOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQmFuaztcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBFdmVudFBsdWdpbkh1YjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0V2ZW50UGx1Z2luSHViLmpzXG4vLyBtb2R1bGUgaWQgPSAyOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///28\n"); /***/ }), /* 29 */ @@ -420,7 +420,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\n\nvar getEventTarget = __webpack_require__(/*! ./getEventTarget */ 48);\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function (event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function (event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9TeW50aGV0aWNVSUV2ZW50LmpzPzBhMWUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY0V2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNFdmVudCcpO1xuXG52YXIgZ2V0RXZlbnRUYXJnZXQgPSByZXF1aXJlKCcuL2dldEV2ZW50VGFyZ2V0Jyk7XG5cbi8qKlxuICogQGludGVyZmFjZSBVSUV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xudmFyIFVJRXZlbnRJbnRlcmZhY2UgPSB7XG4gIHZpZXc6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmIChldmVudC52aWV3KSB7XG4gICAgICByZXR1cm4gZXZlbnQudmlldztcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgIGlmICh0YXJnZXQud2luZG93ID09PSB0YXJnZXQpIHtcbiAgICAgIC8vIHRhcmdldCBpcyBhIHdpbmRvdyBvYmplY3RcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuXG4gICAgdmFyIGRvYyA9IHRhcmdldC5vd25lckRvY3VtZW50O1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgd2h5IGBvd25lckRvY3VtZW50YCBpcyBzb21ldGltZXMgdW5kZWZpbmVkIGluIElFOC5cbiAgICBpZiAoZG9jKSB7XG4gICAgICByZXR1cm4gZG9jLmRlZmF1bHRWaWV3IHx8IGRvYy5wYXJlbnRXaW5kb3c7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB3aW5kb3c7XG4gICAgfVxuICB9LFxuICBkZXRhaWw6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiBldmVudC5kZXRhaWwgfHwgMDtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIFN5bnRoZXRpY1VJRXZlbnQoZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgcmV0dXJuIFN5bnRoZXRpY0V2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljVUlFdmVudCwgVUlFdmVudEludGVyZmFjZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljVUlFdmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1N5bnRoZXRpY1VJRXZlbnQuanNcbi8vIG1vZHVsZSBpZCA9IDI5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///29\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\n\nvar getEventTarget = __webpack_require__(/*! ./getEventTarget */ 49);\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function (event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function (event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9TeW50aGV0aWNVSUV2ZW50LmpzPzBhMWUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY0V2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNFdmVudCcpO1xuXG52YXIgZ2V0RXZlbnRUYXJnZXQgPSByZXF1aXJlKCcuL2dldEV2ZW50VGFyZ2V0Jyk7XG5cbi8qKlxuICogQGludGVyZmFjZSBVSUV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xudmFyIFVJRXZlbnRJbnRlcmZhY2UgPSB7XG4gIHZpZXc6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmIChldmVudC52aWV3KSB7XG4gICAgICByZXR1cm4gZXZlbnQudmlldztcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoZXZlbnQpO1xuICAgIGlmICh0YXJnZXQud2luZG93ID09PSB0YXJnZXQpIHtcbiAgICAgIC8vIHRhcmdldCBpcyBhIHdpbmRvdyBvYmplY3RcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuXG4gICAgdmFyIGRvYyA9IHRhcmdldC5vd25lckRvY3VtZW50O1xuICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgd2h5IGBvd25lckRvY3VtZW50YCBpcyBzb21ldGltZXMgdW5kZWZpbmVkIGluIElFOC5cbiAgICBpZiAoZG9jKSB7XG4gICAgICByZXR1cm4gZG9jLmRlZmF1bHRWaWV3IHx8IGRvYy5wYXJlbnRXaW5kb3c7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB3aW5kb3c7XG4gICAgfVxuICB9LFxuICBkZXRhaWw6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiBldmVudC5kZXRhaWwgfHwgMDtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIFN5bnRoZXRpY1VJRXZlbnQoZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgcmV0dXJuIFN5bnRoZXRpY0V2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljVUlFdmVudCwgVUlFdmVudEludGVyZmFjZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljVUlFdmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1N5bnRoZXRpY1VJRXZlbnQuanNcbi8vIG1vZHVsZSBpZCA9IDI5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///29\n"); /***/ }), /* 30 */ @@ -528,7 +528,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\nvar ViewportMetrics = __webpack_require__(/*! ./ViewportMetrics */ 87);\n\nvar getEventModifierState = __webpack_require__(/*! ./getEventModifierState */ 50);\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function (event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function (event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function (event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function (event) {\n return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9TeW50aGV0aWNNb3VzZUV2ZW50LmpzPzMzMjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY1VJRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY1VJRXZlbnQnKTtcbnZhciBWaWV3cG9ydE1ldHJpY3MgPSByZXF1aXJlKCcuL1ZpZXdwb3J0TWV0cmljcycpO1xuXG52YXIgZ2V0RXZlbnRNb2RpZmllclN0YXRlID0gcmVxdWlyZSgnLi9nZXRFdmVudE1vZGlmaWVyU3RhdGUnKTtcblxuLyoqXG4gKiBAaW50ZXJmYWNlIE1vdXNlRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzL1xuICovXG52YXIgTW91c2VFdmVudEludGVyZmFjZSA9IHtcbiAgc2NyZWVuWDogbnVsbCxcbiAgc2NyZWVuWTogbnVsbCxcbiAgY2xpZW50WDogbnVsbCxcbiAgY2xpZW50WTogbnVsbCxcbiAgY3RybEtleTogbnVsbCxcbiAgc2hpZnRLZXk6IG51bGwsXG4gIGFsdEtleTogbnVsbCxcbiAgbWV0YUtleTogbnVsbCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICBidXR0b246IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIFdlYmtpdCwgRmlyZWZveCwgSUU5K1xuICAgIC8vIHdoaWNoOiAgMSAyIDNcbiAgICAvLyBidXR0b246IDAgMSAyIChzdGFuZGFyZClcbiAgICB2YXIgYnV0dG9uID0gZXZlbnQuYnV0dG9uO1xuICAgIGlmICgnd2hpY2gnIGluIGV2ZW50KSB7XG4gICAgICByZXR1cm4gYnV0dG9uO1xuICAgIH1cbiAgICAvLyBJRTw5XG4gICAgLy8gd2hpY2g6ICB1bmRlZmluZWRcbiAgICAvLyBidXR0b246IDAgMCAwXG4gICAgLy8gYnV0dG9uOiAxIDQgMiAob25tb3VzZXVwKVxuICAgIHJldHVybiBidXR0b24gPT09IDIgPyAyIDogYnV0dG9uID09PSA0ID8gMSA6IDA7XG4gIH0sXG4gIGJ1dHRvbnM6IG51bGwsXG4gIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiBldmVudC5yZWxhdGVkVGFyZ2V0IHx8IChldmVudC5mcm9tRWxlbWVudCA9PT0gZXZlbnQuc3JjRWxlbWVudCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50KTtcbiAgfSxcbiAgLy8gXCJQcm9wcmlldGFyeVwiIEludGVyZmFjZS5cbiAgcGFnZVg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAncGFnZVgnIGluIGV2ZW50ID8gZXZlbnQucGFnZVggOiBldmVudC5jbGllbnRYICsgVmlld3BvcnRNZXRyaWNzLmN1cnJlbnRTY3JvbGxMZWZ0O1xuICB9LFxuICBwYWdlWTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdwYWdlWScgaW4gZXZlbnQgPyBldmVudC5wYWdlWSA6IGV2ZW50LmNsaWVudFkgKyBWaWV3cG9ydE1ldHJpY3MuY3VycmVudFNjcm9sbFRvcDtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljVUlFdmVudH1cbiAqL1xuZnVuY3Rpb24gU3ludGhldGljTW91c2VFdmVudChkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICByZXR1cm4gU3ludGhldGljVUlFdmVudC5jYWxsKHRoaXMsIGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbn1cblxuU3ludGhldGljVUlFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljTW91c2VFdmVudCwgTW91c2VFdmVudEludGVyZmFjZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljTW91c2VFdmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1N5bnRoZXRpY01vdXNlRXZlbnQuanNcbi8vIG1vZHVsZSBpZCA9IDM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///38\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\nvar ViewportMetrics = __webpack_require__(/*! ./ViewportMetrics */ 87);\n\nvar getEventModifierState = __webpack_require__(/*! ./getEventModifierState */ 51);\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function (event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function (event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function (event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function (event) {\n return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9TeW50aGV0aWNNb3VzZUV2ZW50LmpzPzMzMjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY1VJRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY1VJRXZlbnQnKTtcbnZhciBWaWV3cG9ydE1ldHJpY3MgPSByZXF1aXJlKCcuL1ZpZXdwb3J0TWV0cmljcycpO1xuXG52YXIgZ2V0RXZlbnRNb2RpZmllclN0YXRlID0gcmVxdWlyZSgnLi9nZXRFdmVudE1vZGlmaWVyU3RhdGUnKTtcblxuLyoqXG4gKiBAaW50ZXJmYWNlIE1vdXNlRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzL1xuICovXG52YXIgTW91c2VFdmVudEludGVyZmFjZSA9IHtcbiAgc2NyZWVuWDogbnVsbCxcbiAgc2NyZWVuWTogbnVsbCxcbiAgY2xpZW50WDogbnVsbCxcbiAgY2xpZW50WTogbnVsbCxcbiAgY3RybEtleTogbnVsbCxcbiAgc2hpZnRLZXk6IG51bGwsXG4gIGFsdEtleTogbnVsbCxcbiAgbWV0YUtleTogbnVsbCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICBidXR0b246IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIFdlYmtpdCwgRmlyZWZveCwgSUU5K1xuICAgIC8vIHdoaWNoOiAgMSAyIDNcbiAgICAvLyBidXR0b246IDAgMSAyIChzdGFuZGFyZClcbiAgICB2YXIgYnV0dG9uID0gZXZlbnQuYnV0dG9uO1xuICAgIGlmICgnd2hpY2gnIGluIGV2ZW50KSB7XG4gICAgICByZXR1cm4gYnV0dG9uO1xuICAgIH1cbiAgICAvLyBJRTw5XG4gICAgLy8gd2hpY2g6ICB1bmRlZmluZWRcbiAgICAvLyBidXR0b246IDAgMCAwXG4gICAgLy8gYnV0dG9uOiAxIDQgMiAob25tb3VzZXVwKVxuICAgIHJldHVybiBidXR0b24gPT09IDIgPyAyIDogYnV0dG9uID09PSA0ID8gMSA6IDA7XG4gIH0sXG4gIGJ1dHRvbnM6IG51bGwsXG4gIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiBldmVudC5yZWxhdGVkVGFyZ2V0IHx8IChldmVudC5mcm9tRWxlbWVudCA9PT0gZXZlbnQuc3JjRWxlbWVudCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50KTtcbiAgfSxcbiAgLy8gXCJQcm9wcmlldGFyeVwiIEludGVyZmFjZS5cbiAgcGFnZVg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAncGFnZVgnIGluIGV2ZW50ID8gZXZlbnQucGFnZVggOiBldmVudC5jbGllbnRYICsgVmlld3BvcnRNZXRyaWNzLmN1cnJlbnRTY3JvbGxMZWZ0O1xuICB9LFxuICBwYWdlWTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdwYWdlWScgaW4gZXZlbnQgPyBldmVudC5wYWdlWSA6IGV2ZW50LmNsaWVudFkgKyBWaWV3cG9ydE1ldHJpY3MuY3VycmVudFNjcm9sbFRvcDtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljVUlFdmVudH1cbiAqL1xuZnVuY3Rpb24gU3ludGhldGljTW91c2VFdmVudChkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICByZXR1cm4gU3ludGhldGljVUlFdmVudC5jYWxsKHRoaXMsIGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbn1cblxuU3ludGhldGljVUlFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljTW91c2VFdmVudCwgTW91c2VFdmVudEludGVyZmFjZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljTW91c2VFdmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1N5bnRoZXRpY01vdXNlRXZlbnQuanNcbi8vIG1vZHVsZSBpZCA9IDM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///38\n"); /***/ }), /* 39 */ @@ -540,7 +540,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar DOMNamespaces = __webpack_require__(/*! ./DOMNamespaces */ 52);\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ 53);\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '' + html + '';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\n }\n});\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function (node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n // the actual Unicode character (by Babel, for example).\n // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n node.innerHTML = String.fromCharCode(0xfeff) + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n testElement = null;\n}\n\nmodule.exports = setInnerHTML;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9zZXRJbm5lckhUTUwuanM/MmUyZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9FeGVjdXRpb25FbnZpcm9ubWVudCcpO1xudmFyIERPTU5hbWVzcGFjZXMgPSByZXF1aXJlKCcuL0RPTU5hbWVzcGFjZXMnKTtcblxudmFyIFdISVRFU1BBQ0VfVEVTVCA9IC9eWyBcXHJcXG5cXHRcXGZdLztcbnZhciBOT05WSVNJQkxFX1RFU1QgPSAvPCghLS18bGlua3xub3NjcmlwdHxtZXRhfHNjcmlwdHxzdHlsZSlbIFxcclxcblxcdFxcZlxcLz5dLztcblxudmFyIGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24gPSByZXF1aXJlKCcuL2NyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24nKTtcblxuLy8gU1ZHIHRlbXAgY29udGFpbmVyIGZvciBJRSBsYWNraW5nIGlubmVySFRNTFxudmFyIHJldXNhYmxlU1ZHQ29udGFpbmVyO1xuXG4vKipcbiAqIFNldCB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgbm9kZSwgZW5zdXJpbmcgdGhhdCB3aGl0ZXNwYWNlIGlzIHByZXNlcnZlZFxuICogZXZlbiBpbiBJRTguXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gaHRtbFxuICogQGludGVybmFsXG4gKi9cbnZhciBzZXRJbm5lckhUTUwgPSBjcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uIChub2RlLCBodG1sKSB7XG4gIC8vIElFIGRvZXMgbm90IGhhdmUgaW5uZXJIVE1MIGZvciBTVkcgbm9kZXMsIHNvIGluc3RlYWQgd2UgaW5qZWN0IHRoZVxuICAvLyBuZXcgbWFya3VwIGluIGEgdGVtcCBub2RlIGFuZCB0aGVuIG1vdmUgdGhlIGNoaWxkIG5vZGVzIGFjcm9zcyBpbnRvXG4gIC8vIHRoZSB0YXJnZXQgbm9kZVxuICBpZiAobm9kZS5uYW1lc3BhY2VVUkkgPT09IERPTU5hbWVzcGFjZXMuc3ZnICYmICEoJ2lubmVySFRNTCcgaW4gbm9kZSkpIHtcbiAgICByZXVzYWJsZVNWR0NvbnRhaW5lciA9IHJldXNhYmxlU1ZHQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHJldXNhYmxlU1ZHQ29udGFpbmVyLmlubmVySFRNTCA9ICc8c3ZnPicgKyBodG1sICsgJzwvc3ZnPic7XG4gICAgdmFyIHN2Z05vZGUgPSByZXVzYWJsZVNWR0NvbnRhaW5lci5maXJzdENoaWxkO1xuICAgIHdoaWxlIChzdmdOb2RlLmZpcnN0Q2hpbGQpIHtcbiAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoc3ZnTm9kZS5maXJzdENoaWxkKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xuICB9XG59KTtcblxuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAvLyBJRTg6IFdoZW4gdXBkYXRpbmcgYSBqdXN0IGNyZWF0ZWQgbm9kZSB3aXRoIGlubmVySFRNTCBvbmx5IGxlYWRpbmdcbiAgLy8gd2hpdGVzcGFjZSBpcyByZW1vdmVkLiBXaGVuIHVwZGF0aW5nIGFuIGV4aXN0aW5nIG5vZGUgd2l0aCBpbm5lckhUTUxcbiAgLy8gd2hpdGVzcGFjZSBpbiByb290IFRleHROb2RlcyBpcyBhbHNvIGNvbGxhcHNlZC5cbiAgLy8gQHNlZSBxdWlya3Ntb2RlLm9yZy9idWdyZXBvcnRzL2FyY2hpdmVzLzIwMDQvMTEvaW5uZXJodG1sX2FuZF90Lmh0bWxcblxuICAvLyBGZWF0dXJlIGRldGVjdGlvbjsgb25seSBJRTggaXMga25vd24gdG8gYmVoYXZlIGltcHJvcGVybHkgbGlrZSB0aGlzLlxuICB2YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgdGVzdEVsZW1lbnQuaW5uZXJIVE1MID0gJyAnO1xuICBpZiAodGVzdEVsZW1lbnQuaW5uZXJIVE1MID09PSAnJykge1xuICAgIHNldElubmVySFRNTCA9IGZ1bmN0aW9uIChub2RlLCBodG1sKSB7XG4gICAgICAvLyBNYWdpYyB0aGVvcnk6IElFOCBzdXBwb3NlZGx5IGRpZmZlcmVudGlhdGVzIGJldHdlZW4gYWRkZWQgYW5kIHVwZGF0ZWRcbiAgICAgIC8vIG5vZGVzIHdoZW4gcHJvY2Vzc2luZyBpbm5lckhUTUwsIGlubmVySFRNTCBvbiB1cGRhdGVkIG5vZGVzIHN1ZmZlcnNcbiAgICAgIC8vIGZyb20gd29yc2Ugd2hpdGVzcGFjZSBiZWhhdmlvci4gUmUtYWRkaW5nIGEgbm9kZSBsaWtlIHRoaXMgdHJpZ2dlcnNcbiAgICAgIC8vIHRoZSBpbml0aWFsIGFuZCBtb3JlIGZhdm9yYWJsZSB3aGl0ZXNwYWNlIGJlaGF2aW9yLlxuICAgICAgLy8gVE9ETzogV2hhdCB0byBkbyBvbiBhIGRldGFjaGVkIG5vZGU/XG4gICAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgIG5vZGUucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobm9kZSwgbm9kZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGFsc28gaW1wbGVtZW50IGEgd29ya2Fyb3VuZCBmb3Igbm9uLXZpc2libGUgdGFncyBkaXNhcHBlYXJpbmcgaW50b1xuICAgICAgLy8gdGhpbiBhaXIgb24gSUU4LCB0aGlzIG9ubHkgaGFwcGVucyBpZiB0aGVyZSBpcyBubyB2aXNpYmxlIHRleHRcbiAgICAgIC8vIGluLWZyb250IG9mIHRoZSBub24tdmlzaWJsZSB0YWdzLiBQaWdneWJhY2sgb24gdGhlIHdoaXRlc3BhY2UgZml4XG4gICAgICAvLyBhbmQgc2ltcGx5IGNoZWNrIGlmIGFueSBub24tdmlzaWJsZSB0YWdzIGFwcGVhciBpbiB0aGUgc291cmNlLlxuICAgICAgaWYgKFdISVRFU1BBQ0VfVEVTVC50ZXN0KGh0bWwpIHx8IGh0bWxbMF0gPT09ICc8JyAmJiBOT05WSVNJQkxFX1RFU1QudGVzdChodG1sKSkge1xuICAgICAgICAvLyBSZWNvdmVyIGxlYWRpbmcgd2hpdGVzcGFjZSBieSB0ZW1wb3JhcmlseSBwcmVwZW5kaW5nIGFueSBjaGFyYWN0ZXIuXG4gICAgICAgIC8vIFxcdUZFRkYgaGFzIHRoZSBwb3RlbnRpYWwgYWR2YW50YWdlIG9mIGJlaW5nIHplcm8td2lkdGgvaW52aXNpYmxlLlxuICAgICAgICAvLyBVZ2xpZnlKUyBkcm9wcyBVK0ZFRkYgY2hhcnMgd2hlbiBwYXJzaW5nLCBzbyB1c2UgU3RyaW5nLmZyb21DaGFyQ29kZVxuICAgICAgICAvLyBpbiBob3BlcyB0aGF0IHRoaXMgaXMgcHJlc2VydmVkIGV2ZW4gaWYgXCJcXHVGRUZGXCIgaXMgdHJhbnNmb3JtZWQgdG9cbiAgICAgICAgLy8gdGhlIGFjdHVhbCBVbmljb2RlIGNoYXJhY3RlciAoYnkgQmFiZWwsIGZvciBleGFtcGxlKS5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pc2hvby9VZ2xpZnlKUzIvYmxvYi92Mi40LjIwL2xpYi9wYXJzZS5qcyNMMjE2XG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGZlZmYpICsgaHRtbDtcblxuICAgICAgICAvLyBkZWxldGVEYXRhIGxlYXZlcyBhbiBlbXB0eSBgVGV4dE5vZGVgIHdoaWNoIG9mZnNldHMgdGhlIGluZGV4IG9mIGFsbFxuICAgICAgICAvLyBjaGlsZHJlbi4gRGVmaW5pdGVseSB3YW50IHRvIGF2b2lkIHRoaXMuXG4gICAgICAgIHZhciB0ZXh0Tm9kZSA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgICAgaWYgKHRleHROb2RlLmRhdGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZCh0ZXh0Tm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGV4dE5vZGUuZGVsZXRlRGF0YSgwLCAxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgdGVzdEVsZW1lbnQgPSBudWxsO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldElubmVySFRNTDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL3NldElubmVySFRNTC5qc1xuLy8gbW9kdWxlIGlkID0gMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar DOMNamespaces = __webpack_require__(/*! ./DOMNamespaces */ 53);\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ 54);\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '' + html + '';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\n }\n});\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function (node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n // the actual Unicode character (by Babel, for example).\n // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n node.innerHTML = String.fromCharCode(0xfeff) + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n testElement = null;\n}\n\nmodule.exports = setInnerHTML;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9zZXRJbm5lckhUTUwuanM/MmUyZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9FeGVjdXRpb25FbnZpcm9ubWVudCcpO1xudmFyIERPTU5hbWVzcGFjZXMgPSByZXF1aXJlKCcuL0RPTU5hbWVzcGFjZXMnKTtcblxudmFyIFdISVRFU1BBQ0VfVEVTVCA9IC9eWyBcXHJcXG5cXHRcXGZdLztcbnZhciBOT05WSVNJQkxFX1RFU1QgPSAvPCghLS18bGlua3xub3NjcmlwdHxtZXRhfHNjcmlwdHxzdHlsZSlbIFxcclxcblxcdFxcZlxcLz5dLztcblxudmFyIGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24gPSByZXF1aXJlKCcuL2NyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb24nKTtcblxuLy8gU1ZHIHRlbXAgY29udGFpbmVyIGZvciBJRSBsYWNraW5nIGlubmVySFRNTFxudmFyIHJldXNhYmxlU1ZHQ29udGFpbmVyO1xuXG4vKipcbiAqIFNldCB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgbm9kZSwgZW5zdXJpbmcgdGhhdCB3aGl0ZXNwYWNlIGlzIHByZXNlcnZlZFxuICogZXZlbiBpbiBJRTguXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gaHRtbFxuICogQGludGVybmFsXG4gKi9cbnZhciBzZXRJbm5lckhUTUwgPSBjcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uIChub2RlLCBodG1sKSB7XG4gIC8vIElFIGRvZXMgbm90IGhhdmUgaW5uZXJIVE1MIGZvciBTVkcgbm9kZXMsIHNvIGluc3RlYWQgd2UgaW5qZWN0IHRoZVxuICAvLyBuZXcgbWFya3VwIGluIGEgdGVtcCBub2RlIGFuZCB0aGVuIG1vdmUgdGhlIGNoaWxkIG5vZGVzIGFjcm9zcyBpbnRvXG4gIC8vIHRoZSB0YXJnZXQgbm9kZVxuICBpZiAobm9kZS5uYW1lc3BhY2VVUkkgPT09IERPTU5hbWVzcGFjZXMuc3ZnICYmICEoJ2lubmVySFRNTCcgaW4gbm9kZSkpIHtcbiAgICByZXVzYWJsZVNWR0NvbnRhaW5lciA9IHJldXNhYmxlU1ZHQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHJldXNhYmxlU1ZHQ29udGFpbmVyLmlubmVySFRNTCA9ICc8c3ZnPicgKyBodG1sICsgJzwvc3ZnPic7XG4gICAgdmFyIHN2Z05vZGUgPSByZXVzYWJsZVNWR0NvbnRhaW5lci5maXJzdENoaWxkO1xuICAgIHdoaWxlIChzdmdOb2RlLmZpcnN0Q2hpbGQpIHtcbiAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoc3ZnTm9kZS5maXJzdENoaWxkKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xuICB9XG59KTtcblxuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAvLyBJRTg6IFdoZW4gdXBkYXRpbmcgYSBqdXN0IGNyZWF0ZWQgbm9kZSB3aXRoIGlubmVySFRNTCBvbmx5IGxlYWRpbmdcbiAgLy8gd2hpdGVzcGFjZSBpcyByZW1vdmVkLiBXaGVuIHVwZGF0aW5nIGFuIGV4aXN0aW5nIG5vZGUgd2l0aCBpbm5lckhUTUxcbiAgLy8gd2hpdGVzcGFjZSBpbiByb290IFRleHROb2RlcyBpcyBhbHNvIGNvbGxhcHNlZC5cbiAgLy8gQHNlZSBxdWlya3Ntb2RlLm9yZy9idWdyZXBvcnRzL2FyY2hpdmVzLzIwMDQvMTEvaW5uZXJodG1sX2FuZF90Lmh0bWxcblxuICAvLyBGZWF0dXJlIGRldGVjdGlvbjsgb25seSBJRTggaXMga25vd24gdG8gYmVoYXZlIGltcHJvcGVybHkgbGlrZSB0aGlzLlxuICB2YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgdGVzdEVsZW1lbnQuaW5uZXJIVE1MID0gJyAnO1xuICBpZiAodGVzdEVsZW1lbnQuaW5uZXJIVE1MID09PSAnJykge1xuICAgIHNldElubmVySFRNTCA9IGZ1bmN0aW9uIChub2RlLCBodG1sKSB7XG4gICAgICAvLyBNYWdpYyB0aGVvcnk6IElFOCBzdXBwb3NlZGx5IGRpZmZlcmVudGlhdGVzIGJldHdlZW4gYWRkZWQgYW5kIHVwZGF0ZWRcbiAgICAgIC8vIG5vZGVzIHdoZW4gcHJvY2Vzc2luZyBpbm5lckhUTUwsIGlubmVySFRNTCBvbiB1cGRhdGVkIG5vZGVzIHN1ZmZlcnNcbiAgICAgIC8vIGZyb20gd29yc2Ugd2hpdGVzcGFjZSBiZWhhdmlvci4gUmUtYWRkaW5nIGEgbm9kZSBsaWtlIHRoaXMgdHJpZ2dlcnNcbiAgICAgIC8vIHRoZSBpbml0aWFsIGFuZCBtb3JlIGZhdm9yYWJsZSB3aGl0ZXNwYWNlIGJlaGF2aW9yLlxuICAgICAgLy8gVE9ETzogV2hhdCB0byBkbyBvbiBhIGRldGFjaGVkIG5vZGU/XG4gICAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgIG5vZGUucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobm9kZSwgbm9kZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGFsc28gaW1wbGVtZW50IGEgd29ya2Fyb3VuZCBmb3Igbm9uLXZpc2libGUgdGFncyBkaXNhcHBlYXJpbmcgaW50b1xuICAgICAgLy8gdGhpbiBhaXIgb24gSUU4LCB0aGlzIG9ubHkgaGFwcGVucyBpZiB0aGVyZSBpcyBubyB2aXNpYmxlIHRleHRcbiAgICAgIC8vIGluLWZyb250IG9mIHRoZSBub24tdmlzaWJsZSB0YWdzLiBQaWdneWJhY2sgb24gdGhlIHdoaXRlc3BhY2UgZml4XG4gICAgICAvLyBhbmQgc2ltcGx5IGNoZWNrIGlmIGFueSBub24tdmlzaWJsZSB0YWdzIGFwcGVhciBpbiB0aGUgc291cmNlLlxuICAgICAgaWYgKFdISVRFU1BBQ0VfVEVTVC50ZXN0KGh0bWwpIHx8IGh0bWxbMF0gPT09ICc8JyAmJiBOT05WSVNJQkxFX1RFU1QudGVzdChodG1sKSkge1xuICAgICAgICAvLyBSZWNvdmVyIGxlYWRpbmcgd2hpdGVzcGFjZSBieSB0ZW1wb3JhcmlseSBwcmVwZW5kaW5nIGFueSBjaGFyYWN0ZXIuXG4gICAgICAgIC8vIFxcdUZFRkYgaGFzIHRoZSBwb3RlbnRpYWwgYWR2YW50YWdlIG9mIGJlaW5nIHplcm8td2lkdGgvaW52aXNpYmxlLlxuICAgICAgICAvLyBVZ2xpZnlKUyBkcm9wcyBVK0ZFRkYgY2hhcnMgd2hlbiBwYXJzaW5nLCBzbyB1c2UgU3RyaW5nLmZyb21DaGFyQ29kZVxuICAgICAgICAvLyBpbiBob3BlcyB0aGF0IHRoaXMgaXMgcHJlc2VydmVkIGV2ZW4gaWYgXCJcXHVGRUZGXCIgaXMgdHJhbnNmb3JtZWQgdG9cbiAgICAgICAgLy8gdGhlIGFjdHVhbCBVbmljb2RlIGNoYXJhY3RlciAoYnkgQmFiZWwsIGZvciBleGFtcGxlKS5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pc2hvby9VZ2xpZnlKUzIvYmxvYi92Mi40LjIwL2xpYi9wYXJzZS5qcyNMMjE2XG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGZlZmYpICsgaHRtbDtcblxuICAgICAgICAvLyBkZWxldGVEYXRhIGxlYXZlcyBhbiBlbXB0eSBgVGV4dE5vZGVgIHdoaWNoIG9mZnNldHMgdGhlIGluZGV4IG9mIGFsbFxuICAgICAgICAvLyBjaGlsZHJlbi4gRGVmaW5pdGVseSB3YW50IHRvIGF2b2lkIHRoaXMuXG4gICAgICAgIHZhciB0ZXh0Tm9kZSA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgICAgaWYgKHRleHROb2RlLmRhdGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZCh0ZXh0Tm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGV4dE5vZGUuZGVsZXRlRGF0YSgwLCAxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgdGVzdEVsZW1lbnQgPSBudWxsO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldElubmVySFRNTDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL3NldElubmVySFRNTC5qc1xuLy8gbW9kdWxlIGlkID0gMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///39\n"); /***/ }), /* 40 */ @@ -564,7 +564,7 @@ eval("/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ 36);\nvar ReactEventEmitterMixin = __webpack_require__(/*! ./ReactEventEmitterMixin */ 180);\nvar ViewportMetrics = __webpack_require__(/*! ./ViewportMetrics */ 87);\n\nvar getVendorPrefixedEventName = __webpack_require__(/*! ./getVendorPrefixedEventName */ 181);\nvar isEventSupported = __webpack_require__(/*! ./isEventSupported */ 49);\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar hasEventPageXY;\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topAbort: 'abort',\n topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n topBlur: 'blur',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * EventPluginHub.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function (ReactEventListener) {\n ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function (enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function () {\n return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function (registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.topFocus = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function () {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function () {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n});\n\nmodule.exports = ReactBrowserEventEmitter;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuanM/MDE0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIEV2ZW50UGx1Z2luUmVnaXN0cnkgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luUmVnaXN0cnknKTtcbnZhciBSZWFjdEV2ZW50RW1pdHRlck1peGluID0gcmVxdWlyZSgnLi9SZWFjdEV2ZW50RW1pdHRlck1peGluJyk7XG52YXIgVmlld3BvcnRNZXRyaWNzID0gcmVxdWlyZSgnLi9WaWV3cG9ydE1ldHJpY3MnKTtcblxudmFyIGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lID0gcmVxdWlyZSgnLi9nZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZScpO1xudmFyIGlzRXZlbnRTdXBwb3J0ZWQgPSByZXF1aXJlKCcuL2lzRXZlbnRTdXBwb3J0ZWQnKTtcblxuLyoqXG4gKiBTdW1tYXJ5IG9mIGBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXJgIGV2ZW50IGhhbmRsaW5nOlxuICpcbiAqICAtIFRvcC1sZXZlbCBkZWxlZ2F0aW9uIGlzIHVzZWQgdG8gdHJhcCBtb3N0IG5hdGl2ZSBicm93c2VyIGV2ZW50cy4gVGhpc1xuICogICAgbWF5IG9ubHkgb2NjdXIgaW4gdGhlIG1haW4gdGhyZWFkIGFuZCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcbiAqICAgIFJlYWN0RXZlbnRMaXN0ZW5lciwgd2hpY2ggaXMgaW5qZWN0ZWQgYW5kIGNhbiB0aGVyZWZvcmUgc3VwcG9ydCBwbHVnZ2FibGVcbiAqICAgIGV2ZW50IHNvdXJjZXMuIFRoaXMgaXMgdGhlIG9ubHkgd29yayB0aGF0IG9jY3VycyBpbiB0aGUgbWFpbiB0aHJlYWQuXG4gKlxuICogIC0gV2Ugbm9ybWFsaXplIGFuZCBkZS1kdXBsaWNhdGUgZXZlbnRzIHRvIGFjY291bnQgZm9yIGJyb3dzZXIgcXVpcmtzLiBUaGlzXG4gKiAgICBtYXkgYmUgZG9uZSBpbiB0aGUgd29ya2VyIHRocmVhZC5cbiAqXG4gKiAgLSBGb3J3YXJkIHRoZXNlIG5hdGl2ZSBldmVudHMgKHdpdGggdGhlIGFzc29jaWF0ZWQgdG9wLWxldmVsIHR5cGUgdXNlZCB0b1xuICogICAgdHJhcCBpdCkgdG8gYEV2ZW50UGx1Z2luSHViYCwgd2hpY2ggaW4gdHVybiB3aWxsIGFzayBwbHVnaW5zIGlmIHRoZXkgd2FudFxuICogICAgdG8gZXh0cmFjdCBhbnkgc3ludGhldGljIGV2ZW50cy5cbiAqXG4gKiAgLSBUaGUgYEV2ZW50UGx1Z2luSHViYCB3aWxsIHRoZW4gcHJvY2VzcyBlYWNoIGV2ZW50IGJ5IGFubm90YXRpbmcgdGhlbSB3aXRoXG4gKiAgICBcImRpc3BhdGNoZXNcIiwgYSBzZXF1ZW5jZSBvZiBsaXN0ZW5lcnMgYW5kIElEcyB0aGF0IGNhcmUgYWJvdXQgdGhhdCBldmVudC5cbiAqXG4gKiAgLSBUaGUgYEV2ZW50UGx1Z2luSHViYCB0aGVuIGRpc3BhdGNoZXMgdGhlIGV2ZW50cy5cbiAqXG4gKiBPdmVydmlldyBvZiBSZWFjdCBhbmQgdGhlIGV2ZW50IHN5c3RlbTpcbiAqXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiB8ICAgIERPTSAgICAgfCAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiAgICAgICB8ICAgICAgICAgICAuXG4gKiAgICAgICB2ICAgICAgICAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiB8IFJlYWN0RXZlbnQgfCAgICAuXG4gKiB8ICBMaXN0ZW5lciAgfCAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLStcbiAqICAgICAgIHwgICAgICAgICAgIC4gICAgICAgICAgICAgICArLS0tLS0tLS0rfFNpbXBsZUV2ZW50fFxuICogICAgICAgfCAgICAgICAgICAgLiAgICAgICAgICAgICAgIHwgICAgICAgICB8UGx1Z2luICAgICB8XG4gKiArLS0tLS18LS0tLS0tKyAgICAuICAgICAgICAgICAgICAgdiAgICAgICAgICstLS0tLS0tLS0tLStcbiAqIHwgICAgIHwgICAgICB8ICAgIC4gICAgKy0tLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLStcbiAqIHwgICAgICstLS0tLS0tLS0tLS4tLS0+fEV2ZW50UGx1Z2luSHVifCAgICAgICAgICAgICAgICAgICAgfCAgICBFdmVudCAgIHxcbiAqIHwgICAgICAgICAgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgKy0tLS0tLS0tLS0tKyAgfCBQcm9wYWdhdG9yc3xcbiAqIHwgUmVhY3RFdmVudCB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgfFRhcEV2ZW50ICAgfCAgfC0tLS0tLS0tLS0tLXxcbiAqIHwgIEVtaXR0ZXIgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfDwtLS0rfFBsdWdpbiAgICAgfCAgfG90aGVyIHBsdWdpbnxcbiAqIHwgICAgICAgICAgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgKy0tLS0tLS0tLS0tKyAgfCAgdXRpbGl0aWVzIHxcbiAqIHwgICAgICstLS0tLS0tLS0tLS4tLS0+fCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLStcbiAqIHwgICAgIHwgICAgICB8ICAgIC4gICAgKy0tLS0tLS0tLS0tLS0tK1xuICogKy0tLS0tfC0tLS0tLSsgICAgLiAgICAgICAgICAgICAgICBeICAgICAgICArLS0tLS0tLS0tLS0rXG4gKiAgICAgICB8ICAgICAgICAgICAuICAgICAgICAgICAgICAgIHwgICAgICAgIHxFbnRlci9MZWF2ZXxcbiAqICAgICAgICsgICAgICAgICAgIC4gICAgICAgICAgICAgICAgKy0tLS0tLS0rfFBsdWdpbiAgICAgfFxuICogKy0tLS0tLS0tLS0tLS0rICAgLiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rXG4gKiB8IGFwcGxpY2F0aW9uIHwgICAuXG4gKiB8LS0tLS0tLS0tLS0tLXwgICAuXG4gKiB8ICAgICAgICAgICAgIHwgICAuXG4gKiB8ICAgICAgICAgICAgIHwgICAuXG4gKiArLS0tLS0tLS0tLS0tLSsgICAuXG4gKiAgICAgICAgICAgICAgICAgICAuXG4gKiAgICBSZWFjdCBDb3JlICAgICAuICBHZW5lcmFsIFB1cnBvc2UgRXZlbnQgUGx1Z2luIFN5c3RlbVxuICovXG5cbnZhciBoYXNFdmVudFBhZ2VYWTtcbnZhciBhbHJlYWR5TGlzdGVuaW5nVG8gPSB7fTtcbnZhciBpc01vbml0b3JpbmdTY3JvbGxWYWx1ZSA9IGZhbHNlO1xudmFyIHJlYWN0VG9wTGlzdGVuZXJzQ291bnRlciA9IDA7XG5cbi8vIEZvciBldmVudHMgbGlrZSAnc3VibWl0JyB3aGljaCBkb24ndCBjb25zaXN0ZW50bHkgYnViYmxlICh3aGljaCB3ZSB0cmFwIGF0IGFcbi8vIGxvd2VyIG5vZGUgdGhhbiBgZG9jdW1lbnRgKSwgYmluZGluZyBhdCBgZG9jdW1lbnRgIHdvdWxkIGNhdXNlIGR1cGxpY2F0ZVxuLy8gZXZlbnRzIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBoZXJlXG52YXIgdG9wRXZlbnRNYXBwaW5nID0ge1xuICB0b3BBYm9ydDogJ2Fib3J0JyxcbiAgdG9wQW5pbWF0aW9uRW5kOiBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgnYW5pbWF0aW9uZW5kJykgfHwgJ2FuaW1hdGlvbmVuZCcsXG4gIHRvcEFuaW1hdGlvbkl0ZXJhdGlvbjogZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ2FuaW1hdGlvbml0ZXJhdGlvbicpIHx8ICdhbmltYXRpb25pdGVyYXRpb24nLFxuICB0b3BBbmltYXRpb25TdGFydDogZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ2FuaW1hdGlvbnN0YXJ0JykgfHwgJ2FuaW1hdGlvbnN0YXJ0JyxcbiAgdG9wQmx1cjogJ2JsdXInLFxuICB0b3BDYW5QbGF5OiAnY2FucGxheScsXG4gIHRvcENhblBsYXlUaHJvdWdoOiAnY2FucGxheXRocm91Z2gnLFxuICB0b3BDaGFuZ2U6ICdjaGFuZ2UnLFxuICB0b3BDbGljazogJ2NsaWNrJyxcbiAgdG9wQ29tcG9zaXRpb25FbmQ6ICdjb21wb3NpdGlvbmVuZCcsXG4gIHRvcENvbXBvc2l0aW9uU3RhcnQ6ICdjb21wb3NpdGlvbnN0YXJ0JyxcbiAgdG9wQ29tcG9zaXRpb25VcGRhdGU6ICdjb21wb3NpdGlvbnVwZGF0ZScsXG4gIHRvcENvbnRleHRNZW51OiAnY29udGV4dG1lbnUnLFxuICB0b3BDb3B5OiAnY29weScsXG4gIHRvcEN1dDogJ2N1dCcsXG4gIHRvcERvdWJsZUNsaWNrOiAnZGJsY2xpY2snLFxuICB0b3BEcmFnOiAnZHJhZycsXG4gIHRvcERyYWdFbmQ6ICdkcmFnZW5kJyxcbiAgdG9wRHJhZ0VudGVyOiAnZHJhZ2VudGVyJyxcbiAgdG9wRHJhZ0V4aXQ6ICdkcmFnZXhpdCcsXG4gIHRvcERyYWdMZWF2ZTogJ2RyYWdsZWF2ZScsXG4gIHRvcERyYWdPdmVyOiAnZHJhZ292ZXInLFxuICB0b3BEcmFnU3RhcnQ6ICdkcmFnc3RhcnQnLFxuICB0b3BEcm9wOiAnZHJvcCcsXG4gIHRvcER1cmF0aW9uQ2hhbmdlOiAnZHVyYXRpb25jaGFuZ2UnLFxuICB0b3BFbXB0aWVkOiAnZW1wdGllZCcsXG4gIHRvcEVuY3J5cHRlZDogJ2VuY3J5cHRlZCcsXG4gIHRvcEVuZGVkOiAnZW5kZWQnLFxuICB0b3BFcnJvcjogJ2Vycm9yJyxcbiAgdG9wRm9jdXM6ICdmb2N1cycsXG4gIHRvcElucHV0OiAnaW5wdXQnLFxuICB0b3BLZXlEb3duOiAna2V5ZG93bicsXG4gIHRvcEtleVByZXNzOiAna2V5cHJlc3MnLFxuICB0b3BLZXlVcDogJ2tleXVwJyxcbiAgdG9wTG9hZGVkRGF0YTogJ2xvYWRlZGRhdGEnLFxuICB0b3BMb2FkZWRNZXRhZGF0YTogJ2xvYWRlZG1ldGFkYXRhJyxcbiAgdG9wTG9hZFN0YXJ0OiAnbG9hZHN0YXJ0JyxcbiAgdG9wTW91c2VEb3duOiAnbW91c2Vkb3duJyxcbiAgdG9wTW91c2VNb3ZlOiAnbW91c2Vtb3ZlJyxcbiAgdG9wTW91c2VPdXQ6ICdtb3VzZW91dCcsXG4gIHRvcE1vdXNlT3ZlcjogJ21vdXNlb3ZlcicsXG4gIHRvcE1vdXNlVXA6ICdtb3VzZXVwJyxcbiAgdG9wUGFzdGU6ICdwYXN0ZScsXG4gIHRvcFBhdXNlOiAncGF1c2UnLFxuICB0b3BQbGF5OiAncGxheScsXG4gIHRvcFBsYXlpbmc6ICdwbGF5aW5nJyxcbiAgdG9wUHJvZ3Jlc3M6ICdwcm9ncmVzcycsXG4gIHRvcFJhdGVDaGFuZ2U6ICdyYXRlY2hhbmdlJyxcbiAgdG9wU2Nyb2xsOiAnc2Nyb2xsJyxcbiAgdG9wU2Vla2VkOiAnc2Vla2VkJyxcbiAgdG9wU2Vla2luZzogJ3NlZWtpbmcnLFxuICB0b3BTZWxlY3Rpb25DaGFuZ2U6ICdzZWxlY3Rpb25jaGFuZ2UnLFxuICB0b3BTdGFsbGVkOiAnc3RhbGxlZCcsXG4gIHRvcFN1c3BlbmQ6ICdzdXNwZW5kJyxcbiAgdG9wVGV4dElucHV0OiAndGV4dElucHV0JyxcbiAgdG9wVGltZVVwZGF0ZTogJ3RpbWV1cGRhdGUnLFxuICB0b3BUb3VjaENhbmNlbDogJ3RvdWNoY2FuY2VsJyxcbiAgdG9wVG91Y2hFbmQ6ICd0b3VjaGVuZCcsXG4gIHRvcFRvdWNoTW92ZTogJ3RvdWNobW92ZScsXG4gIHRvcFRvdWNoU3RhcnQ6ICd0b3VjaHN0YXJ0JyxcbiAgdG9wVHJhbnNpdGlvbkVuZDogZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ3RyYW5zaXRpb25lbmQnKSB8fCAndHJhbnNpdGlvbmVuZCcsXG4gIHRvcFZvbHVtZUNoYW5nZTogJ3ZvbHVtZWNoYW5nZScsXG4gIHRvcFdhaXRpbmc6ICd3YWl0aW5nJyxcbiAgdG9wV2hlZWw6ICd3aGVlbCdcbn07XG5cbi8qKlxuICogVG8gZW5zdXJlIG5vIGNvbmZsaWN0cyB3aXRoIG90aGVyIHBvdGVudGlhbCBSZWFjdCBpbnN0YW5jZXMgb24gdGhlIHBhZ2VcbiAqL1xudmFyIHRvcExpc3RlbmVyc0lES2V5ID0gJ19yZWFjdExpc3RlbmVyc0lEJyArIFN0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKTtcblxuZnVuY3Rpb24gZ2V0TGlzdGVuaW5nRm9yRG9jdW1lbnQobW91bnRBdCkge1xuICAvLyBJbiBJRTgsIGBtb3VudEF0YCBpcyBhIGhvc3Qgb2JqZWN0IGFuZCBkb2Vzbid0IGhhdmUgYGhhc093blByb3BlcnR5YFxuICAvLyBkaXJlY3RseS5cbiAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW91bnRBdCwgdG9wTGlzdGVuZXJzSURLZXkpKSB7XG4gICAgbW91bnRBdFt0b3BMaXN0ZW5lcnNJREtleV0gPSByZWFjdFRvcExpc3RlbmVyc0NvdW50ZXIrKztcbiAgICBhbHJlYWR5TGlzdGVuaW5nVG9bbW91bnRBdFt0b3BMaXN0ZW5lcnNJREtleV1dID0ge307XG4gIH1cbiAgcmV0dXJuIGFscmVhZHlMaXN0ZW5pbmdUb1ttb3VudEF0W3RvcExpc3RlbmVyc0lES2V5XV07XG59XG5cbi8qKlxuICogYFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlcmAgaXMgdXNlZCB0byBhdHRhY2ggdG9wLWxldmVsIGV2ZW50IGxpc3RlbmVycy4gRm9yXG4gKiBleGFtcGxlOlxuICpcbiAqICAgRXZlbnRQbHVnaW5IdWIucHV0TGlzdGVuZXIoJ215SUQnLCAnb25DbGljaycsIG15RnVuY3Rpb24pO1xuICpcbiAqIFRoaXMgd291bGQgYWxsb2NhdGUgYSBcInJlZ2lzdHJhdGlvblwiIG9mIGAoJ29uQ2xpY2snLCBteUZ1bmN0aW9uKWAgb24gJ215SUQnLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG52YXIgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyID0gX2Fzc2lnbih7fSwgUmVhY3RFdmVudEVtaXR0ZXJNaXhpbiwge1xuICAvKipcbiAgICogSW5qZWN0YWJsZSBldmVudCBiYWNrZW5kXG4gICAqL1xuICBSZWFjdEV2ZW50TGlzdGVuZXI6IG51bGwsXG5cbiAgaW5qZWN0aW9uOiB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFJlYWN0RXZlbnRMaXN0ZW5lclxuICAgICAqL1xuICAgIGluamVjdFJlYWN0RXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gKFJlYWN0RXZlbnRMaXN0ZW5lcikge1xuICAgICAgUmVhY3RFdmVudExpc3RlbmVyLnNldEhhbmRsZVRvcExldmVsKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5oYW5kbGVUb3BMZXZlbCk7XG4gICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyID0gUmVhY3RFdmVudExpc3RlbmVyO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIG9yIG5vdCBhbnkgY3JlYXRlZCBjYWxsYmFja3Mgc2hvdWxkIGJlIGVuYWJsZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlZCBUcnVlIGlmIGNhbGxiYWNrcyBzaG91bGQgYmUgZW5hYmxlZC5cbiAgICovXG4gIHNldEVuYWJsZWQ6IGZ1bmN0aW9uIChlbmFibGVkKSB7XG4gICAgaWYgKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIuc2V0RW5hYmxlZChlbmFibGVkKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgY2FsbGJhY2tzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgaXNFbmFibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICEhKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIgJiYgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci5pc0VuYWJsZWQoKSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFdlIGxpc3RlbiBmb3IgYnViYmxlZCB0b3VjaCBldmVudHMgb24gdGhlIGRvY3VtZW50IG9iamVjdC5cbiAgICpcbiAgICogRmlyZWZveCB2OC4wMSAoYW5kIHBvc3NpYmx5IG90aGVycykgZXhoaWJpdGVkIHN0cmFuZ2UgYmVoYXZpb3Igd2hlblxuICAgKiBtb3VudGluZyBgb25tb3VzZW1vdmVgIGV2ZW50cyBhdCBzb21lIG5vZGUgdGhhdCB3YXMgbm90IHRoZSBkb2N1bWVudFxuICAgKiBlbGVtZW50LiBUaGUgc3ltcHRvbXMgd2VyZSB0aGF0IGlmIHlvdXIgbW91c2UgaXMgbm90IG1vdmluZyBvdmVyIHNvbWV0aGluZ1xuICAgKiBjb250YWluZWQgd2l0aGluIHRoYXQgbW91bnQgcG9pbnQgKGZvciBleGFtcGxlIG9uIHRoZSBiYWNrZ3JvdW5kKSB0aGVcbiAgICogdG9wLWxldmVsIGxpc3RlbmVycyBmb3IgYG9ubW91c2Vtb3ZlYCB3b24ndCBiZSBjYWxsZWQuIEhvd2V2ZXIsIGlmIHlvdVxuICAgKiByZWdpc3RlciB0aGUgYG1vdXNlbW92ZWAgb24gdGhlIGRvY3VtZW50IG9iamVjdCwgdGhlbiBpdCB3aWxsIG9mIGNvdXJzZVxuICAgKiBjYXRjaCBhbGwgYG1vdXNlbW92ZWBzLiBUaGlzIGFsb25nIHdpdGggaU9TIHF1aXJrcywganVzdGlmaWVzIHJlc3RyaWN0aW5nXG4gICAqIHRvcC1sZXZlbCBsaXN0ZW5lcnMgdG8gdGhlIGRvY3VtZW50IG9iamVjdCBvbmx5LCBhdCBsZWFzdCBmb3IgdGhlc2VcbiAgICogbW92ZW1lbnQgdHlwZXMgb2YgZXZlbnRzIGFuZCBwb3NzaWJseSBhbGwgZXZlbnRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDEwLzA5L2NsaWNrX2V2ZW50X2RlbC5odG1sXG4gICAqXG4gICAqIEFsc28sIGBrZXl1cGAvYGtleXByZXNzYC9ga2V5ZG93bmAgZG8gbm90IGJ1YmJsZSB0byB0aGUgd2luZG93IG9uIElFLCBidXRcbiAgICogdGhleSBidWJibGUgdG8gZG9jdW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWdpc3RyYXRpb25OYW1lIE5hbWUgb2YgbGlzdGVuZXIgKGUuZy4gYG9uQ2xpY2tgKS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRlbnREb2N1bWVudEhhbmRsZSBEb2N1bWVudCB3aGljaCBvd25zIHRoZSBjb250YWluZXJcbiAgICovXG4gIGxpc3RlblRvOiBmdW5jdGlvbiAocmVnaXN0cmF0aW9uTmFtZSwgY29udGVudERvY3VtZW50SGFuZGxlKSB7XG4gICAgdmFyIG1vdW50QXQgPSBjb250ZW50RG9jdW1lbnRIYW5kbGU7XG4gICAgdmFyIGlzTGlzdGVuaW5nID0gZ2V0TGlzdGVuaW5nRm9yRG9jdW1lbnQobW91bnRBdCk7XG4gICAgdmFyIGRlcGVuZGVuY2llcyA9IEV2ZW50UGx1Z2luUmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVwZW5kZW5jeSA9IGRlcGVuZGVuY2llc1tpXTtcbiAgICAgIGlmICghKGlzTGlzdGVuaW5nLmhhc093blByb3BlcnR5KGRlcGVuZGVuY3kpICYmIGlzTGlzdGVuaW5nW2RlcGVuZGVuY3ldKSkge1xuICAgICAgICBpZiAoZGVwZW5kZW5jeSA9PT0gJ3RvcFdoZWVsJykge1xuICAgICAgICAgIGlmIChpc0V2ZW50U3VwcG9ydGVkKCd3aGVlbCcpKSB7XG4gICAgICAgICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcFdoZWVsJywgJ3doZWVsJywgbW91bnRBdCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0V2ZW50U3VwcG9ydGVkKCdtb3VzZXdoZWVsJykpIHtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wV2hlZWwnLCAnbW91c2V3aGVlbCcsIG1vdW50QXQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGaXJlZm94IG5lZWRzIHRvIGNhcHR1cmUgYSBkaWZmZXJlbnQgbW91c2Ugc2Nyb2xsIGV2ZW50LlxuICAgICAgICAgICAgLy8gQHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2RvbS9ldmVudHMvdGVzdHMvc2Nyb2xsLmh0bWxcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wV2hlZWwnLCAnRE9NTW91c2VTY3JvbGwnLCBtb3VudEF0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGVwZW5kZW5jeSA9PT0gJ3RvcFNjcm9sbCcpIHtcbiAgICAgICAgICBpZiAoaXNFdmVudFN1cHBvcnRlZCgnc2Nyb2xsJywgdHJ1ZSkpIHtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQoJ3RvcFNjcm9sbCcsICdzY3JvbGwnLCBtb3VudEF0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2ZW50KCd0b3BTY3JvbGwnLCAnc2Nyb2xsJywgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci5XSU5ET1dfSEFORExFKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGVwZW5kZW5jeSA9PT0gJ3RvcEZvY3VzJyB8fCBkZXBlbmRlbmN5ID09PSAndG9wQmx1cicpIHtcbiAgICAgICAgICBpZiAoaXNFdmVudFN1cHBvcnRlZCgnZm9jdXMnLCB0cnVlKSkge1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQ2FwdHVyZWRFdmVudCgndG9wRm9jdXMnLCAnZm9jdXMnLCBtb3VudEF0KTtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQoJ3RvcEJsdXInLCAnYmx1cicsIG1vdW50QXQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNFdmVudFN1cHBvcnRlZCgnZm9jdXNpbicpKSB7XG4gICAgICAgICAgICAvLyBJRSBoYXMgYGZvY3VzaW5gIGFuZCBgZm9jdXNvdXRgIGV2ZW50cyB3aGljaCBidWJibGUuXG4gICAgICAgICAgICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDA4LzA0L2RlbGVnYXRpbmdfdGhlLmh0bWxcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wRm9jdXMnLCAnZm9jdXNpbicsIG1vdW50QXQpO1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2ZW50KCd0b3BCbHVyJywgJ2ZvY3Vzb3V0JywgbW91bnRBdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdG8gbWFrZSBzdXJlIGJsdXIgYW5kIGZvY3VzIGV2ZW50IGxpc3RlbmVycyBhcmUgb25seSBhdHRhY2hlZCBvbmNlXG4gICAgICAgICAgaXNMaXN0ZW5pbmcudG9wQmx1ciA9IHRydWU7XG4gICAgICAgICAgaXNMaXN0ZW5pbmcudG9wRm9jdXMgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRvcEV2ZW50TWFwcGluZy5oYXNPd25Qcm9wZXJ0eShkZXBlbmRlbmN5KSkge1xuICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudChkZXBlbmRlbmN5LCB0b3BFdmVudE1hcHBpbmdbZGVwZW5kZW5jeV0sIG1vdW50QXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaXNMaXN0ZW5pbmdbZGVwZW5kZW5jeV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB0cmFwQnViYmxlZEV2ZW50OiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSkge1xuICAgIHJldHVybiBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZlbnQodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSk7XG4gIH0sXG5cbiAgdHJhcENhcHR1cmVkRXZlbnQ6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIGhhbmRsZXJCYXNlTmFtZSwgaGFuZGxlKSB7XG4gICAgcmV0dXJuIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFByb3RlY3QgYWdhaW5zdCBkb2N1bWVudC5jcmVhdGVFdmVudCgpIHJldHVybmluZyBudWxsXG4gICAqIFNvbWUgcG9wdXAgYmxvY2tlciBleHRlbnNpb25zIGFwcGVhciB0byBkbyB0aGlzOlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzY4ODdcbiAgICovXG4gIHN1cHBvcnRzRXZlbnRQYWdlWFk6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWRvY3VtZW50LmNyZWF0ZUV2ZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBldiA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7XG4gICAgcmV0dXJuIGV2ICE9IG51bGwgJiYgJ3BhZ2VYJyBpbiBldjtcbiAgfSxcblxuICAvKipcbiAgICogTGlzdGVucyB0byB3aW5kb3cgc2Nyb2xsIGFuZCByZXNpemUgZXZlbnRzLiBXZSBjYWNoZSBzY3JvbGwgdmFsdWVzIHNvIHRoYXRcbiAgICogYXBwbGljYXRpb24gY29kZSBjYW4gYWNjZXNzIHRoZW0gd2l0aG91dCB0cmlnZ2VyaW5nIHJlZmxvd3MuXG4gICAqXG4gICAqIFZpZXdwb3J0TWV0cmljcyBpcyBvbmx5IHVzZWQgYnkgU3ludGhldGljTW91c2UvVG91Y2hFdmVudCBhbmQgb25seSB3aGVuXG4gICAqIHBhZ2VYL3BhZ2VZIGlzbid0IHN1cHBvcnRlZCAobGVnYWN5IGJyb3dzZXJzKS5cbiAgICpcbiAgICogTk9URTogU2Nyb2xsIGV2ZW50cyBkbyBub3QgYnViYmxlLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvZG9tL2V2ZW50cy9zY3JvbGwuaHRtbFxuICAgKi9cbiAgZW5zdXJlU2Nyb2xsVmFsdWVNb25pdG9yaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGhhc0V2ZW50UGFnZVhZID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhhc0V2ZW50UGFnZVhZID0gUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnN1cHBvcnRzRXZlbnRQYWdlWFkoKTtcbiAgICB9XG4gICAgaWYgKCFoYXNFdmVudFBhZ2VYWSAmJiAhaXNNb25pdG9yaW5nU2Nyb2xsVmFsdWUpIHtcbiAgICAgIHZhciByZWZyZXNoID0gVmlld3BvcnRNZXRyaWNzLnJlZnJlc2hTY3JvbGxWYWx1ZXM7XG4gICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLm1vbml0b3JTY3JvbGxWYWx1ZShyZWZyZXNoKTtcbiAgICAgIGlzTW9uaXRvcmluZ1Njcm9sbFZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlcjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5qc1xuLy8gbW9kdWxlIGlkID0gNDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ 36);\nvar ReactEventEmitterMixin = __webpack_require__(/*! ./ReactEventEmitterMixin */ 180);\nvar ViewportMetrics = __webpack_require__(/*! ./ViewportMetrics */ 87);\n\nvar getVendorPrefixedEventName = __webpack_require__(/*! ./getVendorPrefixedEventName */ 181);\nvar isEventSupported = __webpack_require__(/*! ./isEventSupported */ 50);\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar hasEventPageXY;\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topAbort: 'abort',\n topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\n topBlur: 'blur',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * EventPluginHub.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function (ReactEventListener) {\n ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function (enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function () {\n return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function (registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.topFocus = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function () {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function () {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n});\n\nmodule.exports = ReactBrowserEventEmitter;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuanM/MDE0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIEV2ZW50UGx1Z2luUmVnaXN0cnkgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luUmVnaXN0cnknKTtcbnZhciBSZWFjdEV2ZW50RW1pdHRlck1peGluID0gcmVxdWlyZSgnLi9SZWFjdEV2ZW50RW1pdHRlck1peGluJyk7XG52YXIgVmlld3BvcnRNZXRyaWNzID0gcmVxdWlyZSgnLi9WaWV3cG9ydE1ldHJpY3MnKTtcblxudmFyIGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lID0gcmVxdWlyZSgnLi9nZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZScpO1xudmFyIGlzRXZlbnRTdXBwb3J0ZWQgPSByZXF1aXJlKCcuL2lzRXZlbnRTdXBwb3J0ZWQnKTtcblxuLyoqXG4gKiBTdW1tYXJ5IG9mIGBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXJgIGV2ZW50IGhhbmRsaW5nOlxuICpcbiAqICAtIFRvcC1sZXZlbCBkZWxlZ2F0aW9uIGlzIHVzZWQgdG8gdHJhcCBtb3N0IG5hdGl2ZSBicm93c2VyIGV2ZW50cy4gVGhpc1xuICogICAgbWF5IG9ubHkgb2NjdXIgaW4gdGhlIG1haW4gdGhyZWFkIGFuZCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcbiAqICAgIFJlYWN0RXZlbnRMaXN0ZW5lciwgd2hpY2ggaXMgaW5qZWN0ZWQgYW5kIGNhbiB0aGVyZWZvcmUgc3VwcG9ydCBwbHVnZ2FibGVcbiAqICAgIGV2ZW50IHNvdXJjZXMuIFRoaXMgaXMgdGhlIG9ubHkgd29yayB0aGF0IG9jY3VycyBpbiB0aGUgbWFpbiB0aHJlYWQuXG4gKlxuICogIC0gV2Ugbm9ybWFsaXplIGFuZCBkZS1kdXBsaWNhdGUgZXZlbnRzIHRvIGFjY291bnQgZm9yIGJyb3dzZXIgcXVpcmtzLiBUaGlzXG4gKiAgICBtYXkgYmUgZG9uZSBpbiB0aGUgd29ya2VyIHRocmVhZC5cbiAqXG4gKiAgLSBGb3J3YXJkIHRoZXNlIG5hdGl2ZSBldmVudHMgKHdpdGggdGhlIGFzc29jaWF0ZWQgdG9wLWxldmVsIHR5cGUgdXNlZCB0b1xuICogICAgdHJhcCBpdCkgdG8gYEV2ZW50UGx1Z2luSHViYCwgd2hpY2ggaW4gdHVybiB3aWxsIGFzayBwbHVnaW5zIGlmIHRoZXkgd2FudFxuICogICAgdG8gZXh0cmFjdCBhbnkgc3ludGhldGljIGV2ZW50cy5cbiAqXG4gKiAgLSBUaGUgYEV2ZW50UGx1Z2luSHViYCB3aWxsIHRoZW4gcHJvY2VzcyBlYWNoIGV2ZW50IGJ5IGFubm90YXRpbmcgdGhlbSB3aXRoXG4gKiAgICBcImRpc3BhdGNoZXNcIiwgYSBzZXF1ZW5jZSBvZiBsaXN0ZW5lcnMgYW5kIElEcyB0aGF0IGNhcmUgYWJvdXQgdGhhdCBldmVudC5cbiAqXG4gKiAgLSBUaGUgYEV2ZW50UGx1Z2luSHViYCB0aGVuIGRpc3BhdGNoZXMgdGhlIGV2ZW50cy5cbiAqXG4gKiBPdmVydmlldyBvZiBSZWFjdCBhbmQgdGhlIGV2ZW50IHN5c3RlbTpcbiAqXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiB8ICAgIERPTSAgICAgfCAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiAgICAgICB8ICAgICAgICAgICAuXG4gKiAgICAgICB2ICAgICAgICAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiB8IFJlYWN0RXZlbnQgfCAgICAuXG4gKiB8ICBMaXN0ZW5lciAgfCAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLStcbiAqICAgICAgIHwgICAgICAgICAgIC4gICAgICAgICAgICAgICArLS0tLS0tLS0rfFNpbXBsZUV2ZW50fFxuICogICAgICAgfCAgICAgICAgICAgLiAgICAgICAgICAgICAgIHwgICAgICAgICB8UGx1Z2luICAgICB8XG4gKiArLS0tLS18LS0tLS0tKyAgICAuICAgICAgICAgICAgICAgdiAgICAgICAgICstLS0tLS0tLS0tLStcbiAqIHwgICAgIHwgICAgICB8ICAgIC4gICAgKy0tLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLStcbiAqIHwgICAgICstLS0tLS0tLS0tLS4tLS0+fEV2ZW50UGx1Z2luSHVifCAgICAgICAgICAgICAgICAgICAgfCAgICBFdmVudCAgIHxcbiAqIHwgICAgICAgICAgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgKy0tLS0tLS0tLS0tKyAgfCBQcm9wYWdhdG9yc3xcbiAqIHwgUmVhY3RFdmVudCB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgfFRhcEV2ZW50ICAgfCAgfC0tLS0tLS0tLS0tLXxcbiAqIHwgIEVtaXR0ZXIgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfDwtLS0rfFBsdWdpbiAgICAgfCAgfG90aGVyIHBsdWdpbnxcbiAqIHwgICAgICAgICAgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgKy0tLS0tLS0tLS0tKyAgfCAgdXRpbGl0aWVzIHxcbiAqIHwgICAgICstLS0tLS0tLS0tLS4tLS0+fCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLStcbiAqIHwgICAgIHwgICAgICB8ICAgIC4gICAgKy0tLS0tLS0tLS0tLS0tK1xuICogKy0tLS0tfC0tLS0tLSsgICAgLiAgICAgICAgICAgICAgICBeICAgICAgICArLS0tLS0tLS0tLS0rXG4gKiAgICAgICB8ICAgICAgICAgICAuICAgICAgICAgICAgICAgIHwgICAgICAgIHxFbnRlci9MZWF2ZXxcbiAqICAgICAgICsgICAgICAgICAgIC4gICAgICAgICAgICAgICAgKy0tLS0tLS0rfFBsdWdpbiAgICAgfFxuICogKy0tLS0tLS0tLS0tLS0rICAgLiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rXG4gKiB8IGFwcGxpY2F0aW9uIHwgICAuXG4gKiB8LS0tLS0tLS0tLS0tLXwgICAuXG4gKiB8ICAgICAgICAgICAgIHwgICAuXG4gKiB8ICAgICAgICAgICAgIHwgICAuXG4gKiArLS0tLS0tLS0tLS0tLSsgICAuXG4gKiAgICAgICAgICAgICAgICAgICAuXG4gKiAgICBSZWFjdCBDb3JlICAgICAuICBHZW5lcmFsIFB1cnBvc2UgRXZlbnQgUGx1Z2luIFN5c3RlbVxuICovXG5cbnZhciBoYXNFdmVudFBhZ2VYWTtcbnZhciBhbHJlYWR5TGlzdGVuaW5nVG8gPSB7fTtcbnZhciBpc01vbml0b3JpbmdTY3JvbGxWYWx1ZSA9IGZhbHNlO1xudmFyIHJlYWN0VG9wTGlzdGVuZXJzQ291bnRlciA9IDA7XG5cbi8vIEZvciBldmVudHMgbGlrZSAnc3VibWl0JyB3aGljaCBkb24ndCBjb25zaXN0ZW50bHkgYnViYmxlICh3aGljaCB3ZSB0cmFwIGF0IGFcbi8vIGxvd2VyIG5vZGUgdGhhbiBgZG9jdW1lbnRgKSwgYmluZGluZyBhdCBgZG9jdW1lbnRgIHdvdWxkIGNhdXNlIGR1cGxpY2F0ZVxuLy8gZXZlbnRzIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBoZXJlXG52YXIgdG9wRXZlbnRNYXBwaW5nID0ge1xuICB0b3BBYm9ydDogJ2Fib3J0JyxcbiAgdG9wQW5pbWF0aW9uRW5kOiBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgnYW5pbWF0aW9uZW5kJykgfHwgJ2FuaW1hdGlvbmVuZCcsXG4gIHRvcEFuaW1hdGlvbkl0ZXJhdGlvbjogZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ2FuaW1hdGlvbml0ZXJhdGlvbicpIHx8ICdhbmltYXRpb25pdGVyYXRpb24nLFxuICB0b3BBbmltYXRpb25TdGFydDogZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ2FuaW1hdGlvbnN0YXJ0JykgfHwgJ2FuaW1hdGlvbnN0YXJ0JyxcbiAgdG9wQmx1cjogJ2JsdXInLFxuICB0b3BDYW5QbGF5OiAnY2FucGxheScsXG4gIHRvcENhblBsYXlUaHJvdWdoOiAnY2FucGxheXRocm91Z2gnLFxuICB0b3BDaGFuZ2U6ICdjaGFuZ2UnLFxuICB0b3BDbGljazogJ2NsaWNrJyxcbiAgdG9wQ29tcG9zaXRpb25FbmQ6ICdjb21wb3NpdGlvbmVuZCcsXG4gIHRvcENvbXBvc2l0aW9uU3RhcnQ6ICdjb21wb3NpdGlvbnN0YXJ0JyxcbiAgdG9wQ29tcG9zaXRpb25VcGRhdGU6ICdjb21wb3NpdGlvbnVwZGF0ZScsXG4gIHRvcENvbnRleHRNZW51OiAnY29udGV4dG1lbnUnLFxuICB0b3BDb3B5OiAnY29weScsXG4gIHRvcEN1dDogJ2N1dCcsXG4gIHRvcERvdWJsZUNsaWNrOiAnZGJsY2xpY2snLFxuICB0b3BEcmFnOiAnZHJhZycsXG4gIHRvcERyYWdFbmQ6ICdkcmFnZW5kJyxcbiAgdG9wRHJhZ0VudGVyOiAnZHJhZ2VudGVyJyxcbiAgdG9wRHJhZ0V4aXQ6ICdkcmFnZXhpdCcsXG4gIHRvcERyYWdMZWF2ZTogJ2RyYWdsZWF2ZScsXG4gIHRvcERyYWdPdmVyOiAnZHJhZ292ZXInLFxuICB0b3BEcmFnU3RhcnQ6ICdkcmFnc3RhcnQnLFxuICB0b3BEcm9wOiAnZHJvcCcsXG4gIHRvcER1cmF0aW9uQ2hhbmdlOiAnZHVyYXRpb25jaGFuZ2UnLFxuICB0b3BFbXB0aWVkOiAnZW1wdGllZCcsXG4gIHRvcEVuY3J5cHRlZDogJ2VuY3J5cHRlZCcsXG4gIHRvcEVuZGVkOiAnZW5kZWQnLFxuICB0b3BFcnJvcjogJ2Vycm9yJyxcbiAgdG9wRm9jdXM6ICdmb2N1cycsXG4gIHRvcElucHV0OiAnaW5wdXQnLFxuICB0b3BLZXlEb3duOiAna2V5ZG93bicsXG4gIHRvcEtleVByZXNzOiAna2V5cHJlc3MnLFxuICB0b3BLZXlVcDogJ2tleXVwJyxcbiAgdG9wTG9hZGVkRGF0YTogJ2xvYWRlZGRhdGEnLFxuICB0b3BMb2FkZWRNZXRhZGF0YTogJ2xvYWRlZG1ldGFkYXRhJyxcbiAgdG9wTG9hZFN0YXJ0OiAnbG9hZHN0YXJ0JyxcbiAgdG9wTW91c2VEb3duOiAnbW91c2Vkb3duJyxcbiAgdG9wTW91c2VNb3ZlOiAnbW91c2Vtb3ZlJyxcbiAgdG9wTW91c2VPdXQ6ICdtb3VzZW91dCcsXG4gIHRvcE1vdXNlT3ZlcjogJ21vdXNlb3ZlcicsXG4gIHRvcE1vdXNlVXA6ICdtb3VzZXVwJyxcbiAgdG9wUGFzdGU6ICdwYXN0ZScsXG4gIHRvcFBhdXNlOiAncGF1c2UnLFxuICB0b3BQbGF5OiAncGxheScsXG4gIHRvcFBsYXlpbmc6ICdwbGF5aW5nJyxcbiAgdG9wUHJvZ3Jlc3M6ICdwcm9ncmVzcycsXG4gIHRvcFJhdGVDaGFuZ2U6ICdyYXRlY2hhbmdlJyxcbiAgdG9wU2Nyb2xsOiAnc2Nyb2xsJyxcbiAgdG9wU2Vla2VkOiAnc2Vla2VkJyxcbiAgdG9wU2Vla2luZzogJ3NlZWtpbmcnLFxuICB0b3BTZWxlY3Rpb25DaGFuZ2U6ICdzZWxlY3Rpb25jaGFuZ2UnLFxuICB0b3BTdGFsbGVkOiAnc3RhbGxlZCcsXG4gIHRvcFN1c3BlbmQ6ICdzdXNwZW5kJyxcbiAgdG9wVGV4dElucHV0OiAndGV4dElucHV0JyxcbiAgdG9wVGltZVVwZGF0ZTogJ3RpbWV1cGRhdGUnLFxuICB0b3BUb3VjaENhbmNlbDogJ3RvdWNoY2FuY2VsJyxcbiAgdG9wVG91Y2hFbmQ6ICd0b3VjaGVuZCcsXG4gIHRvcFRvdWNoTW92ZTogJ3RvdWNobW92ZScsXG4gIHRvcFRvdWNoU3RhcnQ6ICd0b3VjaHN0YXJ0JyxcbiAgdG9wVHJhbnNpdGlvbkVuZDogZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ3RyYW5zaXRpb25lbmQnKSB8fCAndHJhbnNpdGlvbmVuZCcsXG4gIHRvcFZvbHVtZUNoYW5nZTogJ3ZvbHVtZWNoYW5nZScsXG4gIHRvcFdhaXRpbmc6ICd3YWl0aW5nJyxcbiAgdG9wV2hlZWw6ICd3aGVlbCdcbn07XG5cbi8qKlxuICogVG8gZW5zdXJlIG5vIGNvbmZsaWN0cyB3aXRoIG90aGVyIHBvdGVudGlhbCBSZWFjdCBpbnN0YW5jZXMgb24gdGhlIHBhZ2VcbiAqL1xudmFyIHRvcExpc3RlbmVyc0lES2V5ID0gJ19yZWFjdExpc3RlbmVyc0lEJyArIFN0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKTtcblxuZnVuY3Rpb24gZ2V0TGlzdGVuaW5nRm9yRG9jdW1lbnQobW91bnRBdCkge1xuICAvLyBJbiBJRTgsIGBtb3VudEF0YCBpcyBhIGhvc3Qgb2JqZWN0IGFuZCBkb2Vzbid0IGhhdmUgYGhhc093blByb3BlcnR5YFxuICAvLyBkaXJlY3RseS5cbiAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW91bnRBdCwgdG9wTGlzdGVuZXJzSURLZXkpKSB7XG4gICAgbW91bnRBdFt0b3BMaXN0ZW5lcnNJREtleV0gPSByZWFjdFRvcExpc3RlbmVyc0NvdW50ZXIrKztcbiAgICBhbHJlYWR5TGlzdGVuaW5nVG9bbW91bnRBdFt0b3BMaXN0ZW5lcnNJREtleV1dID0ge307XG4gIH1cbiAgcmV0dXJuIGFscmVhZHlMaXN0ZW5pbmdUb1ttb3VudEF0W3RvcExpc3RlbmVyc0lES2V5XV07XG59XG5cbi8qKlxuICogYFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlcmAgaXMgdXNlZCB0byBhdHRhY2ggdG9wLWxldmVsIGV2ZW50IGxpc3RlbmVycy4gRm9yXG4gKiBleGFtcGxlOlxuICpcbiAqICAgRXZlbnRQbHVnaW5IdWIucHV0TGlzdGVuZXIoJ215SUQnLCAnb25DbGljaycsIG15RnVuY3Rpb24pO1xuICpcbiAqIFRoaXMgd291bGQgYWxsb2NhdGUgYSBcInJlZ2lzdHJhdGlvblwiIG9mIGAoJ29uQ2xpY2snLCBteUZ1bmN0aW9uKWAgb24gJ215SUQnLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG52YXIgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyID0gX2Fzc2lnbih7fSwgUmVhY3RFdmVudEVtaXR0ZXJNaXhpbiwge1xuICAvKipcbiAgICogSW5qZWN0YWJsZSBldmVudCBiYWNrZW5kXG4gICAqL1xuICBSZWFjdEV2ZW50TGlzdGVuZXI6IG51bGwsXG5cbiAgaW5qZWN0aW9uOiB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFJlYWN0RXZlbnRMaXN0ZW5lclxuICAgICAqL1xuICAgIGluamVjdFJlYWN0RXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gKFJlYWN0RXZlbnRMaXN0ZW5lcikge1xuICAgICAgUmVhY3RFdmVudExpc3RlbmVyLnNldEhhbmRsZVRvcExldmVsKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5oYW5kbGVUb3BMZXZlbCk7XG4gICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyID0gUmVhY3RFdmVudExpc3RlbmVyO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIG9yIG5vdCBhbnkgY3JlYXRlZCBjYWxsYmFja3Mgc2hvdWxkIGJlIGVuYWJsZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlZCBUcnVlIGlmIGNhbGxiYWNrcyBzaG91bGQgYmUgZW5hYmxlZC5cbiAgICovXG4gIHNldEVuYWJsZWQ6IGZ1bmN0aW9uIChlbmFibGVkKSB7XG4gICAgaWYgKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIuc2V0RW5hYmxlZChlbmFibGVkKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgY2FsbGJhY2tzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgaXNFbmFibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICEhKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIgJiYgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci5pc0VuYWJsZWQoKSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFdlIGxpc3RlbiBmb3IgYnViYmxlZCB0b3VjaCBldmVudHMgb24gdGhlIGRvY3VtZW50IG9iamVjdC5cbiAgICpcbiAgICogRmlyZWZveCB2OC4wMSAoYW5kIHBvc3NpYmx5IG90aGVycykgZXhoaWJpdGVkIHN0cmFuZ2UgYmVoYXZpb3Igd2hlblxuICAgKiBtb3VudGluZyBgb25tb3VzZW1vdmVgIGV2ZW50cyBhdCBzb21lIG5vZGUgdGhhdCB3YXMgbm90IHRoZSBkb2N1bWVudFxuICAgKiBlbGVtZW50LiBUaGUgc3ltcHRvbXMgd2VyZSB0aGF0IGlmIHlvdXIgbW91c2UgaXMgbm90IG1vdmluZyBvdmVyIHNvbWV0aGluZ1xuICAgKiBjb250YWluZWQgd2l0aGluIHRoYXQgbW91bnQgcG9pbnQgKGZvciBleGFtcGxlIG9uIHRoZSBiYWNrZ3JvdW5kKSB0aGVcbiAgICogdG9wLWxldmVsIGxpc3RlbmVycyBmb3IgYG9ubW91c2Vtb3ZlYCB3b24ndCBiZSBjYWxsZWQuIEhvd2V2ZXIsIGlmIHlvdVxuICAgKiByZWdpc3RlciB0aGUgYG1vdXNlbW92ZWAgb24gdGhlIGRvY3VtZW50IG9iamVjdCwgdGhlbiBpdCB3aWxsIG9mIGNvdXJzZVxuICAgKiBjYXRjaCBhbGwgYG1vdXNlbW92ZWBzLiBUaGlzIGFsb25nIHdpdGggaU9TIHF1aXJrcywganVzdGlmaWVzIHJlc3RyaWN0aW5nXG4gICAqIHRvcC1sZXZlbCBsaXN0ZW5lcnMgdG8gdGhlIGRvY3VtZW50IG9iamVjdCBvbmx5LCBhdCBsZWFzdCBmb3IgdGhlc2VcbiAgICogbW92ZW1lbnQgdHlwZXMgb2YgZXZlbnRzIGFuZCBwb3NzaWJseSBhbGwgZXZlbnRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDEwLzA5L2NsaWNrX2V2ZW50X2RlbC5odG1sXG4gICAqXG4gICAqIEFsc28sIGBrZXl1cGAvYGtleXByZXNzYC9ga2V5ZG93bmAgZG8gbm90IGJ1YmJsZSB0byB0aGUgd2luZG93IG9uIElFLCBidXRcbiAgICogdGhleSBidWJibGUgdG8gZG9jdW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWdpc3RyYXRpb25OYW1lIE5hbWUgb2YgbGlzdGVuZXIgKGUuZy4gYG9uQ2xpY2tgKS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRlbnREb2N1bWVudEhhbmRsZSBEb2N1bWVudCB3aGljaCBvd25zIHRoZSBjb250YWluZXJcbiAgICovXG4gIGxpc3RlblRvOiBmdW5jdGlvbiAocmVnaXN0cmF0aW9uTmFtZSwgY29udGVudERvY3VtZW50SGFuZGxlKSB7XG4gICAgdmFyIG1vdW50QXQgPSBjb250ZW50RG9jdW1lbnRIYW5kbGU7XG4gICAgdmFyIGlzTGlzdGVuaW5nID0gZ2V0TGlzdGVuaW5nRm9yRG9jdW1lbnQobW91bnRBdCk7XG4gICAgdmFyIGRlcGVuZGVuY2llcyA9IEV2ZW50UGx1Z2luUmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVwZW5kZW5jaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVwZW5kZW5jeSA9IGRlcGVuZGVuY2llc1tpXTtcbiAgICAgIGlmICghKGlzTGlzdGVuaW5nLmhhc093blByb3BlcnR5KGRlcGVuZGVuY3kpICYmIGlzTGlzdGVuaW5nW2RlcGVuZGVuY3ldKSkge1xuICAgICAgICBpZiAoZGVwZW5kZW5jeSA9PT0gJ3RvcFdoZWVsJykge1xuICAgICAgICAgIGlmIChpc0V2ZW50U3VwcG9ydGVkKCd3aGVlbCcpKSB7XG4gICAgICAgICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcFdoZWVsJywgJ3doZWVsJywgbW91bnRBdCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0V2ZW50U3VwcG9ydGVkKCdtb3VzZXdoZWVsJykpIHtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wV2hlZWwnLCAnbW91c2V3aGVlbCcsIG1vdW50QXQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGaXJlZm94IG5lZWRzIHRvIGNhcHR1cmUgYSBkaWZmZXJlbnQgbW91c2Ugc2Nyb2xsIGV2ZW50LlxuICAgICAgICAgICAgLy8gQHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2RvbS9ldmVudHMvdGVzdHMvc2Nyb2xsLmh0bWxcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wV2hlZWwnLCAnRE9NTW91c2VTY3JvbGwnLCBtb3VudEF0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGVwZW5kZW5jeSA9PT0gJ3RvcFNjcm9sbCcpIHtcbiAgICAgICAgICBpZiAoaXNFdmVudFN1cHBvcnRlZCgnc2Nyb2xsJywgdHJ1ZSkpIHtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQoJ3RvcFNjcm9sbCcsICdzY3JvbGwnLCBtb3VudEF0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2ZW50KCd0b3BTY3JvbGwnLCAnc2Nyb2xsJywgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci5XSU5ET1dfSEFORExFKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGVwZW5kZW5jeSA9PT0gJ3RvcEZvY3VzJyB8fCBkZXBlbmRlbmN5ID09PSAndG9wQmx1cicpIHtcbiAgICAgICAgICBpZiAoaXNFdmVudFN1cHBvcnRlZCgnZm9jdXMnLCB0cnVlKSkge1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQ2FwdHVyZWRFdmVudCgndG9wRm9jdXMnLCAnZm9jdXMnLCBtb3VudEF0KTtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQoJ3RvcEJsdXInLCAnYmx1cicsIG1vdW50QXQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNFdmVudFN1cHBvcnRlZCgnZm9jdXNpbicpKSB7XG4gICAgICAgICAgICAvLyBJRSBoYXMgYGZvY3VzaW5gIGFuZCBgZm9jdXNvdXRgIGV2ZW50cyB3aGljaCBidWJibGUuXG4gICAgICAgICAgICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDA4LzA0L2RlbGVnYXRpbmdfdGhlLmh0bWxcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wRm9jdXMnLCAnZm9jdXNpbicsIG1vdW50QXQpO1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2ZW50KCd0b3BCbHVyJywgJ2ZvY3Vzb3V0JywgbW91bnRBdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdG8gbWFrZSBzdXJlIGJsdXIgYW5kIGZvY3VzIGV2ZW50IGxpc3RlbmVycyBhcmUgb25seSBhdHRhY2hlZCBvbmNlXG4gICAgICAgICAgaXNMaXN0ZW5pbmcudG9wQmx1ciA9IHRydWU7XG4gICAgICAgICAgaXNMaXN0ZW5pbmcudG9wRm9jdXMgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRvcEV2ZW50TWFwcGluZy5oYXNPd25Qcm9wZXJ0eShkZXBlbmRlbmN5KSkge1xuICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudChkZXBlbmRlbmN5LCB0b3BFdmVudE1hcHBpbmdbZGVwZW5kZW5jeV0sIG1vdW50QXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaXNMaXN0ZW5pbmdbZGVwZW5kZW5jeV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB0cmFwQnViYmxlZEV2ZW50OiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSkge1xuICAgIHJldHVybiBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZlbnQodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSk7XG4gIH0sXG5cbiAgdHJhcENhcHR1cmVkRXZlbnQ6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIGhhbmRsZXJCYXNlTmFtZSwgaGFuZGxlKSB7XG4gICAgcmV0dXJuIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFByb3RlY3QgYWdhaW5zdCBkb2N1bWVudC5jcmVhdGVFdmVudCgpIHJldHVybmluZyBudWxsXG4gICAqIFNvbWUgcG9wdXAgYmxvY2tlciBleHRlbnNpb25zIGFwcGVhciB0byBkbyB0aGlzOlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzY4ODdcbiAgICovXG4gIHN1cHBvcnRzRXZlbnRQYWdlWFk6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWRvY3VtZW50LmNyZWF0ZUV2ZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBldiA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7XG4gICAgcmV0dXJuIGV2ICE9IG51bGwgJiYgJ3BhZ2VYJyBpbiBldjtcbiAgfSxcblxuICAvKipcbiAgICogTGlzdGVucyB0byB3aW5kb3cgc2Nyb2xsIGFuZCByZXNpemUgZXZlbnRzLiBXZSBjYWNoZSBzY3JvbGwgdmFsdWVzIHNvIHRoYXRcbiAgICogYXBwbGljYXRpb24gY29kZSBjYW4gYWNjZXNzIHRoZW0gd2l0aG91dCB0cmlnZ2VyaW5nIHJlZmxvd3MuXG4gICAqXG4gICAqIFZpZXdwb3J0TWV0cmljcyBpcyBvbmx5IHVzZWQgYnkgU3ludGhldGljTW91c2UvVG91Y2hFdmVudCBhbmQgb25seSB3aGVuXG4gICAqIHBhZ2VYL3BhZ2VZIGlzbid0IHN1cHBvcnRlZCAobGVnYWN5IGJyb3dzZXJzKS5cbiAgICpcbiAgICogTk9URTogU2Nyb2xsIGV2ZW50cyBkbyBub3QgYnViYmxlLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvZG9tL2V2ZW50cy9zY3JvbGwuaHRtbFxuICAgKi9cbiAgZW5zdXJlU2Nyb2xsVmFsdWVNb25pdG9yaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGhhc0V2ZW50UGFnZVhZID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhhc0V2ZW50UGFnZVhZID0gUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnN1cHBvcnRzRXZlbnRQYWdlWFkoKTtcbiAgICB9XG4gICAgaWYgKCFoYXNFdmVudFBhZ2VYWSAmJiAhaXNNb25pdG9yaW5nU2Nyb2xsVmFsdWUpIHtcbiAgICAgIHZhciByZWZyZXNoID0gVmlld3BvcnRNZXRyaWNzLnJlZnJlc2hTY3JvbGxWYWx1ZXM7XG4gICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLm1vbml0b3JTY3JvbGxWYWx1ZShyZWZyZXNoKTtcbiAgICAgIGlzTW9uaXRvcmluZ1Njcm9sbFZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlcjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5qc1xuLy8gbW9kdWxlIGlkID0gNDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n"); /***/ }), /* 42 */ @@ -592,6 +592,18 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = isEqual;\nfu /***/ }), /* 44 */ +/*!*************************************!*\ + !*** ./node_modules/react/react.js ***! + \*************************************/ +/*! no static exports found */ +/*! exports used: Component, default */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nmodule.exports = __webpack_require__(/*! ./lib/React */ 20);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvcmVhY3QuanM/NTNiYiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvUmVhY3QnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0L3JlYWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///44\n"); + +/***/ }), +/* 45 */ /*!*******************************************************************!*\ !*** ./node_modules/react/node_modules/fbjs/lib/emptyFunction.js ***! \*******************************************************************/ @@ -600,10 +612,10 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = isEqual;\nfu /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qvbm9kZV9tb2R1bGVzL2ZianMvbGliL2VtcHR5RnVuY3Rpb24uanM/NTRjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIFxuICovXG5cbmZ1bmN0aW9uIG1ha2VFbXB0eUZ1bmN0aW9uKGFyZykge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBhcmc7XG4gIH07XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBhY2NlcHRzIGFuZCBkaXNjYXJkcyBpbnB1dHM7IGl0IGhhcyBubyBzaWRlIGVmZmVjdHMuIFRoaXMgaXNcbiAqIHByaW1hcmlseSB1c2VmdWwgaWRpb21hdGljYWxseSBmb3Igb3ZlcnJpZGFibGUgZnVuY3Rpb24gZW5kcG9pbnRzIHdoaWNoXG4gKiBhbHdheXMgbmVlZCB0byBiZSBjYWxsYWJsZSwgc2luY2UgSlMgbGFja3MgYSBudWxsLWNhbGwgaWRpb20gYWxhIENvY29hLlxuICovXG52YXIgZW1wdHlGdW5jdGlvbiA9IGZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fTtcblxuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJucyA9IG1ha2VFbXB0eUZ1bmN0aW9uO1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc0ZhbHNlID0gbWFrZUVtcHR5RnVuY3Rpb24oZmFsc2UpO1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc1RydWUgPSBtYWtlRW1wdHlGdW5jdGlvbih0cnVlKTtcbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsID0gbWFrZUVtcHR5RnVuY3Rpb24obnVsbCk7XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zVGhpcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXM7XG59O1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc0FyZ3VtZW50ID0gZnVuY3Rpb24gKGFyZykge1xuICByZXR1cm4gYXJnO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbXB0eUZ1bmN0aW9uO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0L25vZGVfbW9kdWxlcy9mYmpzL2xpYi9lbXB0eUZ1bmN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSA0NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///44\n"); +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qvbm9kZV9tb2R1bGVzL2ZianMvbGliL2VtcHR5RnVuY3Rpb24uanM/NTRjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIFxuICovXG5cbmZ1bmN0aW9uIG1ha2VFbXB0eUZ1bmN0aW9uKGFyZykge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBhcmc7XG4gIH07XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBhY2NlcHRzIGFuZCBkaXNjYXJkcyBpbnB1dHM7IGl0IGhhcyBubyBzaWRlIGVmZmVjdHMuIFRoaXMgaXNcbiAqIHByaW1hcmlseSB1c2VmdWwgaWRpb21hdGljYWxseSBmb3Igb3ZlcnJpZGFibGUgZnVuY3Rpb24gZW5kcG9pbnRzIHdoaWNoXG4gKiBhbHdheXMgbmVlZCB0byBiZSBjYWxsYWJsZSwgc2luY2UgSlMgbGFja3MgYSBudWxsLWNhbGwgaWRpb20gYWxhIENvY29hLlxuICovXG52YXIgZW1wdHlGdW5jdGlvbiA9IGZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fTtcblxuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJucyA9IG1ha2VFbXB0eUZ1bmN0aW9uO1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc0ZhbHNlID0gbWFrZUVtcHR5RnVuY3Rpb24oZmFsc2UpO1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc1RydWUgPSBtYWtlRW1wdHlGdW5jdGlvbih0cnVlKTtcbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsID0gbWFrZUVtcHR5RnVuY3Rpb24obnVsbCk7XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zVGhpcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXM7XG59O1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc0FyZ3VtZW50ID0gZnVuY3Rpb24gKGFyZykge1xuICByZXR1cm4gYXJnO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbXB0eUZ1bmN0aW9uO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0L25vZGVfbW9kdWxlcy9mYmpzL2xpYi9lbXB0eUZ1bmN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSA0NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///45\n"); /***/ }), -/* 45 */ +/* 46 */ /*!******************************************************!*\ !*** ./node_modules/react/lib/lowPriorityWarning.js ***! \******************************************************/ @@ -612,10 +624,10 @@ eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights rese /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = lowPriorityWarning;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL2xvd1ByaW9yaXR5V2FybmluZy5qcz82ZDViIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogRm9ya2VkIGZyb20gZmJqcy93YXJuaW5nOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2ZianMvYmxvYi9lNjZiYTIwYWQ1YmU0MzNlYjU0NDIzZjJiMDk3ZDgyOTMyNGQ5ZGU2L3BhY2thZ2VzL2ZianMvc3JjL19fZm9ya3NfXy93YXJuaW5nLmpzXG4gKlxuICogT25seSBjaGFuZ2UgaXMgd2UgdXNlIGNvbnNvbGUud2FybiBpbnN0ZWFkIG9mIGNvbnNvbGUuZXJyb3IsXG4gKiBhbmQgZG8gbm90aGluZyB3aGVuICdjb25zb2xlJyBpcyBub3Qgc3VwcG9ydGVkLlxuICogVGhpcyByZWFsbHkgc2ltcGxpZmllcyB0aGUgY29kZS5cbiAqIC0tLVxuICogU2ltaWxhciB0byBpbnZhcmlhbnQgYnV0IG9ubHkgbG9ncyBhIHdhcm5pbmcgaWYgdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBsb2cgaXNzdWVzIGluIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpbiBjcml0aWNhbFxuICogcGF0aHMuIFJlbW92aW5nIHRoZSBsb2dnaW5nIGNvZGUgZm9yIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIHdpbGwga2VlcCB0aGVcbiAqIHNhbWUgbG9naWMgYW5kIGZvbGxvdyB0aGUgc2FtZSBjb2RlIHBhdGhzLlxuICovXG5cbnZhciBsb3dQcmlvcml0eVdhcm5pbmcgPSBmdW5jdGlvbiAoKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHZhciBhcmdJbmRleCA9IDA7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArIGZvcm1hdC5yZXBsYWNlKC8lcy9nLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gYXJnc1thcmdJbmRleCsrXTtcbiAgICB9KTtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyAtLS0gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgLS0tXG4gICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgIC8vIHRvIGZpbmQgdGhlIGNhbGxzaXRlIHRoYXQgY2F1c2VkIHRoaXMgd2FybmluZyB0byBmaXJlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH07XG5cbiAgbG93UHJpb3JpdHlXYXJuaW5nID0gZnVuY3Rpb24gKGNvbmRpdGlvbiwgZm9ybWF0KSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2B3YXJuaW5nKGNvbmRpdGlvbiwgZm9ybWF0LCAuLi5hcmdzKWAgcmVxdWlyZXMgYSB3YXJuaW5nICcgKyAnbWVzc2FnZSBhcmd1bWVudCcpO1xuICAgIH1cbiAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbjIgPiAyID8gX2xlbjIgLSAyIDogMCksIF9rZXkyID0gMjsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICBhcmdzW19rZXkyIC0gMl0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcuYXBwbHkodW5kZWZpbmVkLCBbZm9ybWF0XS5jb25jYXQoYXJncykpO1xuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsb3dQcmlvcml0eVdhcm5pbmc7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL2xvd1ByaW9yaXR5V2FybmluZy5qc1xuLy8gbW9kdWxlIGlkID0gNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///45\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = lowPriorityWarning;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL2xvd1ByaW9yaXR5V2FybmluZy5qcz82ZDViIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogRm9ya2VkIGZyb20gZmJqcy93YXJuaW5nOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2ZianMvYmxvYi9lNjZiYTIwYWQ1YmU0MzNlYjU0NDIzZjJiMDk3ZDgyOTMyNGQ5ZGU2L3BhY2thZ2VzL2ZianMvc3JjL19fZm9ya3NfXy93YXJuaW5nLmpzXG4gKlxuICogT25seSBjaGFuZ2UgaXMgd2UgdXNlIGNvbnNvbGUud2FybiBpbnN0ZWFkIG9mIGNvbnNvbGUuZXJyb3IsXG4gKiBhbmQgZG8gbm90aGluZyB3aGVuICdjb25zb2xlJyBpcyBub3Qgc3VwcG9ydGVkLlxuICogVGhpcyByZWFsbHkgc2ltcGxpZmllcyB0aGUgY29kZS5cbiAqIC0tLVxuICogU2ltaWxhciB0byBpbnZhcmlhbnQgYnV0IG9ubHkgbG9ncyBhIHdhcm5pbmcgaWYgdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBsb2cgaXNzdWVzIGluIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpbiBjcml0aWNhbFxuICogcGF0aHMuIFJlbW92aW5nIHRoZSBsb2dnaW5nIGNvZGUgZm9yIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIHdpbGwga2VlcCB0aGVcbiAqIHNhbWUgbG9naWMgYW5kIGZvbGxvdyB0aGUgc2FtZSBjb2RlIHBhdGhzLlxuICovXG5cbnZhciBsb3dQcmlvcml0eVdhcm5pbmcgPSBmdW5jdGlvbiAoKSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIHZhciBhcmdJbmRleCA9IDA7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArIGZvcm1hdC5yZXBsYWNlKC8lcy9nLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gYXJnc1thcmdJbmRleCsrXTtcbiAgICB9KTtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyAtLS0gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgLS0tXG4gICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgIC8vIHRvIGZpbmQgdGhlIGNhbGxzaXRlIHRoYXQgY2F1c2VkIHRoaXMgd2FybmluZyB0byBmaXJlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH07XG5cbiAgbG93UHJpb3JpdHlXYXJuaW5nID0gZnVuY3Rpb24gKGNvbmRpdGlvbiwgZm9ybWF0KSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2B3YXJuaW5nKGNvbmRpdGlvbiwgZm9ybWF0LCAuLi5hcmdzKWAgcmVxdWlyZXMgYSB3YXJuaW5nICcgKyAnbWVzc2FnZSBhcmd1bWVudCcpO1xuICAgIH1cbiAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbjIgPiAyID8gX2xlbjIgLSAyIDogMCksIF9rZXkyID0gMjsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICBhcmdzW19rZXkyIC0gMl0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcuYXBwbHkodW5kZWZpbmVkLCBbZm9ybWF0XS5jb25jYXQoYXJncykpO1xuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsb3dQcmlvcml0eVdhcm5pbmc7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL2xvd1ByaW9yaXR5V2FybmluZy5qc1xuLy8gbW9kdWxlIGlkID0gNDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///46\n"); /***/ }), -/* 46 */ +/* 47 */ /*!********************************************************!*\ !*** ./node_modules/react-dom/lib/EventPluginUtils.js ***! \********************************************************/ @@ -624,10 +636,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015 /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ 47);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\n }\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n\n getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFBsdWdpblV0aWxzLmpzPzU2ODUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0RXJyb3JVdGlscyA9IHJlcXVpcmUoJy4vUmVhY3RFcnJvclV0aWxzJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG4vKipcbiAqIEluamVjdGVkIGRlcGVuZGVuY2llczpcbiAqL1xuXG4vKipcbiAqIC0gYENvbXBvbmVudFRyZWVgOiBbcmVxdWlyZWRdIE1vZHVsZSB0aGF0IGNhbiBjb252ZXJ0IGJldHdlZW4gUmVhY3QgaW5zdGFuY2VzXG4gKiAgIGFuZCBhY3R1YWwgbm9kZSByZWZlcmVuY2VzLlxuICovXG52YXIgQ29tcG9uZW50VHJlZTtcbnZhciBUcmVlVHJhdmVyc2FsO1xudmFyIGluamVjdGlvbiA9IHtcbiAgaW5qZWN0Q29tcG9uZW50VHJlZTogZnVuY3Rpb24gKEluamVjdGVkKSB7XG4gICAgQ29tcG9uZW50VHJlZSA9IEluamVjdGVkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhJbmplY3RlZCAmJiBJbmplY3RlZC5nZXROb2RlRnJvbUluc3RhbmNlICYmIEluamVjdGVkLmdldEluc3RhbmNlRnJvbU5vZGUsICdFdmVudFBsdWdpblV0aWxzLmluamVjdGlvbi5pbmplY3RDb21wb25lbnRUcmVlKC4uLik6IEluamVjdGVkICcgKyAnbW9kdWxlIGlzIG1pc3NpbmcgZ2V0Tm9kZUZyb21JbnN0YW5jZSBvciBnZXRJbnN0YW5jZUZyb21Ob2RlLicpIDogdm9pZCAwO1xuICAgIH1cbiAgfSxcbiAgaW5qZWN0VHJlZVRyYXZlcnNhbDogZnVuY3Rpb24gKEluamVjdGVkKSB7XG4gICAgVHJlZVRyYXZlcnNhbCA9IEluamVjdGVkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhJbmplY3RlZCAmJiBJbmplY3RlZC5pc0FuY2VzdG9yICYmIEluamVjdGVkLmdldExvd2VzdENvbW1vbkFuY2VzdG9yLCAnRXZlbnRQbHVnaW5VdGlscy5pbmplY3Rpb24uaW5qZWN0VHJlZVRyYXZlcnNhbCguLi4pOiBJbmplY3RlZCAnICsgJ21vZHVsZSBpcyBtaXNzaW5nIGlzQW5jZXN0b3Igb3IgZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3IuJykgOiB2b2lkIDA7XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBpc0VuZGlzaCh0b3BMZXZlbFR5cGUpIHtcbiAgcmV0dXJuIHRvcExldmVsVHlwZSA9PT0gJ3RvcE1vdXNlVXAnIHx8IHRvcExldmVsVHlwZSA9PT0gJ3RvcFRvdWNoRW5kJyB8fCB0b3BMZXZlbFR5cGUgPT09ICd0b3BUb3VjaENhbmNlbCc7XG59XG5cbmZ1bmN0aW9uIGlzTW92ZWlzaCh0b3BMZXZlbFR5cGUpIHtcbiAgcmV0dXJuIHRvcExldmVsVHlwZSA9PT0gJ3RvcE1vdXNlTW92ZScgfHwgdG9wTGV2ZWxUeXBlID09PSAndG9wVG91Y2hNb3ZlJztcbn1cbmZ1bmN0aW9uIGlzU3RhcnRpc2godG9wTGV2ZWxUeXBlKSB7XG4gIHJldHVybiB0b3BMZXZlbFR5cGUgPT09ICd0b3BNb3VzZURvd24nIHx8IHRvcExldmVsVHlwZSA9PT0gJ3RvcFRvdWNoU3RhcnQnO1xufVxuXG52YXIgdmFsaWRhdGVFdmVudERpc3BhdGNoZXM7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YWxpZGF0ZUV2ZW50RGlzcGF0Y2hlcyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHZhciBkaXNwYXRjaExpc3RlbmVycyA9IGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycztcbiAgICB2YXIgZGlzcGF0Y2hJbnN0YW5jZXMgPSBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXM7XG5cbiAgICB2YXIgbGlzdGVuZXJzSXNBcnIgPSBBcnJheS5pc0FycmF5KGRpc3BhdGNoTGlzdGVuZXJzKTtcbiAgICB2YXIgbGlzdGVuZXJzTGVuID0gbGlzdGVuZXJzSXNBcnIgPyBkaXNwYXRjaExpc3RlbmVycy5sZW5ndGggOiBkaXNwYXRjaExpc3RlbmVycyA/IDEgOiAwO1xuXG4gICAgdmFyIGluc3RhbmNlc0lzQXJyID0gQXJyYXkuaXNBcnJheShkaXNwYXRjaEluc3RhbmNlcyk7XG4gICAgdmFyIGluc3RhbmNlc0xlbiA9IGluc3RhbmNlc0lzQXJyID8gZGlzcGF0Y2hJbnN0YW5jZXMubGVuZ3RoIDogZGlzcGF0Y2hJbnN0YW5jZXMgPyAxIDogMDtcblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGluc3RhbmNlc0lzQXJyID09PSBsaXN0ZW5lcnNJc0FyciAmJiBpbnN0YW5jZXNMZW4gPT09IGxpc3RlbmVyc0xlbiwgJ0V2ZW50UGx1Z2luVXRpbHM6IEludmFsaWQgYGV2ZW50YC4nKSA6IHZvaWQgMDtcbiAgfTtcbn1cblxuLyoqXG4gKiBEaXNwYXRjaCB0aGUgZXZlbnQgdG8gdGhlIGxpc3RlbmVyLlxuICogQHBhcmFtIHtTeW50aGV0aWNFdmVudH0gZXZlbnQgU3ludGhldGljRXZlbnQgdG8gaGFuZGxlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHNpbXVsYXRlZCBJZiB0aGUgZXZlbnQgaXMgc2ltdWxhdGVkIChjaGFuZ2VzIGV4biBiZWhhdmlvcilcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGxpc3RlbmVyIEFwcGxpY2F0aW9uLWxldmVsIGNhbGxiYWNrXG4gKiBAcGFyYW0geyp9IGluc3QgSW50ZXJuYWwgY29tcG9uZW50IGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgc2ltdWxhdGVkLCBsaXN0ZW5lciwgaW5zdCkge1xuICB2YXIgdHlwZSA9IGV2ZW50LnR5cGUgfHwgJ3Vua25vd24tZXZlbnQnO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gRXZlbnRQbHVnaW5VdGlscy5nZXROb2RlRnJvbUluc3RhbmNlKGluc3QpO1xuICBpZiAoc2ltdWxhdGVkKSB7XG4gICAgUmVhY3RFcnJvclV0aWxzLmludm9rZUd1YXJkZWRDYWxsYmFja1dpdGhDYXRjaCh0eXBlLCBsaXN0ZW5lciwgZXZlbnQpO1xuICB9IGVsc2Uge1xuICAgIFJlYWN0RXJyb3JVdGlscy5pbnZva2VHdWFyZGVkQ2FsbGJhY2sodHlwZSwgbGlzdGVuZXIsIGV2ZW50KTtcbiAgfVxuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZC9zaW1wbGUgaXRlcmF0aW9uIHRocm91Z2ggYW4gZXZlbnQncyBjb2xsZWN0ZWQgZGlzcGF0Y2hlcy5cbiAqL1xuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyKGV2ZW50LCBzaW11bGF0ZWQpIHtcbiAgdmFyIGRpc3BhdGNoTGlzdGVuZXJzID0gZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzO1xuICB2YXIgZGlzcGF0Y2hJbnN0YW5jZXMgPSBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXM7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFsaWRhdGVFdmVudERpc3BhdGNoZXMoZXZlbnQpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRpc3BhdGNoTGlzdGVuZXJzKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlzcGF0Y2hMaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gTGlzdGVuZXJzIGFuZCBJbnN0YW5jZXMgYXJlIHR3byBwYXJhbGxlbCBhcnJheXMgdGhhdCBhcmUgYWx3YXlzIGluIHN5bmMuXG4gICAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIHNpbXVsYXRlZCwgZGlzcGF0Y2hMaXN0ZW5lcnNbaV0sIGRpc3BhdGNoSW5zdGFuY2VzW2ldKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGlzcGF0Y2hMaXN0ZW5lcnMpIHtcbiAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIHNpbXVsYXRlZCwgZGlzcGF0Y2hMaXN0ZW5lcnMsIGRpc3BhdGNoSW5zdGFuY2VzKTtcbiAgfVxuICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBudWxsO1xuICBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMgPSBudWxsO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkL3NpbXBsZSBpdGVyYXRpb24gdGhyb3VnaCBhbiBldmVudCdzIGNvbGxlY3RlZCBkaXNwYXRjaGVzLCBidXQgc3RvcHNcbiAqIGF0IHRoZSBmaXJzdCBkaXNwYXRjaCBleGVjdXRpb24gcmV0dXJuaW5nIHRydWUsIGFuZCByZXR1cm5zIHRoYXQgaWQuXG4gKlxuICogQHJldHVybiB7P3N0cmluZ30gaWQgb2YgdGhlIGZpcnN0IGRpc3BhdGNoIGV4ZWN1dGlvbiB3aG8ncyBsaXN0ZW5lciByZXR1cm5zXG4gKiB0cnVlLCBvciBudWxsIGlmIG5vIGxpc3RlbmVyIHJldHVybmVkIHRydWUuXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVEaXNwYXRjaGVzSW5PcmRlclN0b3BBdFRydWVJbXBsKGV2ZW50KSB7XG4gIHZhciBkaXNwYXRjaExpc3RlbmVycyA9IGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycztcbiAgdmFyIGRpc3BhdGNoSW5zdGFuY2VzID0gZXZlbnQuX2Rpc3BhdGNoSW5zdGFuY2VzO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHZhbGlkYXRlRXZlbnREaXNwYXRjaGVzKGV2ZW50KTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShkaXNwYXRjaExpc3RlbmVycykpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpc3BhdGNoTGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIExpc3RlbmVycyBhbmQgSW5zdGFuY2VzIGFyZSB0d28gcGFyYWxsZWwgYXJyYXlzIHRoYXQgYXJlIGFsd2F5cyBpbiBzeW5jLlxuICAgICAgaWYgKGRpc3BhdGNoTGlzdGVuZXJzW2ldKGV2ZW50LCBkaXNwYXRjaEluc3RhbmNlc1tpXSkpIHtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoSW5zdGFuY2VzW2ldO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChkaXNwYXRjaExpc3RlbmVycykge1xuICAgIGlmIChkaXNwYXRjaExpc3RlbmVycyhldmVudCwgZGlzcGF0Y2hJbnN0YW5jZXMpKSB7XG4gICAgICByZXR1cm4gZGlzcGF0Y2hJbnN0YW5jZXM7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEBzZWUgZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZUltcGxcbiAqL1xuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZShldmVudCkge1xuICB2YXIgcmV0ID0gZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZUltcGwoZXZlbnQpO1xuICBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMgPSBudWxsO1xuICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBudWxsO1xuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIEV4ZWN1dGlvbiBvZiBhIFwiZGlyZWN0XCIgZGlzcGF0Y2ggLSB0aGVyZSBtdXN0IGJlIGF0IG1vc3Qgb25lIGRpc3BhdGNoXG4gKiBhY2N1bXVsYXRlZCBvbiB0aGUgZXZlbnQgb3IgaXQgaXMgY29uc2lkZXJlZCBhbiBlcnJvci4gSXQgZG9lc24ndCByZWFsbHkgbWFrZVxuICogc2Vuc2UgZm9yIGFuIGV2ZW50IHdpdGggbXVsdGlwbGUgZGlzcGF0Y2hlcyAoYnViYmxlZCkgdG8ga2VlcCB0cmFjayBvZiB0aGVcbiAqIHJldHVybiB2YWx1ZXMgYXQgZWFjaCBkaXNwYXRjaCBleGVjdXRpb24sIGJ1dCBpdCBkb2VzIHRlbmQgdG8gbWFrZSBzZW5zZSB3aGVuXG4gKiBkZWFsaW5nIHdpdGggXCJkaXJlY3RcIiBkaXNwYXRjaGVzLlxuICpcbiAqIEByZXR1cm4geyp9IFRoZSByZXR1cm4gdmFsdWUgb2YgZXhlY3V0aW5nIHRoZSBzaW5nbGUgZGlzcGF0Y2guXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVEaXJlY3REaXNwYXRjaChldmVudCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHZhbGlkYXRlRXZlbnREaXNwYXRjaGVzKGV2ZW50KTtcbiAgfVxuICB2YXIgZGlzcGF0Y2hMaXN0ZW5lciA9IGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycztcbiAgdmFyIGRpc3BhdGNoSW5zdGFuY2UgPSBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXM7XG4gICEhQXJyYXkuaXNBcnJheShkaXNwYXRjaExpc3RlbmVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdleGVjdXRlRGlyZWN0RGlzcGF0Y2goLi4uKTogSW52YWxpZCBgZXZlbnRgLicpIDogX3Byb2RJbnZhcmlhbnQoJzEwMycpIDogdm9pZCAwO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gZGlzcGF0Y2hMaXN0ZW5lciA/IEV2ZW50UGx1Z2luVXRpbHMuZ2V0Tm9kZUZyb21JbnN0YW5jZShkaXNwYXRjaEluc3RhbmNlKSA6IG51bGw7XG4gIHZhciByZXMgPSBkaXNwYXRjaExpc3RlbmVyID8gZGlzcGF0Y2hMaXN0ZW5lcihldmVudCkgOiBudWxsO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbiAgZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzID0gbnVsbDtcbiAgZXZlbnQuX2Rpc3BhdGNoSW5zdGFuY2VzID0gbnVsbDtcbiAgcmV0dXJuIHJlcztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldmVudFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZmYgbnVtYmVyIG9mIGRpc3BhdGNoZXMgYWNjdW11bGF0ZWQgaXMgZ3JlYXRlciB0aGFuIDAuXG4gKi9cbmZ1bmN0aW9uIGhhc0Rpc3BhdGNoZXMoZXZlbnQpIHtcbiAgcmV0dXJuICEhZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzO1xufVxuXG4vKipcbiAqIEdlbmVyYWwgdXRpbGl0aWVzIHRoYXQgYXJlIHVzZWZ1bCBpbiBjcmVhdGluZyBjdXN0b20gRXZlbnQgUGx1Z2lucy5cbiAqL1xudmFyIEV2ZW50UGx1Z2luVXRpbHMgPSB7XG4gIGlzRW5kaXNoOiBpc0VuZGlzaCxcbiAgaXNNb3ZlaXNoOiBpc01vdmVpc2gsXG4gIGlzU3RhcnRpc2g6IGlzU3RhcnRpc2gsXG5cbiAgZXhlY3V0ZURpcmVjdERpc3BhdGNoOiBleGVjdXRlRGlyZWN0RGlzcGF0Y2gsXG4gIGV4ZWN1dGVEaXNwYXRjaGVzSW5PcmRlcjogZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyLFxuICBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlOiBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlLFxuICBoYXNEaXNwYXRjaGVzOiBoYXNEaXNwYXRjaGVzLFxuXG4gIGdldEluc3RhbmNlRnJvbU5vZGU6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmV0dXJuIENvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShub2RlKTtcbiAgfSxcbiAgZ2V0Tm9kZUZyb21JbnN0YW5jZTogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKG5vZGUpO1xuICB9LFxuICBpc0FuY2VzdG9yOiBmdW5jdGlvbiAoYSwgYikge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLmlzQW5jZXN0b3IoYSwgYik7XG4gIH0sXG4gIGdldExvd2VzdENvbW1vbkFuY2VzdG9yOiBmdW5jdGlvbiAoYSwgYikge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLmdldExvd2VzdENvbW1vbkFuY2VzdG9yKGEsIGIpO1xuICB9LFxuICBnZXRQYXJlbnRJbnN0YW5jZTogZnVuY3Rpb24gKGluc3QpIHtcbiAgICByZXR1cm4gVHJlZVRyYXZlcnNhbC5nZXRQYXJlbnRJbnN0YW5jZShpbnN0KTtcbiAgfSxcbiAgdHJhdmVyc2VUd29QaGFzZTogZnVuY3Rpb24gKHRhcmdldCwgZm4sIGFyZykge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLnRyYXZlcnNlVHdvUGhhc2UodGFyZ2V0LCBmbiwgYXJnKTtcbiAgfSxcbiAgdHJhdmVyc2VFbnRlckxlYXZlOiBmdW5jdGlvbiAoZnJvbSwgdG8sIGZuLCBhcmdGcm9tLCBhcmdUbykge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLnRyYXZlcnNlRW50ZXJMZWF2ZShmcm9tLCB0bywgZm4sIGFyZ0Zyb20sIGFyZ1RvKTtcbiAgfSxcblxuICBpbmplY3Rpb246IGluamVjdGlvblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBFdmVudFBsdWdpblV0aWxzO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvRXZlbnRQbHVnaW5VdGlscy5qc1xuLy8gbW9kdWxlIGlkID0gNDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///46\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ 48);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\n }\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n\n getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9FdmVudFBsdWdpblV0aWxzLmpzPzU2ODUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0RXJyb3JVdGlscyA9IHJlcXVpcmUoJy4vUmVhY3RFcnJvclV0aWxzJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG4vKipcbiAqIEluamVjdGVkIGRlcGVuZGVuY2llczpcbiAqL1xuXG4vKipcbiAqIC0gYENvbXBvbmVudFRyZWVgOiBbcmVxdWlyZWRdIE1vZHVsZSB0aGF0IGNhbiBjb252ZXJ0IGJldHdlZW4gUmVhY3QgaW5zdGFuY2VzXG4gKiAgIGFuZCBhY3R1YWwgbm9kZSByZWZlcmVuY2VzLlxuICovXG52YXIgQ29tcG9uZW50VHJlZTtcbnZhciBUcmVlVHJhdmVyc2FsO1xudmFyIGluamVjdGlvbiA9IHtcbiAgaW5qZWN0Q29tcG9uZW50VHJlZTogZnVuY3Rpb24gKEluamVjdGVkKSB7XG4gICAgQ29tcG9uZW50VHJlZSA9IEluamVjdGVkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhJbmplY3RlZCAmJiBJbmplY3RlZC5nZXROb2RlRnJvbUluc3RhbmNlICYmIEluamVjdGVkLmdldEluc3RhbmNlRnJvbU5vZGUsICdFdmVudFBsdWdpblV0aWxzLmluamVjdGlvbi5pbmplY3RDb21wb25lbnRUcmVlKC4uLik6IEluamVjdGVkICcgKyAnbW9kdWxlIGlzIG1pc3NpbmcgZ2V0Tm9kZUZyb21JbnN0YW5jZSBvciBnZXRJbnN0YW5jZUZyb21Ob2RlLicpIDogdm9pZCAwO1xuICAgIH1cbiAgfSxcbiAgaW5qZWN0VHJlZVRyYXZlcnNhbDogZnVuY3Rpb24gKEluamVjdGVkKSB7XG4gICAgVHJlZVRyYXZlcnNhbCA9IEluamVjdGVkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhJbmplY3RlZCAmJiBJbmplY3RlZC5pc0FuY2VzdG9yICYmIEluamVjdGVkLmdldExvd2VzdENvbW1vbkFuY2VzdG9yLCAnRXZlbnRQbHVnaW5VdGlscy5pbmplY3Rpb24uaW5qZWN0VHJlZVRyYXZlcnNhbCguLi4pOiBJbmplY3RlZCAnICsgJ21vZHVsZSBpcyBtaXNzaW5nIGlzQW5jZXN0b3Igb3IgZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3IuJykgOiB2b2lkIDA7XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBpc0VuZGlzaCh0b3BMZXZlbFR5cGUpIHtcbiAgcmV0dXJuIHRvcExldmVsVHlwZSA9PT0gJ3RvcE1vdXNlVXAnIHx8IHRvcExldmVsVHlwZSA9PT0gJ3RvcFRvdWNoRW5kJyB8fCB0b3BMZXZlbFR5cGUgPT09ICd0b3BUb3VjaENhbmNlbCc7XG59XG5cbmZ1bmN0aW9uIGlzTW92ZWlzaCh0b3BMZXZlbFR5cGUpIHtcbiAgcmV0dXJuIHRvcExldmVsVHlwZSA9PT0gJ3RvcE1vdXNlTW92ZScgfHwgdG9wTGV2ZWxUeXBlID09PSAndG9wVG91Y2hNb3ZlJztcbn1cbmZ1bmN0aW9uIGlzU3RhcnRpc2godG9wTGV2ZWxUeXBlKSB7XG4gIHJldHVybiB0b3BMZXZlbFR5cGUgPT09ICd0b3BNb3VzZURvd24nIHx8IHRvcExldmVsVHlwZSA9PT0gJ3RvcFRvdWNoU3RhcnQnO1xufVxuXG52YXIgdmFsaWRhdGVFdmVudERpc3BhdGNoZXM7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YWxpZGF0ZUV2ZW50RGlzcGF0Y2hlcyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHZhciBkaXNwYXRjaExpc3RlbmVycyA9IGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycztcbiAgICB2YXIgZGlzcGF0Y2hJbnN0YW5jZXMgPSBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXM7XG5cbiAgICB2YXIgbGlzdGVuZXJzSXNBcnIgPSBBcnJheS5pc0FycmF5KGRpc3BhdGNoTGlzdGVuZXJzKTtcbiAgICB2YXIgbGlzdGVuZXJzTGVuID0gbGlzdGVuZXJzSXNBcnIgPyBkaXNwYXRjaExpc3RlbmVycy5sZW5ndGggOiBkaXNwYXRjaExpc3RlbmVycyA/IDEgOiAwO1xuXG4gICAgdmFyIGluc3RhbmNlc0lzQXJyID0gQXJyYXkuaXNBcnJheShkaXNwYXRjaEluc3RhbmNlcyk7XG4gICAgdmFyIGluc3RhbmNlc0xlbiA9IGluc3RhbmNlc0lzQXJyID8gZGlzcGF0Y2hJbnN0YW5jZXMubGVuZ3RoIDogZGlzcGF0Y2hJbnN0YW5jZXMgPyAxIDogMDtcblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGluc3RhbmNlc0lzQXJyID09PSBsaXN0ZW5lcnNJc0FyciAmJiBpbnN0YW5jZXNMZW4gPT09IGxpc3RlbmVyc0xlbiwgJ0V2ZW50UGx1Z2luVXRpbHM6IEludmFsaWQgYGV2ZW50YC4nKSA6IHZvaWQgMDtcbiAgfTtcbn1cblxuLyoqXG4gKiBEaXNwYXRjaCB0aGUgZXZlbnQgdG8gdGhlIGxpc3RlbmVyLlxuICogQHBhcmFtIHtTeW50aGV0aWNFdmVudH0gZXZlbnQgU3ludGhldGljRXZlbnQgdG8gaGFuZGxlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHNpbXVsYXRlZCBJZiB0aGUgZXZlbnQgaXMgc2ltdWxhdGVkIChjaGFuZ2VzIGV4biBiZWhhdmlvcilcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGxpc3RlbmVyIEFwcGxpY2F0aW9uLWxldmVsIGNhbGxiYWNrXG4gKiBAcGFyYW0geyp9IGluc3QgSW50ZXJuYWwgY29tcG9uZW50IGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgc2ltdWxhdGVkLCBsaXN0ZW5lciwgaW5zdCkge1xuICB2YXIgdHlwZSA9IGV2ZW50LnR5cGUgfHwgJ3Vua25vd24tZXZlbnQnO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gRXZlbnRQbHVnaW5VdGlscy5nZXROb2RlRnJvbUluc3RhbmNlKGluc3QpO1xuICBpZiAoc2ltdWxhdGVkKSB7XG4gICAgUmVhY3RFcnJvclV0aWxzLmludm9rZUd1YXJkZWRDYWxsYmFja1dpdGhDYXRjaCh0eXBlLCBsaXN0ZW5lciwgZXZlbnQpO1xuICB9IGVsc2Uge1xuICAgIFJlYWN0RXJyb3JVdGlscy5pbnZva2VHdWFyZGVkQ2FsbGJhY2sodHlwZSwgbGlzdGVuZXIsIGV2ZW50KTtcbiAgfVxuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZC9zaW1wbGUgaXRlcmF0aW9uIHRocm91Z2ggYW4gZXZlbnQncyBjb2xsZWN0ZWQgZGlzcGF0Y2hlcy5cbiAqL1xuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyKGV2ZW50LCBzaW11bGF0ZWQpIHtcbiAgdmFyIGRpc3BhdGNoTGlzdGVuZXJzID0gZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzO1xuICB2YXIgZGlzcGF0Y2hJbnN0YW5jZXMgPSBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXM7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFsaWRhdGVFdmVudERpc3BhdGNoZXMoZXZlbnQpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRpc3BhdGNoTGlzdGVuZXJzKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlzcGF0Y2hMaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gTGlzdGVuZXJzIGFuZCBJbnN0YW5jZXMgYXJlIHR3byBwYXJhbGxlbCBhcnJheXMgdGhhdCBhcmUgYWx3YXlzIGluIHN5bmMuXG4gICAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIHNpbXVsYXRlZCwgZGlzcGF0Y2hMaXN0ZW5lcnNbaV0sIGRpc3BhdGNoSW5zdGFuY2VzW2ldKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZGlzcGF0Y2hMaXN0ZW5lcnMpIHtcbiAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIHNpbXVsYXRlZCwgZGlzcGF0Y2hMaXN0ZW5lcnMsIGRpc3BhdGNoSW5zdGFuY2VzKTtcbiAgfVxuICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBudWxsO1xuICBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMgPSBudWxsO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkL3NpbXBsZSBpdGVyYXRpb24gdGhyb3VnaCBhbiBldmVudCdzIGNvbGxlY3RlZCBkaXNwYXRjaGVzLCBidXQgc3RvcHNcbiAqIGF0IHRoZSBmaXJzdCBkaXNwYXRjaCBleGVjdXRpb24gcmV0dXJuaW5nIHRydWUsIGFuZCByZXR1cm5zIHRoYXQgaWQuXG4gKlxuICogQHJldHVybiB7P3N0cmluZ30gaWQgb2YgdGhlIGZpcnN0IGRpc3BhdGNoIGV4ZWN1dGlvbiB3aG8ncyBsaXN0ZW5lciByZXR1cm5zXG4gKiB0cnVlLCBvciBudWxsIGlmIG5vIGxpc3RlbmVyIHJldHVybmVkIHRydWUuXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVEaXNwYXRjaGVzSW5PcmRlclN0b3BBdFRydWVJbXBsKGV2ZW50KSB7XG4gIHZhciBkaXNwYXRjaExpc3RlbmVycyA9IGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycztcbiAgdmFyIGRpc3BhdGNoSW5zdGFuY2VzID0gZXZlbnQuX2Rpc3BhdGNoSW5zdGFuY2VzO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHZhbGlkYXRlRXZlbnREaXNwYXRjaGVzKGV2ZW50KTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShkaXNwYXRjaExpc3RlbmVycykpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpc3BhdGNoTGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIExpc3RlbmVycyBhbmQgSW5zdGFuY2VzIGFyZSB0d28gcGFyYWxsZWwgYXJyYXlzIHRoYXQgYXJlIGFsd2F5cyBpbiBzeW5jLlxuICAgICAgaWYgKGRpc3BhdGNoTGlzdGVuZXJzW2ldKGV2ZW50LCBkaXNwYXRjaEluc3RhbmNlc1tpXSkpIHtcbiAgICAgICAgcmV0dXJuIGRpc3BhdGNoSW5zdGFuY2VzW2ldO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChkaXNwYXRjaExpc3RlbmVycykge1xuICAgIGlmIChkaXNwYXRjaExpc3RlbmVycyhldmVudCwgZGlzcGF0Y2hJbnN0YW5jZXMpKSB7XG4gICAgICByZXR1cm4gZGlzcGF0Y2hJbnN0YW5jZXM7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEBzZWUgZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZUltcGxcbiAqL1xuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZShldmVudCkge1xuICB2YXIgcmV0ID0gZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZUltcGwoZXZlbnQpO1xuICBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXMgPSBudWxsO1xuICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBudWxsO1xuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIEV4ZWN1dGlvbiBvZiBhIFwiZGlyZWN0XCIgZGlzcGF0Y2ggLSB0aGVyZSBtdXN0IGJlIGF0IG1vc3Qgb25lIGRpc3BhdGNoXG4gKiBhY2N1bXVsYXRlZCBvbiB0aGUgZXZlbnQgb3IgaXQgaXMgY29uc2lkZXJlZCBhbiBlcnJvci4gSXQgZG9lc24ndCByZWFsbHkgbWFrZVxuICogc2Vuc2UgZm9yIGFuIGV2ZW50IHdpdGggbXVsdGlwbGUgZGlzcGF0Y2hlcyAoYnViYmxlZCkgdG8ga2VlcCB0cmFjayBvZiB0aGVcbiAqIHJldHVybiB2YWx1ZXMgYXQgZWFjaCBkaXNwYXRjaCBleGVjdXRpb24sIGJ1dCBpdCBkb2VzIHRlbmQgdG8gbWFrZSBzZW5zZSB3aGVuXG4gKiBkZWFsaW5nIHdpdGggXCJkaXJlY3RcIiBkaXNwYXRjaGVzLlxuICpcbiAqIEByZXR1cm4geyp9IFRoZSByZXR1cm4gdmFsdWUgb2YgZXhlY3V0aW5nIHRoZSBzaW5nbGUgZGlzcGF0Y2guXG4gKi9cbmZ1bmN0aW9uIGV4ZWN1dGVEaXJlY3REaXNwYXRjaChldmVudCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHZhbGlkYXRlRXZlbnREaXNwYXRjaGVzKGV2ZW50KTtcbiAgfVxuICB2YXIgZGlzcGF0Y2hMaXN0ZW5lciA9IGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycztcbiAgdmFyIGRpc3BhdGNoSW5zdGFuY2UgPSBldmVudC5fZGlzcGF0Y2hJbnN0YW5jZXM7XG4gICEhQXJyYXkuaXNBcnJheShkaXNwYXRjaExpc3RlbmVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdleGVjdXRlRGlyZWN0RGlzcGF0Y2goLi4uKTogSW52YWxpZCBgZXZlbnRgLicpIDogX3Byb2RJbnZhcmlhbnQoJzEwMycpIDogdm9pZCAwO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gZGlzcGF0Y2hMaXN0ZW5lciA/IEV2ZW50UGx1Z2luVXRpbHMuZ2V0Tm9kZUZyb21JbnN0YW5jZShkaXNwYXRjaEluc3RhbmNlKSA6IG51bGw7XG4gIHZhciByZXMgPSBkaXNwYXRjaExpc3RlbmVyID8gZGlzcGF0Y2hMaXN0ZW5lcihldmVudCkgOiBudWxsO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbiAgZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzID0gbnVsbDtcbiAgZXZlbnQuX2Rpc3BhdGNoSW5zdGFuY2VzID0gbnVsbDtcbiAgcmV0dXJuIHJlcztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldmVudFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZmYgbnVtYmVyIG9mIGRpc3BhdGNoZXMgYWNjdW11bGF0ZWQgaXMgZ3JlYXRlciB0aGFuIDAuXG4gKi9cbmZ1bmN0aW9uIGhhc0Rpc3BhdGNoZXMoZXZlbnQpIHtcbiAgcmV0dXJuICEhZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzO1xufVxuXG4vKipcbiAqIEdlbmVyYWwgdXRpbGl0aWVzIHRoYXQgYXJlIHVzZWZ1bCBpbiBjcmVhdGluZyBjdXN0b20gRXZlbnQgUGx1Z2lucy5cbiAqL1xudmFyIEV2ZW50UGx1Z2luVXRpbHMgPSB7XG4gIGlzRW5kaXNoOiBpc0VuZGlzaCxcbiAgaXNNb3ZlaXNoOiBpc01vdmVpc2gsXG4gIGlzU3RhcnRpc2g6IGlzU3RhcnRpc2gsXG5cbiAgZXhlY3V0ZURpcmVjdERpc3BhdGNoOiBleGVjdXRlRGlyZWN0RGlzcGF0Y2gsXG4gIGV4ZWN1dGVEaXNwYXRjaGVzSW5PcmRlcjogZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyLFxuICBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlOiBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlLFxuICBoYXNEaXNwYXRjaGVzOiBoYXNEaXNwYXRjaGVzLFxuXG4gIGdldEluc3RhbmNlRnJvbU5vZGU6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmV0dXJuIENvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShub2RlKTtcbiAgfSxcbiAgZ2V0Tm9kZUZyb21JbnN0YW5jZTogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKG5vZGUpO1xuICB9LFxuICBpc0FuY2VzdG9yOiBmdW5jdGlvbiAoYSwgYikge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLmlzQW5jZXN0b3IoYSwgYik7XG4gIH0sXG4gIGdldExvd2VzdENvbW1vbkFuY2VzdG9yOiBmdW5jdGlvbiAoYSwgYikge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLmdldExvd2VzdENvbW1vbkFuY2VzdG9yKGEsIGIpO1xuICB9LFxuICBnZXRQYXJlbnRJbnN0YW5jZTogZnVuY3Rpb24gKGluc3QpIHtcbiAgICByZXR1cm4gVHJlZVRyYXZlcnNhbC5nZXRQYXJlbnRJbnN0YW5jZShpbnN0KTtcbiAgfSxcbiAgdHJhdmVyc2VUd29QaGFzZTogZnVuY3Rpb24gKHRhcmdldCwgZm4sIGFyZykge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLnRyYXZlcnNlVHdvUGhhc2UodGFyZ2V0LCBmbiwgYXJnKTtcbiAgfSxcbiAgdHJhdmVyc2VFbnRlckxlYXZlOiBmdW5jdGlvbiAoZnJvbSwgdG8sIGZuLCBhcmdGcm9tLCBhcmdUbykge1xuICAgIHJldHVybiBUcmVlVHJhdmVyc2FsLnRyYXZlcnNlRW50ZXJMZWF2ZShmcm9tLCB0bywgZm4sIGFyZ0Zyb20sIGFyZ1RvKTtcbiAgfSxcblxuICBpbmplY3Rpb246IGluamVjdGlvblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBFdmVudFBsdWdpblV0aWxzO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvRXZlbnRQbHVnaW5VdGlscy5qc1xuLy8gbW9kdWxlIGlkID0gNDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///47\n"); /***/ }), -/* 47 */ +/* 48 */ /*!*******************************************************!*\ !*** ./node_modules/react-dom/lib/ReactErrorUtils.js ***! \*******************************************************/ @@ -636,10 +648,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\n }\n}\n\nvar ReactErrorUtils = {\n invokeGuardedCallback: invokeGuardedCallback,\n\n /**\n * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n * handler are sure to be rethrown by rethrowCaughtError.\n */\n invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function () {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n /**\n * To help development we can get better devtools integration by simulating a\n * real browser event.\n */\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = func.bind(null, a);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdEVycm9yVXRpbHMuanM/ODg3NSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBjYXVnaHRFcnJvciA9IG51bGw7XG5cbi8qKlxuICogQ2FsbCBhIGZ1bmN0aW9uIHdoaWxlIGd1YXJkaW5nIGFnYWluc3QgZXJyb3JzIHRoYXQgaGFwcGVucyB3aXRoaW4gaXQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgb2YgdGhlIGd1YXJkIHRvIHVzZSBmb3IgbG9nZ2luZyBvciBkZWJ1Z2dpbmdcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZVxuICogQHBhcmFtIHsqfSBhIEZpcnN0IGFyZ3VtZW50XG4gKiBAcGFyYW0geyp9IGIgU2Vjb25kIGFyZ3VtZW50XG4gKi9cbmZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFjayhuYW1lLCBmdW5jLCBhKSB7XG4gIHRyeSB7XG4gICAgZnVuYyhhKTtcbiAgfSBjYXRjaCAoeCkge1xuICAgIGlmIChjYXVnaHRFcnJvciA9PT0gbnVsbCkge1xuICAgICAgY2F1Z2h0RXJyb3IgPSB4O1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RFcnJvclV0aWxzID0ge1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2s6IGludm9rZUd1YXJkZWRDYWxsYmFjayxcblxuICAvKipcbiAgICogSW52b2tlZCBieSBSZWFjdFRlc3RVdGlscy5TaW11bGF0ZSBzbyB0aGF0IGFueSBlcnJvcnMgdGhyb3duIGJ5IHRoZSBldmVudFxuICAgKiBoYW5kbGVyIGFyZSBzdXJlIHRvIGJlIHJldGhyb3duIGJ5IHJldGhyb3dDYXVnaHRFcnJvci5cbiAgICovXG4gIGludm9rZUd1YXJkZWRDYWxsYmFja1dpdGhDYXRjaDogaW52b2tlR3VhcmRlZENhbGxiYWNrLFxuXG4gIC8qKlxuICAgKiBEdXJpbmcgZXhlY3V0aW9uIG9mIGd1YXJkZWQgZnVuY3Rpb25zIHdlIHdpbGwgY2FwdHVyZSB0aGUgZmlyc3QgZXJyb3Igd2hpY2hcbiAgICogd2Ugd2lsbCByZXRocm93IHRvIGJlIGhhbmRsZWQgYnkgdGhlIHRvcCBsZXZlbCBlcnJvciBoYW5kbGVyLlxuICAgKi9cbiAgcmV0aHJvd0NhdWdodEVycm9yOiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNhdWdodEVycm9yKSB7XG4gICAgICB2YXIgZXJyb3IgPSBjYXVnaHRFcnJvcjtcbiAgICAgIGNhdWdodEVycm9yID0gbnVsbDtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgLyoqXG4gICAqIFRvIGhlbHAgZGV2ZWxvcG1lbnQgd2UgY2FuIGdldCBiZXR0ZXIgZGV2dG9vbHMgaW50ZWdyYXRpb24gYnkgc2ltdWxhdGluZyBhXG4gICAqIHJlYWwgYnJvd3NlciBldmVudC5cbiAgICovXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LmRpc3BhdGNoRXZlbnQgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRXZlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgZmFrZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdyZWFjdCcpO1xuICAgIFJlYWN0RXJyb3JVdGlscy5pbnZva2VHdWFyZGVkQ2FsbGJhY2sgPSBmdW5jdGlvbiAobmFtZSwgZnVuYywgYSkge1xuICAgICAgdmFyIGJvdW5kRnVuYyA9IGZ1bmMuYmluZChudWxsLCBhKTtcbiAgICAgIHZhciBldnRUeXBlID0gJ3JlYWN0LScgKyBuYW1lO1xuICAgICAgZmFrZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldnRUeXBlLCBib3VuZEZ1bmMsIGZhbHNlKTtcbiAgICAgIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcbiAgICAgIGV2dC5pbml0RXZlbnQoZXZ0VHlwZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgIGZha2VOb2RlLmRpc3BhdGNoRXZlbnQoZXZ0KTtcbiAgICAgIGZha2VOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZ0VHlwZSwgYm91bmRGdW5jLCBmYWxzZSk7XG4gICAgfTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RXJyb3JVdGlscztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RXJyb3JVdGlscy5qc1xuLy8gbW9kdWxlIGlkID0gNDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///47\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\n }\n}\n\nvar ReactErrorUtils = {\n invokeGuardedCallback: invokeGuardedCallback,\n\n /**\n * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n * handler are sure to be rethrown by rethrowCaughtError.\n */\n invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function () {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n /**\n * To help development we can get better devtools integration by simulating a\n * real browser event.\n */\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = func.bind(null, a);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdEVycm9yVXRpbHMuanM/ODg3NSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBjYXVnaHRFcnJvciA9IG51bGw7XG5cbi8qKlxuICogQ2FsbCBhIGZ1bmN0aW9uIHdoaWxlIGd1YXJkaW5nIGFnYWluc3QgZXJyb3JzIHRoYXQgaGFwcGVucyB3aXRoaW4gaXQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgb2YgdGhlIGd1YXJkIHRvIHVzZSBmb3IgbG9nZ2luZyBvciBkZWJ1Z2dpbmdcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZVxuICogQHBhcmFtIHsqfSBhIEZpcnN0IGFyZ3VtZW50XG4gKiBAcGFyYW0geyp9IGIgU2Vjb25kIGFyZ3VtZW50XG4gKi9cbmZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFjayhuYW1lLCBmdW5jLCBhKSB7XG4gIHRyeSB7XG4gICAgZnVuYyhhKTtcbiAgfSBjYXRjaCAoeCkge1xuICAgIGlmIChjYXVnaHRFcnJvciA9PT0gbnVsbCkge1xuICAgICAgY2F1Z2h0RXJyb3IgPSB4O1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RFcnJvclV0aWxzID0ge1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2s6IGludm9rZUd1YXJkZWRDYWxsYmFjayxcblxuICAvKipcbiAgICogSW52b2tlZCBieSBSZWFjdFRlc3RVdGlscy5TaW11bGF0ZSBzbyB0aGF0IGFueSBlcnJvcnMgdGhyb3duIGJ5IHRoZSBldmVudFxuICAgKiBoYW5kbGVyIGFyZSBzdXJlIHRvIGJlIHJldGhyb3duIGJ5IHJldGhyb3dDYXVnaHRFcnJvci5cbiAgICovXG4gIGludm9rZUd1YXJkZWRDYWxsYmFja1dpdGhDYXRjaDogaW52b2tlR3VhcmRlZENhbGxiYWNrLFxuXG4gIC8qKlxuICAgKiBEdXJpbmcgZXhlY3V0aW9uIG9mIGd1YXJkZWQgZnVuY3Rpb25zIHdlIHdpbGwgY2FwdHVyZSB0aGUgZmlyc3QgZXJyb3Igd2hpY2hcbiAgICogd2Ugd2lsbCByZXRocm93IHRvIGJlIGhhbmRsZWQgYnkgdGhlIHRvcCBsZXZlbCBlcnJvciBoYW5kbGVyLlxuICAgKi9cbiAgcmV0aHJvd0NhdWdodEVycm9yOiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNhdWdodEVycm9yKSB7XG4gICAgICB2YXIgZXJyb3IgPSBjYXVnaHRFcnJvcjtcbiAgICAgIGNhdWdodEVycm9yID0gbnVsbDtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgLyoqXG4gICAqIFRvIGhlbHAgZGV2ZWxvcG1lbnQgd2UgY2FuIGdldCBiZXR0ZXIgZGV2dG9vbHMgaW50ZWdyYXRpb24gYnkgc2ltdWxhdGluZyBhXG4gICAqIHJlYWwgYnJvd3NlciBldmVudC5cbiAgICovXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LmRpc3BhdGNoRXZlbnQgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRXZlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgZmFrZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdyZWFjdCcpO1xuICAgIFJlYWN0RXJyb3JVdGlscy5pbnZva2VHdWFyZGVkQ2FsbGJhY2sgPSBmdW5jdGlvbiAobmFtZSwgZnVuYywgYSkge1xuICAgICAgdmFyIGJvdW5kRnVuYyA9IGZ1bmMuYmluZChudWxsLCBhKTtcbiAgICAgIHZhciBldnRUeXBlID0gJ3JlYWN0LScgKyBuYW1lO1xuICAgICAgZmFrZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldnRUeXBlLCBib3VuZEZ1bmMsIGZhbHNlKTtcbiAgICAgIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcbiAgICAgIGV2dC5pbml0RXZlbnQoZXZ0VHlwZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgIGZha2VOb2RlLmRpc3BhdGNoRXZlbnQoZXZ0KTtcbiAgICAgIGZha2VOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZ0VHlwZSwgYm91bmRGdW5jLCBmYWxzZSk7XG4gICAgfTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RXJyb3JVdGlscztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RXJyb3JVdGlscy5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///48\n"); /***/ }), -/* 48 */ +/* 49 */ /*!******************************************************!*\ !*** ./node_modules/react-dom/lib/getEventTarget.js ***! \******************************************************/ @@ -648,10 +660,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudFRhcmdldC5qcz9lMjE5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogR2V0cyB0aGUgdGFyZ2V0IG5vZGUgZnJvbSBhIG5hdGl2ZSBicm93c2VyIGV2ZW50IGJ5IGFjY291bnRpbmcgZm9yXG4gKiBpbmNvbnNpc3RlbmNpZXMgaW4gYnJvd3NlciBET00gQVBJcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtET01FdmVudFRhcmdldH0gVGFyZ2V0IG5vZGUuXG4gKi9cblxuZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpIHtcbiAgdmFyIHRhcmdldCA9IG5hdGl2ZUV2ZW50LnRhcmdldCB8fCBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IHdpbmRvdztcblxuICAvLyBOb3JtYWxpemUgU1ZHIDx1c2U+IGVsZW1lbnQgZXZlbnRzICM0OTYzXG4gIGlmICh0YXJnZXQuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQ7XG4gIH1cblxuICAvLyBTYWZhcmkgbWF5IGZpcmUgZXZlbnRzIG9uIHRleHQgbm9kZXMgKE5vZGUuVEVYVF9OT0RFIGlzIDMpLlxuICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvanMvZXZlbnRzX3Byb3BlcnRpZXMuaHRtbFxuICByZXR1cm4gdGFyZ2V0Lm5vZGVUeXBlID09PSAzID8gdGFyZ2V0LnBhcmVudE5vZGUgOiB0YXJnZXQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0RXZlbnRUYXJnZXQ7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudFRhcmdldC5qc1xuLy8gbW9kdWxlIGlkID0gNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///48\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudFRhcmdldC5qcz9lMjE5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogR2V0cyB0aGUgdGFyZ2V0IG5vZGUgZnJvbSBhIG5hdGl2ZSBicm93c2VyIGV2ZW50IGJ5IGFjY291bnRpbmcgZm9yXG4gKiBpbmNvbnNpc3RlbmNpZXMgaW4gYnJvd3NlciBET00gQVBJcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtET01FdmVudFRhcmdldH0gVGFyZ2V0IG5vZGUuXG4gKi9cblxuZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpIHtcbiAgdmFyIHRhcmdldCA9IG5hdGl2ZUV2ZW50LnRhcmdldCB8fCBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IHdpbmRvdztcblxuICAvLyBOb3JtYWxpemUgU1ZHIDx1c2U+IGVsZW1lbnQgZXZlbnRzICM0OTYzXG4gIGlmICh0YXJnZXQuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQ7XG4gIH1cblxuICAvLyBTYWZhcmkgbWF5IGZpcmUgZXZlbnRzIG9uIHRleHQgbm9kZXMgKE5vZGUuVEVYVF9OT0RFIGlzIDMpLlxuICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvanMvZXZlbnRzX3Byb3BlcnRpZXMuaHRtbFxuICByZXR1cm4gdGFyZ2V0Lm5vZGVUeXBlID09PSAzID8gdGFyZ2V0LnBhcmVudE5vZGUgOiB0YXJnZXQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0RXZlbnRUYXJnZXQ7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudFRhcmdldC5qc1xuLy8gbW9kdWxlIGlkID0gNDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); /***/ }), -/* 49 */ +/* 50 */ /*!********************************************************!*\ !*** ./node_modules/react-dom/lib/isEventSupported.js ***! \********************************************************/ @@ -660,10 +672,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9pc0V2ZW50U3VwcG9ydGVkLmpzP2UzODciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcblxudmFyIHVzZUhhc0ZlYXR1cmU7XG5pZiAoRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NKSB7XG4gIHVzZUhhc0ZlYXR1cmUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbiAmJiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5oYXNGZWF0dXJlICYmXG4gIC8vIGFsd2F5cyByZXR1cm5zIHRydWUgaW4gbmV3ZXIgYnJvd3NlcnMgYXMgcGVyIHRoZSBzdGFuZGFyZC5cbiAgLy8gQHNlZSBodHRwOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvbWltcGxlbWVudGF0aW9uLWhhc2ZlYXR1cmVcbiAgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSgnJywgJycpICE9PSB0cnVlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBldmVudCBpcyBzdXBwb3J0ZWQgaW4gdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICpcbiAqIE5PVEU6IFRoaXMgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgZm9yIG5vbi1nZW5lcmljIGV2ZW50cyBzdWNoIGFzIGBjaGFuZ2VgLFxuICogYHJlc2V0YCwgYGxvYWRgLCBgZXJyb3JgLCBhbmQgYHNlbGVjdGAuXG4gKlxuICogQm9ycm93cyBmcm9tIE1vZGVybml6ci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lU3VmZml4IEV2ZW50IG5hbWUsIGUuZy4gXCJjbGlja1wiLlxuICogQHBhcmFtIHs/Ym9vbGVhbn0gY2FwdHVyZSBDaGVjayBpZiB0aGUgY2FwdHVyZSBwaGFzZSBpcyBzdXBwb3J0ZWQuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBldmVudCBpcyBzdXBwb3J0ZWQuXG4gKiBAaW50ZXJuYWxcbiAqIEBsaWNlbnNlIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuICovXG5mdW5jdGlvbiBpc0V2ZW50U3VwcG9ydGVkKGV2ZW50TmFtZVN1ZmZpeCwgY2FwdHVyZSkge1xuICBpZiAoIUV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSB8fCBjYXB0dXJlICYmICEoJ2FkZEV2ZW50TGlzdGVuZXInIGluIGRvY3VtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBldmVudE5hbWUgPSAnb24nICsgZXZlbnROYW1lU3VmZml4O1xuICB2YXIgaXNTdXBwb3J0ZWQgPSBldmVudE5hbWUgaW4gZG9jdW1lbnQ7XG5cbiAgaWYgKCFpc1N1cHBvcnRlZCkge1xuICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoZXZlbnROYW1lLCAncmV0dXJuOycpO1xuICAgIGlzU3VwcG9ydGVkID0gdHlwZW9mIGVsZW1lbnRbZXZlbnROYW1lXSA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGlmICghaXNTdXBwb3J0ZWQgJiYgdXNlSGFzRmVhdHVyZSAmJiBldmVudE5hbWVTdWZmaXggPT09ICd3aGVlbCcpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IHdheSB0byB0ZXN0IHN1cHBvcnQgZm9yIHRoZSBgd2hlZWxgIGV2ZW50IGluIElFOSsuXG4gICAgaXNTdXBwb3J0ZWQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5oYXNGZWF0dXJlKCdFdmVudHMud2hlZWwnLCAnMy4wJyk7XG4gIH1cblxuICByZXR1cm4gaXNTdXBwb3J0ZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNFdmVudFN1cHBvcnRlZDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL2lzRXZlbnRTdXBwb3J0ZWQuanNcbi8vIG1vZHVsZSBpZCA9IDQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///49\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9pc0V2ZW50U3VwcG9ydGVkLmpzP2UzODciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcblxudmFyIHVzZUhhc0ZlYXR1cmU7XG5pZiAoRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NKSB7XG4gIHVzZUhhc0ZlYXR1cmUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbiAmJiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5oYXNGZWF0dXJlICYmXG4gIC8vIGFsd2F5cyByZXR1cm5zIHRydWUgaW4gbmV3ZXIgYnJvd3NlcnMgYXMgcGVyIHRoZSBzdGFuZGFyZC5cbiAgLy8gQHNlZSBodHRwOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvbWltcGxlbWVudGF0aW9uLWhhc2ZlYXR1cmVcbiAgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSgnJywgJycpICE9PSB0cnVlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBldmVudCBpcyBzdXBwb3J0ZWQgaW4gdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICpcbiAqIE5PVEU6IFRoaXMgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgZm9yIG5vbi1nZW5lcmljIGV2ZW50cyBzdWNoIGFzIGBjaGFuZ2VgLFxuICogYHJlc2V0YCwgYGxvYWRgLCBgZXJyb3JgLCBhbmQgYHNlbGVjdGAuXG4gKlxuICogQm9ycm93cyBmcm9tIE1vZGVybml6ci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lU3VmZml4IEV2ZW50IG5hbWUsIGUuZy4gXCJjbGlja1wiLlxuICogQHBhcmFtIHs/Ym9vbGVhbn0gY2FwdHVyZSBDaGVjayBpZiB0aGUgY2FwdHVyZSBwaGFzZSBpcyBzdXBwb3J0ZWQuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBldmVudCBpcyBzdXBwb3J0ZWQuXG4gKiBAaW50ZXJuYWxcbiAqIEBsaWNlbnNlIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuICovXG5mdW5jdGlvbiBpc0V2ZW50U3VwcG9ydGVkKGV2ZW50TmFtZVN1ZmZpeCwgY2FwdHVyZSkge1xuICBpZiAoIUV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSB8fCBjYXB0dXJlICYmICEoJ2FkZEV2ZW50TGlzdGVuZXInIGluIGRvY3VtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBldmVudE5hbWUgPSAnb24nICsgZXZlbnROYW1lU3VmZml4O1xuICB2YXIgaXNTdXBwb3J0ZWQgPSBldmVudE5hbWUgaW4gZG9jdW1lbnQ7XG5cbiAgaWYgKCFpc1N1cHBvcnRlZCkge1xuICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoZXZlbnROYW1lLCAncmV0dXJuOycpO1xuICAgIGlzU3VwcG9ydGVkID0gdHlwZW9mIGVsZW1lbnRbZXZlbnROYW1lXSA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIGlmICghaXNTdXBwb3J0ZWQgJiYgdXNlSGFzRmVhdHVyZSAmJiBldmVudE5hbWVTdWZmaXggPT09ICd3aGVlbCcpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IHdheSB0byB0ZXN0IHN1cHBvcnQgZm9yIHRoZSBgd2hlZWxgIGV2ZW50IGluIElFOSsuXG4gICAgaXNTdXBwb3J0ZWQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5oYXNGZWF0dXJlKCdFdmVudHMud2hlZWwnLCAnMy4wJyk7XG4gIH1cblxuICByZXR1cm4gaXNTdXBwb3J0ZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNFdmVudFN1cHBvcnRlZDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL2lzRXZlbnRTdXBwb3J0ZWQuanNcbi8vIG1vZHVsZSBpZCA9IDUwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///50\n"); /***/ }), -/* 50 */ +/* 51 */ /*!*************************************************************!*\ !*** ./node_modules/react-dom/lib/getEventModifierState.js ***! \*************************************************************/ @@ -672,10 +684,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudE1vZGlmaWVyU3RhdGUuanM/MTVkNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFRyYW5zbGF0aW9uIGZyb20gbW9kaWZpZXIga2V5IHRvIHRoZSBhc3NvY2lhdGVkIHByb3BlcnR5IGluIHRoZSBldmVudC5cbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNrZXlzLU1vZGlmaWVyc1xuICovXG5cbnZhciBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgQWx0OiAnYWx0S2V5JyxcbiAgQ29udHJvbDogJ2N0cmxLZXknLFxuICBNZXRhOiAnbWV0YUtleScsXG4gIFNoaWZ0OiAnc2hpZnRLZXknXG59O1xuXG4vLyBJRTggZG9lcyBub3QgaW1wbGVtZW50IGdldE1vZGlmaWVyU3RhdGUgc28gd2Ugc2ltcGx5IG1hcCBpdCB0byB0aGUgb25seVxuLy8gbW9kaWZpZXIga2V5cyBleHBvc2VkIGJ5IHRoZSBldmVudCBpdHNlbGYsIGRvZXMgbm90IHN1cHBvcnQgTG9jay1rZXlzLlxuLy8gQ3VycmVudGx5LCBhbGwgbWFqb3IgYnJvd3NlcnMgZXhjZXB0IENocm9tZSBzZWVtcyB0byBzdXBwb3J0IExvY2sta2V5cy5cbmZ1bmN0aW9uIG1vZGlmaWVyU3RhdGVHZXR0ZXIoa2V5QXJnKSB7XG4gIHZhciBzeW50aGV0aWNFdmVudCA9IHRoaXM7XG4gIHZhciBuYXRpdmVFdmVudCA9IHN5bnRoZXRpY0V2ZW50Lm5hdGl2ZUV2ZW50O1xuICBpZiAobmF0aXZlRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSkge1xuICAgIHJldHVybiBuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKGtleUFyZyk7XG4gIH1cbiAgdmFyIGtleVByb3AgPSBtb2RpZmllcktleVRvUHJvcFtrZXlBcmddO1xuICByZXR1cm4ga2V5UHJvcCA/ICEhbmF0aXZlRXZlbnRba2V5UHJvcF0gOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0RXZlbnRNb2RpZmllclN0YXRlKG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiBtb2RpZmllclN0YXRlR2V0dGVyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEV2ZW50TW9kaWZpZXJTdGF0ZTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL2dldEV2ZW50TW9kaWZpZXJTdGF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gNTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///50\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudE1vZGlmaWVyU3RhdGUuanM/MTVkNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFRyYW5zbGF0aW9uIGZyb20gbW9kaWZpZXIga2V5IHRvIHRoZSBhc3NvY2lhdGVkIHByb3BlcnR5IGluIHRoZSBldmVudC5cbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNrZXlzLU1vZGlmaWVyc1xuICovXG5cbnZhciBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgQWx0OiAnYWx0S2V5JyxcbiAgQ29udHJvbDogJ2N0cmxLZXknLFxuICBNZXRhOiAnbWV0YUtleScsXG4gIFNoaWZ0OiAnc2hpZnRLZXknXG59O1xuXG4vLyBJRTggZG9lcyBub3QgaW1wbGVtZW50IGdldE1vZGlmaWVyU3RhdGUgc28gd2Ugc2ltcGx5IG1hcCBpdCB0byB0aGUgb25seVxuLy8gbW9kaWZpZXIga2V5cyBleHBvc2VkIGJ5IHRoZSBldmVudCBpdHNlbGYsIGRvZXMgbm90IHN1cHBvcnQgTG9jay1rZXlzLlxuLy8gQ3VycmVudGx5LCBhbGwgbWFqb3IgYnJvd3NlcnMgZXhjZXB0IENocm9tZSBzZWVtcyB0byBzdXBwb3J0IExvY2sta2V5cy5cbmZ1bmN0aW9uIG1vZGlmaWVyU3RhdGVHZXR0ZXIoa2V5QXJnKSB7XG4gIHZhciBzeW50aGV0aWNFdmVudCA9IHRoaXM7XG4gIHZhciBuYXRpdmVFdmVudCA9IHN5bnRoZXRpY0V2ZW50Lm5hdGl2ZUV2ZW50O1xuICBpZiAobmF0aXZlRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSkge1xuICAgIHJldHVybiBuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKGtleUFyZyk7XG4gIH1cbiAgdmFyIGtleVByb3AgPSBtb2RpZmllcktleVRvUHJvcFtrZXlBcmddO1xuICByZXR1cm4ga2V5UHJvcCA/ICEhbmF0aXZlRXZlbnRba2V5UHJvcF0gOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0RXZlbnRNb2RpZmllclN0YXRlKG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiBtb2RpZmllclN0YXRlR2V0dGVyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEV2ZW50TW9kaWZpZXJTdGF0ZTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL2dldEV2ZW50TW9kaWZpZXJTdGF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gNTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///51\n"); /***/ }), -/* 51 */ +/* 52 */ /*!*************************************************************!*\ !*** ./node_modules/react-dom/lib/DOMChildrenOperations.js ***! \*************************************************************/ @@ -684,10 +696,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar Danger = __webpack_require__(/*! ./Danger */ 165);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ 53);\nvar setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ 39);\nvar setTextContent = __webpack_require__(/*! ./setTextContent */ 88);\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array} updates List of update configurations.\n * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: {\n toIndex: update.toIndex,\n content: update.content.toString()\n }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n};\n\nmodule.exports = DOMChildrenOperations;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9ET01DaGlsZHJlbk9wZXJhdGlvbnMuanM/YWRiNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NTGF6eVRyZWUgPSByZXF1aXJlKCcuL0RPTUxhenlUcmVlJyk7XG52YXIgRGFuZ2VyID0gcmVxdWlyZSgnLi9EYW5nZXInKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xuXG52YXIgY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbiA9IHJlcXVpcmUoJy4vY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbicpO1xudmFyIHNldElubmVySFRNTCA9IHJlcXVpcmUoJy4vc2V0SW5uZXJIVE1MJyk7XG52YXIgc2V0VGV4dENvbnRlbnQgPSByZXF1aXJlKCcuL3NldFRleHRDb250ZW50Jyk7XG5cbmZ1bmN0aW9uIGdldE5vZGVBZnRlcihwYXJlbnROb2RlLCBub2RlKSB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3IgdGV4dCBjb21wb25lbnRzLCB3aGljaCByZXR1cm4gW29wZW4sIGNsb3NlXSBjb21tZW50c1xuICAvLyBmcm9tIGdldEhvc3ROb2RlLlxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIG5vZGUgPSBub2RlWzFdO1xuICB9XG4gIHJldHVybiBub2RlID8gbm9kZS5uZXh0U2libGluZyA6IHBhcmVudE5vZGUuZmlyc3RDaGlsZDtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGBjaGlsZE5vZGVgIGFzIGEgY2hpbGQgb2YgYHBhcmVudE5vZGVgIGF0IHRoZSBgaW5kZXhgLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gcGFyZW50Tm9kZSBQYXJlbnQgbm9kZSBpbiB3aGljaCB0byBpbnNlcnQuXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGNoaWxkTm9kZSBDaGlsZCBub2RlIHRvIGluc2VydC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGNoaWxkLlxuICogQGludGVybmFsXG4gKi9cbnZhciBpbnNlcnRDaGlsZEF0ID0gY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbiAocGFyZW50Tm9kZSwgY2hpbGROb2RlLCByZWZlcmVuY2VOb2RlKSB7XG4gIC8vIFdlIHJlbHkgZXhjbHVzaXZlbHkgb24gYGluc2VydEJlZm9yZShub2RlLCBudWxsKWAgaW5zdGVhZCBvZiBhbHNvIHVzaW5nXG4gIC8vIGBhcHBlbmRDaGlsZChub2RlKWAuIChVc2luZyBgdW5kZWZpbmVkYCBpcyBub3QgYWxsb3dlZCBieSBhbGwgYnJvd3NlcnMgc29cbiAgLy8gd2UgYXJlIGNhcmVmdWwgdG8gdXNlIGBudWxsYC4pXG4gIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkTm9kZSwgcmVmZXJlbmNlTm9kZSk7XG59KTtcblxuZnVuY3Rpb24gaW5zZXJ0TGF6eVRyZWVDaGlsZEF0KHBhcmVudE5vZGUsIGNoaWxkVHJlZSwgcmVmZXJlbmNlTm9kZSkge1xuICBET01MYXp5VHJlZS5pbnNlcnRUcmVlQmVmb3JlKHBhcmVudE5vZGUsIGNoaWxkVHJlZSwgcmVmZXJlbmNlTm9kZSk7XG59XG5cbmZ1bmN0aW9uIG1vdmVDaGlsZChwYXJlbnROb2RlLCBjaGlsZE5vZGUsIHJlZmVyZW5jZU5vZGUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGROb2RlKSkge1xuICAgIG1vdmVEZWxpbWl0ZWRUZXh0KHBhcmVudE5vZGUsIGNoaWxkTm9kZVswXSwgY2hpbGROb2RlWzFdLCByZWZlcmVuY2VOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBpbnNlcnRDaGlsZEF0KHBhcmVudE5vZGUsIGNoaWxkTm9kZSwgcmVmZXJlbmNlTm9kZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGQocGFyZW50Tm9kZSwgY2hpbGROb2RlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTm9kZSkpIHtcbiAgICB2YXIgY2xvc2luZ0NvbW1lbnQgPSBjaGlsZE5vZGVbMV07XG4gICAgY2hpbGROb2RlID0gY2hpbGROb2RlWzBdO1xuICAgIHJlbW92ZURlbGltaXRlZFRleHQocGFyZW50Tm9kZSwgY2hpbGROb2RlLCBjbG9zaW5nQ29tbWVudCk7XG4gICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjbG9zaW5nQ29tbWVudCk7XG4gIH1cbiAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjaGlsZE5vZGUpO1xufVxuXG5mdW5jdGlvbiBtb3ZlRGVsaW1pdGVkVGV4dChwYXJlbnROb2RlLCBvcGVuaW5nQ29tbWVudCwgY2xvc2luZ0NvbW1lbnQsIHJlZmVyZW5jZU5vZGUpIHtcbiAgdmFyIG5vZGUgPSBvcGVuaW5nQ29tbWVudDtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB2YXIgbmV4dE5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgIGluc2VydENoaWxkQXQocGFyZW50Tm9kZSwgbm9kZSwgcmVmZXJlbmNlTm9kZSk7XG4gICAgaWYgKG5vZGUgPT09IGNsb3NpbmdDb21tZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgbm9kZSA9IG5leHROb2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZURlbGltaXRlZFRleHQocGFyZW50Tm9kZSwgc3RhcnROb2RlLCBjbG9zaW5nQ29tbWVudCkge1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHZhciBub2RlID0gc3RhcnROb2RlLm5leHRTaWJsaW5nO1xuICAgIGlmIChub2RlID09PSBjbG9zaW5nQ29tbWVudCkge1xuICAgICAgLy8gVGhlIGNsb3NpbmcgY29tbWVudCBpcyByZW1vdmVkIGJ5IFJlYWN0TXVsdGlDaGlsZC5cbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYWNlRGVsaW1pdGVkVGV4dChvcGVuaW5nQ29tbWVudCwgY2xvc2luZ0NvbW1lbnQsIHN0cmluZ1RleHQpIHtcbiAgdmFyIHBhcmVudE5vZGUgPSBvcGVuaW5nQ29tbWVudC5wYXJlbnROb2RlO1xuICB2YXIgbm9kZUFmdGVyQ29tbWVudCA9IG9wZW5pbmdDb21tZW50Lm5leHRTaWJsaW5nO1xuICBpZiAobm9kZUFmdGVyQ29tbWVudCA9PT0gY2xvc2luZ0NvbW1lbnQpIHtcbiAgICAvLyBUaGVyZSBhcmUgbm8gdGV4dCBub2RlcyBiZXR3ZWVuIHRoZSBvcGVuaW5nIGFuZCBjbG9zaW5nIGNvbW1lbnRzOyBpbnNlcnRcbiAgICAvLyBhIG5ldyBvbmUgaWYgc3RyaW5nVGV4dCBpc24ndCBlbXB0eS5cbiAgICBpZiAoc3RyaW5nVGV4dCkge1xuICAgICAgaW5zZXJ0Q2hpbGRBdChwYXJlbnROb2RlLCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmdUZXh0KSwgbm9kZUFmdGVyQ29tbWVudCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChzdHJpbmdUZXh0KSB7XG4gICAgICAvLyBTZXQgdGhlIHRleHQgY29udGVudCBvZiB0aGUgZmlyc3Qgbm9kZSBhZnRlciB0aGUgb3BlbmluZyBjb21tZW50LCBhbmRcbiAgICAgIC8vIHJlbW92ZSBhbGwgZm9sbG93aW5nIG5vZGVzIHVwIHVudGlsIHRoZSBjbG9zaW5nIGNvbW1lbnQuXG4gICAgICBzZXRUZXh0Q29udGVudChub2RlQWZ0ZXJDb21tZW50LCBzdHJpbmdUZXh0KTtcbiAgICAgIHJlbW92ZURlbGltaXRlZFRleHQocGFyZW50Tm9kZSwgbm9kZUFmdGVyQ29tbWVudCwgY2xvc2luZ0NvbW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW1vdmVEZWxpbWl0ZWRUZXh0KHBhcmVudE5vZGUsIG9wZW5pbmdDb21tZW50LCBjbG9zaW5nQ29tbWVudCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgIGluc3RhbmNlSUQ6IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXRJbnN0YW5jZUZyb21Ob2RlKG9wZW5pbmdDb21tZW50KS5fZGVidWdJRCxcbiAgICAgIHR5cGU6ICdyZXBsYWNlIHRleHQnLFxuICAgICAgcGF5bG9hZDogc3RyaW5nVGV4dFxuICAgIH0pO1xuICB9XG59XG5cbnZhciBkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cCA9IERhbmdlci5kYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwID0gZnVuY3Rpb24gKG9sZENoaWxkLCBtYXJrdXAsIHByZXZJbnN0YW5jZSkge1xuICAgIERhbmdlci5kYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cChvbGRDaGlsZCwgbWFya3VwKTtcbiAgICBpZiAocHJldkluc3RhbmNlLl9kZWJ1Z0lEICE9PSAwKSB7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgaW5zdGFuY2VJRDogcHJldkluc3RhbmNlLl9kZWJ1Z0lELFxuICAgICAgICB0eXBlOiAncmVwbGFjZSB3aXRoJyxcbiAgICAgICAgcGF5bG9hZDogbWFya3VwLnRvU3RyaW5nKClcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbmV4dEluc3RhbmNlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldEluc3RhbmNlRnJvbU5vZGUobWFya3VwLm5vZGUpO1xuICAgICAgaWYgKG5leHRJbnN0YW5jZS5fZGVidWdJRCAhPT0gMCkge1xuICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgICBpbnN0YW5jZUlEOiBuZXh0SW5zdGFuY2UuX2RlYnVnSUQsXG4gICAgICAgICAgdHlwZTogJ21vdW50JyxcbiAgICAgICAgICBwYXlsb2FkOiBtYXJrdXAudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogT3BlcmF0aW9ucyBmb3IgdXBkYXRpbmcgd2l0aCBET00gY2hpbGRyZW4uXG4gKi9cbnZhciBET01DaGlsZHJlbk9wZXJhdGlvbnMgPSB7XG4gIGRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwOiBkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cCxcblxuICByZXBsYWNlRGVsaW1pdGVkVGV4dDogcmVwbGFjZURlbGltaXRlZFRleHQsXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYSBjb21wb25lbnQncyBjaGlsZHJlbiBieSBwcm9jZXNzaW5nIGEgc2VyaWVzIG9mIHVwZGF0ZXMuIFRoZVxuICAgKiB1cGRhdGUgY29uZmlndXJhdGlvbnMgYXJlIGVhY2ggZXhwZWN0ZWQgdG8gaGF2ZSBhIGBwYXJlbnROb2RlYCBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHthcnJheTxvYmplY3Q+fSB1cGRhdGVzIExpc3Qgb2YgdXBkYXRlIGNvbmZpZ3VyYXRpb25zLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb2Nlc3NVcGRhdGVzOiBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdXBkYXRlcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgcGFyZW50Tm9kZURlYnVnSUQgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShwYXJlbnROb2RlKS5fZGVidWdJRDtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBrID0gMDsgayA8IHVwZGF0ZXMubGVuZ3RoOyBrKyspIHtcbiAgICAgIHZhciB1cGRhdGUgPSB1cGRhdGVzW2tdO1xuICAgICAgc3dpdGNoICh1cGRhdGUudHlwZSkge1xuICAgICAgICBjYXNlICdJTlNFUlRfTUFSS1VQJzpcbiAgICAgICAgICBpbnNlcnRMYXp5VHJlZUNoaWxkQXQocGFyZW50Tm9kZSwgdXBkYXRlLmNvbnRlbnQsIGdldE5vZGVBZnRlcihwYXJlbnROb2RlLCB1cGRhdGUuYWZ0ZXJOb2RlKSk7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkhvc3RPcGVyYXRpb24oe1xuICAgICAgICAgICAgICBpbnN0YW5jZUlEOiBwYXJlbnROb2RlRGVidWdJRCxcbiAgICAgICAgICAgICAgdHlwZTogJ2luc2VydCBjaGlsZCcsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICB0b0luZGV4OiB1cGRhdGUudG9JbmRleCxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB1cGRhdGUuY29udGVudC50b1N0cmluZygpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnTU9WRV9FWElTVElORyc6XG4gICAgICAgICAgbW92ZUNoaWxkKHBhcmVudE5vZGUsIHVwZGF0ZS5mcm9tTm9kZSwgZ2V0Tm9kZUFmdGVyKHBhcmVudE5vZGUsIHVwZGF0ZS5hZnRlck5vZGUpKTtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uSG9zdE9wZXJhdGlvbih7XG4gICAgICAgICAgICAgIGluc3RhbmNlSUQ6IHBhcmVudE5vZGVEZWJ1Z0lELFxuICAgICAgICAgICAgICB0eXBlOiAnbW92ZSBjaGlsZCcsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHsgZnJvbUluZGV4OiB1cGRhdGUuZnJvbUluZGV4LCB0b0luZGV4OiB1cGRhdGUudG9JbmRleCB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1NFVF9NQVJLVVAnOlxuICAgICAgICAgIHNldElubmVySFRNTChwYXJlbnROb2RlLCB1cGRhdGUuY29udGVudCk7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkhvc3RPcGVyYXRpb24oe1xuICAgICAgICAgICAgICBpbnN0YW5jZUlEOiBwYXJlbnROb2RlRGVidWdJRCxcbiAgICAgICAgICAgICAgdHlwZTogJ3JlcGxhY2UgY2hpbGRyZW4nLFxuICAgICAgICAgICAgICBwYXlsb2FkOiB1cGRhdGUuY29udGVudC50b1N0cmluZygpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1RFWFRfQ09OVEVOVCc6XG4gICAgICAgICAgc2V0VGV4dENvbnRlbnQocGFyZW50Tm9kZSwgdXBkYXRlLmNvbnRlbnQpO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgICAgICAgaW5zdGFuY2VJRDogcGFyZW50Tm9kZURlYnVnSUQsXG4gICAgICAgICAgICAgIHR5cGU6ICdyZXBsYWNlIHRleHQnLFxuICAgICAgICAgICAgICBwYXlsb2FkOiB1cGRhdGUuY29udGVudC50b1N0cmluZygpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1JFTU9WRV9OT0RFJzpcbiAgICAgICAgICByZW1vdmVDaGlsZChwYXJlbnROb2RlLCB1cGRhdGUuZnJvbU5vZGUpO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgICAgICAgaW5zdGFuY2VJRDogcGFyZW50Tm9kZURlYnVnSUQsXG4gICAgICAgICAgICAgIHR5cGU6ICdyZW1vdmUgY2hpbGQnLFxuICAgICAgICAgICAgICBwYXlsb2FkOiB7IGZyb21JbmRleDogdXBkYXRlLmZyb21JbmRleCB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERPTUNoaWxkcmVuT3BlcmF0aW9ucztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0RPTUNoaWxkcmVuT3BlcmF0aW9ucy5qc1xuLy8gbW9kdWxlIGlkID0gNTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///51\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar Danger = __webpack_require__(/*! ./Danger */ 165);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ 54);\nvar setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ 39);\nvar setTextContent = __webpack_require__(/*! ./setTextContent */ 88);\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array} updates List of update configurations.\n * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: {\n toIndex: update.toIndex,\n content: update.content.toString()\n }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n};\n\nmodule.exports = DOMChildrenOperations;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9ET01DaGlsZHJlbk9wZXJhdGlvbnMuanM/YWRiNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NTGF6eVRyZWUgPSByZXF1aXJlKCcuL0RPTUxhenlUcmVlJyk7XG52YXIgRGFuZ2VyID0gcmVxdWlyZSgnLi9EYW5nZXInKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xuXG52YXIgY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbiA9IHJlcXVpcmUoJy4vY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbicpO1xudmFyIHNldElubmVySFRNTCA9IHJlcXVpcmUoJy4vc2V0SW5uZXJIVE1MJyk7XG52YXIgc2V0VGV4dENvbnRlbnQgPSByZXF1aXJlKCcuL3NldFRleHRDb250ZW50Jyk7XG5cbmZ1bmN0aW9uIGdldE5vZGVBZnRlcihwYXJlbnROb2RlLCBub2RlKSB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3IgdGV4dCBjb21wb25lbnRzLCB3aGljaCByZXR1cm4gW29wZW4sIGNsb3NlXSBjb21tZW50c1xuICAvLyBmcm9tIGdldEhvc3ROb2RlLlxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIG5vZGUgPSBub2RlWzFdO1xuICB9XG4gIHJldHVybiBub2RlID8gbm9kZS5uZXh0U2libGluZyA6IHBhcmVudE5vZGUuZmlyc3RDaGlsZDtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGBjaGlsZE5vZGVgIGFzIGEgY2hpbGQgb2YgYHBhcmVudE5vZGVgIGF0IHRoZSBgaW5kZXhgLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gcGFyZW50Tm9kZSBQYXJlbnQgbm9kZSBpbiB3aGljaCB0byBpbnNlcnQuXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGNoaWxkTm9kZSBDaGlsZCBub2RlIHRvIGluc2VydC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGNoaWxkLlxuICogQGludGVybmFsXG4gKi9cbnZhciBpbnNlcnRDaGlsZEF0ID0gY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbiAocGFyZW50Tm9kZSwgY2hpbGROb2RlLCByZWZlcmVuY2VOb2RlKSB7XG4gIC8vIFdlIHJlbHkgZXhjbHVzaXZlbHkgb24gYGluc2VydEJlZm9yZShub2RlLCBudWxsKWAgaW5zdGVhZCBvZiBhbHNvIHVzaW5nXG4gIC8vIGBhcHBlbmRDaGlsZChub2RlKWAuIChVc2luZyBgdW5kZWZpbmVkYCBpcyBub3QgYWxsb3dlZCBieSBhbGwgYnJvd3NlcnMgc29cbiAgLy8gd2UgYXJlIGNhcmVmdWwgdG8gdXNlIGBudWxsYC4pXG4gIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkTm9kZSwgcmVmZXJlbmNlTm9kZSk7XG59KTtcblxuZnVuY3Rpb24gaW5zZXJ0TGF6eVRyZWVDaGlsZEF0KHBhcmVudE5vZGUsIGNoaWxkVHJlZSwgcmVmZXJlbmNlTm9kZSkge1xuICBET01MYXp5VHJlZS5pbnNlcnRUcmVlQmVmb3JlKHBhcmVudE5vZGUsIGNoaWxkVHJlZSwgcmVmZXJlbmNlTm9kZSk7XG59XG5cbmZ1bmN0aW9uIG1vdmVDaGlsZChwYXJlbnROb2RlLCBjaGlsZE5vZGUsIHJlZmVyZW5jZU5vZGUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGROb2RlKSkge1xuICAgIG1vdmVEZWxpbWl0ZWRUZXh0KHBhcmVudE5vZGUsIGNoaWxkTm9kZVswXSwgY2hpbGROb2RlWzFdLCByZWZlcmVuY2VOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBpbnNlcnRDaGlsZEF0KHBhcmVudE5vZGUsIGNoaWxkTm9kZSwgcmVmZXJlbmNlTm9kZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGQocGFyZW50Tm9kZSwgY2hpbGROb2RlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTm9kZSkpIHtcbiAgICB2YXIgY2xvc2luZ0NvbW1lbnQgPSBjaGlsZE5vZGVbMV07XG4gICAgY2hpbGROb2RlID0gY2hpbGROb2RlWzBdO1xuICAgIHJlbW92ZURlbGltaXRlZFRleHQocGFyZW50Tm9kZSwgY2hpbGROb2RlLCBjbG9zaW5nQ29tbWVudCk7XG4gICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjbG9zaW5nQ29tbWVudCk7XG4gIH1cbiAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjaGlsZE5vZGUpO1xufVxuXG5mdW5jdGlvbiBtb3ZlRGVsaW1pdGVkVGV4dChwYXJlbnROb2RlLCBvcGVuaW5nQ29tbWVudCwgY2xvc2luZ0NvbW1lbnQsIHJlZmVyZW5jZU5vZGUpIHtcbiAgdmFyIG5vZGUgPSBvcGVuaW5nQ29tbWVudDtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICB2YXIgbmV4dE5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgIGluc2VydENoaWxkQXQocGFyZW50Tm9kZSwgbm9kZSwgcmVmZXJlbmNlTm9kZSk7XG4gICAgaWYgKG5vZGUgPT09IGNsb3NpbmdDb21tZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgbm9kZSA9IG5leHROb2RlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZURlbGltaXRlZFRleHQocGFyZW50Tm9kZSwgc3RhcnROb2RlLCBjbG9zaW5nQ29tbWVudCkge1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHZhciBub2RlID0gc3RhcnROb2RlLm5leHRTaWJsaW5nO1xuICAgIGlmIChub2RlID09PSBjbG9zaW5nQ29tbWVudCkge1xuICAgICAgLy8gVGhlIGNsb3NpbmcgY29tbWVudCBpcyByZW1vdmVkIGJ5IFJlYWN0TXVsdGlDaGlsZC5cbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYWNlRGVsaW1pdGVkVGV4dChvcGVuaW5nQ29tbWVudCwgY2xvc2luZ0NvbW1lbnQsIHN0cmluZ1RleHQpIHtcbiAgdmFyIHBhcmVudE5vZGUgPSBvcGVuaW5nQ29tbWVudC5wYXJlbnROb2RlO1xuICB2YXIgbm9kZUFmdGVyQ29tbWVudCA9IG9wZW5pbmdDb21tZW50Lm5leHRTaWJsaW5nO1xuICBpZiAobm9kZUFmdGVyQ29tbWVudCA9PT0gY2xvc2luZ0NvbW1lbnQpIHtcbiAgICAvLyBUaGVyZSBhcmUgbm8gdGV4dCBub2RlcyBiZXR3ZWVuIHRoZSBvcGVuaW5nIGFuZCBjbG9zaW5nIGNvbW1lbnRzOyBpbnNlcnRcbiAgICAvLyBhIG5ldyBvbmUgaWYgc3RyaW5nVGV4dCBpc24ndCBlbXB0eS5cbiAgICBpZiAoc3RyaW5nVGV4dCkge1xuICAgICAgaW5zZXJ0Q2hpbGRBdChwYXJlbnROb2RlLCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHJpbmdUZXh0KSwgbm9kZUFmdGVyQ29tbWVudCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChzdHJpbmdUZXh0KSB7XG4gICAgICAvLyBTZXQgdGhlIHRleHQgY29udGVudCBvZiB0aGUgZmlyc3Qgbm9kZSBhZnRlciB0aGUgb3BlbmluZyBjb21tZW50LCBhbmRcbiAgICAgIC8vIHJlbW92ZSBhbGwgZm9sbG93aW5nIG5vZGVzIHVwIHVudGlsIHRoZSBjbG9zaW5nIGNvbW1lbnQuXG4gICAgICBzZXRUZXh0Q29udGVudChub2RlQWZ0ZXJDb21tZW50LCBzdHJpbmdUZXh0KTtcbiAgICAgIHJlbW92ZURlbGltaXRlZFRleHQocGFyZW50Tm9kZSwgbm9kZUFmdGVyQ29tbWVudCwgY2xvc2luZ0NvbW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW1vdmVEZWxpbWl0ZWRUZXh0KHBhcmVudE5vZGUsIG9wZW5pbmdDb21tZW50LCBjbG9zaW5nQ29tbWVudCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgIGluc3RhbmNlSUQ6IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXRJbnN0YW5jZUZyb21Ob2RlKG9wZW5pbmdDb21tZW50KS5fZGVidWdJRCxcbiAgICAgIHR5cGU6ICdyZXBsYWNlIHRleHQnLFxuICAgICAgcGF5bG9hZDogc3RyaW5nVGV4dFxuICAgIH0pO1xuICB9XG59XG5cbnZhciBkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cCA9IERhbmdlci5kYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cDtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwID0gZnVuY3Rpb24gKG9sZENoaWxkLCBtYXJrdXAsIHByZXZJbnN0YW5jZSkge1xuICAgIERhbmdlci5kYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cChvbGRDaGlsZCwgbWFya3VwKTtcbiAgICBpZiAocHJldkluc3RhbmNlLl9kZWJ1Z0lEICE9PSAwKSB7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgaW5zdGFuY2VJRDogcHJldkluc3RhbmNlLl9kZWJ1Z0lELFxuICAgICAgICB0eXBlOiAncmVwbGFjZSB3aXRoJyxcbiAgICAgICAgcGF5bG9hZDogbWFya3VwLnRvU3RyaW5nKClcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbmV4dEluc3RhbmNlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldEluc3RhbmNlRnJvbU5vZGUobWFya3VwLm5vZGUpO1xuICAgICAgaWYgKG5leHRJbnN0YW5jZS5fZGVidWdJRCAhPT0gMCkge1xuICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgICBpbnN0YW5jZUlEOiBuZXh0SW5zdGFuY2UuX2RlYnVnSUQsXG4gICAgICAgICAgdHlwZTogJ21vdW50JyxcbiAgICAgICAgICBwYXlsb2FkOiBtYXJrdXAudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogT3BlcmF0aW9ucyBmb3IgdXBkYXRpbmcgd2l0aCBET00gY2hpbGRyZW4uXG4gKi9cbnZhciBET01DaGlsZHJlbk9wZXJhdGlvbnMgPSB7XG4gIGRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwOiBkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cCxcblxuICByZXBsYWNlRGVsaW1pdGVkVGV4dDogcmVwbGFjZURlbGltaXRlZFRleHQsXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYSBjb21wb25lbnQncyBjaGlsZHJlbiBieSBwcm9jZXNzaW5nIGEgc2VyaWVzIG9mIHVwZGF0ZXMuIFRoZVxuICAgKiB1cGRhdGUgY29uZmlndXJhdGlvbnMgYXJlIGVhY2ggZXhwZWN0ZWQgdG8gaGF2ZSBhIGBwYXJlbnROb2RlYCBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHthcnJheTxvYmplY3Q+fSB1cGRhdGVzIExpc3Qgb2YgdXBkYXRlIGNvbmZpZ3VyYXRpb25zLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb2Nlc3NVcGRhdGVzOiBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdXBkYXRlcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgcGFyZW50Tm9kZURlYnVnSUQgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShwYXJlbnROb2RlKS5fZGVidWdJRDtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBrID0gMDsgayA8IHVwZGF0ZXMubGVuZ3RoOyBrKyspIHtcbiAgICAgIHZhciB1cGRhdGUgPSB1cGRhdGVzW2tdO1xuICAgICAgc3dpdGNoICh1cGRhdGUudHlwZSkge1xuICAgICAgICBjYXNlICdJTlNFUlRfTUFSS1VQJzpcbiAgICAgICAgICBpbnNlcnRMYXp5VHJlZUNoaWxkQXQocGFyZW50Tm9kZSwgdXBkYXRlLmNvbnRlbnQsIGdldE5vZGVBZnRlcihwYXJlbnROb2RlLCB1cGRhdGUuYWZ0ZXJOb2RlKSk7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkhvc3RPcGVyYXRpb24oe1xuICAgICAgICAgICAgICBpbnN0YW5jZUlEOiBwYXJlbnROb2RlRGVidWdJRCxcbiAgICAgICAgICAgICAgdHlwZTogJ2luc2VydCBjaGlsZCcsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICB0b0luZGV4OiB1cGRhdGUudG9JbmRleCxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB1cGRhdGUuY29udGVudC50b1N0cmluZygpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnTU9WRV9FWElTVElORyc6XG4gICAgICAgICAgbW92ZUNoaWxkKHBhcmVudE5vZGUsIHVwZGF0ZS5mcm9tTm9kZSwgZ2V0Tm9kZUFmdGVyKHBhcmVudE5vZGUsIHVwZGF0ZS5hZnRlck5vZGUpKTtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uSG9zdE9wZXJhdGlvbih7XG4gICAgICAgICAgICAgIGluc3RhbmNlSUQ6IHBhcmVudE5vZGVEZWJ1Z0lELFxuICAgICAgICAgICAgICB0eXBlOiAnbW92ZSBjaGlsZCcsXG4gICAgICAgICAgICAgIHBheWxvYWQ6IHsgZnJvbUluZGV4OiB1cGRhdGUuZnJvbUluZGV4LCB0b0luZGV4OiB1cGRhdGUudG9JbmRleCB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1NFVF9NQVJLVVAnOlxuICAgICAgICAgIHNldElubmVySFRNTChwYXJlbnROb2RlLCB1cGRhdGUuY29udGVudCk7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkhvc3RPcGVyYXRpb24oe1xuICAgICAgICAgICAgICBpbnN0YW5jZUlEOiBwYXJlbnROb2RlRGVidWdJRCxcbiAgICAgICAgICAgICAgdHlwZTogJ3JlcGxhY2UgY2hpbGRyZW4nLFxuICAgICAgICAgICAgICBwYXlsb2FkOiB1cGRhdGUuY29udGVudC50b1N0cmluZygpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1RFWFRfQ09OVEVOVCc6XG4gICAgICAgICAgc2V0VGV4dENvbnRlbnQocGFyZW50Tm9kZSwgdXBkYXRlLmNvbnRlbnQpO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgICAgICAgaW5zdGFuY2VJRDogcGFyZW50Tm9kZURlYnVnSUQsXG4gICAgICAgICAgICAgIHR5cGU6ICdyZXBsYWNlIHRleHQnLFxuICAgICAgICAgICAgICBwYXlsb2FkOiB1cGRhdGUuY29udGVudC50b1N0cmluZygpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1JFTU9WRV9OT0RFJzpcbiAgICAgICAgICByZW1vdmVDaGlsZChwYXJlbnROb2RlLCB1cGRhdGUuZnJvbU5vZGUpO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtcbiAgICAgICAgICAgICAgaW5zdGFuY2VJRDogcGFyZW50Tm9kZURlYnVnSUQsXG4gICAgICAgICAgICAgIHR5cGU6ICdyZW1vdmUgY2hpbGQnLFxuICAgICAgICAgICAgICBwYXlsb2FkOiB7IGZyb21JbmRleDogdXBkYXRlLmZyb21JbmRleCB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERPTUNoaWxkcmVuT3BlcmF0aW9ucztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0RPTUNoaWxkcmVuT3BlcmF0aW9ucy5qc1xuLy8gbW9kdWxlIGlkID0gNTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///52\n"); /***/ }), -/* 52 */ +/* 53 */ /*!*****************************************************!*\ !*** ./node_modules/react-dom/lib/DOMNamespaces.js ***! \*****************************************************/ @@ -696,10 +708,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9ET01OYW1lc3BhY2VzLmpzPzNjMjQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIERPTU5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgbWF0aG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsXG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJ1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBET01OYW1lc3BhY2VzO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvRE9NTmFtZXNwYWNlcy5qc1xuLy8gbW9kdWxlIGlkID0gNTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///52\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9ET01OYW1lc3BhY2VzLmpzPzNjMjQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIERPTU5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgbWF0aG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsXG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJ1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBET01OYW1lc3BhY2VzO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvRE9NTmFtZXNwYWNlcy5qc1xuLy8gbW9kdWxlIGlkID0gNTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///53\n"); /***/ }), -/* 53 */ +/* 54 */ /*!**************************************************************************!*\ !*** ./node_modules/react-dom/lib/createMicrosoftUnsafeLocalFunction.js ***! \**************************************************************************/ @@ -708,10 +720,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals MSApp */\n\n\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9jcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uLmpzPzQ5YjciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbi8qIGdsb2JhbHMgTVNBcHAgKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENyZWF0ZSBhIGZ1bmN0aW9uIHdoaWNoIGhhcyAndW5zYWZlJyBwcml2aWxlZ2VzIChyZXF1aXJlZCBieSB3aW5kb3dzOCBhcHBzKVxuICovXG5cbnZhciBjcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uID0gZnVuY3Rpb24gKGZ1bmMpIHtcbiAgaWYgKHR5cGVvZiBNU0FwcCAhPT0gJ3VuZGVmaW5lZCcgJiYgTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICAgIE1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmMoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMyk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmdW5jO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb247XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9jcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSA1M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///53\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals MSApp */\n\n\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9jcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uLmpzPzQ5YjciXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbi8qIGdsb2JhbHMgTVNBcHAgKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENyZWF0ZSBhIGZ1bmN0aW9uIHdoaWNoIGhhcyAndW5zYWZlJyBwcml2aWxlZ2VzIChyZXF1aXJlZCBieSB3aW5kb3dzOCBhcHBzKVxuICovXG5cbnZhciBjcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uID0gZnVuY3Rpb24gKGZ1bmMpIHtcbiAgaWYgKHR5cGVvZiBNU0FwcCAhPT0gJ3VuZGVmaW5lZCcgJiYgTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgICAgIE1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmMoYXJnMCwgYXJnMSwgYXJnMiwgYXJnMyk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmdW5jO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZU1pY3Jvc29mdFVuc2FmZUxvY2FsRnVuY3Rpb247XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9jcmVhdGVNaWNyb3NvZnRVbnNhZmVMb2NhbEZ1bmN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSA1NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///54\n"); /***/ }), -/* 54 */ +/* 55 */ /*!********************************************************!*\ !*** ./node_modules/react-dom/lib/LinkedValueUtils.js ***! \********************************************************/ @@ -720,10 +732,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./ReactPropTypesSecret */ 92);\nvar propTypesFactory = __webpack_require__(/*! prop-types/factory */ 183);\n\nvar React = __webpack_require__(/*! react/lib/React */ 20);\nvar PropTypes = propTypesFactory(React.isValidElement);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\n\nfunction _assertSingleLink(inputProps) {\n !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\\'t want to use valueLink.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\\'t want to use checkedLink') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function (props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n onChange: PropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n checkPropTypes: function (tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum(owner);\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\n }\n }\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function (inputProps) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.value;\n }\n return inputProps.value;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function (inputProps) {\n if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.value;\n }\n return inputProps.checked;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @param {SyntheticEvent} event change event to handle\n */\n executeOnChange: function (inputProps, event) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.requestChange(event.target.value);\n } else if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.requestChange(event.target.checked);\n } else if (inputProps.onChange) {\n return inputProps.onChange.call(undefined, event);\n }\n }\n};\n\nmodule.exports = LinkedValueUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9MaW5rZWRWYWx1ZVV0aWxzLmpzPzY3M2EiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIHByb3BUeXBlc0ZhY3RvcnkgPSByZXF1aXJlKCdwcm9wLXR5cGVzL2ZhY3RvcnknKTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QvbGliL1JlYWN0Jyk7XG52YXIgUHJvcFR5cGVzID0gcHJvcFR5cGVzRmFjdG9yeShSZWFjdC5pc1ZhbGlkRWxlbWVudCk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgaGFzUmVhZE9ubHlWYWx1ZSA9IHtcbiAgYnV0dG9uOiB0cnVlLFxuICBjaGVja2JveDogdHJ1ZSxcbiAgaW1hZ2U6IHRydWUsXG4gIGhpZGRlbjogdHJ1ZSxcbiAgcmFkaW86IHRydWUsXG4gIHJlc2V0OiB0cnVlLFxuICBzdWJtaXQ6IHRydWVcbn07XG5cbmZ1bmN0aW9uIF9hc3NlcnRTaW5nbGVMaW5rKGlucHV0UHJvcHMpIHtcbiAgIShpbnB1dFByb3BzLmNoZWNrZWRMaW5rID09IG51bGwgfHwgaW5wdXRQcm9wcy52YWx1ZUxpbmsgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnQ2Fubm90IHByb3ZpZGUgYSBjaGVja2VkTGluayBhbmQgYSB2YWx1ZUxpbmsuIElmIHlvdSB3YW50IHRvIHVzZSBjaGVja2VkTGluaywgeW91IHByb2JhYmx5IGRvblxcJ3Qgd2FudCB0byB1c2UgdmFsdWVMaW5rIGFuZCB2aWNlIHZlcnNhLicpIDogX3Byb2RJbnZhcmlhbnQoJzg3JykgOiB2b2lkIDA7XG59XG5mdW5jdGlvbiBfYXNzZXJ0VmFsdWVMaW5rKGlucHV0UHJvcHMpIHtcbiAgX2Fzc2VydFNpbmdsZUxpbmsoaW5wdXRQcm9wcyk7XG4gICEoaW5wdXRQcm9wcy52YWx1ZSA9PSBudWxsICYmIGlucHV0UHJvcHMub25DaGFuZ2UgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnQ2Fubm90IHByb3ZpZGUgYSB2YWx1ZUxpbmsgYW5kIGEgdmFsdWUgb3Igb25DaGFuZ2UgZXZlbnQuIElmIHlvdSB3YW50IHRvIHVzZSB2YWx1ZSBvciBvbkNoYW5nZSwgeW91IHByb2JhYmx5IGRvblxcJ3Qgd2FudCB0byB1c2UgdmFsdWVMaW5rLicpIDogX3Byb2RJbnZhcmlhbnQoJzg4JykgOiB2b2lkIDA7XG59XG5cbmZ1bmN0aW9uIF9hc3NlcnRDaGVja2VkTGluayhpbnB1dFByb3BzKSB7XG4gIF9hc3NlcnRTaW5nbGVMaW5rKGlucHV0UHJvcHMpO1xuICAhKGlucHV0UHJvcHMuY2hlY2tlZCA9PSBudWxsICYmIGlucHV0UHJvcHMub25DaGFuZ2UgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnQ2Fubm90IHByb3ZpZGUgYSBjaGVja2VkTGluayBhbmQgYSBjaGVja2VkIHByb3BlcnR5IG9yIG9uQ2hhbmdlIGV2ZW50LiBJZiB5b3Ugd2FudCB0byB1c2UgY2hlY2tlZCBvciBvbkNoYW5nZSwgeW91IHByb2JhYmx5IGRvblxcJ3Qgd2FudCB0byB1c2UgY2hlY2tlZExpbmsnKSA6IF9wcm9kSW52YXJpYW50KCc4OScpIDogdm9pZCAwO1xufVxuXG52YXIgcHJvcFR5cGVzID0ge1xuICB2YWx1ZTogZnVuY3Rpb24gKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgIGlmICghcHJvcHNbcHJvcE5hbWVdIHx8IGhhc1JlYWRPbmx5VmFsdWVbcHJvcHMudHlwZV0gfHwgcHJvcHMub25DaGFuZ2UgfHwgcHJvcHMucmVhZE9ubHkgfHwgcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKCdZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCAnICsgJ3NldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLicpO1xuICB9LFxuICBjaGVja2VkOiBmdW5jdGlvbiAocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gICAgaWYgKCFwcm9wc1twcm9wTmFtZV0gfHwgcHJvcHMub25DaGFuZ2UgfHwgcHJvcHMucmVhZE9ubHkgfHwgcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKCdZb3UgcHJvdmlkZWQgYSBgY2hlY2tlZGAgcHJvcCB0byBhIGZvcm0gZmllbGQgd2l0aG91dCBhbiAnICsgJ2BvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgJyArICd0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0Q2hlY2tlZGAuIE90aGVyd2lzZSwgJyArICdzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgfSxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jXG59O1xuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0ob3duZXIpIHtcbiAgaWYgKG93bmVyKSB7XG4gICAgdmFyIG5hbWUgPSBvd25lci5nZXROYW1lKCk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBQcm92aWRlIGEgbGlua2VkIGB2YWx1ZWAgYXR0cmlidXRlIGZvciBjb250cm9sbGVkIGZvcm1zLiBZb3Ugc2hvdWxkIG5vdCB1c2VcbiAqIHRoaXMgb3V0c2lkZSBvZiB0aGUgUmVhY3RET00gY29udHJvbGxlZCBmb3JtIGNvbXBvbmVudHMuXG4gKi9cbnZhciBMaW5rZWRWYWx1ZVV0aWxzID0ge1xuICBjaGVja1Byb3BUeXBlczogZnVuY3Rpb24gKHRhZ05hbWUsIHByb3BzLCBvd25lcikge1xuICAgIGZvciAodmFyIHByb3BOYW1lIGluIHByb3BUeXBlcykge1xuICAgICAgaWYgKHByb3BUeXBlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yID0gcHJvcFR5cGVzW3Byb3BOYW1lXShwcm9wcywgcHJvcE5hbWUsIHRhZ05hbWUsICdwcm9wJywgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvci5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvci5tZXNzYWdlXSA9IHRydWU7XG5cbiAgICAgICAgdmFyIGFkZGVuZHVtID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKG93bmVyKTtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdGYWlsZWQgZm9ybSBwcm9wVHlwZTogJXMlcycsIGVycm9yLm1lc3NhZ2UsIGFkZGVuZHVtKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpbnB1dFByb3BzIFByb3BzIGZvciBmb3JtIGNvbXBvbmVudFxuICAgKiBAcmV0dXJuIHsqfSBjdXJyZW50IHZhbHVlIG9mIHRoZSBpbnB1dCBlaXRoZXIgZnJvbSB2YWx1ZSBwcm9wIG9yIGxpbmsuXG4gICAqL1xuICBnZXRWYWx1ZTogZnVuY3Rpb24gKGlucHV0UHJvcHMpIHtcbiAgICBpZiAoaW5wdXRQcm9wcy52YWx1ZUxpbmspIHtcbiAgICAgIF9hc3NlcnRWYWx1ZUxpbmsoaW5wdXRQcm9wcyk7XG4gICAgICByZXR1cm4gaW5wdXRQcm9wcy52YWx1ZUxpbmsudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBpbnB1dFByb3BzLnZhbHVlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5wdXRQcm9wcyBQcm9wcyBmb3IgZm9ybSBjb21wb25lbnRcbiAgICogQHJldHVybiB7Kn0gY3VycmVudCBjaGVja2VkIHN0YXR1cyBvZiB0aGUgaW5wdXQgZWl0aGVyIGZyb20gY2hlY2tlZCBwcm9wXG4gICAqICAgICAgICAgICAgIG9yIGxpbmsuXG4gICAqL1xuICBnZXRDaGVja2VkOiBmdW5jdGlvbiAoaW5wdXRQcm9wcykge1xuICAgIGlmIChpbnB1dFByb3BzLmNoZWNrZWRMaW5rKSB7XG4gICAgICBfYXNzZXJ0Q2hlY2tlZExpbmsoaW5wdXRQcm9wcyk7XG4gICAgICByZXR1cm4gaW5wdXRQcm9wcy5jaGVja2VkTGluay52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0UHJvcHMuY2hlY2tlZDtcbiAgfSxcblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGlucHV0UHJvcHMgUHJvcHMgZm9yIGZvcm0gY29tcG9uZW50XG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2ZW50IGNoYW5nZSBldmVudCB0byBoYW5kbGVcbiAgICovXG4gIGV4ZWN1dGVPbkNoYW5nZTogZnVuY3Rpb24gKGlucHV0UHJvcHMsIGV2ZW50KSB7XG4gICAgaWYgKGlucHV0UHJvcHMudmFsdWVMaW5rKSB7XG4gICAgICBfYXNzZXJ0VmFsdWVMaW5rKGlucHV0UHJvcHMpO1xuICAgICAgcmV0dXJuIGlucHV0UHJvcHMudmFsdWVMaW5rLnJlcXVlc3RDaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGlucHV0UHJvcHMuY2hlY2tlZExpbmspIHtcbiAgICAgIF9hc3NlcnRDaGVja2VkTGluayhpbnB1dFByb3BzKTtcbiAgICAgIHJldHVybiBpbnB1dFByb3BzLmNoZWNrZWRMaW5rLnJlcXVlc3RDaGFuZ2UoZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xuICAgIH0gZWxzZSBpZiAoaW5wdXRQcm9wcy5vbkNoYW5nZSkge1xuICAgICAgcmV0dXJuIGlucHV0UHJvcHMub25DaGFuZ2UuY2FsbCh1bmRlZmluZWQsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTGlua2VkVmFsdWVVdGlscztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0xpbmtlZFZhbHVlVXRpbHMuanNcbi8vIG1vZHVsZSBpZCA9IDU0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///54\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./ReactPropTypesSecret */ 92);\nvar propTypesFactory = __webpack_require__(/*! prop-types/factory */ 183);\n\nvar React = __webpack_require__(/*! react/lib/React */ 20);\nvar PropTypes = propTypesFactory(React.isValidElement);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\n\nfunction _assertSingleLink(inputProps) {\n !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\\'t want to use valueLink.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\\'t want to use checkedLink') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function (props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n onChange: PropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n checkPropTypes: function (tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum(owner);\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\n }\n }\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function (inputProps) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.value;\n }\n return inputProps.value;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function (inputProps) {\n if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.value;\n }\n return inputProps.checked;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @param {SyntheticEvent} event change event to handle\n */\n executeOnChange: function (inputProps, event) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.requestChange(event.target.value);\n } else if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.requestChange(event.target.checked);\n } else if (inputProps.onChange) {\n return inputProps.onChange.call(undefined, event);\n }\n }\n};\n\nmodule.exports = LinkedValueUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9MaW5rZWRWYWx1ZVV0aWxzLmpzPzY3M2EiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIHByb3BUeXBlc0ZhY3RvcnkgPSByZXF1aXJlKCdwcm9wLXR5cGVzL2ZhY3RvcnknKTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QvbGliL1JlYWN0Jyk7XG52YXIgUHJvcFR5cGVzID0gcHJvcFR5cGVzRmFjdG9yeShSZWFjdC5pc1ZhbGlkRWxlbWVudCk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgaGFzUmVhZE9ubHlWYWx1ZSA9IHtcbiAgYnV0dG9uOiB0cnVlLFxuICBjaGVja2JveDogdHJ1ZSxcbiAgaW1hZ2U6IHRydWUsXG4gIGhpZGRlbjogdHJ1ZSxcbiAgcmFkaW86IHRydWUsXG4gIHJlc2V0OiB0cnVlLFxuICBzdWJtaXQ6IHRydWVcbn07XG5cbmZ1bmN0aW9uIF9hc3NlcnRTaW5nbGVMaW5rKGlucHV0UHJvcHMpIHtcbiAgIShpbnB1dFByb3BzLmNoZWNrZWRMaW5rID09IG51bGwgfHwgaW5wdXRQcm9wcy52YWx1ZUxpbmsgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnQ2Fubm90IHByb3ZpZGUgYSBjaGVja2VkTGluayBhbmQgYSB2YWx1ZUxpbmsuIElmIHlvdSB3YW50IHRvIHVzZSBjaGVja2VkTGluaywgeW91IHByb2JhYmx5IGRvblxcJ3Qgd2FudCB0byB1c2UgdmFsdWVMaW5rIGFuZCB2aWNlIHZlcnNhLicpIDogX3Byb2RJbnZhcmlhbnQoJzg3JykgOiB2b2lkIDA7XG59XG5mdW5jdGlvbiBfYXNzZXJ0VmFsdWVMaW5rKGlucHV0UHJvcHMpIHtcbiAgX2Fzc2VydFNpbmdsZUxpbmsoaW5wdXRQcm9wcyk7XG4gICEoaW5wdXRQcm9wcy52YWx1ZSA9PSBudWxsICYmIGlucHV0UHJvcHMub25DaGFuZ2UgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnQ2Fubm90IHByb3ZpZGUgYSB2YWx1ZUxpbmsgYW5kIGEgdmFsdWUgb3Igb25DaGFuZ2UgZXZlbnQuIElmIHlvdSB3YW50IHRvIHVzZSB2YWx1ZSBvciBvbkNoYW5nZSwgeW91IHByb2JhYmx5IGRvblxcJ3Qgd2FudCB0byB1c2UgdmFsdWVMaW5rLicpIDogX3Byb2RJbnZhcmlhbnQoJzg4JykgOiB2b2lkIDA7XG59XG5cbmZ1bmN0aW9uIF9hc3NlcnRDaGVja2VkTGluayhpbnB1dFByb3BzKSB7XG4gIF9hc3NlcnRTaW5nbGVMaW5rKGlucHV0UHJvcHMpO1xuICAhKGlucHV0UHJvcHMuY2hlY2tlZCA9PSBudWxsICYmIGlucHV0UHJvcHMub25DaGFuZ2UgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnQ2Fubm90IHByb3ZpZGUgYSBjaGVja2VkTGluayBhbmQgYSBjaGVja2VkIHByb3BlcnR5IG9yIG9uQ2hhbmdlIGV2ZW50LiBJZiB5b3Ugd2FudCB0byB1c2UgY2hlY2tlZCBvciBvbkNoYW5nZSwgeW91IHByb2JhYmx5IGRvblxcJ3Qgd2FudCB0byB1c2UgY2hlY2tlZExpbmsnKSA6IF9wcm9kSW52YXJpYW50KCc4OScpIDogdm9pZCAwO1xufVxuXG52YXIgcHJvcFR5cGVzID0ge1xuICB2YWx1ZTogZnVuY3Rpb24gKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgIGlmICghcHJvcHNbcHJvcE5hbWVdIHx8IGhhc1JlYWRPbmx5VmFsdWVbcHJvcHMudHlwZV0gfHwgcHJvcHMub25DaGFuZ2UgfHwgcHJvcHMucmVhZE9ubHkgfHwgcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKCdZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCAnICsgJ3NldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLicpO1xuICB9LFxuICBjaGVja2VkOiBmdW5jdGlvbiAocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gICAgaWYgKCFwcm9wc1twcm9wTmFtZV0gfHwgcHJvcHMub25DaGFuZ2UgfHwgcHJvcHMucmVhZE9ubHkgfHwgcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKCdZb3UgcHJvdmlkZWQgYSBgY2hlY2tlZGAgcHJvcCB0byBhIGZvcm0gZmllbGQgd2l0aG91dCBhbiAnICsgJ2BvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgJyArICd0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0Q2hlY2tlZGAuIE90aGVyd2lzZSwgJyArICdzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgfSxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jXG59O1xuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0ob3duZXIpIHtcbiAgaWYgKG93bmVyKSB7XG4gICAgdmFyIG5hbWUgPSBvd25lci5nZXROYW1lKCk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBQcm92aWRlIGEgbGlua2VkIGB2YWx1ZWAgYXR0cmlidXRlIGZvciBjb250cm9sbGVkIGZvcm1zLiBZb3Ugc2hvdWxkIG5vdCB1c2VcbiAqIHRoaXMgb3V0c2lkZSBvZiB0aGUgUmVhY3RET00gY29udHJvbGxlZCBmb3JtIGNvbXBvbmVudHMuXG4gKi9cbnZhciBMaW5rZWRWYWx1ZVV0aWxzID0ge1xuICBjaGVja1Byb3BUeXBlczogZnVuY3Rpb24gKHRhZ05hbWUsIHByb3BzLCBvd25lcikge1xuICAgIGZvciAodmFyIHByb3BOYW1lIGluIHByb3BUeXBlcykge1xuICAgICAgaWYgKHByb3BUeXBlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yID0gcHJvcFR5cGVzW3Byb3BOYW1lXShwcm9wcywgcHJvcE5hbWUsIHRhZ05hbWUsICdwcm9wJywgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvci5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgLy8gT25seSBtb25pdG9yIHRoaXMgZmFpbHVyZSBvbmNlIGJlY2F1c2UgdGhlcmUgdGVuZHMgdG8gYmUgYSBsb3Qgb2YgdGhlXG4gICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvci5tZXNzYWdlXSA9IHRydWU7XG5cbiAgICAgICAgdmFyIGFkZGVuZHVtID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKG93bmVyKTtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdGYWlsZWQgZm9ybSBwcm9wVHlwZTogJXMlcycsIGVycm9yLm1lc3NhZ2UsIGFkZGVuZHVtKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpbnB1dFByb3BzIFByb3BzIGZvciBmb3JtIGNvbXBvbmVudFxuICAgKiBAcmV0dXJuIHsqfSBjdXJyZW50IHZhbHVlIG9mIHRoZSBpbnB1dCBlaXRoZXIgZnJvbSB2YWx1ZSBwcm9wIG9yIGxpbmsuXG4gICAqL1xuICBnZXRWYWx1ZTogZnVuY3Rpb24gKGlucHV0UHJvcHMpIHtcbiAgICBpZiAoaW5wdXRQcm9wcy52YWx1ZUxpbmspIHtcbiAgICAgIF9hc3NlcnRWYWx1ZUxpbmsoaW5wdXRQcm9wcyk7XG4gICAgICByZXR1cm4gaW5wdXRQcm9wcy52YWx1ZUxpbmsudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBpbnB1dFByb3BzLnZhbHVlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5wdXRQcm9wcyBQcm9wcyBmb3IgZm9ybSBjb21wb25lbnRcbiAgICogQHJldHVybiB7Kn0gY3VycmVudCBjaGVja2VkIHN0YXR1cyBvZiB0aGUgaW5wdXQgZWl0aGVyIGZyb20gY2hlY2tlZCBwcm9wXG4gICAqICAgICAgICAgICAgIG9yIGxpbmsuXG4gICAqL1xuICBnZXRDaGVja2VkOiBmdW5jdGlvbiAoaW5wdXRQcm9wcykge1xuICAgIGlmIChpbnB1dFByb3BzLmNoZWNrZWRMaW5rKSB7XG4gICAgICBfYXNzZXJ0Q2hlY2tlZExpbmsoaW5wdXRQcm9wcyk7XG4gICAgICByZXR1cm4gaW5wdXRQcm9wcy5jaGVja2VkTGluay52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0UHJvcHMuY2hlY2tlZDtcbiAgfSxcblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGlucHV0UHJvcHMgUHJvcHMgZm9yIGZvcm0gY29tcG9uZW50XG4gICAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2ZW50IGNoYW5nZSBldmVudCB0byBoYW5kbGVcbiAgICovXG4gIGV4ZWN1dGVPbkNoYW5nZTogZnVuY3Rpb24gKGlucHV0UHJvcHMsIGV2ZW50KSB7XG4gICAgaWYgKGlucHV0UHJvcHMudmFsdWVMaW5rKSB7XG4gICAgICBfYXNzZXJ0VmFsdWVMaW5rKGlucHV0UHJvcHMpO1xuICAgICAgcmV0dXJuIGlucHV0UHJvcHMudmFsdWVMaW5rLnJlcXVlc3RDaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGlucHV0UHJvcHMuY2hlY2tlZExpbmspIHtcbiAgICAgIF9hc3NlcnRDaGVja2VkTGluayhpbnB1dFByb3BzKTtcbiAgICAgIHJldHVybiBpbnB1dFByb3BzLmNoZWNrZWRMaW5rLnJlcXVlc3RDaGFuZ2UoZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xuICAgIH0gZWxzZSBpZiAoaW5wdXRQcm9wcy5vbkNoYW5nZSkge1xuICAgICAgcmV0dXJuIGlucHV0UHJvcHMub25DaGFuZ2UuY2FsbCh1bmRlZmluZWQsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gTGlua2VkVmFsdWVVdGlscztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0xpbmtlZFZhbHVlVXRpbHMuanNcbi8vIG1vZHVsZSBpZCA9IDU1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///55\n"); /***/ }), -/* 55 */ +/* 56 */ /*!*****************************************************************!*\ !*** ./node_modules/react-dom/lib/ReactComponentEnvironment.js ***! \*****************************************************************/ @@ -732,10 +744,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: null,\n\n /**\n * Optionally injectable hook for processing a queue of child updates. Will\n * later move into MultiChildComponents.\n */\n processChildrenUpdates: null,\n\n injection: {\n injectEnvironment: function (environment) {\n !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n};\n\nmodule.exports = ReactComponentEnvironment;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdENvbXBvbmVudEVudmlyb25tZW50LmpzPzQxNTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpO1xuXG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbnZhciBpbmplY3RlZCA9IGZhbHNlO1xuXG52YXIgUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudCA9IHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgaW5qZWN0YWJsZSBob29rIGZvciBzd2FwcGluZyBvdXQgbW91bnQgaW1hZ2VzIGluIHRoZSBtaWRkbGUgb2ZcbiAgICogdGhlIHRyZWUuXG4gICAqL1xuICByZXBsYWNlTm9kZVdpdGhNYXJrdXA6IG51bGwsXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgaW5qZWN0YWJsZSBob29rIGZvciBwcm9jZXNzaW5nIGEgcXVldWUgb2YgY2hpbGQgdXBkYXRlcy4gV2lsbFxuICAgKiBsYXRlciBtb3ZlIGludG8gTXVsdGlDaGlsZENvbXBvbmVudHMuXG4gICAqL1xuICBwcm9jZXNzQ2hpbGRyZW5VcGRhdGVzOiBudWxsLFxuXG4gIGluamVjdGlvbjoge1xuICAgIGluamVjdEVudmlyb25tZW50OiBmdW5jdGlvbiAoZW52aXJvbm1lbnQpIHtcbiAgICAgICEhaW5qZWN0ZWQgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQ6IGluamVjdEVudmlyb25tZW50KCkgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UuJykgOiBfcHJvZEludmFyaWFudCgnMTA0JykgOiB2b2lkIDA7XG4gICAgICBSZWFjdENvbXBvbmVudEVudmlyb25tZW50LnJlcGxhY2VOb2RlV2l0aE1hcmt1cCA9IGVudmlyb25tZW50LnJlcGxhY2VOb2RlV2l0aE1hcmt1cDtcbiAgICAgIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQucHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyA9IGVudmlyb25tZW50LnByb2Nlc3NDaGlsZHJlblVwZGF0ZXM7XG4gICAgICBpbmplY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQ7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdENvbXBvbmVudEVudmlyb25tZW50LmpzXG4vLyBtb2R1bGUgaWQgPSA1NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///55\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: null,\n\n /**\n * Optionally injectable hook for processing a queue of child updates. Will\n * later move into MultiChildComponents.\n */\n processChildrenUpdates: null,\n\n injection: {\n injectEnvironment: function (environment) {\n !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n};\n\nmodule.exports = ReactComponentEnvironment;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdENvbXBvbmVudEVudmlyb25tZW50LmpzPzQxNTQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpO1xuXG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbnZhciBpbmplY3RlZCA9IGZhbHNlO1xuXG52YXIgUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudCA9IHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgaW5qZWN0YWJsZSBob29rIGZvciBzd2FwcGluZyBvdXQgbW91bnQgaW1hZ2VzIGluIHRoZSBtaWRkbGUgb2ZcbiAgICogdGhlIHRyZWUuXG4gICAqL1xuICByZXBsYWNlTm9kZVdpdGhNYXJrdXA6IG51bGwsXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgaW5qZWN0YWJsZSBob29rIGZvciBwcm9jZXNzaW5nIGEgcXVldWUgb2YgY2hpbGQgdXBkYXRlcy4gV2lsbFxuICAgKiBsYXRlciBtb3ZlIGludG8gTXVsdGlDaGlsZENvbXBvbmVudHMuXG4gICAqL1xuICBwcm9jZXNzQ2hpbGRyZW5VcGRhdGVzOiBudWxsLFxuXG4gIGluamVjdGlvbjoge1xuICAgIGluamVjdEVudmlyb25tZW50OiBmdW5jdGlvbiAoZW52aXJvbm1lbnQpIHtcbiAgICAgICEhaW5qZWN0ZWQgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQ6IGluamVjdEVudmlyb25tZW50KCkgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UuJykgOiBfcHJvZEludmFyaWFudCgnMTA0JykgOiB2b2lkIDA7XG4gICAgICBSZWFjdENvbXBvbmVudEVudmlyb25tZW50LnJlcGxhY2VOb2RlV2l0aE1hcmt1cCA9IGVudmlyb25tZW50LnJlcGxhY2VOb2RlV2l0aE1hcmt1cDtcbiAgICAgIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQucHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyA9IGVudmlyb25tZW50LnByb2Nlc3NDaGlsZHJlblVwZGF0ZXM7XG4gICAgICBpbmplY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQ7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdENvbXBvbmVudEVudmlyb25tZW50LmpzXG4vLyBtb2R1bGUgaWQgPSA1NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///56\n"); /***/ }), -/* 56 */ +/* 57 */ /*!**********************************************************************!*\ !*** ./node_modules/react-dom/node_modules/fbjs/lib/shallowEqual.js ***! \**********************************************************************/ @@ -744,10 +756,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL25vZGVfbW9kdWxlcy9mYmpzL2xpYi9zaGFsbG93RXF1YWwuanM/MjI3NCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHR5cGVjaGVja3NcbiAqIFxuICovXG5cbi8qZXNsaW50LWRpc2FibGUgbm8tc2VsZi1jb21wYXJlICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAqL1xuZnVuY3Rpb24gaXMoeCwgeSkge1xuICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gIGlmICh4ID09PSB5KSB7XG4gICAgLy8gU3RlcHMgMS01LCA3LTEwXG4gICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICAvLyBBZGRlZCB0aGUgbm9uemVybyB5IGNoZWNrIHRvIG1ha2UgRmxvdyBoYXBweSwgYnV0IGl0IGlzIHJlZHVuZGFudFxuICAgIHJldHVybiB4ICE9PSAwIHx8IHkgIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICB9IGVsc2Uge1xuICAgIC8vIFN0ZXAgNi5hOiBOYU4gPT0gTmFOXG4gICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0geTtcbiAgfVxufVxuXG4vKipcbiAqIFBlcmZvcm1zIGVxdWFsaXR5IGJ5IGl0ZXJhdGluZyB0aHJvdWdoIGtleXMgb24gYW4gb2JqZWN0IGFuZCByZXR1cm5pbmcgZmFsc2VcbiAqIHdoZW4gYW55IGtleSBoYXMgdmFsdWVzIHdoaWNoIGFyZSBub3Qgc3RyaWN0bHkgZXF1YWwgYmV0d2VlbiB0aGUgYXJndW1lbnRzLlxuICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHZhbHVlcyBvZiBhbGwga2V5cyBhcmUgc3RyaWN0bHkgZXF1YWwuXG4gKi9cbmZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCKSB7XG4gIGlmIChpcyhvYmpBLCBvYmpCKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmpBICE9PSAnb2JqZWN0JyB8fCBvYmpBID09PSBudWxsIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCBvYmpCID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGtleXNBID0gT2JqZWN0LmtleXMob2JqQSk7XG4gIHZhciBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFRlc3QgZm9yIEEncyBrZXlzIGRpZmZlcmVudCBmcm9tIEIuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5c0EubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwob2JqQiwga2V5c0FbaV0pIHx8ICFpcyhvYmpBW2tleXNBW2ldXSwgb2JqQltrZXlzQVtpXV0pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hhbGxvd0VxdWFsO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9ub2RlX21vZHVsZXMvZmJqcy9saWIvc2hhbGxvd0VxdWFsLmpzXG4vLyBtb2R1bGUgaWQgPSA1NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///56\n"); +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL25vZGVfbW9kdWxlcy9mYmpzL2xpYi9zaGFsbG93RXF1YWwuanM/MjI3NCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHR5cGVjaGVja3NcbiAqIFxuICovXG5cbi8qZXNsaW50LWRpc2FibGUgbm8tc2VsZi1jb21wYXJlICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBpbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbCB0byBhdm9pZCByZXF1aXJpbmcgY29uc3VtZXJzIHNoaXAgdGhlaXIgb3duXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9PYmplY3QvaXNcbiAqL1xuZnVuY3Rpb24gaXMoeCwgeSkge1xuICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gIGlmICh4ID09PSB5KSB7XG4gICAgLy8gU3RlcHMgMS01LCA3LTEwXG4gICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICAvLyBBZGRlZCB0aGUgbm9uemVybyB5IGNoZWNrIHRvIG1ha2UgRmxvdyBoYXBweSwgYnV0IGl0IGlzIHJlZHVuZGFudFxuICAgIHJldHVybiB4ICE9PSAwIHx8IHkgIT09IDAgfHwgMSAvIHggPT09IDEgLyB5O1xuICB9IGVsc2Uge1xuICAgIC8vIFN0ZXAgNi5hOiBOYU4gPT0gTmFOXG4gICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0geTtcbiAgfVxufVxuXG4vKipcbiAqIFBlcmZvcm1zIGVxdWFsaXR5IGJ5IGl0ZXJhdGluZyB0aHJvdWdoIGtleXMgb24gYW4gb2JqZWN0IGFuZCByZXR1cm5pbmcgZmFsc2VcbiAqIHdoZW4gYW55IGtleSBoYXMgdmFsdWVzIHdoaWNoIGFyZSBub3Qgc3RyaWN0bHkgZXF1YWwgYmV0d2VlbiB0aGUgYXJndW1lbnRzLlxuICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHZhbHVlcyBvZiBhbGwga2V5cyBhcmUgc3RyaWN0bHkgZXF1YWwuXG4gKi9cbmZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCKSB7XG4gIGlmIChpcyhvYmpBLCBvYmpCKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmpBICE9PSAnb2JqZWN0JyB8fCBvYmpBID09PSBudWxsIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCBvYmpCID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIGtleXNBID0gT2JqZWN0LmtleXMob2JqQSk7XG4gIHZhciBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIFRlc3QgZm9yIEEncyBrZXlzIGRpZmZlcmVudCBmcm9tIEIuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5c0EubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwob2JqQiwga2V5c0FbaV0pIHx8ICFpcyhvYmpBW2tleXNBW2ldXSwgb2JqQltrZXlzQVtpXV0pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hhbGxvd0VxdWFsO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9ub2RlX21vZHVsZXMvZmJqcy9saWIvc2hhbGxvd0VxdWFsLmpzXG4vLyBtb2R1bGUgaWQgPSA1N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///57\n"); /***/ }), -/* 57 */ +/* 58 */ /*!******************************************************************!*\ !*** ./node_modules/react-dom/lib/shouldUpdateReactComponent.js ***! \******************************************************************/ @@ -756,10 +768,10 @@ eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n if (prevEmpty || nextEmpty) {\n return prevEmpty === nextEmpty;\n }\n\n var prevType = typeof prevElement;\n var nextType = typeof nextElement;\n if (prevType === 'string' || prevType === 'number') {\n return nextType === 'string' || nextType === 'number';\n } else {\n return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n }\n}\n\nmodule.exports = shouldUpdateReactComponent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudC5qcz8zMTYwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogR2l2ZW4gYSBgcHJldkVsZW1lbnRgIGFuZCBgbmV4dEVsZW1lbnRgLCBkZXRlcm1pbmVzIGlmIHRoZSBleGlzdGluZ1xuICogaW5zdGFuY2Ugc2hvdWxkIGJlIHVwZGF0ZWQgYXMgb3Bwb3NlZCB0byBiZWluZyBkZXN0cm95ZWQgb3IgcmVwbGFjZWQgYnkgYSBuZXdcbiAqIGluc3RhbmNlLiBCb3RoIGFyZ3VtZW50cyBhcmUgZWxlbWVudHMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoaXMgbG9naWMgY2FuXG4gKiBvcGVyYXRlIG9uIHN0YXRlbGVzcyB0cmVlcyB3aXRob3V0IGFueSBiYWNraW5nIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gcHJldkVsZW1lbnRcbiAqIEBwYXJhbSB7P29iamVjdH0gbmV4dEVsZW1lbnRcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIGV4aXN0aW5nIGluc3RhbmNlIHNob3VsZCBiZSB1cGRhdGVkLlxuICogQHByb3RlY3RlZFxuICovXG5cbmZ1bmN0aW9uIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50KHByZXZFbGVtZW50LCBuZXh0RWxlbWVudCkge1xuICB2YXIgcHJldkVtcHR5ID0gcHJldkVsZW1lbnQgPT09IG51bGwgfHwgcHJldkVsZW1lbnQgPT09IGZhbHNlO1xuICB2YXIgbmV4dEVtcHR5ID0gbmV4dEVsZW1lbnQgPT09IG51bGwgfHwgbmV4dEVsZW1lbnQgPT09IGZhbHNlO1xuICBpZiAocHJldkVtcHR5IHx8IG5leHRFbXB0eSkge1xuICAgIHJldHVybiBwcmV2RW1wdHkgPT09IG5leHRFbXB0eTtcbiAgfVxuXG4gIHZhciBwcmV2VHlwZSA9IHR5cGVvZiBwcmV2RWxlbWVudDtcbiAgdmFyIG5leHRUeXBlID0gdHlwZW9mIG5leHRFbGVtZW50O1xuICBpZiAocHJldlR5cGUgPT09ICdzdHJpbmcnIHx8IHByZXZUeXBlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBuZXh0VHlwZSA9PT0gJ3N0cmluZycgfHwgbmV4dFR5cGUgPT09ICdudW1iZXInO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgcHJldkVsZW1lbnQudHlwZSA9PT0gbmV4dEVsZW1lbnQudHlwZSAmJiBwcmV2RWxlbWVudC5rZXkgPT09IG5leHRFbGVtZW50LmtleTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQuanNcbi8vIG1vZHVsZSBpZCA9IDU3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///57\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n if (prevEmpty || nextEmpty) {\n return prevEmpty === nextEmpty;\n }\n\n var prevType = typeof prevElement;\n var nextType = typeof nextElement;\n if (prevType === 'string' || prevType === 'number') {\n return nextType === 'string' || nextType === 'number';\n } else {\n return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n }\n}\n\nmodule.exports = shouldUpdateReactComponent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudC5qcz8zMTYwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogR2l2ZW4gYSBgcHJldkVsZW1lbnRgIGFuZCBgbmV4dEVsZW1lbnRgLCBkZXRlcm1pbmVzIGlmIHRoZSBleGlzdGluZ1xuICogaW5zdGFuY2Ugc2hvdWxkIGJlIHVwZGF0ZWQgYXMgb3Bwb3NlZCB0byBiZWluZyBkZXN0cm95ZWQgb3IgcmVwbGFjZWQgYnkgYSBuZXdcbiAqIGluc3RhbmNlLiBCb3RoIGFyZ3VtZW50cyBhcmUgZWxlbWVudHMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoaXMgbG9naWMgY2FuXG4gKiBvcGVyYXRlIG9uIHN0YXRlbGVzcyB0cmVlcyB3aXRob3V0IGFueSBiYWNraW5nIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gcHJldkVsZW1lbnRcbiAqIEBwYXJhbSB7P29iamVjdH0gbmV4dEVsZW1lbnRcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIGV4aXN0aW5nIGluc3RhbmNlIHNob3VsZCBiZSB1cGRhdGVkLlxuICogQHByb3RlY3RlZFxuICovXG5cbmZ1bmN0aW9uIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50KHByZXZFbGVtZW50LCBuZXh0RWxlbWVudCkge1xuICB2YXIgcHJldkVtcHR5ID0gcHJldkVsZW1lbnQgPT09IG51bGwgfHwgcHJldkVsZW1lbnQgPT09IGZhbHNlO1xuICB2YXIgbmV4dEVtcHR5ID0gbmV4dEVsZW1lbnQgPT09IG51bGwgfHwgbmV4dEVsZW1lbnQgPT09IGZhbHNlO1xuICBpZiAocHJldkVtcHR5IHx8IG5leHRFbXB0eSkge1xuICAgIHJldHVybiBwcmV2RW1wdHkgPT09IG5leHRFbXB0eTtcbiAgfVxuXG4gIHZhciBwcmV2VHlwZSA9IHR5cGVvZiBwcmV2RWxlbWVudDtcbiAgdmFyIG5leHRUeXBlID0gdHlwZW9mIG5leHRFbGVtZW50O1xuICBpZiAocHJldlR5cGUgPT09ICdzdHJpbmcnIHx8IHByZXZUeXBlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBuZXh0VHlwZSA9PT0gJ3N0cmluZycgfHwgbmV4dFR5cGUgPT09ICdudW1iZXInO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgcHJldkVsZW1lbnQudHlwZSA9PT0gbmV4dEVsZW1lbnQudHlwZSAmJiBwcmV2RWxlbWVudC5rZXkgPT09IG5leHRFbGVtZW50LmtleTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQuanNcbi8vIG1vZHVsZSBpZCA9IDU4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///58\n"); /***/ }), -/* 58 */ +/* 59 */ /*!******************************************************!*\ !*** ./node_modules/react-dom/lib/KeyEscapeUtils.js ***! \******************************************************/ @@ -768,10 +780,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9LZXlFc2NhcGVVdGlscy5qcz9hNmZlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBFc2NhcGUgYW5kIHdyYXAga2V5IHNvIGl0IGlzIHNhZmUgdG8gdXNlIGFzIGEgcmVhY3RpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gYmUgZXNjYXBlZC5cbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVzY2FwZWQga2V5LlxuICovXG5cbmZ1bmN0aW9uIGVzY2FwZShrZXkpIHtcbiAgdmFyIGVzY2FwZVJlZ2V4ID0gL1s9Ol0vZztcbiAgdmFyIGVzY2FwZXJMb29rdXAgPSB7XG4gICAgJz0nOiAnPTAnLFxuICAgICc6JzogJz0yJ1xuICB9O1xuICB2YXIgZXNjYXBlZFN0cmluZyA9ICgnJyArIGtleSkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcblxuICByZXR1cm4gJyQnICsgZXNjYXBlZFN0cmluZztcbn1cblxuLyoqXG4gKiBVbmVzY2FwZSBhbmQgdW53cmFwIGtleSBmb3IgaHVtYW4tcmVhZGFibGUgZGlzcGxheVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gdW5lc2NhcGUuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSB1bmVzY2FwZWQga2V5LlxuICovXG5mdW5jdGlvbiB1bmVzY2FwZShrZXkpIHtcbiAgdmFyIHVuZXNjYXBlUmVnZXggPSAvKD0wfD0yKS9nO1xuICB2YXIgdW5lc2NhcGVyTG9va3VwID0ge1xuICAgICc9MCc6ICc9JyxcbiAgICAnPTInOiAnOidcbiAgfTtcbiAgdmFyIGtleVN1YnN0cmluZyA9IGtleVswXSA9PT0gJy4nICYmIGtleVsxXSA9PT0gJyQnID8ga2V5LnN1YnN0cmluZygyKSA6IGtleS5zdWJzdHJpbmcoMSk7XG5cbiAgcmV0dXJuICgnJyArIGtleVN1YnN0cmluZykucmVwbGFjZSh1bmVzY2FwZVJlZ2V4LCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gdW5lc2NhcGVyTG9va3VwW21hdGNoXTtcbiAgfSk7XG59XG5cbnZhciBLZXlFc2NhcGVVdGlscyA9IHtcbiAgZXNjYXBlOiBlc2NhcGUsXG4gIHVuZXNjYXBlOiB1bmVzY2FwZVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBLZXlFc2NhcGVVdGlscztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0tleUVzY2FwZVV0aWxzLmpzXG4vLyBtb2R1bGUgaWQgPSA1OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///58\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9LZXlFc2NhcGVVdGlscy5qcz9hNmZlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBFc2NhcGUgYW5kIHdyYXAga2V5IHNvIGl0IGlzIHNhZmUgdG8gdXNlIGFzIGEgcmVhY3RpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gYmUgZXNjYXBlZC5cbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVzY2FwZWQga2V5LlxuICovXG5cbmZ1bmN0aW9uIGVzY2FwZShrZXkpIHtcbiAgdmFyIGVzY2FwZVJlZ2V4ID0gL1s9Ol0vZztcbiAgdmFyIGVzY2FwZXJMb29rdXAgPSB7XG4gICAgJz0nOiAnPTAnLFxuICAgICc6JzogJz0yJ1xuICB9O1xuICB2YXIgZXNjYXBlZFN0cmluZyA9ICgnJyArIGtleSkucmVwbGFjZShlc2NhcGVSZWdleCwgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVzY2FwZXJMb29rdXBbbWF0Y2hdO1xuICB9KTtcblxuICByZXR1cm4gJyQnICsgZXNjYXBlZFN0cmluZztcbn1cblxuLyoqXG4gKiBVbmVzY2FwZSBhbmQgdW53cmFwIGtleSBmb3IgaHVtYW4tcmVhZGFibGUgZGlzcGxheVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gdW5lc2NhcGUuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSB1bmVzY2FwZWQga2V5LlxuICovXG5mdW5jdGlvbiB1bmVzY2FwZShrZXkpIHtcbiAgdmFyIHVuZXNjYXBlUmVnZXggPSAvKD0wfD0yKS9nO1xuICB2YXIgdW5lc2NhcGVyTG9va3VwID0ge1xuICAgICc9MCc6ICc9JyxcbiAgICAnPTInOiAnOidcbiAgfTtcbiAgdmFyIGtleVN1YnN0cmluZyA9IGtleVswXSA9PT0gJy4nICYmIGtleVsxXSA9PT0gJyQnID8ga2V5LnN1YnN0cmluZygyKSA6IGtleS5zdWJzdHJpbmcoMSk7XG5cbiAgcmV0dXJuICgnJyArIGtleVN1YnN0cmluZykucmVwbGFjZSh1bmVzY2FwZVJlZ2V4LCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gdW5lc2NhcGVyTG9va3VwW21hdGNoXTtcbiAgfSk7XG59XG5cbnZhciBLZXlFc2NhcGVVdGlscyA9IHtcbiAgZXNjYXBlOiBlc2NhcGUsXG4gIHVuZXNjYXBlOiB1bmVzY2FwZVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBLZXlFc2NhcGVVdGlscztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0tleUVzY2FwZVV0aWxzLmpzXG4vLyBtb2R1bGUgaWQgPSA1OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///59\n"); /***/ }), -/* 59 */ +/* 60 */ /*!********************************************************!*\ !*** ./node_modules/react-dom/lib/ReactUpdateQueue.js ***! \********************************************************/ @@ -780,10 +792,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\n // Only warn when we have a callerName. Otherwise we should be silent.\n // We're probably calling from enqueueCallback. We don't want to warn\n // there because we already warned for the corresponding lifecycle method.\n process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + \"within `render` or another component's constructor). Render methods \" + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\n }\n\n return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (internalInstance) {\n // During componentWillMount and render this will still be null but after\n // that will always render to something. At least for now. So we can use\n // this hack.\n return !!internalInstance._renderedComponent;\n } else {\n return false;\n }\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n // Previously we would throw an error if we didn't have an internal\n // instance. Since we want to make it a no-op instead, we mirror the same\n // behavior we have in other enqueue* methods.\n // We also need to ignore callbacks in componentWillMount. See\n // enqueueUpdates.\n if (!internalInstance) {\n return null;\n }\n\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState. Alternatively, we can disallow\n // componentWillMount during server-side rendering.\n enqueueUpdate(internalInstance);\n },\n\n enqueueCallbackInternal: function (internalInstance, callback) {\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingForceUpdate = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n if (!internalInstance) {\n return;\n }\n\n var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n queue.push(partialState);\n\n enqueueUpdate(internalInstance);\n },\n\n enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n};\n\nmodule.exports = ReactUpdateQueue;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFVwZGF0ZVF1ZXVlLmpzPzk1OWQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNS1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gcmVxdWlyZSgncmVhY3QvbGliL1JlYWN0Q3VycmVudE93bmVyJyk7XG52YXIgUmVhY3RJbnN0YW5jZU1hcCA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZU1hcCcpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG5mdW5jdGlvbiBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpIHtcbiAgUmVhY3RVcGRhdGVzLmVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFVuZXhwZWN0ZWRBcmd1bWVudChhcmcpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgYXJnO1xuICBpZiAodHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuICB2YXIgZGlzcGxheU5hbWUgPSBhcmcuY29uc3RydWN0b3IgJiYgYXJnLmNvbnN0cnVjdG9yLm5hbWUgfHwgdHlwZTtcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhcmcpO1xuICBpZiAoa2V5cy5sZW5ndGggPiAwICYmIGtleXMubGVuZ3RoIDwgMjApIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWUgKyAnIChrZXlzOiAnICsga2V5cy5qb2luKCcsICcpICsgJyknO1xuICB9XG4gIHJldHVybiBkaXNwbGF5TmFtZTtcbn1cblxuZnVuY3Rpb24gZ2V0SW50ZXJuYWxJbnN0YW5jZVJlYWR5Rm9yVXBkYXRlKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHZhciBpbnRlcm5hbEluc3RhbmNlID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQocHVibGljSW5zdGFuY2UpO1xuICBpZiAoIWludGVybmFsSW5zdGFuY2UpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIGN0b3IgPSBwdWJsaWNJbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgICAgIC8vIE9ubHkgd2FybiB3aGVuIHdlIGhhdmUgYSBjYWxsZXJOYW1lLiBPdGhlcndpc2Ugd2Ugc2hvdWxkIGJlIHNpbGVudC5cbiAgICAgIC8vIFdlJ3JlIHByb2JhYmx5IGNhbGxpbmcgZnJvbSBlbnF1ZXVlQ2FsbGJhY2suIFdlIGRvbid0IHdhbnQgdG8gd2FyblxuICAgICAgLy8gdGhlcmUgYmVjYXVzZSB3ZSBhbHJlYWR5IHdhcm5lZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgbGlmZWN5Y2xlIG1ldGhvZC5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFjYWxsZXJOYW1lLCAnJXMoLi4uKTogQ2FuIG9ubHkgdXBkYXRlIGEgbW91bnRlZCBvciBtb3VudGluZyBjb21wb25lbnQuICcgKyAnVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSBjYWxsZWQgJXMoKSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LiAnICsgJ1RoaXMgaXMgYSBuby1vcC4gUGxlYXNlIGNoZWNrIHRoZSBjb2RlIGZvciB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNhbGxlck5hbWUsIGN0b3IgJiYgKGN0b3IuZGlzcGxheU5hbWUgfHwgY3Rvci5uYW1lKSB8fCAnUmVhY3RDbGFzcycpIDogdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAnJXMoLi4uKTogQ2Fubm90IHVwZGF0ZSBkdXJpbmcgYW4gZXhpc3Rpbmcgc3RhdGUgdHJhbnNpdGlvbiAoc3VjaCBhcyAnICsgXCJ3aXRoaW4gYHJlbmRlcmAgb3IgYW5vdGhlciBjb21wb25lbnQncyBjb25zdHJ1Y3RvcikuIFJlbmRlciBtZXRob2RzIFwiICsgJ3Nob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlOyBjb25zdHJ1Y3RvciAnICsgJ3NpZGUtZWZmZWN0cyBhcmUgYW4gYW50aS1wYXR0ZXJuLCBidXQgY2FuIGJlIG1vdmVkIHRvICcgKyAnYGNvbXBvbmVudFdpbGxNb3VudGAuJywgY2FsbGVyTmFtZSkgOiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4gaW50ZXJuYWxJbnN0YW5jZTtcbn1cblxuLyoqXG4gKiBSZWFjdFVwZGF0ZVF1ZXVlIGFsbG93cyBmb3Igc3RhdGUgdXBkYXRlcyB0byBiZSBzY2hlZHVsZWQgaW50byBhIGxhdGVyXG4gKiByZWNvbmNpbGlhdGlvbiBzdGVwLlxuICovXG52YXIgUmVhY3RVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgICBpZiAob3duZXIgIT09IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcob3duZXIuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyLCAnJXMgaXMgYWNjZXNzaW5nIGlzTW91bnRlZCBpbnNpZGUgaXRzIHJlbmRlcigpIGZ1bmN0aW9uLiAnICsgJ3JlbmRlcigpIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlLiBJdCBzaG91bGQgJyArICduZXZlciBhY2Nlc3Mgc29tZXRoaW5nIHRoYXQgcmVxdWlyZXMgc3RhbGUgZGF0YSBmcm9tIHRoZSBwcmV2aW91cyAnICsgJ3JlbmRlciwgc3VjaCBhcyByZWZzLiBNb3ZlIHRoaXMgbG9naWMgdG8gY29tcG9uZW50RGlkTW91bnQgYW5kICcgKyAnY29tcG9uZW50RGlkVXBkYXRlIGluc3RlYWQuJywgb3duZXIuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgICAgICBvd25lci5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IFJlYWN0SW5zdGFuY2VNYXAuZ2V0KHB1YmxpY0luc3RhbmNlKTtcbiAgICBpZiAoaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgLy8gRHVyaW5nIGNvbXBvbmVudFdpbGxNb3VudCBhbmQgcmVuZGVyIHRoaXMgd2lsbCBzdGlsbCBiZSBudWxsIGJ1dCBhZnRlclxuICAgICAgLy8gdGhhdCB3aWxsIGFsd2F5cyByZW5kZXIgdG8gc29tZXRoaW5nLiBBdCBsZWFzdCBmb3Igbm93LiBTbyB3ZSBjYW4gdXNlXG4gICAgICAvLyB0aGlzIGhhY2suXG4gICAgICByZXR1cm4gISFpbnRlcm5hbEluc3RhbmNlLl9yZW5kZXJlZENvbXBvbmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRW5xdWV1ZSBhIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBhZnRlciBhbGwgdGhlIHBlbmRpbmcgdXBkYXRlc1xuICAgKiBoYXZlIHByb2Nlc3NlZC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdG8gdXNlIGFzIGB0aGlzYCBjb250ZXh0LlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYWxsZXJOYW1lIE5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZUNhbGxiYWNrOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgUmVhY3RVcGRhdGVRdWV1ZS52YWxpZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBjYWxsZXJOYW1lKTtcbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEludGVybmFsSW5zdGFuY2VSZWFkeUZvclVwZGF0ZShwdWJsaWNJbnN0YW5jZSk7XG5cbiAgICAvLyBQcmV2aW91c2x5IHdlIHdvdWxkIHRocm93IGFuIGVycm9yIGlmIHdlIGRpZG4ndCBoYXZlIGFuIGludGVybmFsXG4gICAgLy8gaW5zdGFuY2UuIFNpbmNlIHdlIHdhbnQgdG8gbWFrZSBpdCBhIG5vLW9wIGluc3RlYWQsIHdlIG1pcnJvciB0aGUgc2FtZVxuICAgIC8vIGJlaGF2aW9yIHdlIGhhdmUgaW4gb3RoZXIgZW5xdWV1ZSogbWV0aG9kcy5cbiAgICAvLyBXZSBhbHNvIG5lZWQgdG8gaWdub3JlIGNhbGxiYWNrcyBpbiBjb21wb25lbnRXaWxsTW91bnQuIFNlZVxuICAgIC8vIGVucXVldWVVcGRhdGVzLlxuICAgIGlmICghaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MpIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MgPSBbY2FsbGJhY2tdO1xuICAgIH1cbiAgICAvLyBUT0RPOiBUaGUgY2FsbGJhY2sgaGVyZSBpcyBpZ25vcmVkIHdoZW4gc2V0U3RhdGUgaXMgY2FsbGVkIGZyb21cbiAgICAvLyBjb21wb25lbnRXaWxsTW91bnQuIEVpdGhlciBmaXggaXQgb3IgZGlzYWxsb3cgZG9pbmcgc28gY29tcGxldGVseSBpblxuICAgIC8vIGZhdm9yIG9mIGdldEluaXRpYWxTdGF0ZS4gQWx0ZXJuYXRpdmVseSwgd2UgY2FuIGRpc2FsbG93XG4gICAgLy8gY29tcG9uZW50V2lsbE1vdW50IGR1cmluZyBzZXJ2ZXItc2lkZSByZW5kZXJpbmcuXG4gICAgZW5xdWV1ZVVwZGF0ZShpbnRlcm5hbEluc3RhbmNlKTtcbiAgfSxcblxuICBlbnF1ZXVlQ2FsbGJhY2tJbnRlcm5hbDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIGNhbGxiYWNrKSB7XG4gICAgaWYgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MpIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MgPSBbY2FsbGJhY2tdO1xuICAgIH1cbiAgICBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUocHVibGljSW5zdGFuY2UsICdmb3JjZVVwZGF0ZScpO1xuXG4gICAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ0ZvcmNlVXBkYXRlID0gdHJ1ZTtcblxuICAgIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNvbXBsZXRlU3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUocHVibGljSW5zdGFuY2UsICdyZXBsYWNlU3RhdGUnKTtcblxuICAgIGlmICghaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gW2NvbXBsZXRlU3RhdGVdO1xuICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdSZXBsYWNlU3RhdGUgPSB0cnVlO1xuXG4gICAgLy8gRnV0dXJlLXByb29mIDE1LjVcbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgUmVhY3RVcGRhdGVRdWV1ZS52YWxpZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCAncmVwbGFjZVN0YXRlJyk7XG4gICAgICBpZiAoaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ0NhbGxiYWNrcykge1xuICAgICAgICBpbnRlcm5hbEluc3RhbmNlLl9wZW5kaW5nQ2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ0NhbGxiYWNrcyA9IFtjYWxsYmFja107XG4gICAgICB9XG4gICAgfVxuXG4gICAgZW5xdWV1ZVVwZGF0ZShpbnRlcm5hbEluc3RhbmNlKTtcbiAgfSxcblxuICAvKipcbiAgICogU2V0cyBhIHN1YnNldCBvZiB0aGUgc3RhdGUuIFRoaXMgb25seSBleGlzdHMgYmVjYXVzZSBfcGVuZGluZ1N0YXRlIGlzXG4gICAqIGludGVybmFsLiBUaGlzIHByb3ZpZGVzIGEgbWVyZ2luZyBzdHJhdGVneSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgdG8gZGVlcFxuICAgKiBwcm9wZXJ0aWVzIHdoaWNoIGlzIGNvbmZ1c2luZy4gVE9ETzogRXhwb3NlIHBlbmRpbmdTdGF0ZSBvciBkb24ndCB1c2UgaXRcbiAgICogZHVyaW5nIHRoZSBtZXJnZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWFsU3RhdGUgTmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIHN0YXRlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uU2V0U3RhdGUoKTtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHBhcnRpYWxTdGF0ZSAhPSBudWxsLCAnc2V0U3RhdGUoLi4uKTogWW91IHBhc3NlZCBhbiB1bmRlZmluZWQgb3IgbnVsbCBzdGF0ZSBvYmplY3Q7ICcgKyAnaW5zdGVhZCwgdXNlIGZvcmNlVXBkYXRlKCkuJykgOiB2b2lkIDA7XG4gICAgfVxuXG4gICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuXG4gICAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHF1ZXVlID0gaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ1N0YXRlUXVldWUgfHwgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gW10pO1xuICAgIHF1ZXVlLnB1c2gocGFydGlhbFN0YXRlKTtcblxuICAgIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG4gIH0sXG5cbiAgZW5xdWV1ZUVsZW1lbnRJbnRlcm5hbDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIG5leHRFbGVtZW50LCBuZXh0Q29udGV4dCkge1xuICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdFbGVtZW50ID0gbmV4dEVsZW1lbnQ7XG4gICAgLy8gVE9ETzogaW50cm9kdWNlIF9wZW5kaW5nQ29udGV4dCBpbnN0ZWFkIG9mIHNldHRpbmcgaXQgZGlyZWN0bHkuXG4gICAgaW50ZXJuYWxJbnN0YW5jZS5fY29udGV4dCA9IG5leHRDb250ZXh0O1xuICAgIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG4gIH0sXG5cbiAgdmFsaWRhdGVDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgISghY2FsbGJhY2sgfHwgdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLicsIGNhbGxlck5hbWUsIGZvcm1hdFVuZXhwZWN0ZWRBcmd1bWVudChjYWxsYmFjaykpIDogX3Byb2RJbnZhcmlhbnQoJzEyMicsIGNhbGxlck5hbWUsIGZvcm1hdFVuZXhwZWN0ZWRBcmd1bWVudChjYWxsYmFjaykpIDogdm9pZCAwO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0VXBkYXRlUXVldWU7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFVwZGF0ZVF1ZXVlLmpzXG4vLyBtb2R1bGUgaWQgPSA1OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///59\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\n // Only warn when we have a callerName. Otherwise we should be silent.\n // We're probably calling from enqueueCallback. We don't want to warn\n // there because we already warned for the corresponding lifecycle method.\n process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + \"within `render` or another component's constructor). Render methods \" + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\n }\n\n return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (internalInstance) {\n // During componentWillMount and render this will still be null but after\n // that will always render to something. At least for now. So we can use\n // this hack.\n return !!internalInstance._renderedComponent;\n } else {\n return false;\n }\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n // Previously we would throw an error if we didn't have an internal\n // instance. Since we want to make it a no-op instead, we mirror the same\n // behavior we have in other enqueue* methods.\n // We also need to ignore callbacks in componentWillMount. See\n // enqueueUpdates.\n if (!internalInstance) {\n return null;\n }\n\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState. Alternatively, we can disallow\n // componentWillMount during server-side rendering.\n enqueueUpdate(internalInstance);\n },\n\n enqueueCallbackInternal: function (internalInstance, callback) {\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingForceUpdate = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n if (!internalInstance) {\n return;\n }\n\n var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n queue.push(partialState);\n\n enqueueUpdate(internalInstance);\n },\n\n enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n};\n\nmodule.exports = ReactUpdateQueue;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFVwZGF0ZVF1ZXVlLmpzPzk1OWQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNS1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gcmVxdWlyZSgncmVhY3QvbGliL1JlYWN0Q3VycmVudE93bmVyJyk7XG52YXIgUmVhY3RJbnN0YW5jZU1hcCA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZU1hcCcpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG5mdW5jdGlvbiBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpIHtcbiAgUmVhY3RVcGRhdGVzLmVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFVuZXhwZWN0ZWRBcmd1bWVudChhcmcpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgYXJnO1xuICBpZiAodHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuICB2YXIgZGlzcGxheU5hbWUgPSBhcmcuY29uc3RydWN0b3IgJiYgYXJnLmNvbnN0cnVjdG9yLm5hbWUgfHwgdHlwZTtcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhcmcpO1xuICBpZiAoa2V5cy5sZW5ndGggPiAwICYmIGtleXMubGVuZ3RoIDwgMjApIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWUgKyAnIChrZXlzOiAnICsga2V5cy5qb2luKCcsICcpICsgJyknO1xuICB9XG4gIHJldHVybiBkaXNwbGF5TmFtZTtcbn1cblxuZnVuY3Rpb24gZ2V0SW50ZXJuYWxJbnN0YW5jZVJlYWR5Rm9yVXBkYXRlKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHZhciBpbnRlcm5hbEluc3RhbmNlID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQocHVibGljSW5zdGFuY2UpO1xuICBpZiAoIWludGVybmFsSW5zdGFuY2UpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIGN0b3IgPSBwdWJsaWNJbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgICAgIC8vIE9ubHkgd2FybiB3aGVuIHdlIGhhdmUgYSBjYWxsZXJOYW1lLiBPdGhlcndpc2Ugd2Ugc2hvdWxkIGJlIHNpbGVudC5cbiAgICAgIC8vIFdlJ3JlIHByb2JhYmx5IGNhbGxpbmcgZnJvbSBlbnF1ZXVlQ2FsbGJhY2suIFdlIGRvbid0IHdhbnQgdG8gd2FyblxuICAgICAgLy8gdGhlcmUgYmVjYXVzZSB3ZSBhbHJlYWR5IHdhcm5lZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgbGlmZWN5Y2xlIG1ldGhvZC5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFjYWxsZXJOYW1lLCAnJXMoLi4uKTogQ2FuIG9ubHkgdXBkYXRlIGEgbW91bnRlZCBvciBtb3VudGluZyBjb21wb25lbnQuICcgKyAnVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSBjYWxsZWQgJXMoKSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LiAnICsgJ1RoaXMgaXMgYSBuby1vcC4gUGxlYXNlIGNoZWNrIHRoZSBjb2RlIGZvciB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNhbGxlck5hbWUsIGN0b3IgJiYgKGN0b3IuZGlzcGxheU5hbWUgfHwgY3Rvci5uYW1lKSB8fCAnUmVhY3RDbGFzcycpIDogdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAnJXMoLi4uKTogQ2Fubm90IHVwZGF0ZSBkdXJpbmcgYW4gZXhpc3Rpbmcgc3RhdGUgdHJhbnNpdGlvbiAoc3VjaCBhcyAnICsgXCJ3aXRoaW4gYHJlbmRlcmAgb3IgYW5vdGhlciBjb21wb25lbnQncyBjb25zdHJ1Y3RvcikuIFJlbmRlciBtZXRob2RzIFwiICsgJ3Nob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlOyBjb25zdHJ1Y3RvciAnICsgJ3NpZGUtZWZmZWN0cyBhcmUgYW4gYW50aS1wYXR0ZXJuLCBidXQgY2FuIGJlIG1vdmVkIHRvICcgKyAnYGNvbXBvbmVudFdpbGxNb3VudGAuJywgY2FsbGVyTmFtZSkgOiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4gaW50ZXJuYWxJbnN0YW5jZTtcbn1cblxuLyoqXG4gKiBSZWFjdFVwZGF0ZVF1ZXVlIGFsbG93cyBmb3Igc3RhdGUgdXBkYXRlcyB0byBiZSBzY2hlZHVsZWQgaW50byBhIGxhdGVyXG4gKiByZWNvbmNpbGlhdGlvbiBzdGVwLlxuICovXG52YXIgUmVhY3RVcGRhdGVRdWV1ZSA9IHtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgICBpZiAob3duZXIgIT09IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcob3duZXIuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyLCAnJXMgaXMgYWNjZXNzaW5nIGlzTW91bnRlZCBpbnNpZGUgaXRzIHJlbmRlcigpIGZ1bmN0aW9uLiAnICsgJ3JlbmRlcigpIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlLiBJdCBzaG91bGQgJyArICduZXZlciBhY2Nlc3Mgc29tZXRoaW5nIHRoYXQgcmVxdWlyZXMgc3RhbGUgZGF0YSBmcm9tIHRoZSBwcmV2aW91cyAnICsgJ3JlbmRlciwgc3VjaCBhcyByZWZzLiBNb3ZlIHRoaXMgbG9naWMgdG8gY29tcG9uZW50RGlkTW91bnQgYW5kICcgKyAnY29tcG9uZW50RGlkVXBkYXRlIGluc3RlYWQuJywgb3duZXIuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgICAgICBvd25lci5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IFJlYWN0SW5zdGFuY2VNYXAuZ2V0KHB1YmxpY0luc3RhbmNlKTtcbiAgICBpZiAoaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgLy8gRHVyaW5nIGNvbXBvbmVudFdpbGxNb3VudCBhbmQgcmVuZGVyIHRoaXMgd2lsbCBzdGlsbCBiZSBudWxsIGJ1dCBhZnRlclxuICAgICAgLy8gdGhhdCB3aWxsIGFsd2F5cyByZW5kZXIgdG8gc29tZXRoaW5nLiBBdCBsZWFzdCBmb3Igbm93LiBTbyB3ZSBjYW4gdXNlXG4gICAgICAvLyB0aGlzIGhhY2suXG4gICAgICByZXR1cm4gISFpbnRlcm5hbEluc3RhbmNlLl9yZW5kZXJlZENvbXBvbmVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRW5xdWV1ZSBhIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBhZnRlciBhbGwgdGhlIHBlbmRpbmcgdXBkYXRlc1xuICAgKiBoYXZlIHByb2Nlc3NlZC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdG8gdXNlIGFzIGB0aGlzYCBjb250ZXh0LlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYWxsZXJOYW1lIE5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZUNhbGxiYWNrOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgUmVhY3RVcGRhdGVRdWV1ZS52YWxpZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBjYWxsZXJOYW1lKTtcbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEludGVybmFsSW5zdGFuY2VSZWFkeUZvclVwZGF0ZShwdWJsaWNJbnN0YW5jZSk7XG5cbiAgICAvLyBQcmV2aW91c2x5IHdlIHdvdWxkIHRocm93IGFuIGVycm9yIGlmIHdlIGRpZG4ndCBoYXZlIGFuIGludGVybmFsXG4gICAgLy8gaW5zdGFuY2UuIFNpbmNlIHdlIHdhbnQgdG8gbWFrZSBpdCBhIG5vLW9wIGluc3RlYWQsIHdlIG1pcnJvciB0aGUgc2FtZVxuICAgIC8vIGJlaGF2aW9yIHdlIGhhdmUgaW4gb3RoZXIgZW5xdWV1ZSogbWV0aG9kcy5cbiAgICAvLyBXZSBhbHNvIG5lZWQgdG8gaWdub3JlIGNhbGxiYWNrcyBpbiBjb21wb25lbnRXaWxsTW91bnQuIFNlZVxuICAgIC8vIGVucXVldWVVcGRhdGVzLlxuICAgIGlmICghaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MpIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MgPSBbY2FsbGJhY2tdO1xuICAgIH1cbiAgICAvLyBUT0RPOiBUaGUgY2FsbGJhY2sgaGVyZSBpcyBpZ25vcmVkIHdoZW4gc2V0U3RhdGUgaXMgY2FsbGVkIGZyb21cbiAgICAvLyBjb21wb25lbnRXaWxsTW91bnQuIEVpdGhlciBmaXggaXQgb3IgZGlzYWxsb3cgZG9pbmcgc28gY29tcGxldGVseSBpblxuICAgIC8vIGZhdm9yIG9mIGdldEluaXRpYWxTdGF0ZS4gQWx0ZXJuYXRpdmVseSwgd2UgY2FuIGRpc2FsbG93XG4gICAgLy8gY29tcG9uZW50V2lsbE1vdW50IGR1cmluZyBzZXJ2ZXItc2lkZSByZW5kZXJpbmcuXG4gICAgZW5xdWV1ZVVwZGF0ZShpbnRlcm5hbEluc3RhbmNlKTtcbiAgfSxcblxuICBlbnF1ZXVlQ2FsbGJhY2tJbnRlcm5hbDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIGNhbGxiYWNrKSB7XG4gICAgaWYgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MpIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MgPSBbY2FsbGJhY2tdO1xuICAgIH1cbiAgICBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUocHVibGljSW5zdGFuY2UsICdmb3JjZVVwZGF0ZScpO1xuXG4gICAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ0ZvcmNlVXBkYXRlID0gdHJ1ZTtcblxuICAgIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNvbXBsZXRlU3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUocHVibGljSW5zdGFuY2UsICdyZXBsYWNlU3RhdGUnKTtcblxuICAgIGlmICghaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gW2NvbXBsZXRlU3RhdGVdO1xuICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdSZXBsYWNlU3RhdGUgPSB0cnVlO1xuXG4gICAgLy8gRnV0dXJlLXByb29mIDE1LjVcbiAgICBpZiAoY2FsbGJhY2sgIT09IHVuZGVmaW5lZCAmJiBjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgUmVhY3RVcGRhdGVRdWV1ZS52YWxpZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCAncmVwbGFjZVN0YXRlJyk7XG4gICAgICBpZiAoaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ0NhbGxiYWNrcykge1xuICAgICAgICBpbnRlcm5hbEluc3RhbmNlLl9wZW5kaW5nQ2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ0NhbGxiYWNrcyA9IFtjYWxsYmFja107XG4gICAgICB9XG4gICAgfVxuXG4gICAgZW5xdWV1ZVVwZGF0ZShpbnRlcm5hbEluc3RhbmNlKTtcbiAgfSxcblxuICAvKipcbiAgICogU2V0cyBhIHN1YnNldCBvZiB0aGUgc3RhdGUuIFRoaXMgb25seSBleGlzdHMgYmVjYXVzZSBfcGVuZGluZ1N0YXRlIGlzXG4gICAqIGludGVybmFsLiBUaGlzIHByb3ZpZGVzIGEgbWVyZ2luZyBzdHJhdGVneSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgdG8gZGVlcFxuICAgKiBwcm9wZXJ0aWVzIHdoaWNoIGlzIGNvbmZ1c2luZy4gVE9ETzogRXhwb3NlIHBlbmRpbmdTdGF0ZSBvciBkb24ndCB1c2UgaXRcbiAgICogZHVyaW5nIHRoZSBtZXJnZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWFsU3RhdGUgTmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIHN0YXRlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uU2V0U3RhdGUoKTtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHBhcnRpYWxTdGF0ZSAhPSBudWxsLCAnc2V0U3RhdGUoLi4uKTogWW91IHBhc3NlZCBhbiB1bmRlZmluZWQgb3IgbnVsbCBzdGF0ZSBvYmplY3Q7ICcgKyAnaW5zdGVhZCwgdXNlIGZvcmNlVXBkYXRlKCkuJykgOiB2b2lkIDA7XG4gICAgfVxuXG4gICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUocHVibGljSW5zdGFuY2UsICdzZXRTdGF0ZScpO1xuXG4gICAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHF1ZXVlID0gaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ1N0YXRlUXVldWUgfHwgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gW10pO1xuICAgIHF1ZXVlLnB1c2gocGFydGlhbFN0YXRlKTtcblxuICAgIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG4gIH0sXG5cbiAgZW5xdWV1ZUVsZW1lbnRJbnRlcm5hbDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIG5leHRFbGVtZW50LCBuZXh0Q29udGV4dCkge1xuICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdFbGVtZW50ID0gbmV4dEVsZW1lbnQ7XG4gICAgLy8gVE9ETzogaW50cm9kdWNlIF9wZW5kaW5nQ29udGV4dCBpbnN0ZWFkIG9mIHNldHRpbmcgaXQgZGlyZWN0bHkuXG4gICAgaW50ZXJuYWxJbnN0YW5jZS5fY29udGV4dCA9IG5leHRDb250ZXh0O1xuICAgIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG4gIH0sXG5cbiAgdmFsaWRhdGVDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgISghY2FsbGJhY2sgfHwgdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24uIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLicsIGNhbGxlck5hbWUsIGZvcm1hdFVuZXhwZWN0ZWRBcmd1bWVudChjYWxsYmFjaykpIDogX3Byb2RJbnZhcmlhbnQoJzEyMicsIGNhbGxlck5hbWUsIGZvcm1hdFVuZXhwZWN0ZWRBcmd1bWVudChjYWxsYmFjaykpIDogdm9pZCAwO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0VXBkYXRlUXVldWU7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFVwZGF0ZVF1ZXVlLmpzXG4vLyBtb2R1bGUgaWQgPSA2MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///60\n"); /***/ }), -/* 60 */ +/* 61 */ /*!**********************************************************!*\ !*** ./node_modules/react-dom/lib/validateDOMNesting.js ***! \**********************************************************/ @@ -792,10 +804,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example,
is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n //

tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for , including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n current: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo = function (oldInfo, tag, instance) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n case '#document':\n return tag === 'html';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n /**\n * Given a ReactCompositeComponent instance, return a list of its recursive\n * owners, starting at the root and ending with the instance itself.\n */\n var findOwnerStack = function (instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\n stack.push(instance);\n } while (instance = instance._currentElement._owner);\n stack.reverse();\n return stack;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var problematic = invalidParent || invalidAncestor;\n\n if (problematic) {\n var ancestorTag = problematic.tag;\n var ancestorInstance = problematic.instance;\n\n var childOwner = childInstance && childInstance._currentElement._owner;\n var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n var childOwners = findOwnerStack(childOwner);\n var ancestorOwners = findOwnerStack(ancestorOwner);\n\n var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n var i;\n\n var deepestCommon = -1;\n for (i = 0; i < minStackLen; i++) {\n if (childOwners[i] === ancestorOwners[i]) {\n deepestCommon = i;\n } else {\n break;\n }\n }\n\n var UNKNOWN = '(unknown)';\n var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ownerInfo = [].concat(\n // If the parent and child instances have a common owner ancestor, start\n // with that -- otherwise we just start with the parent's owners.\n deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n // If we're warning about an invalid (non-parent) ancestry, add '...'\n invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi92YWxpZGF0ZURPTU5lc3RpbmcuanM/NDgxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE1LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIGVtcHR5RnVuY3Rpb24gPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eUZ1bmN0aW9uJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIHZhbGlkYXRlRE9NTmVzdGluZyA9IGVtcHR5RnVuY3Rpb247XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIFRoaXMgdmFsaWRhdGlvbiBjb2RlIHdhcyB3cml0dGVuIGJhc2VkIG9uIHRoZSBIVE1MNSBwYXJzaW5nIHNwZWM6XG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLXNjb3BlXG4gIC8vXG4gIC8vIE5vdGU6IHRoaXMgZG9lcyBub3QgY2F0Y2ggYWxsIGludmFsaWQgbmVzdGluZywgbm9yIGRvZXMgaXQgdHJ5IHRvIChhcyBpdCdzXG4gIC8vIG5vdCBjbGVhciB3aGF0IHByYWN0aWNhbCBiZW5lZml0IGRvaW5nIHNvIHByb3ZpZGVzKTsgaW5zdGVhZCwgd2Ugd2FybiBvbmx5XG4gIC8vIGZvciBjYXNlcyB3aGVyZSB0aGUgcGFyc2VyIHdpbGwgZ2l2ZSBhIHBhcnNlIHRyZWUgZGlmZmVyaW5nIGZyb20gd2hhdCBSZWFjdFxuICAvLyBpbnRlbmRlZC4gRm9yIGV4YW1wbGUsIDxiPjxkaXY+PC9kaXY+PC9iPiBpcyBpbnZhbGlkIGJ1dCB3ZSBkb24ndCB3YXJuXG4gIC8vIGJlY2F1c2UgaXQgc3RpbGwgcGFyc2VzIGNvcnJlY3RseTsgd2UgZG8gd2FybiBmb3Igb3RoZXIgY2FzZXMgbGlrZSBuZXN0ZWRcbiAgLy8gPHA+IHRhZ3Mgd2hlcmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2Vjb25kIGVsZW1lbnQgaW1wbGljaXRseSBjbG9zZXMgdGhlXG4gIC8vIGZpcnN0LCBjYXVzaW5nIGEgY29uZnVzaW5nIG1lc3MuXG5cbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjc3BlY2lhbFxuICB2YXIgc3BlY2lhbFRhZ3MgPSBbJ2FkZHJlc3MnLCAnYXBwbGV0JywgJ2FyZWEnLCAnYXJ0aWNsZScsICdhc2lkZScsICdiYXNlJywgJ2Jhc2Vmb250JywgJ2Jnc291bmQnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYXB0aW9uJywgJ2NlbnRlcicsICdjb2wnLCAnY29sZ3JvdXAnLCAnZGQnLCAnZGV0YWlscycsICdkaXInLCAnZGl2JywgJ2RsJywgJ2R0JywgJ2VtYmVkJywgJ2ZpZWxkc2V0JywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2Zvb3RlcicsICdmb3JtJywgJ2ZyYW1lJywgJ2ZyYW1lc2V0JywgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWQnLCAnaGVhZGVyJywgJ2hncm91cCcsICdocicsICdodG1sJywgJ2lmcmFtZScsICdpbWcnLCAnaW5wdXQnLCAnaXNpbmRleCcsICdsaScsICdsaW5rJywgJ2xpc3RpbmcnLCAnbWFpbicsICdtYXJxdWVlJywgJ21lbnUnLCAnbWVudWl0ZW0nLCAnbWV0YScsICduYXYnLCAnbm9lbWJlZCcsICdub2ZyYW1lcycsICdub3NjcmlwdCcsICdvYmplY3QnLCAnb2wnLCAncCcsICdwYXJhbScsICdwbGFpbnRleHQnLCAncHJlJywgJ3NjcmlwdCcsICdzZWN0aW9uJywgJ3NlbGVjdCcsICdzb3VyY2UnLCAnc3R5bGUnLCAnc3VtbWFyeScsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0ZW1wbGF0ZScsICd0ZXh0YXJlYScsICd0Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0aXRsZScsICd0cicsICd0cmFjaycsICd1bCcsICd3YnInLCAneG1wJ107XG5cbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGVcbiAgdmFyIGluU2NvcGVUYWdzID0gWydhcHBsZXQnLCAnY2FwdGlvbicsICdodG1sJywgJ3RhYmxlJywgJ3RkJywgJ3RoJywgJ21hcnF1ZWUnLCAnb2JqZWN0JywgJ3RlbXBsYXRlJyxcblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNodG1sLWludGVncmF0aW9uLXBvaW50XG4gIC8vIFRPRE86IERpc3Rpbmd1aXNoIGJ5IG5hbWVzcGFjZSBoZXJlIC0tIGZvciA8dGl0bGU+LCBpbmNsdWRpbmcgaXQgaGVyZVxuICAvLyBlcnJzIG9uIHRoZSBzaWRlIG9mIGZld2VyIHdhcm5pbmdzXG4gICdmb3JlaWduT2JqZWN0JywgJ2Rlc2MnLCAndGl0bGUnXTtcblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGVcbiAgdmFyIGJ1dHRvblNjb3BlVGFncyA9IGluU2NvcGVUYWdzLmNvbmNhdChbJ2J1dHRvbiddKTtcblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzXG4gIHZhciBpbXBsaWVkRW5kVGFncyA9IFsnZGQnLCAnZHQnLCAnbGknLCAnb3B0aW9uJywgJ29wdGdyb3VwJywgJ3AnLCAncnAnLCAncnQnXTtcblxuICB2YXIgZW1wdHlBbmNlc3RvckluZm8gPSB7XG4gICAgY3VycmVudDogbnVsbCxcblxuICAgIGZvcm1UYWc6IG51bGwsXG4gICAgYVRhZ0luU2NvcGU6IG51bGwsXG4gICAgYnV0dG9uVGFnSW5TY29wZTogbnVsbCxcbiAgICBub2JyVGFnSW5TY29wZTogbnVsbCxcbiAgICBwVGFnSW5CdXR0b25TY29wZTogbnVsbCxcblxuICAgIGxpc3RJdGVtVGFnQXV0b2Nsb3Npbmc6IG51bGwsXG4gICAgZGxJdGVtVGFnQXV0b2Nsb3Npbmc6IG51bGxcbiAgfTtcblxuICB2YXIgdXBkYXRlZEFuY2VzdG9ySW5mbyA9IGZ1bmN0aW9uIChvbGRJbmZvLCB0YWcsIGluc3RhbmNlKSB7XG4gICAgdmFyIGFuY2VzdG9ySW5mbyA9IF9hc3NpZ24oe30sIG9sZEluZm8gfHwgZW1wdHlBbmNlc3RvckluZm8pO1xuICAgIHZhciBpbmZvID0geyB0YWc6IHRhZywgaW5zdGFuY2U6IGluc3RhbmNlIH07XG5cbiAgICBpZiAoaW5TY29wZVRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSkge1xuICAgICAgYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChidXR0b25TY29wZVRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSkge1xuICAgICAgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBTZWUgcnVsZXMgZm9yICdsaScsICdkZCcsICdkdCcgc3RhcnQgdGFncyBpblxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcbiAgICBpZiAoc3BlY2lhbFRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSAmJiB0YWcgIT09ICdhZGRyZXNzJyAmJiB0YWcgIT09ICdkaXYnICYmIHRhZyAhPT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZyA9IG51bGw7XG4gICAgICBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsO1xuICAgIH1cblxuICAgIGFuY2VzdG9ySW5mby5jdXJyZW50ID0gaW5mbztcblxuICAgIGlmICh0YWcgPT09ICdmb3JtJykge1xuICAgICAgYW5jZXN0b3JJbmZvLmZvcm1UYWcgPSBpbmZvO1xuICAgIH1cbiAgICBpZiAodGFnID09PSAnYScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdidXR0b24nKSB7XG4gICAgICBhbmNlc3RvckluZm8uYnV0dG9uVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdub2JyJykge1xuICAgICAgYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlID0gaW5mbztcbiAgICB9XG4gICAgaWYgKHRhZyA9PT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBpbmZvO1xuICAgIH1cbiAgICBpZiAodGFnID09PSAnbGknKSB7XG4gICAgICBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZyA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdkZCcgfHwgdGFnID09PSAnZHQnKSB7XG4gICAgICBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBpbmZvO1xuICAgIH1cblxuICAgIHJldHVybiBhbmNlc3RvckluZm87XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlclxuICAgKi9cbiAgdmFyIGlzVGFnVmFsaWRXaXRoUGFyZW50ID0gZnVuY3Rpb24gKHRhZywgcGFyZW50VGFnKSB7XG4gICAgLy8gRmlyc3QsIGxldCdzIGNoZWNrIGlmIHdlJ3JlIGluIGFuIHVudXN1YWwgcGFyc2luZyBtb2RlLi4uXG4gICAgc3dpdGNoIChwYXJlbnRUYWcpIHtcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdFxuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnb3B0Z3JvdXAnIHx8IHRhZyA9PT0gJyN0ZXh0JztcbiAgICAgIGNhc2UgJ29wdGdyb3VwJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnI3RleHQnO1xuICAgICAgLy8gU3RyaWN0bHkgc3BlYWtpbmcsIHNlZWluZyBhbiA8b3B0aW9uPiBkb2Vzbid0IG1lYW4gd2UncmUgaW4gYSA8c2VsZWN0PlxuICAgICAgLy8gYnV0XG4gICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnI3RleHQnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGRcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNhcHRpb25cbiAgICAgIC8vIE5vIHNwZWNpYWwgYmVoYXZpb3Igc2luY2UgdGhlc2UgcnVsZXMgZmFsbCBiYWNrIHRvIFwiaW4gYm9keVwiIG1vZGUgZm9yXG4gICAgICAvLyBhbGwgZXhjZXB0IHNwZWNpYWwgdGFibGUgbm9kZXMgd2hpY2ggY2F1c2UgYmFkIHBhcnNpbmcgYmVoYXZpb3IgYW55d2F5LlxuXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50clxuICAgICAgY2FzZSAndHInOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndGgnIHx8IHRhZyA9PT0gJ3RkJyB8fCB0YWcgPT09ICdzdHlsZScgfHwgdGFnID09PSAnc2NyaXB0JyB8fCB0YWcgPT09ICd0ZW1wbGF0ZSc7XG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50Ym9keVxuICAgICAgY2FzZSAndGJvZHknOlxuICAgICAgY2FzZSAndGhlYWQnOlxuICAgICAgY2FzZSAndGZvb3QnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndHInIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNvbGdyb3VwXG4gICAgICBjYXNlICdjb2xncm91cCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdjb2wnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRhYmxlXG4gICAgICBjYXNlICd0YWJsZSc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdjYXB0aW9uJyB8fCB0YWcgPT09ICdjb2xncm91cCcgfHwgdGFnID09PSAndGJvZHknIHx8IHRhZyA9PT0gJ3Rmb290JyB8fCB0YWcgPT09ICd0aGVhZCcgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluaGVhZFxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdiYXNlJyB8fCB0YWcgPT09ICdiYXNlZm9udCcgfHwgdGFnID09PSAnYmdzb3VuZCcgfHwgdGFnID09PSAnbGluaycgfHwgdGFnID09PSAnbWV0YScgfHwgdGFnID09PSAndGl0bGUnIHx8IHRhZyA9PT0gJ25vc2NyaXB0JyB8fCB0YWcgPT09ICdub2ZyYW1lcycgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudFxuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdoZWFkJyB8fCB0YWcgPT09ICdib2R5JztcbiAgICAgIGNhc2UgJyNkb2N1bWVudCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdodG1sJztcbiAgICB9XG5cbiAgICAvLyBQcm9iYWJseSBpbiB0aGUgXCJpbiBib2R5XCIgcGFyc2luZyBtb2RlLCBzbyB3ZSBvdXRsYXcgb25seSB0YWcgY29tYm9zXG4gICAgLy8gd2hlcmUgdGhlIHBhcnNpbmcgcnVsZXMgY2F1c2UgaW1wbGljaXQgb3BlbnMgb3IgY2xvc2VzIHRvIGJlIGFkZGVkLlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcbiAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgY2FzZSAnaDEnOlxuICAgICAgY2FzZSAnaDInOlxuICAgICAgY2FzZSAnaDMnOlxuICAgICAgY2FzZSAnaDQnOlxuICAgICAgY2FzZSAnaDUnOlxuICAgICAgY2FzZSAnaDYnOlxuICAgICAgICByZXR1cm4gcGFyZW50VGFnICE9PSAnaDEnICYmIHBhcmVudFRhZyAhPT0gJ2gyJyAmJiBwYXJlbnRUYWcgIT09ICdoMycgJiYgcGFyZW50VGFnICE9PSAnaDQnICYmIHBhcmVudFRhZyAhPT0gJ2g1JyAmJiBwYXJlbnRUYWcgIT09ICdoNic7XG5cbiAgICAgIGNhc2UgJ3JwJzpcbiAgICAgIGNhc2UgJ3J0JzpcbiAgICAgICAgcmV0dXJuIGltcGxpZWRFbmRUYWdzLmluZGV4T2YocGFyZW50VGFnKSA9PT0gLTE7XG5cbiAgICAgIGNhc2UgJ2JvZHknOlxuICAgICAgY2FzZSAnY2FwdGlvbic6XG4gICAgICBjYXNlICdjb2wnOlxuICAgICAgY2FzZSAnY29sZ3JvdXAnOlxuICAgICAgY2FzZSAnZnJhbWUnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgIGNhc2UgJ3Rib2R5JzpcbiAgICAgIGNhc2UgJ3RkJzpcbiAgICAgIGNhc2UgJ3Rmb290JzpcbiAgICAgIGNhc2UgJ3RoJzpcbiAgICAgIGNhc2UgJ3RoZWFkJzpcbiAgICAgIGNhc2UgJ3RyJzpcbiAgICAgICAgLy8gVGhlc2UgdGFncyBhcmUgb25seSB2YWxpZCB3aXRoIGEgZmV3IHBhcmVudHMgdGhhdCBoYXZlIHNwZWNpYWwgY2hpbGRcbiAgICAgICAgLy8gcGFyc2luZyBydWxlcyAtLSBpZiB3ZSdyZSBkb3duIGhlcmUsIHRoZW4gbm9uZSBvZiB0aG9zZSBtYXRjaGVkIGFuZFxuICAgICAgICAvLyBzbyB3ZSBhbGxvdyBpdCBvbmx5IGlmIHdlIGRvbid0IGtub3cgd2hhdCB0aGUgcGFyZW50IGlzLCBhcyBhbGwgb3RoZXJcbiAgICAgICAgLy8gY2FzZXMgYXJlIGludmFsaWQuXG4gICAgICAgIHJldHVybiBwYXJlbnRUYWcgPT0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyXG4gICAqL1xuICB2YXIgZmluZEludmFsaWRBbmNlc3RvckZvclRhZyA9IGZ1bmN0aW9uICh0YWcsIGFuY2VzdG9ySW5mbykge1xuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlICdhZGRyZXNzJzpcbiAgICAgIGNhc2UgJ2FydGljbGUnOlxuICAgICAgY2FzZSAnYXNpZGUnOlxuICAgICAgY2FzZSAnYmxvY2txdW90ZSc6XG4gICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgY2FzZSAnZGlyJzpcbiAgICAgIGNhc2UgJ2Rpdic6XG4gICAgICBjYXNlICdkbCc6XG4gICAgICBjYXNlICdmaWVsZHNldCc6XG4gICAgICBjYXNlICdmaWdjYXB0aW9uJzpcbiAgICAgIGNhc2UgJ2ZpZ3VyZSc6XG4gICAgICBjYXNlICdmb290ZXInOlxuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgIGNhc2UgJ2hncm91cCc6XG4gICAgICBjYXNlICdtYWluJzpcbiAgICAgIGNhc2UgJ21lbnUnOlxuICAgICAgY2FzZSAnbmF2JzpcbiAgICAgIGNhc2UgJ29sJzpcbiAgICAgIGNhc2UgJ3AnOlxuICAgICAgY2FzZSAnc2VjdGlvbic6XG4gICAgICBjYXNlICdzdW1tYXJ5JzpcbiAgICAgIGNhc2UgJ3VsJzpcbiAgICAgIGNhc2UgJ3ByZSc6XG4gICAgICBjYXNlICdsaXN0aW5nJzpcbiAgICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgIGNhc2UgJ2hyJzpcbiAgICAgIGNhc2UgJ3htcCc6XG4gICAgICBjYXNlICdoMSc6XG4gICAgICBjYXNlICdoMic6XG4gICAgICBjYXNlICdoMyc6XG4gICAgICBjYXNlICdoNCc6XG4gICAgICBjYXNlICdoNSc6XG4gICAgICBjYXNlICdoNic6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmZvcm1UYWcgfHwgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlO1xuXG4gICAgICBjYXNlICdsaSc6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZztcblxuICAgICAgY2FzZSAnZGQnOlxuICAgICAgY2FzZSAnZHQnOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nO1xuXG4gICAgICBjYXNlICdidXR0b24nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgICAvLyBTcGVjIHNheXMgc29tZXRoaW5nIGFib3V0IHN0b3JpbmcgYSBsaXN0IG9mIG1hcmtlcnMsIGJ1dCBpdCBzb3VuZHNcbiAgICAgICAgLy8gZXF1aXZhbGVudCB0byB0aGlzIGNoZWNrLlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlO1xuXG4gICAgICBjYXNlICdub2JyJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICAvKipcbiAgICogR2l2ZW4gYSBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCBpbnN0YW5jZSwgcmV0dXJuIGEgbGlzdCBvZiBpdHMgcmVjdXJzaXZlXG4gICAqIG93bmVycywgc3RhcnRpbmcgYXQgdGhlIHJvb3QgYW5kIGVuZGluZyB3aXRoIHRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gICAqL1xuICB2YXIgZmluZE93bmVyU3RhY2sgPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgdmFyIHN0YWNrID0gW107XG4gICAgZG8ge1xuICAgICAgc3RhY2sucHVzaChpbnN0YW5jZSk7XG4gICAgfSB3aGlsZSAoaW5zdGFuY2UgPSBpbnN0YW5jZS5fY3VycmVudEVsZW1lbnQuX293bmVyKTtcbiAgICBzdGFjay5yZXZlcnNlKCk7XG4gICAgcmV0dXJuIHN0YWNrO1xuICB9O1xuXG4gIHZhciBkaWRXYXJuID0ge307XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nID0gZnVuY3Rpb24gKGNoaWxkVGFnLCBjaGlsZFRleHQsIGNoaWxkSW5zdGFuY2UsIGFuY2VzdG9ySW5mbykge1xuICAgIGFuY2VzdG9ySW5mbyA9IGFuY2VzdG9ySW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbztcbiAgICB2YXIgcGFyZW50SW5mbyA9IGFuY2VzdG9ySW5mby5jdXJyZW50O1xuICAgIHZhciBwYXJlbnRUYWcgPSBwYXJlbnRJbmZvICYmIHBhcmVudEluZm8udGFnO1xuXG4gICAgaWYgKGNoaWxkVGV4dCAhPSBudWxsKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhjaGlsZFRhZyA9PSBudWxsLCAndmFsaWRhdGVET01OZXN0aW5nOiB3aGVuIGNoaWxkVGV4dCBpcyBwYXNzZWQsIGNoaWxkVGFnIHNob3VsZCBiZSBudWxsJykgOiB2b2lkIDA7XG4gICAgICBjaGlsZFRhZyA9ICcjdGV4dCc7XG4gICAgfVxuXG4gICAgdmFyIGludmFsaWRQYXJlbnQgPSBpc1RhZ1ZhbGlkV2l0aFBhcmVudChjaGlsZFRhZywgcGFyZW50VGFnKSA/IG51bGwgOiBwYXJlbnRJbmZvO1xuICAgIHZhciBpbnZhbGlkQW5jZXN0b3IgPSBpbnZhbGlkUGFyZW50ID8gbnVsbCA6IGZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcoY2hpbGRUYWcsIGFuY2VzdG9ySW5mbyk7XG4gICAgdmFyIHByb2JsZW1hdGljID0gaW52YWxpZFBhcmVudCB8fCBpbnZhbGlkQW5jZXN0b3I7XG5cbiAgICBpZiAocHJvYmxlbWF0aWMpIHtcbiAgICAgIHZhciBhbmNlc3RvclRhZyA9IHByb2JsZW1hdGljLnRhZztcbiAgICAgIHZhciBhbmNlc3Rvckluc3RhbmNlID0gcHJvYmxlbWF0aWMuaW5zdGFuY2U7XG5cbiAgICAgIHZhciBjaGlsZE93bmVyID0gY2hpbGRJbnN0YW5jZSAmJiBjaGlsZEluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgYW5jZXN0b3JPd25lciA9IGFuY2VzdG9ySW5zdGFuY2UgJiYgYW5jZXN0b3JJbnN0YW5jZS5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuXG4gICAgICB2YXIgY2hpbGRPd25lcnMgPSBmaW5kT3duZXJTdGFjayhjaGlsZE93bmVyKTtcbiAgICAgIHZhciBhbmNlc3Rvck93bmVycyA9IGZpbmRPd25lclN0YWNrKGFuY2VzdG9yT3duZXIpO1xuXG4gICAgICB2YXIgbWluU3RhY2tMZW4gPSBNYXRoLm1pbihjaGlsZE93bmVycy5sZW5ndGgsIGFuY2VzdG9yT3duZXJzLmxlbmd0aCk7XG4gICAgICB2YXIgaTtcblxuICAgICAgdmFyIGRlZXBlc3RDb21tb24gPSAtMTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBtaW5TdGFja0xlbjsgaSsrKSB7XG4gICAgICAgIGlmIChjaGlsZE93bmVyc1tpXSA9PT0gYW5jZXN0b3JPd25lcnNbaV0pIHtcbiAgICAgICAgICBkZWVwZXN0Q29tbW9uID0gaTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgVU5LTk9XTiA9ICcodW5rbm93biknO1xuICAgICAgdmFyIGNoaWxkT3duZXJOYW1lcyA9IGNoaWxkT3duZXJzLnNsaWNlKGRlZXBlc3RDb21tb24gKyAxKS5tYXAoZnVuY3Rpb24gKGluc3QpIHtcbiAgICAgICAgcmV0dXJuIGluc3QuZ2V0TmFtZSgpIHx8IFVOS05PV047XG4gICAgICB9KTtcbiAgICAgIHZhciBhbmNlc3Rvck93bmVyTmFtZXMgPSBhbmNlc3Rvck93bmVycy5zbGljZShkZWVwZXN0Q29tbW9uICsgMSkubWFwKGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgICAgIHJldHVybiBpbnN0LmdldE5hbWUoKSB8fCBVTktOT1dOO1xuICAgICAgfSk7XG4gICAgICB2YXIgb3duZXJJbmZvID0gW10uY29uY2F0KFxuICAgICAgLy8gSWYgdGhlIHBhcmVudCBhbmQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgYSBjb21tb24gb3duZXIgYW5jZXN0b3IsIHN0YXJ0XG4gICAgICAvLyB3aXRoIHRoYXQgLS0gb3RoZXJ3aXNlIHdlIGp1c3Qgc3RhcnQgd2l0aCB0aGUgcGFyZW50J3Mgb3duZXJzLlxuICAgICAgZGVlcGVzdENvbW1vbiAhPT0gLTEgPyBjaGlsZE93bmVyc1tkZWVwZXN0Q29tbW9uXS5nZXROYW1lKCkgfHwgVU5LTk9XTiA6IFtdLCBhbmNlc3Rvck93bmVyTmFtZXMsIGFuY2VzdG9yVGFnLFxuICAgICAgLy8gSWYgd2UncmUgd2FybmluZyBhYm91dCBhbiBpbnZhbGlkIChub24tcGFyZW50KSBhbmNlc3RyeSwgYWRkICcuLi4nXG4gICAgICBpbnZhbGlkQW5jZXN0b3IgPyBbJy4uLiddIDogW10sIGNoaWxkT3duZXJOYW1lcywgY2hpbGRUYWcpLmpvaW4oJyA+ICcpO1xuXG4gICAgICB2YXIgd2FybktleSA9ICEhaW52YWxpZFBhcmVudCArICd8JyArIGNoaWxkVGFnICsgJ3wnICsgYW5jZXN0b3JUYWcgKyAnfCcgKyBvd25lckluZm87XG4gICAgICBpZiAoZGlkV2Fyblt3YXJuS2V5XSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBkaWRXYXJuW3dhcm5LZXldID0gdHJ1ZTtcblxuICAgICAgdmFyIHRhZ0Rpc3BsYXlOYW1lID0gY2hpbGRUYWc7XG4gICAgICB2YXIgd2hpdGVzcGFjZUluZm8gPSAnJztcbiAgICAgIGlmIChjaGlsZFRhZyA9PT0gJyN0ZXh0Jykge1xuICAgICAgICBpZiAoL1xcUy8udGVzdChjaGlsZFRleHQpKSB7XG4gICAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnVGV4dCBub2Rlcyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnV2hpdGVzcGFjZSB0ZXh0IG5vZGVzJztcbiAgICAgICAgICB3aGl0ZXNwYWNlSW5mbyA9IFwiIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gXCIgKyAnZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnPCcgKyBjaGlsZFRhZyArICc+JztcbiAgICAgIH1cblxuICAgICAgaWYgKGludmFsaWRQYXJlbnQpIHtcbiAgICAgICAgdmFyIGluZm8gPSAnJztcbiAgICAgICAgaWYgKGFuY2VzdG9yVGFnID09PSAndGFibGUnICYmIGNoaWxkVGFnID09PSAndHInKSB7XG4gICAgICAgICAgaW5mbyArPSAnIEFkZCBhIDx0Ym9keT4gdG8geW91ciBjb2RlIHRvIG1hdGNoIHRoZSBET00gdHJlZSBnZW5lcmF0ZWQgYnkgJyArICd0aGUgYnJvd3Nlci4nO1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAndmFsaWRhdGVET01OZXN0aW5nKC4uLik6ICVzIGNhbm5vdCBhcHBlYXIgYXMgYSBjaGlsZCBvZiA8JXM+LiVzICcgKyAnU2VlICVzLiVzJywgdGFnRGlzcGxheU5hbWUsIGFuY2VzdG9yVGFnLCB3aGl0ZXNwYWNlSW5mbywgb3duZXJJbmZvLCBpbmZvKSA6IHZvaWQgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAndmFsaWRhdGVET01OZXN0aW5nKC4uLik6ICVzIGNhbm5vdCBhcHBlYXIgYXMgYSBkZXNjZW5kYW50IG9mICcgKyAnPCVzPi4gU2VlICVzLicsIHRhZ0Rpc3BsYXlOYW1lLCBhbmNlc3RvclRhZywgb3duZXJJbmZvKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nLnVwZGF0ZWRBbmNlc3RvckluZm8gPSB1cGRhdGVkQW5jZXN0b3JJbmZvO1xuXG4gIC8vIEZvciB0ZXN0aW5nXG4gIHZhbGlkYXRlRE9NTmVzdGluZy5pc1RhZ1ZhbGlkSW5Db250ZXh0ID0gZnVuY3Rpb24gKHRhZywgYW5jZXN0b3JJbmZvKSB7XG4gICAgYW5jZXN0b3JJbmZvID0gYW5jZXN0b3JJbmZvIHx8IGVtcHR5QW5jZXN0b3JJbmZvO1xuICAgIHZhciBwYXJlbnRJbmZvID0gYW5jZXN0b3JJbmZvLmN1cnJlbnQ7XG4gICAgdmFyIHBhcmVudFRhZyA9IHBhcmVudEluZm8gJiYgcGFyZW50SW5mby50YWc7XG4gICAgcmV0dXJuIGlzVGFnVmFsaWRXaXRoUGFyZW50KHRhZywgcGFyZW50VGFnKSAmJiAhZmluZEludmFsaWRBbmNlc3RvckZvclRhZyh0YWcsIGFuY2VzdG9ySW5mbyk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmFsaWRhdGVET01OZXN0aW5nO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvdmFsaWRhdGVET01OZXN0aW5nLmpzXG4vLyBtb2R1bGUgaWQgPSA2MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///60\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n current: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo = function (oldInfo, tag, instance) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n case '#document':\n return tag === 'html';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n /**\n * Given a ReactCompositeComponent instance, return a list of its recursive\n * owners, starting at the root and ending with the instance itself.\n */\n var findOwnerStack = function (instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\n stack.push(instance);\n } while (instance = instance._currentElement._owner);\n stack.reverse();\n return stack;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var problematic = invalidParent || invalidAncestor;\n\n if (problematic) {\n var ancestorTag = problematic.tag;\n var ancestorInstance = problematic.instance;\n\n var childOwner = childInstance && childInstance._currentElement._owner;\n var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n var childOwners = findOwnerStack(childOwner);\n var ancestorOwners = findOwnerStack(ancestorOwner);\n\n var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n var i;\n\n var deepestCommon = -1;\n for (i = 0; i < minStackLen; i++) {\n if (childOwners[i] === ancestorOwners[i]) {\n deepestCommon = i;\n } else {\n break;\n }\n }\n\n var UNKNOWN = '(unknown)';\n var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ownerInfo = [].concat(\n // If the parent and child instances have a common owner ancestor, start\n // with that -- otherwise we just start with the parent's owners.\n deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n // If we're warning about an invalid (non-parent) ancestry, add '...'\n invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi92YWxpZGF0ZURPTU5lc3RpbmcuanM/NDgxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE1LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIGVtcHR5RnVuY3Rpb24gPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eUZ1bmN0aW9uJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIHZhbGlkYXRlRE9NTmVzdGluZyA9IGVtcHR5RnVuY3Rpb247XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIFRoaXMgdmFsaWRhdGlvbiBjb2RlIHdhcyB3cml0dGVuIGJhc2VkIG9uIHRoZSBIVE1MNSBwYXJzaW5nIHNwZWM6XG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLXNjb3BlXG4gIC8vXG4gIC8vIE5vdGU6IHRoaXMgZG9lcyBub3QgY2F0Y2ggYWxsIGludmFsaWQgbmVzdGluZywgbm9yIGRvZXMgaXQgdHJ5IHRvIChhcyBpdCdzXG4gIC8vIG5vdCBjbGVhciB3aGF0IHByYWN0aWNhbCBiZW5lZml0IGRvaW5nIHNvIHByb3ZpZGVzKTsgaW5zdGVhZCwgd2Ugd2FybiBvbmx5XG4gIC8vIGZvciBjYXNlcyB3aGVyZSB0aGUgcGFyc2VyIHdpbGwgZ2l2ZSBhIHBhcnNlIHRyZWUgZGlmZmVyaW5nIGZyb20gd2hhdCBSZWFjdFxuICAvLyBpbnRlbmRlZC4gRm9yIGV4YW1wbGUsIDxiPjxkaXY+PC9kaXY+PC9iPiBpcyBpbnZhbGlkIGJ1dCB3ZSBkb24ndCB3YXJuXG4gIC8vIGJlY2F1c2UgaXQgc3RpbGwgcGFyc2VzIGNvcnJlY3RseTsgd2UgZG8gd2FybiBmb3Igb3RoZXIgY2FzZXMgbGlrZSBuZXN0ZWRcbiAgLy8gPHA+IHRhZ3Mgd2hlcmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2Vjb25kIGVsZW1lbnQgaW1wbGljaXRseSBjbG9zZXMgdGhlXG4gIC8vIGZpcnN0LCBjYXVzaW5nIGEgY29uZnVzaW5nIG1lc3MuXG5cbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjc3BlY2lhbFxuICB2YXIgc3BlY2lhbFRhZ3MgPSBbJ2FkZHJlc3MnLCAnYXBwbGV0JywgJ2FyZWEnLCAnYXJ0aWNsZScsICdhc2lkZScsICdiYXNlJywgJ2Jhc2Vmb250JywgJ2Jnc291bmQnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYXB0aW9uJywgJ2NlbnRlcicsICdjb2wnLCAnY29sZ3JvdXAnLCAnZGQnLCAnZGV0YWlscycsICdkaXInLCAnZGl2JywgJ2RsJywgJ2R0JywgJ2VtYmVkJywgJ2ZpZWxkc2V0JywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2Zvb3RlcicsICdmb3JtJywgJ2ZyYW1lJywgJ2ZyYW1lc2V0JywgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWQnLCAnaGVhZGVyJywgJ2hncm91cCcsICdocicsICdodG1sJywgJ2lmcmFtZScsICdpbWcnLCAnaW5wdXQnLCAnaXNpbmRleCcsICdsaScsICdsaW5rJywgJ2xpc3RpbmcnLCAnbWFpbicsICdtYXJxdWVlJywgJ21lbnUnLCAnbWVudWl0ZW0nLCAnbWV0YScsICduYXYnLCAnbm9lbWJlZCcsICdub2ZyYW1lcycsICdub3NjcmlwdCcsICdvYmplY3QnLCAnb2wnLCAncCcsICdwYXJhbScsICdwbGFpbnRleHQnLCAncHJlJywgJ3NjcmlwdCcsICdzZWN0aW9uJywgJ3NlbGVjdCcsICdzb3VyY2UnLCAnc3R5bGUnLCAnc3VtbWFyeScsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0ZW1wbGF0ZScsICd0ZXh0YXJlYScsICd0Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0aXRsZScsICd0cicsICd0cmFjaycsICd1bCcsICd3YnInLCAneG1wJ107XG5cbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGVcbiAgdmFyIGluU2NvcGVUYWdzID0gWydhcHBsZXQnLCAnY2FwdGlvbicsICdodG1sJywgJ3RhYmxlJywgJ3RkJywgJ3RoJywgJ21hcnF1ZWUnLCAnb2JqZWN0JywgJ3RlbXBsYXRlJyxcblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNodG1sLWludGVncmF0aW9uLXBvaW50XG4gIC8vIFRPRE86IERpc3Rpbmd1aXNoIGJ5IG5hbWVzcGFjZSBoZXJlIC0tIGZvciA8dGl0bGU+LCBpbmNsdWRpbmcgaXQgaGVyZVxuICAvLyBlcnJzIG9uIHRoZSBzaWRlIG9mIGZld2VyIHdhcm5pbmdzXG4gICdmb3JlaWduT2JqZWN0JywgJ2Rlc2MnLCAndGl0bGUnXTtcblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGVcbiAgdmFyIGJ1dHRvblNjb3BlVGFncyA9IGluU2NvcGVUYWdzLmNvbmNhdChbJ2J1dHRvbiddKTtcblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzXG4gIHZhciBpbXBsaWVkRW5kVGFncyA9IFsnZGQnLCAnZHQnLCAnbGknLCAnb3B0aW9uJywgJ29wdGdyb3VwJywgJ3AnLCAncnAnLCAncnQnXTtcblxuICB2YXIgZW1wdHlBbmNlc3RvckluZm8gPSB7XG4gICAgY3VycmVudDogbnVsbCxcblxuICAgIGZvcm1UYWc6IG51bGwsXG4gICAgYVRhZ0luU2NvcGU6IG51bGwsXG4gICAgYnV0dG9uVGFnSW5TY29wZTogbnVsbCxcbiAgICBub2JyVGFnSW5TY29wZTogbnVsbCxcbiAgICBwVGFnSW5CdXR0b25TY29wZTogbnVsbCxcblxuICAgIGxpc3RJdGVtVGFnQXV0b2Nsb3Npbmc6IG51bGwsXG4gICAgZGxJdGVtVGFnQXV0b2Nsb3Npbmc6IG51bGxcbiAgfTtcblxuICB2YXIgdXBkYXRlZEFuY2VzdG9ySW5mbyA9IGZ1bmN0aW9uIChvbGRJbmZvLCB0YWcsIGluc3RhbmNlKSB7XG4gICAgdmFyIGFuY2VzdG9ySW5mbyA9IF9hc3NpZ24oe30sIG9sZEluZm8gfHwgZW1wdHlBbmNlc3RvckluZm8pO1xuICAgIHZhciBpbmZvID0geyB0YWc6IHRhZywgaW5zdGFuY2U6IGluc3RhbmNlIH07XG5cbiAgICBpZiAoaW5TY29wZVRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSkge1xuICAgICAgYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChidXR0b25TY29wZVRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSkge1xuICAgICAgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBTZWUgcnVsZXMgZm9yICdsaScsICdkZCcsICdkdCcgc3RhcnQgdGFncyBpblxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcbiAgICBpZiAoc3BlY2lhbFRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSAmJiB0YWcgIT09ICdhZGRyZXNzJyAmJiB0YWcgIT09ICdkaXYnICYmIHRhZyAhPT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZyA9IG51bGw7XG4gICAgICBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsO1xuICAgIH1cblxuICAgIGFuY2VzdG9ySW5mby5jdXJyZW50ID0gaW5mbztcblxuICAgIGlmICh0YWcgPT09ICdmb3JtJykge1xuICAgICAgYW5jZXN0b3JJbmZvLmZvcm1UYWcgPSBpbmZvO1xuICAgIH1cbiAgICBpZiAodGFnID09PSAnYScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdidXR0b24nKSB7XG4gICAgICBhbmNlc3RvckluZm8uYnV0dG9uVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdub2JyJykge1xuICAgICAgYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlID0gaW5mbztcbiAgICB9XG4gICAgaWYgKHRhZyA9PT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBpbmZvO1xuICAgIH1cbiAgICBpZiAodGFnID09PSAnbGknKSB7XG4gICAgICBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZyA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdkZCcgfHwgdGFnID09PSAnZHQnKSB7XG4gICAgICBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBpbmZvO1xuICAgIH1cblxuICAgIHJldHVybiBhbmNlc3RvckluZm87XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlclxuICAgKi9cbiAgdmFyIGlzVGFnVmFsaWRXaXRoUGFyZW50ID0gZnVuY3Rpb24gKHRhZywgcGFyZW50VGFnKSB7XG4gICAgLy8gRmlyc3QsIGxldCdzIGNoZWNrIGlmIHdlJ3JlIGluIGFuIHVudXN1YWwgcGFyc2luZyBtb2RlLi4uXG4gICAgc3dpdGNoIChwYXJlbnRUYWcpIHtcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdFxuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnb3B0Z3JvdXAnIHx8IHRhZyA9PT0gJyN0ZXh0JztcbiAgICAgIGNhc2UgJ29wdGdyb3VwJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnI3RleHQnO1xuICAgICAgLy8gU3RyaWN0bHkgc3BlYWtpbmcsIHNlZWluZyBhbiA8b3B0aW9uPiBkb2Vzbid0IG1lYW4gd2UncmUgaW4gYSA8c2VsZWN0PlxuICAgICAgLy8gYnV0XG4gICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnI3RleHQnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGRcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNhcHRpb25cbiAgICAgIC8vIE5vIHNwZWNpYWwgYmVoYXZpb3Igc2luY2UgdGhlc2UgcnVsZXMgZmFsbCBiYWNrIHRvIFwiaW4gYm9keVwiIG1vZGUgZm9yXG4gICAgICAvLyBhbGwgZXhjZXB0IHNwZWNpYWwgdGFibGUgbm9kZXMgd2hpY2ggY2F1c2UgYmFkIHBhcnNpbmcgYmVoYXZpb3IgYW55d2F5LlxuXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50clxuICAgICAgY2FzZSAndHInOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndGgnIHx8IHRhZyA9PT0gJ3RkJyB8fCB0YWcgPT09ICdzdHlsZScgfHwgdGFnID09PSAnc2NyaXB0JyB8fCB0YWcgPT09ICd0ZW1wbGF0ZSc7XG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50Ym9keVxuICAgICAgY2FzZSAndGJvZHknOlxuICAgICAgY2FzZSAndGhlYWQnOlxuICAgICAgY2FzZSAndGZvb3QnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndHInIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNvbGdyb3VwXG4gICAgICBjYXNlICdjb2xncm91cCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdjb2wnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRhYmxlXG4gICAgICBjYXNlICd0YWJsZSc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdjYXB0aW9uJyB8fCB0YWcgPT09ICdjb2xncm91cCcgfHwgdGFnID09PSAndGJvZHknIHx8IHRhZyA9PT0gJ3Rmb290JyB8fCB0YWcgPT09ICd0aGVhZCcgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluaGVhZFxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdiYXNlJyB8fCB0YWcgPT09ICdiYXNlZm9udCcgfHwgdGFnID09PSAnYmdzb3VuZCcgfHwgdGFnID09PSAnbGluaycgfHwgdGFnID09PSAnbWV0YScgfHwgdGFnID09PSAndGl0bGUnIHx8IHRhZyA9PT0gJ25vc2NyaXB0JyB8fCB0YWcgPT09ICdub2ZyYW1lcycgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudFxuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdoZWFkJyB8fCB0YWcgPT09ICdib2R5JztcbiAgICAgIGNhc2UgJyNkb2N1bWVudCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdodG1sJztcbiAgICB9XG5cbiAgICAvLyBQcm9iYWJseSBpbiB0aGUgXCJpbiBib2R5XCIgcGFyc2luZyBtb2RlLCBzbyB3ZSBvdXRsYXcgb25seSB0YWcgY29tYm9zXG4gICAgLy8gd2hlcmUgdGhlIHBhcnNpbmcgcnVsZXMgY2F1c2UgaW1wbGljaXQgb3BlbnMgb3IgY2xvc2VzIHRvIGJlIGFkZGVkLlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcbiAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgY2FzZSAnaDEnOlxuICAgICAgY2FzZSAnaDInOlxuICAgICAgY2FzZSAnaDMnOlxuICAgICAgY2FzZSAnaDQnOlxuICAgICAgY2FzZSAnaDUnOlxuICAgICAgY2FzZSAnaDYnOlxuICAgICAgICByZXR1cm4gcGFyZW50VGFnICE9PSAnaDEnICYmIHBhcmVudFRhZyAhPT0gJ2gyJyAmJiBwYXJlbnRUYWcgIT09ICdoMycgJiYgcGFyZW50VGFnICE9PSAnaDQnICYmIHBhcmVudFRhZyAhPT0gJ2g1JyAmJiBwYXJlbnRUYWcgIT09ICdoNic7XG5cbiAgICAgIGNhc2UgJ3JwJzpcbiAgICAgIGNhc2UgJ3J0JzpcbiAgICAgICAgcmV0dXJuIGltcGxpZWRFbmRUYWdzLmluZGV4T2YocGFyZW50VGFnKSA9PT0gLTE7XG5cbiAgICAgIGNhc2UgJ2JvZHknOlxuICAgICAgY2FzZSAnY2FwdGlvbic6XG4gICAgICBjYXNlICdjb2wnOlxuICAgICAgY2FzZSAnY29sZ3JvdXAnOlxuICAgICAgY2FzZSAnZnJhbWUnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgIGNhc2UgJ3Rib2R5JzpcbiAgICAgIGNhc2UgJ3RkJzpcbiAgICAgIGNhc2UgJ3Rmb290JzpcbiAgICAgIGNhc2UgJ3RoJzpcbiAgICAgIGNhc2UgJ3RoZWFkJzpcbiAgICAgIGNhc2UgJ3RyJzpcbiAgICAgICAgLy8gVGhlc2UgdGFncyBhcmUgb25seSB2YWxpZCB3aXRoIGEgZmV3IHBhcmVudHMgdGhhdCBoYXZlIHNwZWNpYWwgY2hpbGRcbiAgICAgICAgLy8gcGFyc2luZyBydWxlcyAtLSBpZiB3ZSdyZSBkb3duIGhlcmUsIHRoZW4gbm9uZSBvZiB0aG9zZSBtYXRjaGVkIGFuZFxuICAgICAgICAvLyBzbyB3ZSBhbGxvdyBpdCBvbmx5IGlmIHdlIGRvbid0IGtub3cgd2hhdCB0aGUgcGFyZW50IGlzLCBhcyBhbGwgb3RoZXJcbiAgICAgICAgLy8gY2FzZXMgYXJlIGludmFsaWQuXG4gICAgICAgIHJldHVybiBwYXJlbnRUYWcgPT0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyXG4gICAqL1xuICB2YXIgZmluZEludmFsaWRBbmNlc3RvckZvclRhZyA9IGZ1bmN0aW9uICh0YWcsIGFuY2VzdG9ySW5mbykge1xuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlICdhZGRyZXNzJzpcbiAgICAgIGNhc2UgJ2FydGljbGUnOlxuICAgICAgY2FzZSAnYXNpZGUnOlxuICAgICAgY2FzZSAnYmxvY2txdW90ZSc6XG4gICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgY2FzZSAnZGlyJzpcbiAgICAgIGNhc2UgJ2Rpdic6XG4gICAgICBjYXNlICdkbCc6XG4gICAgICBjYXNlICdmaWVsZHNldCc6XG4gICAgICBjYXNlICdmaWdjYXB0aW9uJzpcbiAgICAgIGNhc2UgJ2ZpZ3VyZSc6XG4gICAgICBjYXNlICdmb290ZXInOlxuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgIGNhc2UgJ2hncm91cCc6XG4gICAgICBjYXNlICdtYWluJzpcbiAgICAgIGNhc2UgJ21lbnUnOlxuICAgICAgY2FzZSAnbmF2JzpcbiAgICAgIGNhc2UgJ29sJzpcbiAgICAgIGNhc2UgJ3AnOlxuICAgICAgY2FzZSAnc2VjdGlvbic6XG4gICAgICBjYXNlICdzdW1tYXJ5JzpcbiAgICAgIGNhc2UgJ3VsJzpcbiAgICAgIGNhc2UgJ3ByZSc6XG4gICAgICBjYXNlICdsaXN0aW5nJzpcbiAgICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgIGNhc2UgJ2hyJzpcbiAgICAgIGNhc2UgJ3htcCc6XG4gICAgICBjYXNlICdoMSc6XG4gICAgICBjYXNlICdoMic6XG4gICAgICBjYXNlICdoMyc6XG4gICAgICBjYXNlICdoNCc6XG4gICAgICBjYXNlICdoNSc6XG4gICAgICBjYXNlICdoNic6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmZvcm1UYWcgfHwgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlO1xuXG4gICAgICBjYXNlICdsaSc6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZztcblxuICAgICAgY2FzZSAnZGQnOlxuICAgICAgY2FzZSAnZHQnOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nO1xuXG4gICAgICBjYXNlICdidXR0b24nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgICAvLyBTcGVjIHNheXMgc29tZXRoaW5nIGFib3V0IHN0b3JpbmcgYSBsaXN0IG9mIG1hcmtlcnMsIGJ1dCBpdCBzb3VuZHNcbiAgICAgICAgLy8gZXF1aXZhbGVudCB0byB0aGlzIGNoZWNrLlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlO1xuXG4gICAgICBjYXNlICdub2JyJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICAvKipcbiAgICogR2l2ZW4gYSBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCBpbnN0YW5jZSwgcmV0dXJuIGEgbGlzdCBvZiBpdHMgcmVjdXJzaXZlXG4gICAqIG93bmVycywgc3RhcnRpbmcgYXQgdGhlIHJvb3QgYW5kIGVuZGluZyB3aXRoIHRoZSBpbnN0YW5jZSBpdHNlbGYuXG4gICAqL1xuICB2YXIgZmluZE93bmVyU3RhY2sgPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgdmFyIHN0YWNrID0gW107XG4gICAgZG8ge1xuICAgICAgc3RhY2sucHVzaChpbnN0YW5jZSk7XG4gICAgfSB3aGlsZSAoaW5zdGFuY2UgPSBpbnN0YW5jZS5fY3VycmVudEVsZW1lbnQuX293bmVyKTtcbiAgICBzdGFjay5yZXZlcnNlKCk7XG4gICAgcmV0dXJuIHN0YWNrO1xuICB9O1xuXG4gIHZhciBkaWRXYXJuID0ge307XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nID0gZnVuY3Rpb24gKGNoaWxkVGFnLCBjaGlsZFRleHQsIGNoaWxkSW5zdGFuY2UsIGFuY2VzdG9ySW5mbykge1xuICAgIGFuY2VzdG9ySW5mbyA9IGFuY2VzdG9ySW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbztcbiAgICB2YXIgcGFyZW50SW5mbyA9IGFuY2VzdG9ySW5mby5jdXJyZW50O1xuICAgIHZhciBwYXJlbnRUYWcgPSBwYXJlbnRJbmZvICYmIHBhcmVudEluZm8udGFnO1xuXG4gICAgaWYgKGNoaWxkVGV4dCAhPSBudWxsKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhjaGlsZFRhZyA9PSBudWxsLCAndmFsaWRhdGVET01OZXN0aW5nOiB3aGVuIGNoaWxkVGV4dCBpcyBwYXNzZWQsIGNoaWxkVGFnIHNob3VsZCBiZSBudWxsJykgOiB2b2lkIDA7XG4gICAgICBjaGlsZFRhZyA9ICcjdGV4dCc7XG4gICAgfVxuXG4gICAgdmFyIGludmFsaWRQYXJlbnQgPSBpc1RhZ1ZhbGlkV2l0aFBhcmVudChjaGlsZFRhZywgcGFyZW50VGFnKSA/IG51bGwgOiBwYXJlbnRJbmZvO1xuICAgIHZhciBpbnZhbGlkQW5jZXN0b3IgPSBpbnZhbGlkUGFyZW50ID8gbnVsbCA6IGZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcoY2hpbGRUYWcsIGFuY2VzdG9ySW5mbyk7XG4gICAgdmFyIHByb2JsZW1hdGljID0gaW52YWxpZFBhcmVudCB8fCBpbnZhbGlkQW5jZXN0b3I7XG5cbiAgICBpZiAocHJvYmxlbWF0aWMpIHtcbiAgICAgIHZhciBhbmNlc3RvclRhZyA9IHByb2JsZW1hdGljLnRhZztcbiAgICAgIHZhciBhbmNlc3Rvckluc3RhbmNlID0gcHJvYmxlbWF0aWMuaW5zdGFuY2U7XG5cbiAgICAgIHZhciBjaGlsZE93bmVyID0gY2hpbGRJbnN0YW5jZSAmJiBjaGlsZEluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgYW5jZXN0b3JPd25lciA9IGFuY2VzdG9ySW5zdGFuY2UgJiYgYW5jZXN0b3JJbnN0YW5jZS5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuXG4gICAgICB2YXIgY2hpbGRPd25lcnMgPSBmaW5kT3duZXJTdGFjayhjaGlsZE93bmVyKTtcbiAgICAgIHZhciBhbmNlc3Rvck93bmVycyA9IGZpbmRPd25lclN0YWNrKGFuY2VzdG9yT3duZXIpO1xuXG4gICAgICB2YXIgbWluU3RhY2tMZW4gPSBNYXRoLm1pbihjaGlsZE93bmVycy5sZW5ndGgsIGFuY2VzdG9yT3duZXJzLmxlbmd0aCk7XG4gICAgICB2YXIgaTtcblxuICAgICAgdmFyIGRlZXBlc3RDb21tb24gPSAtMTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBtaW5TdGFja0xlbjsgaSsrKSB7XG4gICAgICAgIGlmIChjaGlsZE93bmVyc1tpXSA9PT0gYW5jZXN0b3JPd25lcnNbaV0pIHtcbiAgICAgICAgICBkZWVwZXN0Q29tbW9uID0gaTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgVU5LTk9XTiA9ICcodW5rbm93biknO1xuICAgICAgdmFyIGNoaWxkT3duZXJOYW1lcyA9IGNoaWxkT3duZXJzLnNsaWNlKGRlZXBlc3RDb21tb24gKyAxKS5tYXAoZnVuY3Rpb24gKGluc3QpIHtcbiAgICAgICAgcmV0dXJuIGluc3QuZ2V0TmFtZSgpIHx8IFVOS05PV047XG4gICAgICB9KTtcbiAgICAgIHZhciBhbmNlc3Rvck93bmVyTmFtZXMgPSBhbmNlc3Rvck93bmVycy5zbGljZShkZWVwZXN0Q29tbW9uICsgMSkubWFwKGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgICAgIHJldHVybiBpbnN0LmdldE5hbWUoKSB8fCBVTktOT1dOO1xuICAgICAgfSk7XG4gICAgICB2YXIgb3duZXJJbmZvID0gW10uY29uY2F0KFxuICAgICAgLy8gSWYgdGhlIHBhcmVudCBhbmQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgYSBjb21tb24gb3duZXIgYW5jZXN0b3IsIHN0YXJ0XG4gICAgICAvLyB3aXRoIHRoYXQgLS0gb3RoZXJ3aXNlIHdlIGp1c3Qgc3RhcnQgd2l0aCB0aGUgcGFyZW50J3Mgb3duZXJzLlxuICAgICAgZGVlcGVzdENvbW1vbiAhPT0gLTEgPyBjaGlsZE93bmVyc1tkZWVwZXN0Q29tbW9uXS5nZXROYW1lKCkgfHwgVU5LTk9XTiA6IFtdLCBhbmNlc3Rvck93bmVyTmFtZXMsIGFuY2VzdG9yVGFnLFxuICAgICAgLy8gSWYgd2UncmUgd2FybmluZyBhYm91dCBhbiBpbnZhbGlkIChub24tcGFyZW50KSBhbmNlc3RyeSwgYWRkICcuLi4nXG4gICAgICBpbnZhbGlkQW5jZXN0b3IgPyBbJy4uLiddIDogW10sIGNoaWxkT3duZXJOYW1lcywgY2hpbGRUYWcpLmpvaW4oJyA+ICcpO1xuXG4gICAgICB2YXIgd2FybktleSA9ICEhaW52YWxpZFBhcmVudCArICd8JyArIGNoaWxkVGFnICsgJ3wnICsgYW5jZXN0b3JUYWcgKyAnfCcgKyBvd25lckluZm87XG4gICAgICBpZiAoZGlkV2Fyblt3YXJuS2V5XSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBkaWRXYXJuW3dhcm5LZXldID0gdHJ1ZTtcblxuICAgICAgdmFyIHRhZ0Rpc3BsYXlOYW1lID0gY2hpbGRUYWc7XG4gICAgICB2YXIgd2hpdGVzcGFjZUluZm8gPSAnJztcbiAgICAgIGlmIChjaGlsZFRhZyA9PT0gJyN0ZXh0Jykge1xuICAgICAgICBpZiAoL1xcUy8udGVzdChjaGlsZFRleHQpKSB7XG4gICAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnVGV4dCBub2Rlcyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnV2hpdGVzcGFjZSB0ZXh0IG5vZGVzJztcbiAgICAgICAgICB3aGl0ZXNwYWNlSW5mbyA9IFwiIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gXCIgKyAnZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnPCcgKyBjaGlsZFRhZyArICc+JztcbiAgICAgIH1cblxuICAgICAgaWYgKGludmFsaWRQYXJlbnQpIHtcbiAgICAgICAgdmFyIGluZm8gPSAnJztcbiAgICAgICAgaWYgKGFuY2VzdG9yVGFnID09PSAndGFibGUnICYmIGNoaWxkVGFnID09PSAndHInKSB7XG4gICAgICAgICAgaW5mbyArPSAnIEFkZCBhIDx0Ym9keT4gdG8geW91ciBjb2RlIHRvIG1hdGNoIHRoZSBET00gdHJlZSBnZW5lcmF0ZWQgYnkgJyArICd0aGUgYnJvd3Nlci4nO1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAndmFsaWRhdGVET01OZXN0aW5nKC4uLik6ICVzIGNhbm5vdCBhcHBlYXIgYXMgYSBjaGlsZCBvZiA8JXM+LiVzICcgKyAnU2VlICVzLiVzJywgdGFnRGlzcGxheU5hbWUsIGFuY2VzdG9yVGFnLCB3aGl0ZXNwYWNlSW5mbywgb3duZXJJbmZvLCBpbmZvKSA6IHZvaWQgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAndmFsaWRhdGVET01OZXN0aW5nKC4uLik6ICVzIGNhbm5vdCBhcHBlYXIgYXMgYSBkZXNjZW5kYW50IG9mICcgKyAnPCVzPi4gU2VlICVzLicsIHRhZ0Rpc3BsYXlOYW1lLCBhbmNlc3RvclRhZywgb3duZXJJbmZvKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nLnVwZGF0ZWRBbmNlc3RvckluZm8gPSB1cGRhdGVkQW5jZXN0b3JJbmZvO1xuXG4gIC8vIEZvciB0ZXN0aW5nXG4gIHZhbGlkYXRlRE9NTmVzdGluZy5pc1RhZ1ZhbGlkSW5Db250ZXh0ID0gZnVuY3Rpb24gKHRhZywgYW5jZXN0b3JJbmZvKSB7XG4gICAgYW5jZXN0b3JJbmZvID0gYW5jZXN0b3JJbmZvIHx8IGVtcHR5QW5jZXN0b3JJbmZvO1xuICAgIHZhciBwYXJlbnRJbmZvID0gYW5jZXN0b3JJbmZvLmN1cnJlbnQ7XG4gICAgdmFyIHBhcmVudFRhZyA9IHBhcmVudEluZm8gJiYgcGFyZW50SW5mby50YWc7XG4gICAgcmV0dXJuIGlzVGFnVmFsaWRXaXRoUGFyZW50KHRhZywgcGFyZW50VGFnKSAmJiAhZmluZEludmFsaWRBbmNlc3RvckZvclRhZyh0YWcsIGFuY2VzdG9ySW5mbyk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmFsaWRhdGVET01OZXN0aW5nO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvdmFsaWRhdGVET01OZXN0aW5nLmpzXG4vLyBtb2R1bGUgaWQgPSA2MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///61\n"); /***/ }), -/* 61 */ +/* 62 */ /*!********************************************************!*\ !*** ./node_modules/react-dom/lib/getEventCharCode.js ***! \********************************************************/ @@ -804,10 +816,10 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudENoYXJDb2RlLmpzP2Y5YzAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBgY2hhckNvZGVgIHJlcHJlc2VudHMgdGhlIGFjdHVhbCBcImNoYXJhY3RlciBjb2RlXCIgYW5kIGlzIHNhZmUgdG8gdXNlIHdpdGhcbiAqIGBTdHJpbmcuZnJvbUNoYXJDb2RlYC4gQXMgc3VjaCwgb25seSBrZXlzIHRoYXQgY29ycmVzcG9uZCB0byBwcmludGFibGVcbiAqIGNoYXJhY3RlcnMgcHJvZHVjZSBhIHZhbGlkIGBjaGFyQ29kZWAsIHRoZSBvbmx5IGV4Y2VwdGlvbiB0byB0aGlzIGlzIEVudGVyLlxuICogVGhlIFRhYi1rZXkgaXMgY29uc2lkZXJlZCBub24tcHJpbnRhYmxlIGFuZCBkb2VzIG5vdCBoYXZlIGEgYGNoYXJDb2RlYCxcbiAqIHByZXN1bWFibHkgYmVjYXVzZSBpdCBkb2VzIG5vdCBwcm9kdWNlIGEgdGFiLWNoYXJhY3RlciBpbiBicm93c2Vycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IE5vcm1hbGl6ZWQgYGNoYXJDb2RlYCBwcm9wZXJ0eS5cbiAqL1xuXG5mdW5jdGlvbiBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBjaGFyQ29kZTtcbiAgdmFyIGtleUNvZGUgPSBuYXRpdmVFdmVudC5rZXlDb2RlO1xuXG4gIGlmICgnY2hhckNvZGUnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgY2hhckNvZGUgPSBuYXRpdmVFdmVudC5jaGFyQ29kZTtcblxuICAgIC8vIEZGIGRvZXMgbm90IHNldCBgY2hhckNvZGVgIGZvciB0aGUgRW50ZXIta2V5LCBjaGVjayBhZ2FpbnN0IGBrZXlDb2RlYC5cbiAgICBpZiAoY2hhckNvZGUgPT09IDAgJiYga2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgIGNoYXJDb2RlID0gMTM7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIElFOCBkb2VzIG5vdCBpbXBsZW1lbnQgYGNoYXJDb2RlYCwgYnV0IGBrZXlDb2RlYCBoYXMgdGhlIGNvcnJlY3QgdmFsdWUuXG4gICAgY2hhckNvZGUgPSBrZXlDb2RlO1xuICB9XG5cbiAgLy8gU29tZSBub24tcHJpbnRhYmxlIGtleXMgYXJlIHJlcG9ydGVkIGluIGBjaGFyQ29kZWAvYGtleUNvZGVgLCBkaXNjYXJkIHRoZW0uXG4gIC8vIE11c3Qgbm90IGRpc2NhcmQgdGhlIChub24tKXByaW50YWJsZSBFbnRlci1rZXkuXG4gIGlmIChjaGFyQ29kZSA+PSAzMiB8fCBjaGFyQ29kZSA9PT0gMTMpIHtcbiAgICByZXR1cm4gY2hhckNvZGU7XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRFdmVudENoYXJDb2RlO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZ2V0RXZlbnRDaGFyQ29kZS5qc1xuLy8gbW9kdWxlIGlkID0gNjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///61\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9nZXRFdmVudENoYXJDb2RlLmpzP2Y5YzAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBgY2hhckNvZGVgIHJlcHJlc2VudHMgdGhlIGFjdHVhbCBcImNoYXJhY3RlciBjb2RlXCIgYW5kIGlzIHNhZmUgdG8gdXNlIHdpdGhcbiAqIGBTdHJpbmcuZnJvbUNoYXJDb2RlYC4gQXMgc3VjaCwgb25seSBrZXlzIHRoYXQgY29ycmVzcG9uZCB0byBwcmludGFibGVcbiAqIGNoYXJhY3RlcnMgcHJvZHVjZSBhIHZhbGlkIGBjaGFyQ29kZWAsIHRoZSBvbmx5IGV4Y2VwdGlvbiB0byB0aGlzIGlzIEVudGVyLlxuICogVGhlIFRhYi1rZXkgaXMgY29uc2lkZXJlZCBub24tcHJpbnRhYmxlIGFuZCBkb2VzIG5vdCBoYXZlIGEgYGNoYXJDb2RlYCxcbiAqIHByZXN1bWFibHkgYmVjYXVzZSBpdCBkb2VzIG5vdCBwcm9kdWNlIGEgdGFiLWNoYXJhY3RlciBpbiBicm93c2Vycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IE5vcm1hbGl6ZWQgYGNoYXJDb2RlYCBwcm9wZXJ0eS5cbiAqL1xuXG5mdW5jdGlvbiBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBjaGFyQ29kZTtcbiAgdmFyIGtleUNvZGUgPSBuYXRpdmVFdmVudC5rZXlDb2RlO1xuXG4gIGlmICgnY2hhckNvZGUnIGluIG5hdGl2ZUV2ZW50KSB7XG4gICAgY2hhckNvZGUgPSBuYXRpdmVFdmVudC5jaGFyQ29kZTtcblxuICAgIC8vIEZGIGRvZXMgbm90IHNldCBgY2hhckNvZGVgIGZvciB0aGUgRW50ZXIta2V5LCBjaGVjayBhZ2FpbnN0IGBrZXlDb2RlYC5cbiAgICBpZiAoY2hhckNvZGUgPT09IDAgJiYga2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgIGNoYXJDb2RlID0gMTM7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIElFOCBkb2VzIG5vdCBpbXBsZW1lbnQgYGNoYXJDb2RlYCwgYnV0IGBrZXlDb2RlYCBoYXMgdGhlIGNvcnJlY3QgdmFsdWUuXG4gICAgY2hhckNvZGUgPSBrZXlDb2RlO1xuICB9XG5cbiAgLy8gU29tZSBub24tcHJpbnRhYmxlIGtleXMgYXJlIHJlcG9ydGVkIGluIGBjaGFyQ29kZWAvYGtleUNvZGVgLCBkaXNjYXJkIHRoZW0uXG4gIC8vIE11c3Qgbm90IGRpc2NhcmQgdGhlIChub24tKXByaW50YWJsZSBFbnRlci1rZXkuXG4gIGlmIChjaGFyQ29kZSA+PSAzMiB8fCBjaGFyQ29kZSA9PT0gMTMpIHtcbiAgICByZXR1cm4gY2hhckNvZGU7XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRFdmVudENoYXJDb2RlO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZ2V0RXZlbnRDaGFyQ29kZS5qc1xuLy8gbW9kdWxlIGlkID0gNjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///62\n"); /***/ }), -/* 62 */ +/* 63 */ /*!******************************************************************!*\ !*** ./node_modules/apollo-client/transport/networkInterface.js ***! \******************************************************************/ @@ -816,10 +828,10 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"c\"] = printRequest;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BaseNetworkInterface; });\n/* unused harmony export HTTPFetchNetworkInterface */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = createNetworkInterface;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__ = __webpack_require__(/*! whatwg-fetch */ 106);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__ = __webpack_require__(/*! graphql/language/printer */ 42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_graphql_language_printer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__ = __webpack_require__(/*! ../queries/queryTransform */ 31);\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nfunction printRequest(request) {\n return __assign({}, request, { query: Object(__WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__[\"print\"])(request.query) });\n}\nvar BaseNetworkInterface = (function () {\n function BaseNetworkInterface(uri, opts) {\n if (opts === void 0) { opts = {}; }\n if (!uri) {\n throw new Error('A remote endpoint is required for a network layer');\n }\n if (typeof uri !== 'string') {\n throw new Error('Remote endpoint must be a string');\n }\n this._uri = uri;\n this._opts = __assign({}, opts);\n this._middlewares = [];\n this._afterwares = [];\n }\n BaseNetworkInterface.prototype.query = function (request) {\n return new Promise(function (resolve, reject) {\n reject(new Error('BaseNetworkInterface should not be used directly'));\n });\n };\n return BaseNetworkInterface;\n}());\n\nvar HTTPFetchNetworkInterface = (function (_super) {\n __extends(HTTPFetchNetworkInterface, _super);\n function HTTPFetchNetworkInterface() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HTTPFetchNetworkInterface.prototype.applyMiddlewares = function (requestAndOptions) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var request = requestAndOptions.request, options = requestAndOptions.options;\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyMiddleware.apply(scope, [{ request: request, options: options }, next]);\n }\n }\n else {\n resolve({\n request: request,\n options: options,\n });\n }\n };\n next();\n };\n queue(_this._middlewares.slice(), _this);\n });\n };\n HTTPFetchNetworkInterface.prototype.applyAfterwares = function (_a) {\n var _this = this;\n var response = _a.response, options = _a.options;\n return new Promise(function (resolve, reject) {\n var responseObject = { response: response, options: options };\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyAfterware.apply(scope, [responseObject, next]);\n }\n }\n else {\n resolve(responseObject);\n }\n };\n next();\n };\n queue(_this._afterwares.slice(), _this);\n });\n };\n HTTPFetchNetworkInterface.prototype.fetchFromRemoteEndpoint = function (_a) {\n var request = _a.request, options = _a.options;\n return fetch(this._uri, __assign({}, this._opts, { body: JSON.stringify(printRequest(request)), method: 'POST' }, options, { headers: __assign({ Accept: '*/*', 'Content-Type': 'application/json' }, options.headers) }));\n };\n HTTPFetchNetworkInterface.prototype.query = function (request) {\n var _this = this;\n var options = __assign({}, this._opts);\n return this.applyMiddlewares({\n request: request,\n options: options,\n })\n .then(function (rao) {\n if (rao.request.query) {\n rao.request.query = Object(__WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__[\"b\" /* removeConnectionDirectiveFromDocument */])(rao.request.query);\n }\n return rao;\n })\n .then(function (rao) { return _this.fetchFromRemoteEndpoint.call(_this, rao); })\n .then(function (response) {\n return _this.applyAfterwares({\n response: response,\n options: options,\n });\n })\n .then(function (_a) {\n var response = _a.response;\n var httpResponse = response;\n return httpResponse.json().catch(function (error) {\n var httpError = new Error(\"Network request failed with status \" + response.status + \" - \\\"\" + response.statusText + \"\\\"\");\n httpError.response = httpResponse;\n httpError.parseError = error;\n throw httpError;\n });\n })\n .then(function (payload) {\n if (!payload.hasOwnProperty('data') &&\n !payload.hasOwnProperty('errors')) {\n throw new Error(\"Server response was missing for query '\" + request.debugName + \"'.\");\n }\n else {\n return payload;\n }\n });\n };\n HTTPFetchNetworkInterface.prototype.use = function (middlewares) {\n var _this = this;\n middlewares.map(function (middleware) {\n if (typeof middleware.applyMiddleware === 'function') {\n _this._middlewares.push(middleware);\n }\n else {\n throw new Error('Middleware must implement the applyMiddleware function');\n }\n });\n return this;\n };\n HTTPFetchNetworkInterface.prototype.useAfter = function (afterwares) {\n var _this = this;\n afterwares.map(function (afterware) {\n if (typeof afterware.applyAfterware === 'function') {\n _this._afterwares.push(afterware);\n }\n else {\n throw new Error('Afterware must implement the applyAfterware function');\n }\n });\n return this;\n };\n return HTTPFetchNetworkInterface;\n}(BaseNetworkInterface));\n\nfunction createNetworkInterface(uriOrInterfaceOpts, secondArgOpts) {\n if (secondArgOpts === void 0) { secondArgOpts = {}; }\n if (!uriOrInterfaceOpts) {\n throw new Error('You must pass an options argument to createNetworkInterface.');\n }\n var uri;\n var opts;\n if (typeof uriOrInterfaceOpts === 'string') {\n console.warn(\"Passing the URI as the first argument to createNetworkInterface is deprecated as of Apollo Client 0.5. Please pass it as the \\\"uri\\\" property of the network interface options.\");\n opts = secondArgOpts.opts;\n uri = uriOrInterfaceOpts;\n }\n else {\n opts = uriOrInterfaceOpts.opts;\n uri = uriOrInterfaceOpts.uri;\n }\n return new HTTPFetchNetworkInterface(uri, opts);\n}\n//# sourceMappingURL=networkInterface.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC90cmFuc3BvcnQvbmV0d29ya0ludGVyZmFjZS5qcz8xMWJhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgJ3doYXR3Zy1mZXRjaCc7XG5pbXBvcnQgeyBwcmludCB9IGZyb20gJ2dyYXBocWwvbGFuZ3VhZ2UvcHJpbnRlcic7XG5pbXBvcnQgeyByZW1vdmVDb25uZWN0aW9uRGlyZWN0aXZlRnJvbURvY3VtZW50IH0gZnJvbSAnLi4vcXVlcmllcy9xdWVyeVRyYW5zZm9ybSc7XG5leHBvcnQgZnVuY3Rpb24gcHJpbnRSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICByZXR1cm4gX19hc3NpZ24oe30sIHJlcXVlc3QsIHsgcXVlcnk6IHByaW50KHJlcXVlc3QucXVlcnkpIH0pO1xufVxudmFyIEJhc2VOZXR3b3JrSW50ZXJmYWNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBCYXNlTmV0d29ya0ludGVyZmFjZSh1cmksIG9wdHMpIHtcbiAgICAgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgeyBvcHRzID0ge307IH1cbiAgICAgICAgaWYgKCF1cmkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSByZW1vdGUgZW5kcG9pbnQgaXMgcmVxdWlyZWQgZm9yIGEgbmV0d29yayBsYXllcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdXJpICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZW1vdGUgZW5kcG9pbnQgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VyaSA9IHVyaTtcbiAgICAgICAgdGhpcy5fb3B0cyA9IF9fYXNzaWduKHt9LCBvcHRzKTtcbiAgICAgICAgdGhpcy5fbWlkZGxld2FyZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJ3YXJlcyA9IFtdO1xuICAgIH1cbiAgICBCYXNlTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQmFzZU5ldHdvcmtJbnRlcmZhY2Ugc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5JykpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBCYXNlTmV0d29ya0ludGVyZmFjZTtcbn0oKSk7XG5leHBvcnQgeyBCYXNlTmV0d29ya0ludGVyZmFjZSB9O1xudmFyIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhIVFRQRmV0Y2hOZXR3b3JrSW50ZXJmYWNlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUuYXBwbHlNaWRkbGV3YXJlcyA9IGZ1bmN0aW9uIChyZXF1ZXN0QW5kT3B0aW9ucykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSByZXF1ZXN0QW5kT3B0aW9ucy5yZXF1ZXN0LCBvcHRpb25zID0gcmVxdWVzdEFuZE9wdGlvbnMub3B0aW9ucztcbiAgICAgICAgICAgIHZhciBxdWV1ZSA9IGZ1bmN0aW9uIChmdW5jcywgc2NvcGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZ1bmNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmID0gZnVuY3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5hcHBseU1pZGRsZXdhcmUuYXBwbHkoc2NvcGUsIFt7IHJlcXVlc3Q6IHJlcXVlc3QsIG9wdGlvbnM6IG9wdGlvbnMgfSwgbmV4dF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDogcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBxdWV1ZShfdGhpcy5fbWlkZGxld2FyZXMuc2xpY2UoKSwgX3RoaXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLmFwcGx5QWZ0ZXJ3YXJlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcmVzcG9uc2UgPSBfYS5yZXNwb25zZSwgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgcmVzcG9uc2VPYmplY3QgPSB7IHJlc3BvbnNlOiByZXNwb25zZSwgb3B0aW9uczogb3B0aW9ucyB9O1xuICAgICAgICAgICAgdmFyIHF1ZXVlID0gZnVuY3Rpb24gKGZ1bmNzLCBzY29wZSkge1xuICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZnVuY3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSBmdW5jcy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLmFwcGx5QWZ0ZXJ3YXJlLmFwcGx5KHNjb3BlLCBbcmVzcG9uc2VPYmplY3QsIG5leHRdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2VPYmplY3QpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcXVldWUoX3RoaXMuX2FmdGVyd2FyZXMuc2xpY2UoKSwgX3RoaXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLmZldGNoRnJvbVJlbW90ZUVuZHBvaW50ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gX2EucmVxdWVzdCwgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBmZXRjaCh0aGlzLl91cmksIF9fYXNzaWduKHt9LCB0aGlzLl9vcHRzLCB7IGJvZHk6IEpTT04uc3RyaW5naWZ5KHByaW50UmVxdWVzdChyZXF1ZXN0KSksIG1ldGhvZDogJ1BPU1QnIH0sIG9wdGlvbnMsIHsgaGVhZGVyczogX19hc3NpZ24oeyBBY2NlcHQ6ICcqLyonLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sIG9wdGlvbnMuaGVhZGVycykgfSkpO1xuICAgIH07XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgb3B0aW9ucyA9IF9fYXNzaWduKHt9LCB0aGlzLl9vcHRzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlNaWRkbGV3YXJlcyh7XG4gICAgICAgICAgICByZXF1ZXN0OiByZXF1ZXN0LFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyYW8pIHtcbiAgICAgICAgICAgIGlmIChyYW8ucmVxdWVzdC5xdWVyeSkge1xuICAgICAgICAgICAgICAgIHJhby5yZXF1ZXN0LnF1ZXJ5ID0gcmVtb3ZlQ29ubmVjdGlvbkRpcmVjdGl2ZUZyb21Eb2N1bWVudChyYW8ucmVxdWVzdC5xdWVyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmFvO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJhbykgeyByZXR1cm4gX3RoaXMuZmV0Y2hGcm9tUmVtb3RlRW5kcG9pbnQuY2FsbChfdGhpcywgcmFvKTsgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLmFwcGx5QWZ0ZXJ3YXJlcyh7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gX2EucmVzcG9uc2U7XG4gICAgICAgICAgICB2YXIgaHR0cFJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICAgICAgICByZXR1cm4gaHR0cFJlc3BvbnNlLmpzb24oKS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB2YXIgaHR0cEVycm9yID0gbmV3IEVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBcIiArIHJlc3BvbnNlLnN0YXR1cyArIFwiIC0gXFxcIlwiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCArIFwiXFxcIlwiKTtcbiAgICAgICAgICAgICAgICBodHRwRXJyb3IucmVzcG9uc2UgPSBodHRwUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgaHR0cEVycm9yLnBhcnNlRXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyBodHRwRXJyb3I7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChwYXlsb2FkKSB7XG4gICAgICAgICAgICBpZiAoIXBheWxvYWQuaGFzT3duUHJvcGVydHkoJ2RhdGEnKSAmJlxuICAgICAgICAgICAgICAgICFwYXlsb2FkLmhhc093blByb3BlcnR5KCdlcnJvcnMnKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlcnZlciByZXNwb25zZSB3YXMgbWlzc2luZyBmb3IgcXVlcnkgJ1wiICsgcmVxdWVzdC5kZWJ1Z05hbWUgKyBcIicuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUudXNlID0gZnVuY3Rpb24gKG1pZGRsZXdhcmVzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIG1pZGRsZXdhcmVzLm1hcChmdW5jdGlvbiAobWlkZGxld2FyZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBtaWRkbGV3YXJlLmFwcGx5TWlkZGxld2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9taWRkbGV3YXJlcy5wdXNoKG1pZGRsZXdhcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaWRkbGV3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseU1pZGRsZXdhcmUgZnVuY3Rpb24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUudXNlQWZ0ZXIgPSBmdW5jdGlvbiAoYWZ0ZXJ3YXJlcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBhZnRlcndhcmVzLm1hcChmdW5jdGlvbiAoYWZ0ZXJ3YXJlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGFmdGVyd2FyZS5hcHBseUFmdGVyd2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9hZnRlcndhcmVzLnB1c2goYWZ0ZXJ3YXJlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQWZ0ZXJ3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseUFmdGVyd2FyZSBmdW5jdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXR1cm4gSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZTtcbn0oQmFzZU5ldHdvcmtJbnRlcmZhY2UpKTtcbmV4cG9ydCB7IEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UgfTtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlKHVyaU9ySW50ZXJmYWNlT3B0cywgc2Vjb25kQXJnT3B0cykge1xuICAgIGlmIChzZWNvbmRBcmdPcHRzID09PSB2b2lkIDApIHsgc2Vjb25kQXJnT3B0cyA9IHt9OyB9XG4gICAgaWYgKCF1cmlPckludGVyZmFjZU9wdHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwYXNzIGFuIG9wdGlvbnMgYXJndW1lbnQgdG8gY3JlYXRlTmV0d29ya0ludGVyZmFjZS4nKTtcbiAgICB9XG4gICAgdmFyIHVyaTtcbiAgICB2YXIgb3B0cztcbiAgICBpZiAodHlwZW9mIHVyaU9ySW50ZXJmYWNlT3B0cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiUGFzc2luZyB0aGUgVVJJIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlIGlzIGRlcHJlY2F0ZWQgYXMgb2YgQXBvbGxvIENsaWVudCAwLjUuIFBsZWFzZSBwYXNzIGl0IGFzIHRoZSBcXFwidXJpXFxcIiBwcm9wZXJ0eSBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2Ugb3B0aW9ucy5cIik7XG4gICAgICAgIG9wdHMgPSBzZWNvbmRBcmdPcHRzLm9wdHM7XG4gICAgICAgIHVyaSA9IHVyaU9ySW50ZXJmYWNlT3B0cztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG9wdHMgPSB1cmlPckludGVyZmFjZU9wdHMub3B0cztcbiAgICAgICAgdXJpID0gdXJpT3JJbnRlcmZhY2VPcHRzLnVyaTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBIVFRQRmV0Y2hOZXR3b3JrSW50ZXJmYWNlKHVyaSwgb3B0cyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1uZXR3b3JrSW50ZXJmYWNlLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvdHJhbnNwb3J0L25ldHdvcmtJbnRlcmZhY2UuanNcbi8vIG1vZHVsZSBpZCA9IDYyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///62\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"c\"] = printRequest;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return BaseNetworkInterface; });\n/* unused harmony export HTTPFetchNetworkInterface */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = createNetworkInterface;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__ = __webpack_require__(/*! whatwg-fetch */ 106);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__ = __webpack_require__(/*! graphql/language/printer */ 42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_graphql_language_printer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__ = __webpack_require__(/*! ../queries/queryTransform */ 31);\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nfunction printRequest(request) {\n return __assign({}, request, { query: Object(__WEBPACK_IMPORTED_MODULE_1_graphql_language_printer__[\"print\"])(request.query) });\n}\nvar BaseNetworkInterface = (function () {\n function BaseNetworkInterface(uri, opts) {\n if (opts === void 0) { opts = {}; }\n if (!uri) {\n throw new Error('A remote endpoint is required for a network layer');\n }\n if (typeof uri !== 'string') {\n throw new Error('Remote endpoint must be a string');\n }\n this._uri = uri;\n this._opts = __assign({}, opts);\n this._middlewares = [];\n this._afterwares = [];\n }\n BaseNetworkInterface.prototype.query = function (request) {\n return new Promise(function (resolve, reject) {\n reject(new Error('BaseNetworkInterface should not be used directly'));\n });\n };\n return BaseNetworkInterface;\n}());\n\nvar HTTPFetchNetworkInterface = (function (_super) {\n __extends(HTTPFetchNetworkInterface, _super);\n function HTTPFetchNetworkInterface() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HTTPFetchNetworkInterface.prototype.applyMiddlewares = function (requestAndOptions) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var request = requestAndOptions.request, options = requestAndOptions.options;\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyMiddleware.apply(scope, [{ request: request, options: options }, next]);\n }\n }\n else {\n resolve({\n request: request,\n options: options,\n });\n }\n };\n next();\n };\n queue(_this._middlewares.slice(), _this);\n });\n };\n HTTPFetchNetworkInterface.prototype.applyAfterwares = function (_a) {\n var _this = this;\n var response = _a.response, options = _a.options;\n return new Promise(function (resolve, reject) {\n var responseObject = { response: response, options: options };\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyAfterware.apply(scope, [responseObject, next]);\n }\n }\n else {\n resolve(responseObject);\n }\n };\n next();\n };\n queue(_this._afterwares.slice(), _this);\n });\n };\n HTTPFetchNetworkInterface.prototype.fetchFromRemoteEndpoint = function (_a) {\n var request = _a.request, options = _a.options;\n return fetch(this._uri, __assign({}, this._opts, { body: JSON.stringify(printRequest(request)), method: 'POST' }, options, { headers: __assign({ Accept: '*/*', 'Content-Type': 'application/json' }, options.headers) }));\n };\n HTTPFetchNetworkInterface.prototype.query = function (request) {\n var _this = this;\n var options = __assign({}, this._opts);\n return this.applyMiddlewares({\n request: request,\n options: options,\n })\n .then(function (rao) {\n if (rao.request.query) {\n rao.request.query = Object(__WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__[\"b\" /* removeConnectionDirectiveFromDocument */])(rao.request.query);\n }\n return rao;\n })\n .then(function (rao) { return _this.fetchFromRemoteEndpoint.call(_this, rao); })\n .then(function (response) {\n return _this.applyAfterwares({\n response: response,\n options: options,\n });\n })\n .then(function (_a) {\n var response = _a.response;\n var httpResponse = response;\n return httpResponse.json().catch(function (error) {\n var httpError = new Error(\"Network request failed with status \" + response.status + \" - \\\"\" + response.statusText + \"\\\"\");\n httpError.response = httpResponse;\n httpError.parseError = error;\n throw httpError;\n });\n })\n .then(function (payload) {\n if (!payload.hasOwnProperty('data') &&\n !payload.hasOwnProperty('errors')) {\n throw new Error(\"Server response was missing for query '\" + request.debugName + \"'.\");\n }\n else {\n return payload;\n }\n });\n };\n HTTPFetchNetworkInterface.prototype.use = function (middlewares) {\n var _this = this;\n middlewares.map(function (middleware) {\n if (typeof middleware.applyMiddleware === 'function') {\n _this._middlewares.push(middleware);\n }\n else {\n throw new Error('Middleware must implement the applyMiddleware function');\n }\n });\n return this;\n };\n HTTPFetchNetworkInterface.prototype.useAfter = function (afterwares) {\n var _this = this;\n afterwares.map(function (afterware) {\n if (typeof afterware.applyAfterware === 'function') {\n _this._afterwares.push(afterware);\n }\n else {\n throw new Error('Afterware must implement the applyAfterware function');\n }\n });\n return this;\n };\n return HTTPFetchNetworkInterface;\n}(BaseNetworkInterface));\n\nfunction createNetworkInterface(uriOrInterfaceOpts, secondArgOpts) {\n if (secondArgOpts === void 0) { secondArgOpts = {}; }\n if (!uriOrInterfaceOpts) {\n throw new Error('You must pass an options argument to createNetworkInterface.');\n }\n var uri;\n var opts;\n if (typeof uriOrInterfaceOpts === 'string') {\n console.warn(\"Passing the URI as the first argument to createNetworkInterface is deprecated as of Apollo Client 0.5. Please pass it as the \\\"uri\\\" property of the network interface options.\");\n opts = secondArgOpts.opts;\n uri = uriOrInterfaceOpts;\n }\n else {\n opts = uriOrInterfaceOpts.opts;\n uri = uriOrInterfaceOpts.uri;\n }\n return new HTTPFetchNetworkInterface(uri, opts);\n}\n//# sourceMappingURL=networkInterface.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC90cmFuc3BvcnQvbmV0d29ya0ludGVyZmFjZS5qcz8xMWJhIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgJ3doYXR3Zy1mZXRjaCc7XG5pbXBvcnQgeyBwcmludCB9IGZyb20gJ2dyYXBocWwvbGFuZ3VhZ2UvcHJpbnRlcic7XG5pbXBvcnQgeyByZW1vdmVDb25uZWN0aW9uRGlyZWN0aXZlRnJvbURvY3VtZW50IH0gZnJvbSAnLi4vcXVlcmllcy9xdWVyeVRyYW5zZm9ybSc7XG5leHBvcnQgZnVuY3Rpb24gcHJpbnRSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICByZXR1cm4gX19hc3NpZ24oe30sIHJlcXVlc3QsIHsgcXVlcnk6IHByaW50KHJlcXVlc3QucXVlcnkpIH0pO1xufVxudmFyIEJhc2VOZXR3b3JrSW50ZXJmYWNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBCYXNlTmV0d29ya0ludGVyZmFjZSh1cmksIG9wdHMpIHtcbiAgICAgICAgaWYgKG9wdHMgPT09IHZvaWQgMCkgeyBvcHRzID0ge307IH1cbiAgICAgICAgaWYgKCF1cmkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSByZW1vdGUgZW5kcG9pbnQgaXMgcmVxdWlyZWQgZm9yIGEgbmV0d29yayBsYXllcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdXJpICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZW1vdGUgZW5kcG9pbnQgbXVzdCBiZSBhIHN0cmluZycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VyaSA9IHVyaTtcbiAgICAgICAgdGhpcy5fb3B0cyA9IF9fYXNzaWduKHt9LCBvcHRzKTtcbiAgICAgICAgdGhpcy5fbWlkZGxld2FyZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJ3YXJlcyA9IFtdO1xuICAgIH1cbiAgICBCYXNlTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQmFzZU5ldHdvcmtJbnRlcmZhY2Ugc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5JykpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBCYXNlTmV0d29ya0ludGVyZmFjZTtcbn0oKSk7XG5leHBvcnQgeyBCYXNlTmV0d29ya0ludGVyZmFjZSB9O1xudmFyIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhIVFRQRmV0Y2hOZXR3b3JrSW50ZXJmYWNlLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUuYXBwbHlNaWRkbGV3YXJlcyA9IGZ1bmN0aW9uIChyZXF1ZXN0QW5kT3B0aW9ucykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSByZXF1ZXN0QW5kT3B0aW9ucy5yZXF1ZXN0LCBvcHRpb25zID0gcmVxdWVzdEFuZE9wdGlvbnMub3B0aW9ucztcbiAgICAgICAgICAgIHZhciBxdWV1ZSA9IGZ1bmN0aW9uIChmdW5jcywgc2NvcGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZ1bmNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmID0gZnVuY3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5hcHBseU1pZGRsZXdhcmUuYXBwbHkoc2NvcGUsIFt7IHJlcXVlc3Q6IHJlcXVlc3QsIG9wdGlvbnM6IG9wdGlvbnMgfSwgbmV4dF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdDogcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBxdWV1ZShfdGhpcy5fbWlkZGxld2FyZXMuc2xpY2UoKSwgX3RoaXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLmFwcGx5QWZ0ZXJ3YXJlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcmVzcG9uc2UgPSBfYS5yZXNwb25zZSwgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgcmVzcG9uc2VPYmplY3QgPSB7IHJlc3BvbnNlOiByZXNwb25zZSwgb3B0aW9uczogb3B0aW9ucyB9O1xuICAgICAgICAgICAgdmFyIHF1ZXVlID0gZnVuY3Rpb24gKGZ1bmNzLCBzY29wZSkge1xuICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZnVuY3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGYgPSBmdW5jcy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLmFwcGx5QWZ0ZXJ3YXJlLmFwcGx5KHNjb3BlLCBbcmVzcG9uc2VPYmplY3QsIG5leHRdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2VPYmplY3QpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcXVldWUoX3RoaXMuX2FmdGVyd2FyZXMuc2xpY2UoKSwgX3RoaXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLmZldGNoRnJvbVJlbW90ZUVuZHBvaW50ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gX2EucmVxdWVzdCwgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBmZXRjaCh0aGlzLl91cmksIF9fYXNzaWduKHt9LCB0aGlzLl9vcHRzLCB7IGJvZHk6IEpTT04uc3RyaW5naWZ5KHByaW50UmVxdWVzdChyZXF1ZXN0KSksIG1ldGhvZDogJ1BPU1QnIH0sIG9wdGlvbnMsIHsgaGVhZGVyczogX19hc3NpZ24oeyBBY2NlcHQ6ICcqLyonLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sIG9wdGlvbnMuaGVhZGVycykgfSkpO1xuICAgIH07XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgb3B0aW9ucyA9IF9fYXNzaWduKHt9LCB0aGlzLl9vcHRzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlNaWRkbGV3YXJlcyh7XG4gICAgICAgICAgICByZXF1ZXN0OiByZXF1ZXN0LFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyYW8pIHtcbiAgICAgICAgICAgIGlmIChyYW8ucmVxdWVzdC5xdWVyeSkge1xuICAgICAgICAgICAgICAgIHJhby5yZXF1ZXN0LnF1ZXJ5ID0gcmVtb3ZlQ29ubmVjdGlvbkRpcmVjdGl2ZUZyb21Eb2N1bWVudChyYW8ucmVxdWVzdC5xdWVyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmFvO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJhbykgeyByZXR1cm4gX3RoaXMuZmV0Y2hGcm9tUmVtb3RlRW5kcG9pbnQuY2FsbChfdGhpcywgcmFvKTsgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLmFwcGx5QWZ0ZXJ3YXJlcyh7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gX2EucmVzcG9uc2U7XG4gICAgICAgICAgICB2YXIgaHR0cFJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICAgICAgICByZXR1cm4gaHR0cFJlc3BvbnNlLmpzb24oKS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB2YXIgaHR0cEVycm9yID0gbmV3IEVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBcIiArIHJlc3BvbnNlLnN0YXR1cyArIFwiIC0gXFxcIlwiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCArIFwiXFxcIlwiKTtcbiAgICAgICAgICAgICAgICBodHRwRXJyb3IucmVzcG9uc2UgPSBodHRwUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgaHR0cEVycm9yLnBhcnNlRXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyBodHRwRXJyb3I7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChwYXlsb2FkKSB7XG4gICAgICAgICAgICBpZiAoIXBheWxvYWQuaGFzT3duUHJvcGVydHkoJ2RhdGEnKSAmJlxuICAgICAgICAgICAgICAgICFwYXlsb2FkLmhhc093blByb3BlcnR5KCdlcnJvcnMnKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlcnZlciByZXNwb25zZSB3YXMgbWlzc2luZyBmb3IgcXVlcnkgJ1wiICsgcmVxdWVzdC5kZWJ1Z05hbWUgKyBcIicuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUudXNlID0gZnVuY3Rpb24gKG1pZGRsZXdhcmVzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIG1pZGRsZXdhcmVzLm1hcChmdW5jdGlvbiAobWlkZGxld2FyZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBtaWRkbGV3YXJlLmFwcGx5TWlkZGxld2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9taWRkbGV3YXJlcy5wdXNoKG1pZGRsZXdhcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaWRkbGV3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseU1pZGRsZXdhcmUgZnVuY3Rpb24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUudXNlQWZ0ZXIgPSBmdW5jdGlvbiAoYWZ0ZXJ3YXJlcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBhZnRlcndhcmVzLm1hcChmdW5jdGlvbiAoYWZ0ZXJ3YXJlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGFmdGVyd2FyZS5hcHBseUFmdGVyd2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9hZnRlcndhcmVzLnB1c2goYWZ0ZXJ3YXJlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQWZ0ZXJ3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseUFmdGVyd2FyZSBmdW5jdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICByZXR1cm4gSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZTtcbn0oQmFzZU5ldHdvcmtJbnRlcmZhY2UpKTtcbmV4cG9ydCB7IEhUVFBGZXRjaE5ldHdvcmtJbnRlcmZhY2UgfTtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlKHVyaU9ySW50ZXJmYWNlT3B0cywgc2Vjb25kQXJnT3B0cykge1xuICAgIGlmIChzZWNvbmRBcmdPcHRzID09PSB2b2lkIDApIHsgc2Vjb25kQXJnT3B0cyA9IHt9OyB9XG4gICAgaWYgKCF1cmlPckludGVyZmFjZU9wdHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwYXNzIGFuIG9wdGlvbnMgYXJndW1lbnQgdG8gY3JlYXRlTmV0d29ya0ludGVyZmFjZS4nKTtcbiAgICB9XG4gICAgdmFyIHVyaTtcbiAgICB2YXIgb3B0cztcbiAgICBpZiAodHlwZW9mIHVyaU9ySW50ZXJmYWNlT3B0cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiUGFzc2luZyB0aGUgVVJJIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlIGlzIGRlcHJlY2F0ZWQgYXMgb2YgQXBvbGxvIENsaWVudCAwLjUuIFBsZWFzZSBwYXNzIGl0IGFzIHRoZSBcXFwidXJpXFxcIiBwcm9wZXJ0eSBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2Ugb3B0aW9ucy5cIik7XG4gICAgICAgIG9wdHMgPSBzZWNvbmRBcmdPcHRzLm9wdHM7XG4gICAgICAgIHVyaSA9IHVyaU9ySW50ZXJmYWNlT3B0cztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG9wdHMgPSB1cmlPckludGVyZmFjZU9wdHMub3B0cztcbiAgICAgICAgdXJpID0gdXJpT3JJbnRlcmZhY2VPcHRzLnVyaTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBIVFRQRmV0Y2hOZXR3b3JrSW50ZXJmYWNlKHVyaSwgb3B0cyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1uZXR3b3JrSW50ZXJmYWNlLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvdHJhbnNwb3J0L25ldHdvcmtJbnRlcmZhY2UuanNcbi8vIG1vZHVsZSBpZCA9IDYzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///63\n"); /***/ }), -/* 63 */ +/* 64 */ /*!*********************************************!*\ !*** ./node_modules/apollo-client/store.js ***! \*********************************************/ @@ -828,10 +840,10 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"c\"] = printRequest /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = createApolloReducer;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = createApolloStore;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux__ = __webpack_require__(/*! redux */ 251);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__data_store__ = __webpack_require__(/*! ./data/store */ 114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__optimistic_data_store__ = __webpack_require__(/*! ./optimistic-data/store */ 116);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_2__optimistic_data_store__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__actions__ = __webpack_require__(/*! ./actions */ 64);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\nvar crashReporter = function (store) { return function (next) { return function (action) {\n try {\n return next(action);\n }\n catch (err) {\n console.error('Caught an exception!', err);\n console.error(err.stack);\n throw err;\n }\n}; }; };\nvar createReducerError = function (error, action) {\n var reducerError = { error: error };\n if (Object(__WEBPACK_IMPORTED_MODULE_3__actions__[\"d\" /* isQueryResultAction */])(action)) {\n reducerError.queryId = action.queryId;\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_3__actions__[\"f\" /* isSubscriptionResultAction */])(action)) {\n reducerError.subscriptionId = action.subscriptionId;\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_3__actions__[\"c\" /* isMutationResultAction */])(action)) {\n reducerError.mutationId = action.mutationId;\n }\n return reducerError;\n};\nfunction createApolloReducer(config) {\n return function apolloReducer(state, action) {\n if (state === void 0) { state = {}; }\n try {\n var newState = {\n data: Object(__WEBPACK_IMPORTED_MODULE_1__data_store__[\"a\" /* data */])(state.data, action, config),\n optimistic: [],\n reducerError: null,\n };\n newState.optimistic = Object(__WEBPACK_IMPORTED_MODULE_2__optimistic_data_store__[\"b\" /* optimistic */])(state.optimistic, action, newState, config);\n if (state.data === newState.data &&\n state.optimistic === newState.optimistic &&\n state.reducerError === newState.reducerError) {\n return state;\n }\n return newState;\n }\n catch (reducerError) {\n return __assign({}, state, { reducerError: createReducerError(reducerError, action) });\n }\n };\n}\nfunction createApolloStore(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.reduxRootKey, reduxRootKey = _c === void 0 ? 'apollo' : _c, initialState = _b.initialState, _d = _b.config, config = _d === void 0 ? {} : _d, _e = _b.reportCrashes, reportCrashes = _e === void 0 ? true : _e, logger = _b.logger;\n var enhancers = [];\n var middlewares = [];\n if (reportCrashes) {\n middlewares.push(crashReporter);\n }\n if (logger) {\n middlewares.push(logger);\n }\n if (middlewares.length > 0) {\n enhancers.push(__WEBPACK_IMPORTED_MODULE_0_redux__[\"a\" /* applyMiddleware */].apply(void 0, middlewares));\n }\n if (typeof window !== 'undefined') {\n var anyWindow = window;\n if (anyWindow.devToolsExtension) {\n enhancers.push(anyWindow.devToolsExtension());\n }\n }\n var compose = __WEBPACK_IMPORTED_MODULE_0_redux__[\"c\" /* compose */];\n if (initialState &&\n initialState[reduxRootKey] &&\n initialState[reduxRootKey]['queries']) {\n throw new Error('Apollo initial state may not contain queries, only data');\n }\n if (initialState &&\n initialState[reduxRootKey] &&\n initialState[reduxRootKey]['mutations']) {\n throw new Error('Apollo initial state may not contain mutations, only data');\n }\n return Object(__WEBPACK_IMPORTED_MODULE_0_redux__[\"d\" /* createStore */])(Object(__WEBPACK_IMPORTED_MODULE_0_redux__[\"b\" /* combineReducers */])((_f = {}, _f[reduxRootKey] = createApolloReducer(config), _f)), initialState, compose.apply(void 0, enhancers));\n var _f;\n}\n//# sourceMappingURL=store.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9zdG9yZS5qcz80ZDRlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgY3JlYXRlU3RvcmUsIGNvbXBvc2UgYXMgcmVkdXhDb21wb3NlLCBhcHBseU1pZGRsZXdhcmUsIGNvbWJpbmVSZWR1Y2VycywgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBkYXRhIH0gZnJvbSAnLi9kYXRhL3N0b3JlJztcbmltcG9ydCB7IG9wdGltaXN0aWMsIGdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHMsIH0gZnJvbSAnLi9vcHRpbWlzdGljLWRhdGEvc3RvcmUnO1xuZXhwb3J0IHsgZ2V0RGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0cyB9O1xuaW1wb3J0IHsgaXNRdWVyeVJlc3VsdEFjdGlvbiwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbiwgaXNTdWJzY3JpcHRpb25SZXN1bHRBY3Rpb24sIH0gZnJvbSAnLi9hY3Rpb25zJztcbnZhciBjcmFzaFJlcG9ydGVyID0gZnVuY3Rpb24gKHN0b3JlKSB7IHJldHVybiBmdW5jdGlvbiAobmV4dCkgeyByZXR1cm4gZnVuY3Rpb24gKGFjdGlvbikge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignQ2F1Z2h0IGFuIGV4Y2VwdGlvbiEnLCBlcnIpO1xuICAgICAgICBjb25zb2xlLmVycm9yKGVyci5zdGFjayk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG59OyB9OyB9O1xudmFyIGNyZWF0ZVJlZHVjZXJFcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgYWN0aW9uKSB7XG4gICAgdmFyIHJlZHVjZXJFcnJvciA9IHsgZXJyb3I6IGVycm9yIH07XG4gICAgaWYgKGlzUXVlcnlSZXN1bHRBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICByZWR1Y2VyRXJyb3IucXVlcnlJZCA9IGFjdGlvbi5xdWVyeUlkO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1N1YnNjcmlwdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pKSB7XG4gICAgICAgIHJlZHVjZXJFcnJvci5zdWJzY3JpcHRpb25JZCA9IGFjdGlvbi5zdWJzY3JpcHRpb25JZDtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNNdXRhdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pKSB7XG4gICAgICAgIHJlZHVjZXJFcnJvci5tdXRhdGlvbklkID0gYWN0aW9uLm11dGF0aW9uSWQ7XG4gICAgfVxuICAgIHJldHVybiByZWR1Y2VyRXJyb3I7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFwb2xsb1JlZHVjZXIoY29uZmlnKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGFwb2xsb1JlZHVjZXIoc3RhdGUsIGFjdGlvbikge1xuICAgICAgICBpZiAoc3RhdGUgPT09IHZvaWQgMCkgeyBzdGF0ZSA9IHt9OyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YShzdGF0ZS5kYXRhLCBhY3Rpb24sIGNvbmZpZyksXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpYzogW10sXG4gICAgICAgICAgICAgICAgcmVkdWNlckVycm9yOiBudWxsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5ld1N0YXRlLm9wdGltaXN0aWMgPSBvcHRpbWlzdGljKHN0YXRlLm9wdGltaXN0aWMsIGFjdGlvbiwgbmV3U3RhdGUsIGNvbmZpZyk7XG4gICAgICAgICAgICBpZiAoc3RhdGUuZGF0YSA9PT0gbmV3U3RhdGUuZGF0YSAmJlxuICAgICAgICAgICAgICAgIHN0YXRlLm9wdGltaXN0aWMgPT09IG5ld1N0YXRlLm9wdGltaXN0aWMgJiZcbiAgICAgICAgICAgICAgICBzdGF0ZS5yZWR1Y2VyRXJyb3IgPT09IG5ld1N0YXRlLnJlZHVjZXJFcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAocmVkdWNlckVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oe30sIHN0YXRlLCB7IHJlZHVjZXJFcnJvcjogY3JlYXRlUmVkdWNlckVycm9yKHJlZHVjZXJFcnJvciwgYWN0aW9uKSB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBvbGxvU3RvcmUoX2EpIHtcbiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8ge30gOiBfYSwgX2MgPSBfYi5yZWR1eFJvb3RLZXksIHJlZHV4Um9vdEtleSA9IF9jID09PSB2b2lkIDAgPyAnYXBvbGxvJyA6IF9jLCBpbml0aWFsU3RhdGUgPSBfYi5pbml0aWFsU3RhdGUsIF9kID0gX2IuY29uZmlnLCBjb25maWcgPSBfZCA9PT0gdm9pZCAwID8ge30gOiBfZCwgX2UgPSBfYi5yZXBvcnRDcmFzaGVzLCByZXBvcnRDcmFzaGVzID0gX2UgPT09IHZvaWQgMCA/IHRydWUgOiBfZSwgbG9nZ2VyID0gX2IubG9nZ2VyO1xuICAgIHZhciBlbmhhbmNlcnMgPSBbXTtcbiAgICB2YXIgbWlkZGxld2FyZXMgPSBbXTtcbiAgICBpZiAocmVwb3J0Q3Jhc2hlcykge1xuICAgICAgICBtaWRkbGV3YXJlcy5wdXNoKGNyYXNoUmVwb3J0ZXIpO1xuICAgIH1cbiAgICBpZiAobG9nZ2VyKSB7XG4gICAgICAgIG1pZGRsZXdhcmVzLnB1c2gobG9nZ2VyKTtcbiAgICB9XG4gICAgaWYgKG1pZGRsZXdhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW5oYW5jZXJzLnB1c2goYXBwbHlNaWRkbGV3YXJlLmFwcGx5KHZvaWQgMCwgbWlkZGxld2FyZXMpKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhciBhbnlXaW5kb3cgPSB3aW5kb3c7XG4gICAgICAgIGlmIChhbnlXaW5kb3cuZGV2VG9vbHNFeHRlbnNpb24pIHtcbiAgICAgICAgICAgIGVuaGFuY2Vycy5wdXNoKGFueVdpbmRvdy5kZXZUb29sc0V4dGVuc2lvbigpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgY29tcG9zZSA9IHJlZHV4Q29tcG9zZTtcbiAgICBpZiAoaW5pdGlhbFN0YXRlICYmXG4gICAgICAgIGluaXRpYWxTdGF0ZVtyZWR1eFJvb3RLZXldICYmXG4gICAgICAgIGluaXRpYWxTdGF0ZVtyZWR1eFJvb3RLZXldWydxdWVyaWVzJ10pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcG9sbG8gaW5pdGlhbCBzdGF0ZSBtYXkgbm90IGNvbnRhaW4gcXVlcmllcywgb25seSBkYXRhJyk7XG4gICAgfVxuICAgIGlmIChpbml0aWFsU3RhdGUgJiZcbiAgICAgICAgaW5pdGlhbFN0YXRlW3JlZHV4Um9vdEtleV0gJiZcbiAgICAgICAgaW5pdGlhbFN0YXRlW3JlZHV4Um9vdEtleV1bJ211dGF0aW9ucyddKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXBvbGxvIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBjb250YWluIG11dGF0aW9ucywgb25seSBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVTdG9yZShjb21iaW5lUmVkdWNlcnMoKF9mID0ge30sIF9mW3JlZHV4Um9vdEtleV0gPSBjcmVhdGVBcG9sbG9SZWR1Y2VyKGNvbmZpZyksIF9mKSksIGluaXRpYWxTdGF0ZSwgY29tcG9zZS5hcHBseSh2b2lkIDAsIGVuaGFuY2VycykpO1xuICAgIHZhciBfZjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0b3JlLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvc3RvcmUuanNcbi8vIG1vZHVsZSBpZCA9IDYzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///63\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = createApolloReducer;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = createApolloStore;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux__ = __webpack_require__(/*! redux */ 251);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__data_store__ = __webpack_require__(/*! ./data/store */ 114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__optimistic_data_store__ = __webpack_require__(/*! ./optimistic-data/store */ 116);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return __WEBPACK_IMPORTED_MODULE_2__optimistic_data_store__[\"a\"]; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__actions__ = __webpack_require__(/*! ./actions */ 65);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\nvar crashReporter = function (store) { return function (next) { return function (action) {\n try {\n return next(action);\n }\n catch (err) {\n console.error('Caught an exception!', err);\n console.error(err.stack);\n throw err;\n }\n}; }; };\nvar createReducerError = function (error, action) {\n var reducerError = { error: error };\n if (Object(__WEBPACK_IMPORTED_MODULE_3__actions__[\"d\" /* isQueryResultAction */])(action)) {\n reducerError.queryId = action.queryId;\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_3__actions__[\"f\" /* isSubscriptionResultAction */])(action)) {\n reducerError.subscriptionId = action.subscriptionId;\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_3__actions__[\"c\" /* isMutationResultAction */])(action)) {\n reducerError.mutationId = action.mutationId;\n }\n return reducerError;\n};\nfunction createApolloReducer(config) {\n return function apolloReducer(state, action) {\n if (state === void 0) { state = {}; }\n try {\n var newState = {\n data: Object(__WEBPACK_IMPORTED_MODULE_1__data_store__[\"a\" /* data */])(state.data, action, config),\n optimistic: [],\n reducerError: null,\n };\n newState.optimistic = Object(__WEBPACK_IMPORTED_MODULE_2__optimistic_data_store__[\"b\" /* optimistic */])(state.optimistic, action, newState, config);\n if (state.data === newState.data &&\n state.optimistic === newState.optimistic &&\n state.reducerError === newState.reducerError) {\n return state;\n }\n return newState;\n }\n catch (reducerError) {\n return __assign({}, state, { reducerError: createReducerError(reducerError, action) });\n }\n };\n}\nfunction createApolloStore(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.reduxRootKey, reduxRootKey = _c === void 0 ? 'apollo' : _c, initialState = _b.initialState, _d = _b.config, config = _d === void 0 ? {} : _d, _e = _b.reportCrashes, reportCrashes = _e === void 0 ? true : _e, logger = _b.logger;\n var enhancers = [];\n var middlewares = [];\n if (reportCrashes) {\n middlewares.push(crashReporter);\n }\n if (logger) {\n middlewares.push(logger);\n }\n if (middlewares.length > 0) {\n enhancers.push(__WEBPACK_IMPORTED_MODULE_0_redux__[\"a\" /* applyMiddleware */].apply(void 0, middlewares));\n }\n if (typeof window !== 'undefined') {\n var anyWindow = window;\n if (anyWindow.devToolsExtension) {\n enhancers.push(anyWindow.devToolsExtension());\n }\n }\n var compose = __WEBPACK_IMPORTED_MODULE_0_redux__[\"c\" /* compose */];\n if (initialState &&\n initialState[reduxRootKey] &&\n initialState[reduxRootKey]['queries']) {\n throw new Error('Apollo initial state may not contain queries, only data');\n }\n if (initialState &&\n initialState[reduxRootKey] &&\n initialState[reduxRootKey]['mutations']) {\n throw new Error('Apollo initial state may not contain mutations, only data');\n }\n return Object(__WEBPACK_IMPORTED_MODULE_0_redux__[\"d\" /* createStore */])(Object(__WEBPACK_IMPORTED_MODULE_0_redux__[\"b\" /* combineReducers */])((_f = {}, _f[reduxRootKey] = createApolloReducer(config), _f)), initialState, compose.apply(void 0, enhancers));\n var _f;\n}\n//# sourceMappingURL=store.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9zdG9yZS5qcz80ZDRlIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgY3JlYXRlU3RvcmUsIGNvbXBvc2UgYXMgcmVkdXhDb21wb3NlLCBhcHBseU1pZGRsZXdhcmUsIGNvbWJpbmVSZWR1Y2VycywgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBkYXRhIH0gZnJvbSAnLi9kYXRhL3N0b3JlJztcbmltcG9ydCB7IG9wdGltaXN0aWMsIGdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHMsIH0gZnJvbSAnLi9vcHRpbWlzdGljLWRhdGEvc3RvcmUnO1xuZXhwb3J0IHsgZ2V0RGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0cyB9O1xuaW1wb3J0IHsgaXNRdWVyeVJlc3VsdEFjdGlvbiwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbiwgaXNTdWJzY3JpcHRpb25SZXN1bHRBY3Rpb24sIH0gZnJvbSAnLi9hY3Rpb25zJztcbnZhciBjcmFzaFJlcG9ydGVyID0gZnVuY3Rpb24gKHN0b3JlKSB7IHJldHVybiBmdW5jdGlvbiAobmV4dCkgeyByZXR1cm4gZnVuY3Rpb24gKGFjdGlvbikge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignQ2F1Z2h0IGFuIGV4Y2VwdGlvbiEnLCBlcnIpO1xuICAgICAgICBjb25zb2xlLmVycm9yKGVyci5zdGFjayk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG59OyB9OyB9O1xudmFyIGNyZWF0ZVJlZHVjZXJFcnJvciA9IGZ1bmN0aW9uIChlcnJvciwgYWN0aW9uKSB7XG4gICAgdmFyIHJlZHVjZXJFcnJvciA9IHsgZXJyb3I6IGVycm9yIH07XG4gICAgaWYgKGlzUXVlcnlSZXN1bHRBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICByZWR1Y2VyRXJyb3IucXVlcnlJZCA9IGFjdGlvbi5xdWVyeUlkO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1N1YnNjcmlwdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pKSB7XG4gICAgICAgIHJlZHVjZXJFcnJvci5zdWJzY3JpcHRpb25JZCA9IGFjdGlvbi5zdWJzY3JpcHRpb25JZDtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNNdXRhdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pKSB7XG4gICAgICAgIHJlZHVjZXJFcnJvci5tdXRhdGlvbklkID0gYWN0aW9uLm11dGF0aW9uSWQ7XG4gICAgfVxuICAgIHJldHVybiByZWR1Y2VyRXJyb3I7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFwb2xsb1JlZHVjZXIoY29uZmlnKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGFwb2xsb1JlZHVjZXIoc3RhdGUsIGFjdGlvbikge1xuICAgICAgICBpZiAoc3RhdGUgPT09IHZvaWQgMCkgeyBzdGF0ZSA9IHt9OyB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YShzdGF0ZS5kYXRhLCBhY3Rpb24sIGNvbmZpZyksXG4gICAgICAgICAgICAgICAgb3B0aW1pc3RpYzogW10sXG4gICAgICAgICAgICAgICAgcmVkdWNlckVycm9yOiBudWxsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5ld1N0YXRlLm9wdGltaXN0aWMgPSBvcHRpbWlzdGljKHN0YXRlLm9wdGltaXN0aWMsIGFjdGlvbiwgbmV3U3RhdGUsIGNvbmZpZyk7XG4gICAgICAgICAgICBpZiAoc3RhdGUuZGF0YSA9PT0gbmV3U3RhdGUuZGF0YSAmJlxuICAgICAgICAgICAgICAgIHN0YXRlLm9wdGltaXN0aWMgPT09IG5ld1N0YXRlLm9wdGltaXN0aWMgJiZcbiAgICAgICAgICAgICAgICBzdGF0ZS5yZWR1Y2VyRXJyb3IgPT09IG5ld1N0YXRlLnJlZHVjZXJFcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAocmVkdWNlckVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oe30sIHN0YXRlLCB7IHJlZHVjZXJFcnJvcjogY3JlYXRlUmVkdWNlckVycm9yKHJlZHVjZXJFcnJvciwgYWN0aW9uKSB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBvbGxvU3RvcmUoX2EpIHtcbiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8ge30gOiBfYSwgX2MgPSBfYi5yZWR1eFJvb3RLZXksIHJlZHV4Um9vdEtleSA9IF9jID09PSB2b2lkIDAgPyAnYXBvbGxvJyA6IF9jLCBpbml0aWFsU3RhdGUgPSBfYi5pbml0aWFsU3RhdGUsIF9kID0gX2IuY29uZmlnLCBjb25maWcgPSBfZCA9PT0gdm9pZCAwID8ge30gOiBfZCwgX2UgPSBfYi5yZXBvcnRDcmFzaGVzLCByZXBvcnRDcmFzaGVzID0gX2UgPT09IHZvaWQgMCA/IHRydWUgOiBfZSwgbG9nZ2VyID0gX2IubG9nZ2VyO1xuICAgIHZhciBlbmhhbmNlcnMgPSBbXTtcbiAgICB2YXIgbWlkZGxld2FyZXMgPSBbXTtcbiAgICBpZiAocmVwb3J0Q3Jhc2hlcykge1xuICAgICAgICBtaWRkbGV3YXJlcy5wdXNoKGNyYXNoUmVwb3J0ZXIpO1xuICAgIH1cbiAgICBpZiAobG9nZ2VyKSB7XG4gICAgICAgIG1pZGRsZXdhcmVzLnB1c2gobG9nZ2VyKTtcbiAgICB9XG4gICAgaWYgKG1pZGRsZXdhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW5oYW5jZXJzLnB1c2goYXBwbHlNaWRkbGV3YXJlLmFwcGx5KHZvaWQgMCwgbWlkZGxld2FyZXMpKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhciBhbnlXaW5kb3cgPSB3aW5kb3c7XG4gICAgICAgIGlmIChhbnlXaW5kb3cuZGV2VG9vbHNFeHRlbnNpb24pIHtcbiAgICAgICAgICAgIGVuaGFuY2Vycy5wdXNoKGFueVdpbmRvdy5kZXZUb29sc0V4dGVuc2lvbigpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgY29tcG9zZSA9IHJlZHV4Q29tcG9zZTtcbiAgICBpZiAoaW5pdGlhbFN0YXRlICYmXG4gICAgICAgIGluaXRpYWxTdGF0ZVtyZWR1eFJvb3RLZXldICYmXG4gICAgICAgIGluaXRpYWxTdGF0ZVtyZWR1eFJvb3RLZXldWydxdWVyaWVzJ10pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcG9sbG8gaW5pdGlhbCBzdGF0ZSBtYXkgbm90IGNvbnRhaW4gcXVlcmllcywgb25seSBkYXRhJyk7XG4gICAgfVxuICAgIGlmIChpbml0aWFsU3RhdGUgJiZcbiAgICAgICAgaW5pdGlhbFN0YXRlW3JlZHV4Um9vdEtleV0gJiZcbiAgICAgICAgaW5pdGlhbFN0YXRlW3JlZHV4Um9vdEtleV1bJ211dGF0aW9ucyddKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXBvbGxvIGluaXRpYWwgc3RhdGUgbWF5IG5vdCBjb250YWluIG11dGF0aW9ucywgb25seSBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVTdG9yZShjb21iaW5lUmVkdWNlcnMoKF9mID0ge30sIF9mW3JlZHV4Um9vdEtleV0gPSBjcmVhdGVBcG9sbG9SZWR1Y2VyKGNvbmZpZyksIF9mKSksIGluaXRpYWxTdGF0ZSwgY29tcG9zZS5hcHBseSh2b2lkIDAsIGVuaGFuY2VycykpO1xuICAgIHZhciBfZjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0b3JlLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvc3RvcmUuanNcbi8vIG1vZHVsZSBpZCA9IDY0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///64\n"); /***/ }), -/* 64 */ +/* 65 */ /*!***********************************************!*\ !*** ./node_modules/apollo-client/actions.js ***! \***********************************************/ @@ -840,10 +852,10 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = createApollo /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"d\"] = isQueryResultAction;\n/* unused harmony export isQueryErrorAction */\n/* unused harmony export isQueryInitAction */\n/* unused harmony export isQueryResultClientAction */\n/* unused harmony export isQueryStopAction */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = isMutationInitAction;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = isMutationResultAction;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = isMutationErrorAction;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = isUpdateQueryResultAction;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = isStoreResetAction;\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = isSubscriptionResultAction;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = isWriteAction;\nfunction isQueryResultAction(action) {\n return action.type === 'APOLLO_QUERY_RESULT';\n}\nfunction isQueryErrorAction(action) {\n return action.type === 'APOLLO_QUERY_ERROR';\n}\nfunction isQueryInitAction(action) {\n return action.type === 'APOLLO_QUERY_INIT';\n}\nfunction isQueryResultClientAction(action) {\n return action.type === 'APOLLO_QUERY_RESULT_CLIENT';\n}\nfunction isQueryStopAction(action) {\n return action.type === 'APOLLO_QUERY_STOP';\n}\nfunction isMutationInitAction(action) {\n return action.type === 'APOLLO_MUTATION_INIT';\n}\nfunction isMutationResultAction(action) {\n return action.type === 'APOLLO_MUTATION_RESULT';\n}\nfunction isMutationErrorAction(action) {\n return action.type === 'APOLLO_MUTATION_ERROR';\n}\nfunction isUpdateQueryResultAction(action) {\n return action.type === 'APOLLO_UPDATE_QUERY_RESULT';\n}\nfunction isStoreResetAction(action) {\n return action.type === 'APOLLO_STORE_RESET';\n}\nfunction isSubscriptionResultAction(action) {\n return action.type === 'APOLLO_SUBSCRIPTION_RESULT';\n}\nfunction isWriteAction(action) {\n return action.type === 'APOLLO_WRITE';\n}\n//# sourceMappingURL=actions.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9hY3Rpb25zLmpzPzE4N2IiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzUXVlcnlSZXN1bHRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1FVRVJZX1JFU1VMVCc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNRdWVyeUVycm9yQWN0aW9uKGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gJ0FQT0xMT19RVUVSWV9FUlJPUic7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNRdWVyeUluaXRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1FVRVJZX0lOSVQnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUXVlcnlSZXN1bHRDbGllbnRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1FVRVJZX1JFU1VMVF9DTElFTlQnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUXVlcnlTdG9wQWN0aW9uKGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gJ0FQT0xMT19RVUVSWV9TVE9QJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc011dGF0aW9uSW5pdEFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fTVVUQVRJT05fSU5JVCc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNNdXRhdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fTVVUQVRJT05fUkVTVUxUJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc011dGF0aW9uRXJyb3JBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX01VVEFUSU9OX0VSUk9SJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1VwZGF0ZVF1ZXJ5UmVzdWx0QWN0aW9uKGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gJ0FQT0xMT19VUERBVEVfUVVFUllfUkVTVUxUJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N0b3JlUmVzZXRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1NUT1JFX1JFU0VUJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N1YnNjcmlwdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fU1VCU0NSSVBUSU9OX1JFU1VMVCc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNXcml0ZUFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fV1JJVEUnO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWN0aW9ucy5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L2FjdGlvbnMuanNcbi8vIG1vZHVsZSBpZCA9IDY0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///64\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"d\"] = isQueryResultAction;\n/* unused harmony export isQueryErrorAction */\n/* unused harmony export isQueryInitAction */\n/* unused harmony export isQueryResultClientAction */\n/* unused harmony export isQueryStopAction */\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = isMutationInitAction;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = isMutationResultAction;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = isMutationErrorAction;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = isUpdateQueryResultAction;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = isStoreResetAction;\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = isSubscriptionResultAction;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = isWriteAction;\nfunction isQueryResultAction(action) {\n return action.type === 'APOLLO_QUERY_RESULT';\n}\nfunction isQueryErrorAction(action) {\n return action.type === 'APOLLO_QUERY_ERROR';\n}\nfunction isQueryInitAction(action) {\n return action.type === 'APOLLO_QUERY_INIT';\n}\nfunction isQueryResultClientAction(action) {\n return action.type === 'APOLLO_QUERY_RESULT_CLIENT';\n}\nfunction isQueryStopAction(action) {\n return action.type === 'APOLLO_QUERY_STOP';\n}\nfunction isMutationInitAction(action) {\n return action.type === 'APOLLO_MUTATION_INIT';\n}\nfunction isMutationResultAction(action) {\n return action.type === 'APOLLO_MUTATION_RESULT';\n}\nfunction isMutationErrorAction(action) {\n return action.type === 'APOLLO_MUTATION_ERROR';\n}\nfunction isUpdateQueryResultAction(action) {\n return action.type === 'APOLLO_UPDATE_QUERY_RESULT';\n}\nfunction isStoreResetAction(action) {\n return action.type === 'APOLLO_STORE_RESET';\n}\nfunction isSubscriptionResultAction(action) {\n return action.type === 'APOLLO_SUBSCRIPTION_RESULT';\n}\nfunction isWriteAction(action) {\n return action.type === 'APOLLO_WRITE';\n}\n//# sourceMappingURL=actions.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9hY3Rpb25zLmpzPzE4N2IiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzUXVlcnlSZXN1bHRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1FVRVJZX1JFU1VMVCc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNRdWVyeUVycm9yQWN0aW9uKGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gJ0FQT0xMT19RVUVSWV9FUlJPUic7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNRdWVyeUluaXRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1FVRVJZX0lOSVQnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUXVlcnlSZXN1bHRDbGllbnRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1FVRVJZX1JFU1VMVF9DTElFTlQnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUXVlcnlTdG9wQWN0aW9uKGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gJ0FQT0xMT19RVUVSWV9TVE9QJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc011dGF0aW9uSW5pdEFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fTVVUQVRJT05fSU5JVCc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNNdXRhdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fTVVUQVRJT05fUkVTVUxUJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc011dGF0aW9uRXJyb3JBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX01VVEFUSU9OX0VSUk9SJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1VwZGF0ZVF1ZXJ5UmVzdWx0QWN0aW9uKGFjdGlvbikge1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gJ0FQT0xMT19VUERBVEVfUVVFUllfUkVTVUxUJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N0b3JlUmVzZXRBY3Rpb24oYWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSAnQVBPTExPX1NUT1JFX1JFU0VUJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N1YnNjcmlwdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fU1VCU0NSSVBUSU9OX1JFU1VMVCc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNXcml0ZUFjdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09ICdBUE9MTE9fV1JJVEUnO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWN0aW9ucy5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L2FjdGlvbnMuanNcbi8vIG1vZHVsZSBpZCA9IDY1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///65\n"); /***/ }), -/* 65 */ +/* 66 */ /*!************************************************************!*\ !*** ./node_modules/apollo-client/core/ObservableQuery.js ***! \************************************************************/ @@ -852,10 +864,10 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"d\"] = isQueryResul /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ObservableQuery; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_Observable__ = __webpack_require__(/*! ../util/Observable */ 120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__errors_ApolloError__ = __webpack_require__(/*! ../errors/ApolloError */ 66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__types__ = __webpack_require__(/*! ./types */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_errorHandling__ = __webpack_require__(/*! ../util/errorHandling */ 119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_isEqual__ = __webpack_require__(/*! ../util/isEqual */ 43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_maybeDeepFreeze__ = __webpack_require__(/*! ../util/maybeDeepFreeze */ 121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__ = __webpack_require__(/*! ../queries/networkStatus */ 33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__ = __webpack_require__(/*! ../queries/getFromAST */ 16);\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var scheduler = _a.scheduler, options = _a.options, _b = _a.shouldSubscribe, shouldSubscribe = _b === void 0 ? true : _b;\n var _this = this;\n var queryManager = scheduler.queryManager;\n var queryId = queryManager.generateQueryId();\n var subscriberFunction = function (observer) {\n return _this.onSubscribe(observer);\n };\n _this = _super.call(this, subscriberFunction) || this;\n _this.isCurrentlyPolling = false;\n _this.options = options;\n _this.variables = _this.options.variables || {};\n _this.scheduler = scheduler;\n _this.queryManager = queryManager;\n _this.queryId = queryId;\n _this.shouldSubscribe = shouldSubscribe;\n _this.observers = [];\n _this.subscriptionHandles = [];\n return _this;\n }\n ObservableQuery.prototype.result = function () {\n var that = this;\n return new Promise(function (resolve, reject) {\n var subscription = null;\n var observer = {\n next: function (result) {\n resolve(result);\n var selectedObservers = that.observers.filter(function (obs) { return obs !== observer; });\n if (selectedObservers.length === 0) {\n that.queryManager.removeQuery(that.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: function (error) {\n reject(error);\n },\n };\n subscription = that.subscribe(observer);\n });\n };\n ObservableQuery.prototype.currentResult = function () {\n var _a = this.queryManager.getCurrentQueryResult(this, true), data = _a.data, partial = _a.partial;\n var queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n if (queryStoreValue &&\n ((queryStoreValue.graphQLErrors &&\n queryStoreValue.graphQLErrors.length > 0) ||\n queryStoreValue.networkError)) {\n var error = new __WEBPACK_IMPORTED_MODULE_1__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n });\n return {\n data: {},\n loading: false,\n networkStatus: queryStoreValue.networkStatus,\n error: error,\n };\n }\n var queryLoading = !queryStoreValue ||\n queryStoreValue.networkStatus === __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"a\" /* NetworkStatus */].loading;\n var loading = (this.options.fetchPolicy === 'network-only' && queryLoading) ||\n (partial && this.options.fetchPolicy !== 'cache-only');\n var networkStatus;\n if (queryStoreValue) {\n networkStatus = queryStoreValue.networkStatus;\n }\n else {\n networkStatus = loading ? __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"a\" /* NetworkStatus */].loading : __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"a\" /* NetworkStatus */].ready;\n }\n var result = {\n data: data,\n loading: Object(__WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(networkStatus),\n networkStatus: networkStatus,\n };\n if (!partial) {\n var stale = false;\n this.lastResult = __assign({}, result, { stale: stale });\n }\n return __assign({}, result, { partial: partial });\n };\n ObservableQuery.prototype.getLastResult = function () {\n return this.lastResult;\n };\n ObservableQuery.prototype.refetch = function (variables) {\n this.variables = __assign({}, this.variables, variables);\n if (this.options.fetchPolicy === 'cache-only') {\n return Promise.reject(new Error('cache-only fetchPolicy option should not be used together with query refetch.'));\n }\n this.options.variables = __assign({}, this.options.variables, this.variables);\n var combinedOptions = __assign({}, this.options, { fetchPolicy: 'network-only' });\n return this.queryManager\n .fetchQuery(this.queryId, combinedOptions, __WEBPACK_IMPORTED_MODULE_2__types__[\"a\" /* FetchType */].refetch)\n .then(function (result) { return Object(__WEBPACK_IMPORTED_MODULE_5__util_maybeDeepFreeze__[\"a\" /* default */])(result); });\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n if (!fetchMoreOptions.updateQuery) {\n throw new Error('updateQuery option is required. This function defines how to update the query data with the new results.');\n }\n return Promise.resolve()\n .then(function () {\n var qid = _this.queryManager.generateQueryId();\n var combinedOptions = null;\n if (fetchMoreOptions.query) {\n combinedOptions = fetchMoreOptions;\n }\n else {\n var variables = __assign({}, _this.variables, fetchMoreOptions.variables);\n combinedOptions = __assign({}, _this.options, fetchMoreOptions, { variables: variables });\n }\n combinedOptions = __assign({}, combinedOptions, { query: combinedOptions.query, fetchPolicy: 'network-only' });\n return _this.queryManager.fetchQuery(qid, combinedOptions, __WEBPACK_IMPORTED_MODULE_2__types__[\"a\" /* FetchType */].normal, _this.queryId);\n })\n .then(function (fetchMoreResult) {\n var data = fetchMoreResult.data;\n var reducer = fetchMoreOptions.updateQuery;\n var mapFn = function (previousResult, _a) {\n var variables = _a.variables;\n var queryVariables = variables;\n return reducer(previousResult, {\n fetchMoreResult: data,\n queryVariables: queryVariables,\n });\n };\n _this.updateQuery(mapFn);\n return fetchMoreResult;\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var observable = this.queryManager.startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n });\n var subscription = observable.subscribe({\n next: function (data) {\n if (options.updateQuery) {\n var reducer_1 = options.updateQuery;\n var mapFn = function (previousResult, _a) {\n var variables = _a.variables;\n return reducer_1(previousResult, {\n subscriptionData: { data: data },\n variables: variables,\n });\n };\n _this.updateQuery(mapFn);\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n }\n else {\n console.error('Unhandled GraphQL subscription error', err);\n }\n },\n });\n this.subscriptionHandles.push(subscription);\n return function () {\n var i = _this.subscriptionHandles.indexOf(subscription);\n if (i >= 0) {\n _this.subscriptionHandles.splice(i, 1);\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (opts) {\n var oldOptions = this.options;\n this.options = __assign({}, this.options, opts);\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n }\n else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n var tryFetch = (oldOptions.fetchPolicy !== 'network-only' &&\n opts.fetchPolicy === 'network-only') ||\n (oldOptions.fetchPolicy === 'cache-only' &&\n opts.fetchPolicy !== 'cache-only') ||\n (oldOptions.fetchPolicy === 'standby' &&\n opts.fetchPolicy !== 'standby') ||\n false;\n return this.setVariables(this.options.variables, tryFetch, opts.fetchResults);\n };\n ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) {\n if (tryFetch === void 0) { tryFetch = false; }\n if (fetchResults === void 0) { fetchResults = true; }\n var newVariables = __assign({}, this.variables, variables);\n if (Object(__WEBPACK_IMPORTED_MODULE_4__util_isEqual__[\"a\" /* isEqual */])(newVariables, this.variables) && !tryFetch) {\n if (this.observers.length === 0 || !fetchResults) {\n return new Promise(function (resolve) { return resolve(); });\n }\n return this.result();\n }\n else {\n this.variables = newVariables;\n this.options.variables = newVariables;\n if (this.observers.length === 0) {\n return new Promise(function (resolve) { return resolve(); });\n }\n return this.queryManager\n .fetchQuery(this.queryId, __assign({}, this.options, { variables: this.variables }))\n .then(function (result) { return Object(__WEBPACK_IMPORTED_MODULE_5__util_maybeDeepFreeze__[\"a\" /* default */])(result); });\n }\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var _a = this.queryManager.getQueryWithPreviousResult(this.queryId), previousResult = _a.previousResult, variables = _a.variables, document = _a.document;\n var newResult = Object(__WEBPACK_IMPORTED_MODULE_3__util_errorHandling__[\"a\" /* tryFunctionOrLogError */])(function () {\n return mapFn(previousResult, { variables: variables });\n });\n if (newResult) {\n this.queryManager.store.dispatch({\n type: 'APOLLO_UPDATE_QUERY_RESULT',\n newResult: newResult,\n variables: variables,\n document: document,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(document),\n });\n }\n };\n ObservableQuery.prototype.stopPolling = function () {\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n this.isCurrentlyPolling = false;\n }\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n if (this.options.fetchPolicy === 'cache-first' ||\n this.options.fetchPolicy === 'cache-only') {\n throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n }\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.isCurrentlyPolling = false;\n }\n this.options.pollInterval = pollInterval;\n this.isCurrentlyPolling = true;\n this.scheduler.startPollingQuery(this.options, this.queryId);\n };\n ObservableQuery.prototype.onSubscribe = function (observer) {\n var _this = this;\n this.observers.push(observer);\n if (observer.next && this.lastResult) {\n observer.next(this.lastResult);\n }\n if (observer.error && this.lastError) {\n observer.error(this.lastError);\n }\n if (this.observers.length === 1) {\n this.setUpQuery();\n }\n var retQuerySubscription = {\n unsubscribe: function () {\n if (!_this.observers.some(function (el) { return el === observer; })) {\n return;\n }\n _this.observers = _this.observers.filter(function (obs) { return obs !== observer; });\n if (_this.observers.length === 0) {\n _this.tearDownQuery();\n }\n },\n };\n return retQuerySubscription;\n };\n ObservableQuery.prototype.setUpQuery = function () {\n var _this = this;\n if (this.shouldSubscribe) {\n this.queryManager.addObservableQuery(this.queryId, this);\n }\n if (!!this.options.pollInterval) {\n if (this.options.fetchPolicy === 'cache-first' ||\n this.options.fetchPolicy === 'cache-only') {\n throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n }\n this.isCurrentlyPolling = true;\n this.scheduler.startPollingQuery(this.options, this.queryId);\n }\n var observer = {\n next: function (result) {\n _this.lastResult = result;\n _this.observers.forEach(function (obs) {\n if (obs.next) {\n obs.next(result);\n }\n });\n },\n error: function (error) {\n _this.observers.forEach(function (obs) {\n if (obs.error) {\n obs.error(error);\n }\n else {\n console.error('Unhandled error', error.message, error.stack);\n }\n });\n _this.lastError = error;\n },\n };\n this.queryManager.startQuery(this.queryId, this.options, this.queryManager.queryListenerForObserver(this.queryId, this.options, observer));\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.isCurrentlyPolling = false;\n }\n this.subscriptionHandles.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptionHandles = [];\n this.queryManager.stopQuery(this.queryId);\n if (this.shouldSubscribe) {\n this.queryManager.removeObservableQuery(this.queryId);\n }\n this.observers = [];\n };\n return ObservableQuery;\n}(__WEBPACK_IMPORTED_MODULE_0__util_Observable__[\"a\" /* Observable */]));\n\n//# sourceMappingURL=ObservableQuery.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9jb3JlL09ic2VydmFibGVRdWVyeS5qcz9jNDI4Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vdXRpbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnLi4vZXJyb3JzL0Fwb2xsb0Vycm9yJztcbmltcG9ydCB7IEZldGNoVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdHJ5RnVuY3Rpb25PckxvZ0Vycm9yIH0gZnJvbSAnLi4vdXRpbC9lcnJvckhhbmRsaW5nJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICcuLi91dGlsL2lzRXF1YWwnO1xuaW1wb3J0IG1heWJlRGVlcEZyZWV6ZSBmcm9tICcuLi91dGlsL21heWJlRGVlcEZyZWV6ZSc7XG5pbXBvcnQgeyBOZXR3b3JrU3RhdHVzLCBpc05ldHdvcmtSZXF1ZXN0SW5GbGlnaHQsIH0gZnJvbSAnLi4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbmltcG9ydCB7IGdldE9wZXJhdGlvbk5hbWUgfSBmcm9tICcuLi9xdWVyaWVzL2dldEZyb21BU1QnO1xudmFyIE9ic2VydmFibGVRdWVyeSA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE9ic2VydmFibGVRdWVyeSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBPYnNlcnZhYmxlUXVlcnkoX2EpIHtcbiAgICAgICAgdmFyIHNjaGVkdWxlciA9IF9hLnNjaGVkdWxlciwgb3B0aW9ucyA9IF9hLm9wdGlvbnMsIF9iID0gX2Euc2hvdWxkU3Vic2NyaWJlLCBzaG91bGRTdWJzY3JpYmUgPSBfYiA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9iO1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcXVlcnlNYW5hZ2VyID0gc2NoZWR1bGVyLnF1ZXJ5TWFuYWdlcjtcbiAgICAgICAgdmFyIHF1ZXJ5SWQgPSBxdWVyeU1hbmFnZXIuZ2VuZXJhdGVRdWVyeUlkKCk7XG4gICAgICAgIHZhciBzdWJzY3JpYmVyRnVuY3Rpb24gPSBmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5vblN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc3Vic2NyaWJlckZ1bmN0aW9uKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgX3RoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIF90aGlzLnZhcmlhYmxlcyA9IF90aGlzLm9wdGlvbnMudmFyaWFibGVzIHx8IHt9O1xuICAgICAgICBfdGhpcy5zY2hlZHVsZXIgPSBzY2hlZHVsZXI7XG4gICAgICAgIF90aGlzLnF1ZXJ5TWFuYWdlciA9IHF1ZXJ5TWFuYWdlcjtcbiAgICAgICAgX3RoaXMucXVlcnlJZCA9IHF1ZXJ5SWQ7XG4gICAgICAgIF90aGlzLnNob3VsZFN1YnNjcmliZSA9IHNob3VsZFN1YnNjcmliZTtcbiAgICAgICAgX3RoaXMub2JzZXJ2ZXJzID0gW107XG4gICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMgPSBbXTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLnJlc3VsdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB2YXIgb2JzZXJ2ZXIgPSB7XG4gICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZE9ic2VydmVycyA9IHRoYXQub2JzZXJ2ZXJzLmZpbHRlcihmdW5jdGlvbiAob2JzKSB7IHJldHVybiBvYnMgIT09IG9ic2VydmVyOyB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkT2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5xdWVyeU1hbmFnZXIucmVtb3ZlUXVlcnkodGhhdC5xdWVyeUlkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IHRoYXQuc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLmN1cnJlbnRSZXN1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMucXVlcnlNYW5hZ2VyLmdldEN1cnJlbnRRdWVyeVJlc3VsdCh0aGlzLCB0cnVlKSwgZGF0YSA9IF9hLmRhdGEsIHBhcnRpYWwgPSBfYS5wYXJ0aWFsO1xuICAgICAgICB2YXIgcXVlcnlTdG9yZVZhbHVlID0gdGhpcy5xdWVyeU1hbmFnZXIucXVlcnlTdG9yZS5nZXQodGhpcy5xdWVyeUlkKTtcbiAgICAgICAgaWYgKHF1ZXJ5U3RvcmVWYWx1ZSAmJlxuICAgICAgICAgICAgKChxdWVyeVN0b3JlVmFsdWUuZ3JhcGhRTEVycm9ycyAmJlxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5ncmFwaFFMRXJyb3JzLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgcXVlcnlTdG9yZVZhbHVlLm5ldHdvcmtFcnJvcikpIHtcbiAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgZ3JhcGhRTEVycm9yczogcXVlcnlTdG9yZVZhbHVlLmdyYXBoUUxFcnJvcnMsXG4gICAgICAgICAgICAgICAgbmV0d29ya0Vycm9yOiBxdWVyeVN0b3JlVmFsdWUubmV0d29ya0Vycm9yLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG5ldHdvcmtTdGF0dXM6IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHF1ZXJ5TG9hZGluZyA9ICFxdWVyeVN0b3JlVmFsdWUgfHxcbiAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzID09PSBOZXR3b3JrU3RhdHVzLmxvYWRpbmc7XG4gICAgICAgIHZhciBsb2FkaW5nID0gKHRoaXMub3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seScgJiYgcXVlcnlMb2FkaW5nKSB8fFxuICAgICAgICAgICAgKHBhcnRpYWwgJiYgdGhpcy5vcHRpb25zLmZldGNoUG9saWN5ICE9PSAnY2FjaGUtb25seScpO1xuICAgICAgICB2YXIgbmV0d29ya1N0YXR1cztcbiAgICAgICAgaWYgKHF1ZXJ5U3RvcmVWYWx1ZSkge1xuICAgICAgICAgICAgbmV0d29ya1N0YXR1cyA9IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV0d29ya1N0YXR1cyA9IGxvYWRpbmcgPyBOZXR3b3JrU3RhdHVzLmxvYWRpbmcgOiBOZXR3b3JrU3RhdHVzLnJlYWR5O1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgbG9hZGluZzogaXNOZXR3b3JrUmVxdWVzdEluRmxpZ2h0KG5ldHdvcmtTdGF0dXMpLFxuICAgICAgICAgICAgbmV0d29ya1N0YXR1czogbmV0d29ya1N0YXR1cyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgICAgICAgICB2YXIgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGFzdFJlc3VsdCA9IF9fYXNzaWduKHt9LCByZXN1bHQsIHsgc3RhbGU6IHN0YWxlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfX2Fzc2lnbih7fSwgcmVzdWx0LCB7IHBhcnRpYWw6IHBhcnRpYWwgfSk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLmdldExhc3RSZXN1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhc3RSZXN1bHQ7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLnJlZmV0Y2ggPSBmdW5jdGlvbiAodmFyaWFibGVzKSB7XG4gICAgICAgIHRoaXMudmFyaWFibGVzID0gX19hc3NpZ24oe30sIHRoaXMudmFyaWFibGVzLCB2YXJpYWJsZXMpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZldGNoUG9saWN5ID09PSAnY2FjaGUtb25seScpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ2NhY2hlLW9ubHkgZmV0Y2hQb2xpY3kgb3B0aW9uIHNob3VsZCBub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIHF1ZXJ5IHJlZmV0Y2guJykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucy52YXJpYWJsZXMgPSBfX2Fzc2lnbih7fSwgdGhpcy5vcHRpb25zLnZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuICAgICAgICB2YXIgY29tYmluZWRPcHRpb25zID0gX19hc3NpZ24oe30sIHRoaXMub3B0aW9ucywgeyBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5TWFuYWdlclxuICAgICAgICAgICAgLmZldGNoUXVlcnkodGhpcy5xdWVyeUlkLCBjb21iaW5lZE9wdGlvbnMsIEZldGNoVHlwZS5yZWZldGNoKVxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeyByZXR1cm4gbWF5YmVEZWVwRnJlZXplKHJlc3VsdCk7IH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5mZXRjaE1vcmUgPSBmdW5jdGlvbiAoZmV0Y2hNb3JlT3B0aW9ucykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAoIWZldGNoTW9yZU9wdGlvbnMudXBkYXRlUXVlcnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndXBkYXRlUXVlcnkgb3B0aW9uIGlzIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uIGRlZmluZXMgaG93IHRvIHVwZGF0ZSB0aGUgcXVlcnkgZGF0YSB3aXRoIHRoZSBuZXcgcmVzdWx0cy4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBxaWQgPSBfdGhpcy5xdWVyeU1hbmFnZXIuZ2VuZXJhdGVRdWVyeUlkKCk7XG4gICAgICAgICAgICB2YXIgY29tYmluZWRPcHRpb25zID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChmZXRjaE1vcmVPcHRpb25zLnF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgY29tYmluZWRPcHRpb25zID0gZmV0Y2hNb3JlT3B0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciB2YXJpYWJsZXMgPSBfX2Fzc2lnbih7fSwgX3RoaXMudmFyaWFibGVzLCBmZXRjaE1vcmVPcHRpb25zLnZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgY29tYmluZWRPcHRpb25zID0gX19hc3NpZ24oe30sIF90aGlzLm9wdGlvbnMsIGZldGNoTW9yZU9wdGlvbnMsIHsgdmFyaWFibGVzOiB2YXJpYWJsZXMgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21iaW5lZE9wdGlvbnMgPSBfX2Fzc2lnbih7fSwgY29tYmluZWRPcHRpb25zLCB7IHF1ZXJ5OiBjb21iaW5lZE9wdGlvbnMucXVlcnksIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyB9KTtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5xdWVyeU1hbmFnZXIuZmV0Y2hRdWVyeShxaWQsIGNvbWJpbmVkT3B0aW9ucywgRmV0Y2hUeXBlLm5vcm1hbCwgX3RoaXMucXVlcnlJZCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoZmV0Y2hNb3JlUmVzdWx0KSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IGZldGNoTW9yZVJlc3VsdC5kYXRhO1xuICAgICAgICAgICAgdmFyIHJlZHVjZXIgPSBmZXRjaE1vcmVPcHRpb25zLnVwZGF0ZVF1ZXJ5O1xuICAgICAgICAgICAgdmFyIG1hcEZuID0gZnVuY3Rpb24gKHByZXZpb3VzUmVzdWx0LCBfYSkge1xuICAgICAgICAgICAgICAgIHZhciB2YXJpYWJsZXMgPSBfYS52YXJpYWJsZXM7XG4gICAgICAgICAgICAgICAgdmFyIHF1ZXJ5VmFyaWFibGVzID0gdmFyaWFibGVzO1xuICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2VyKHByZXZpb3VzUmVzdWx0LCB7XG4gICAgICAgICAgICAgICAgICAgIGZldGNoTW9yZVJlc3VsdDogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlWYXJpYWJsZXM6IHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIF90aGlzLnVwZGF0ZVF1ZXJ5KG1hcEZuKTtcbiAgICAgICAgICAgIHJldHVybiBmZXRjaE1vcmVSZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zdWJzY3JpYmVUb01vcmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgb2JzZXJ2YWJsZSA9IHRoaXMucXVlcnlNYW5hZ2VyLnN0YXJ0R3JhcGhRTFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBxdWVyeTogb3B0aW9ucy5kb2N1bWVudCxcbiAgICAgICAgICAgIHZhcmlhYmxlczogb3B0aW9ucy52YXJpYWJsZXMsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gb2JzZXJ2YWJsZS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy51cGRhdGVRdWVyeSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVkdWNlcl8xID0gb3B0aW9ucy51cGRhdGVRdWVyeTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1hcEZuID0gZnVuY3Rpb24gKHByZXZpb3VzUmVzdWx0LCBfYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2VyXzEocHJldmlvdXNSZXN1bHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25EYXRhOiB7IGRhdGE6IGRhdGEgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy51cGRhdGVRdWVyeShtYXBGbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMub25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm9uRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VuaGFuZGxlZCBHcmFwaFFMIHN1YnNjcmlwdGlvbiBlcnJvcicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSGFuZGxlcy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgaSA9IF90aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMuaW5kZXhPZihzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgaWYgKGkgPj0gMCkge1xuICAgICAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zZXRPcHRpb25zID0gZnVuY3Rpb24gKG9wdHMpIHtcbiAgICAgICAgdmFyIG9sZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IF9fYXNzaWduKHt9LCB0aGlzLm9wdGlvbnMsIG9wdHMpO1xuICAgICAgICBpZiAob3B0cy5wb2xsSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRQb2xsaW5nKG9wdHMucG9sbEludGVydmFsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRzLnBvbGxJbnRlcnZhbCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0cnlGZXRjaCA9IChvbGRPcHRpb25zLmZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5JyAmJlxuICAgICAgICAgICAgb3B0cy5mZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seScpIHx8XG4gICAgICAgICAgICAob2xkT3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ2NhY2hlLW9ubHknICYmXG4gICAgICAgICAgICAgICAgb3B0cy5mZXRjaFBvbGljeSAhPT0gJ2NhY2hlLW9ubHknKSB8fFxuICAgICAgICAgICAgKG9sZE9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdzdGFuZGJ5JyAmJlxuICAgICAgICAgICAgICAgIG9wdHMuZmV0Y2hQb2xpY3kgIT09ICdzdGFuZGJ5JykgfHxcbiAgICAgICAgICAgIGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRWYXJpYWJsZXModGhpcy5vcHRpb25zLnZhcmlhYmxlcywgdHJ5RmV0Y2gsIG9wdHMuZmV0Y2hSZXN1bHRzKTtcbiAgICB9O1xuICAgIE9ic2VydmFibGVRdWVyeS5wcm90b3R5cGUuc2V0VmFyaWFibGVzID0gZnVuY3Rpb24gKHZhcmlhYmxlcywgdHJ5RmV0Y2gsIGZldGNoUmVzdWx0cykge1xuICAgICAgICBpZiAodHJ5RmV0Y2ggPT09IHZvaWQgMCkgeyB0cnlGZXRjaCA9IGZhbHNlOyB9XG4gICAgICAgIGlmIChmZXRjaFJlc3VsdHMgPT09IHZvaWQgMCkgeyBmZXRjaFJlc3VsdHMgPSB0cnVlOyB9XG4gICAgICAgIHZhciBuZXdWYXJpYWJsZXMgPSBfX2Fzc2lnbih7fSwgdGhpcy52YXJpYWJsZXMsIHZhcmlhYmxlcyk7XG4gICAgICAgIGlmIChpc0VxdWFsKG5ld1ZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpICYmICF0cnlGZXRjaCkge1xuICAgICAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCB8fCAhZmV0Y2hSZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiByZXNvbHZlKCk7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlcyA9IG5ld1ZhcmlhYmxlcztcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy52YXJpYWJsZXMgPSBuZXdWYXJpYWJsZXM7XG4gICAgICAgICAgICBpZiAodGhpcy5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiByZXNvbHZlKCk7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyXG4gICAgICAgICAgICAgICAgLmZldGNoUXVlcnkodGhpcy5xdWVyeUlkLCBfX2Fzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7IHZhcmlhYmxlczogdGhpcy52YXJpYWJsZXMgfSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeyByZXR1cm4gbWF5YmVEZWVwRnJlZXplKHJlc3VsdCk7IH0pO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLnVwZGF0ZVF1ZXJ5ID0gZnVuY3Rpb24gKG1hcEZuKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMucXVlcnlNYW5hZ2VyLmdldFF1ZXJ5V2l0aFByZXZpb3VzUmVzdWx0KHRoaXMucXVlcnlJZCksIHByZXZpb3VzUmVzdWx0ID0gX2EucHJldmlvdXNSZXN1bHQsIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcywgZG9jdW1lbnQgPSBfYS5kb2N1bWVudDtcbiAgICAgICAgdmFyIG5ld1Jlc3VsdCA9IHRyeUZ1bmN0aW9uT3JMb2dFcnJvcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFwRm4ocHJldmlvdXNSZXN1bHQsIHsgdmFyaWFibGVzOiB2YXJpYWJsZXMgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobmV3UmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5TWFuYWdlci5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19VUERBVEVfUVVFUllfUkVTVUxUJyxcbiAgICAgICAgICAgICAgICBuZXdSZXN1bHQ6IG5ld1Jlc3VsdCxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShkb2N1bWVudCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zdG9wUG9sbGluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50bHlQb2xsaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlci5zdG9wUG9sbGluZ1F1ZXJ5KHRoaXMucXVlcnlJZCk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMucG9sbEludGVydmFsID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zdGFydFBvbGxpbmcgPSBmdW5jdGlvbiAocG9sbEludGVydmFsKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1maXJzdCcgfHxcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ2NhY2hlLW9ubHknKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1F1ZXJpZXMgdGhhdCBzcGVjaWZ5IHRoZSBjYWNoZS1maXJzdCBhbmQgY2FjaGUtb25seSBmZXRjaFBvbGljaWVzIGNhbm5vdCBhbHNvIGJlIHBvbGxpbmcgcXVlcmllcy4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0N1cnJlbnRseVBvbGxpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVyLnN0b3BQb2xsaW5nUXVlcnkodGhpcy5xdWVyeUlkKTtcbiAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50bHlQb2xsaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zLnBvbGxJbnRlcnZhbCA9IHBvbGxJbnRlcnZhbDtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnNjaGVkdWxlci5zdGFydFBvbGxpbmdRdWVyeSh0aGlzLm9wdGlvbnMsIHRoaXMucXVlcnlJZCk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLm9uU3Vic2NyaWJlID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXIpO1xuICAgICAgICBpZiAob2JzZXJ2ZXIubmV4dCAmJiB0aGlzLmxhc3RSZXN1bHQpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQodGhpcy5sYXN0UmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IgJiYgdGhpcy5sYXN0RXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHRoaXMubGFzdEVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vYnNlcnZlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnNldFVwUXVlcnkoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmV0UXVlcnlTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICB1bnN1YnNjcmliZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICghX3RoaXMub2JzZXJ2ZXJzLnNvbWUoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbCA9PT0gb2JzZXJ2ZXI7IH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX3RoaXMub2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzLmZpbHRlcihmdW5jdGlvbiAob2JzKSB7IHJldHVybiBvYnMgIT09IG9ic2VydmVyOyB9KTtcbiAgICAgICAgICAgICAgICBpZiAoX3RoaXMub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy50ZWFyRG93blF1ZXJ5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJldFF1ZXJ5U3Vic2NyaXB0aW9uO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zZXRVcFF1ZXJ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5zaG91bGRTdWJzY3JpYmUpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlNYW5hZ2VyLmFkZE9ic2VydmFibGVRdWVyeSh0aGlzLnF1ZXJ5SWQsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIXRoaXMub3B0aW9ucy5wb2xsSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1maXJzdCcgfHxcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1vbmx5Jykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUXVlcmllcyB0aGF0IHNwZWNpZnkgdGhlIGNhY2hlLWZpcnN0IGFuZCBjYWNoZS1vbmx5IGZldGNoUG9saWNpZXMgY2Fubm90IGFsc28gYmUgcG9sbGluZyBxdWVyaWVzLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXIuc3RhcnRQb2xsaW5nUXVlcnkodGhpcy5vcHRpb25zLCB0aGlzLnF1ZXJ5SWQpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvYnNlcnZlciA9IHtcbiAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5sYXN0UmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIF90aGlzLm9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9icy5uZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnMubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIF90aGlzLm9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9icy5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VuaGFuZGxlZCBlcnJvcicsIGVycm9yLm1lc3NhZ2UsIGVycm9yLnN0YWNrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIF90aGlzLmxhc3RFcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIuc3RhcnRRdWVyeSh0aGlzLnF1ZXJ5SWQsIHRoaXMub3B0aW9ucywgdGhpcy5xdWVyeU1hbmFnZXIucXVlcnlMaXN0ZW5lckZvck9ic2VydmVyKHRoaXMucXVlcnlJZCwgdGhpcy5vcHRpb25zLCBvYnNlcnZlcikpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS50ZWFyRG93blF1ZXJ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc0N1cnJlbnRseVBvbGxpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVyLnN0b3BQb2xsaW5nUXVlcnkodGhpcy5xdWVyeUlkKTtcbiAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50bHlQb2xsaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25IYW5kbGVzLmZvckVhY2goZnVuY3Rpb24gKHN1YikgeyByZXR1cm4gc3ViLnVuc3Vic2NyaWJlKCk7IH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIuc3RvcFF1ZXJ5KHRoaXMucXVlcnlJZCk7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFN1YnNjcmliZSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIucmVtb3ZlT2JzZXJ2YWJsZVF1ZXJ5KHRoaXMucXVlcnlJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vYnNlcnZlcnMgPSBbXTtcbiAgICB9O1xuICAgIHJldHVybiBPYnNlcnZhYmxlUXVlcnk7XG59KE9ic2VydmFibGUpKTtcbmV4cG9ydCB7IE9ic2VydmFibGVRdWVyeSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9T2JzZXJ2YWJsZVF1ZXJ5LmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvY29yZS9PYnNlcnZhYmxlUXVlcnkuanNcbi8vIG1vZHVsZSBpZCA9IDY1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///65\n"); +eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ObservableQuery; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_Observable__ = __webpack_require__(/*! ../util/Observable */ 120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__errors_ApolloError__ = __webpack_require__(/*! ../errors/ApolloError */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__types__ = __webpack_require__(/*! ./types */ 68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_errorHandling__ = __webpack_require__(/*! ../util/errorHandling */ 119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_isEqual__ = __webpack_require__(/*! ../util/isEqual */ 43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_maybeDeepFreeze__ = __webpack_require__(/*! ../util/maybeDeepFreeze */ 121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__ = __webpack_require__(/*! ../queries/networkStatus */ 33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__ = __webpack_require__(/*! ../queries/getFromAST */ 16);\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var scheduler = _a.scheduler, options = _a.options, _b = _a.shouldSubscribe, shouldSubscribe = _b === void 0 ? true : _b;\n var _this = this;\n var queryManager = scheduler.queryManager;\n var queryId = queryManager.generateQueryId();\n var subscriberFunction = function (observer) {\n return _this.onSubscribe(observer);\n };\n _this = _super.call(this, subscriberFunction) || this;\n _this.isCurrentlyPolling = false;\n _this.options = options;\n _this.variables = _this.options.variables || {};\n _this.scheduler = scheduler;\n _this.queryManager = queryManager;\n _this.queryId = queryId;\n _this.shouldSubscribe = shouldSubscribe;\n _this.observers = [];\n _this.subscriptionHandles = [];\n return _this;\n }\n ObservableQuery.prototype.result = function () {\n var that = this;\n return new Promise(function (resolve, reject) {\n var subscription = null;\n var observer = {\n next: function (result) {\n resolve(result);\n var selectedObservers = that.observers.filter(function (obs) { return obs !== observer; });\n if (selectedObservers.length === 0) {\n that.queryManager.removeQuery(that.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: function (error) {\n reject(error);\n },\n };\n subscription = that.subscribe(observer);\n });\n };\n ObservableQuery.prototype.currentResult = function () {\n var _a = this.queryManager.getCurrentQueryResult(this, true), data = _a.data, partial = _a.partial;\n var queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n if (queryStoreValue &&\n ((queryStoreValue.graphQLErrors &&\n queryStoreValue.graphQLErrors.length > 0) ||\n queryStoreValue.networkError)) {\n var error = new __WEBPACK_IMPORTED_MODULE_1__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n });\n return {\n data: {},\n loading: false,\n networkStatus: queryStoreValue.networkStatus,\n error: error,\n };\n }\n var queryLoading = !queryStoreValue ||\n queryStoreValue.networkStatus === __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"a\" /* NetworkStatus */].loading;\n var loading = (this.options.fetchPolicy === 'network-only' && queryLoading) ||\n (partial && this.options.fetchPolicy !== 'cache-only');\n var networkStatus;\n if (queryStoreValue) {\n networkStatus = queryStoreValue.networkStatus;\n }\n else {\n networkStatus = loading ? __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"a\" /* NetworkStatus */].loading : __WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"a\" /* NetworkStatus */].ready;\n }\n var result = {\n data: data,\n loading: Object(__WEBPACK_IMPORTED_MODULE_6__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(networkStatus),\n networkStatus: networkStatus,\n };\n if (!partial) {\n var stale = false;\n this.lastResult = __assign({}, result, { stale: stale });\n }\n return __assign({}, result, { partial: partial });\n };\n ObservableQuery.prototype.getLastResult = function () {\n return this.lastResult;\n };\n ObservableQuery.prototype.refetch = function (variables) {\n this.variables = __assign({}, this.variables, variables);\n if (this.options.fetchPolicy === 'cache-only') {\n return Promise.reject(new Error('cache-only fetchPolicy option should not be used together with query refetch.'));\n }\n this.options.variables = __assign({}, this.options.variables, this.variables);\n var combinedOptions = __assign({}, this.options, { fetchPolicy: 'network-only' });\n return this.queryManager\n .fetchQuery(this.queryId, combinedOptions, __WEBPACK_IMPORTED_MODULE_2__types__[\"a\" /* FetchType */].refetch)\n .then(function (result) { return Object(__WEBPACK_IMPORTED_MODULE_5__util_maybeDeepFreeze__[\"a\" /* default */])(result); });\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n if (!fetchMoreOptions.updateQuery) {\n throw new Error('updateQuery option is required. This function defines how to update the query data with the new results.');\n }\n return Promise.resolve()\n .then(function () {\n var qid = _this.queryManager.generateQueryId();\n var combinedOptions = null;\n if (fetchMoreOptions.query) {\n combinedOptions = fetchMoreOptions;\n }\n else {\n var variables = __assign({}, _this.variables, fetchMoreOptions.variables);\n combinedOptions = __assign({}, _this.options, fetchMoreOptions, { variables: variables });\n }\n combinedOptions = __assign({}, combinedOptions, { query: combinedOptions.query, fetchPolicy: 'network-only' });\n return _this.queryManager.fetchQuery(qid, combinedOptions, __WEBPACK_IMPORTED_MODULE_2__types__[\"a\" /* FetchType */].normal, _this.queryId);\n })\n .then(function (fetchMoreResult) {\n var data = fetchMoreResult.data;\n var reducer = fetchMoreOptions.updateQuery;\n var mapFn = function (previousResult, _a) {\n var variables = _a.variables;\n var queryVariables = variables;\n return reducer(previousResult, {\n fetchMoreResult: data,\n queryVariables: queryVariables,\n });\n };\n _this.updateQuery(mapFn);\n return fetchMoreResult;\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var observable = this.queryManager.startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n });\n var subscription = observable.subscribe({\n next: function (data) {\n if (options.updateQuery) {\n var reducer_1 = options.updateQuery;\n var mapFn = function (previousResult, _a) {\n var variables = _a.variables;\n return reducer_1(previousResult, {\n subscriptionData: { data: data },\n variables: variables,\n });\n };\n _this.updateQuery(mapFn);\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n }\n else {\n console.error('Unhandled GraphQL subscription error', err);\n }\n },\n });\n this.subscriptionHandles.push(subscription);\n return function () {\n var i = _this.subscriptionHandles.indexOf(subscription);\n if (i >= 0) {\n _this.subscriptionHandles.splice(i, 1);\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (opts) {\n var oldOptions = this.options;\n this.options = __assign({}, this.options, opts);\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n }\n else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n var tryFetch = (oldOptions.fetchPolicy !== 'network-only' &&\n opts.fetchPolicy === 'network-only') ||\n (oldOptions.fetchPolicy === 'cache-only' &&\n opts.fetchPolicy !== 'cache-only') ||\n (oldOptions.fetchPolicy === 'standby' &&\n opts.fetchPolicy !== 'standby') ||\n false;\n return this.setVariables(this.options.variables, tryFetch, opts.fetchResults);\n };\n ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) {\n if (tryFetch === void 0) { tryFetch = false; }\n if (fetchResults === void 0) { fetchResults = true; }\n var newVariables = __assign({}, this.variables, variables);\n if (Object(__WEBPACK_IMPORTED_MODULE_4__util_isEqual__[\"a\" /* isEqual */])(newVariables, this.variables) && !tryFetch) {\n if (this.observers.length === 0 || !fetchResults) {\n return new Promise(function (resolve) { return resolve(); });\n }\n return this.result();\n }\n else {\n this.variables = newVariables;\n this.options.variables = newVariables;\n if (this.observers.length === 0) {\n return new Promise(function (resolve) { return resolve(); });\n }\n return this.queryManager\n .fetchQuery(this.queryId, __assign({}, this.options, { variables: this.variables }))\n .then(function (result) { return Object(__WEBPACK_IMPORTED_MODULE_5__util_maybeDeepFreeze__[\"a\" /* default */])(result); });\n }\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var _a = this.queryManager.getQueryWithPreviousResult(this.queryId), previousResult = _a.previousResult, variables = _a.variables, document = _a.document;\n var newResult = Object(__WEBPACK_IMPORTED_MODULE_3__util_errorHandling__[\"a\" /* tryFunctionOrLogError */])(function () {\n return mapFn(previousResult, { variables: variables });\n });\n if (newResult) {\n this.queryManager.store.dispatch({\n type: 'APOLLO_UPDATE_QUERY_RESULT',\n newResult: newResult,\n variables: variables,\n document: document,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(document),\n });\n }\n };\n ObservableQuery.prototype.stopPolling = function () {\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n this.isCurrentlyPolling = false;\n }\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n if (this.options.fetchPolicy === 'cache-first' ||\n this.options.fetchPolicy === 'cache-only') {\n throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n }\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.isCurrentlyPolling = false;\n }\n this.options.pollInterval = pollInterval;\n this.isCurrentlyPolling = true;\n this.scheduler.startPollingQuery(this.options, this.queryId);\n };\n ObservableQuery.prototype.onSubscribe = function (observer) {\n var _this = this;\n this.observers.push(observer);\n if (observer.next && this.lastResult) {\n observer.next(this.lastResult);\n }\n if (observer.error && this.lastError) {\n observer.error(this.lastError);\n }\n if (this.observers.length === 1) {\n this.setUpQuery();\n }\n var retQuerySubscription = {\n unsubscribe: function () {\n if (!_this.observers.some(function (el) { return el === observer; })) {\n return;\n }\n _this.observers = _this.observers.filter(function (obs) { return obs !== observer; });\n if (_this.observers.length === 0) {\n _this.tearDownQuery();\n }\n },\n };\n return retQuerySubscription;\n };\n ObservableQuery.prototype.setUpQuery = function () {\n var _this = this;\n if (this.shouldSubscribe) {\n this.queryManager.addObservableQuery(this.queryId, this);\n }\n if (!!this.options.pollInterval) {\n if (this.options.fetchPolicy === 'cache-first' ||\n this.options.fetchPolicy === 'cache-only') {\n throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n }\n this.isCurrentlyPolling = true;\n this.scheduler.startPollingQuery(this.options, this.queryId);\n }\n var observer = {\n next: function (result) {\n _this.lastResult = result;\n _this.observers.forEach(function (obs) {\n if (obs.next) {\n obs.next(result);\n }\n });\n },\n error: function (error) {\n _this.observers.forEach(function (obs) {\n if (obs.error) {\n obs.error(error);\n }\n else {\n console.error('Unhandled error', error.message, error.stack);\n }\n });\n _this.lastError = error;\n },\n };\n this.queryManager.startQuery(this.queryId, this.options, this.queryManager.queryListenerForObserver(this.queryId, this.options, observer));\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isCurrentlyPolling) {\n this.scheduler.stopPollingQuery(this.queryId);\n this.isCurrentlyPolling = false;\n }\n this.subscriptionHandles.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptionHandles = [];\n this.queryManager.stopQuery(this.queryId);\n if (this.shouldSubscribe) {\n this.queryManager.removeObservableQuery(this.queryId);\n }\n this.observers = [];\n };\n return ObservableQuery;\n}(__WEBPACK_IMPORTED_MODULE_0__util_Observable__[\"a\" /* Observable */]));\n\n//# sourceMappingURL=ObservableQuery.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9jb3JlL09ic2VydmFibGVRdWVyeS5qcz9jNDI4Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi4vdXRpbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnLi4vZXJyb3JzL0Fwb2xsb0Vycm9yJztcbmltcG9ydCB7IEZldGNoVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdHJ5RnVuY3Rpb25PckxvZ0Vycm9yIH0gZnJvbSAnLi4vdXRpbC9lcnJvckhhbmRsaW5nJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICcuLi91dGlsL2lzRXF1YWwnO1xuaW1wb3J0IG1heWJlRGVlcEZyZWV6ZSBmcm9tICcuLi91dGlsL21heWJlRGVlcEZyZWV6ZSc7XG5pbXBvcnQgeyBOZXR3b3JrU3RhdHVzLCBpc05ldHdvcmtSZXF1ZXN0SW5GbGlnaHQsIH0gZnJvbSAnLi4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbmltcG9ydCB7IGdldE9wZXJhdGlvbk5hbWUgfSBmcm9tICcuLi9xdWVyaWVzL2dldEZyb21BU1QnO1xudmFyIE9ic2VydmFibGVRdWVyeSA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKE9ic2VydmFibGVRdWVyeSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBPYnNlcnZhYmxlUXVlcnkoX2EpIHtcbiAgICAgICAgdmFyIHNjaGVkdWxlciA9IF9hLnNjaGVkdWxlciwgb3B0aW9ucyA9IF9hLm9wdGlvbnMsIF9iID0gX2Euc2hvdWxkU3Vic2NyaWJlLCBzaG91bGRTdWJzY3JpYmUgPSBfYiA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9iO1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcXVlcnlNYW5hZ2VyID0gc2NoZWR1bGVyLnF1ZXJ5TWFuYWdlcjtcbiAgICAgICAgdmFyIHF1ZXJ5SWQgPSBxdWVyeU1hbmFnZXIuZ2VuZXJhdGVRdWVyeUlkKCk7XG4gICAgICAgIHZhciBzdWJzY3JpYmVyRnVuY3Rpb24gPSBmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5vblN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc3Vic2NyaWJlckZ1bmN0aW9uKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgX3RoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIF90aGlzLnZhcmlhYmxlcyA9IF90aGlzLm9wdGlvbnMudmFyaWFibGVzIHx8IHt9O1xuICAgICAgICBfdGhpcy5zY2hlZHVsZXIgPSBzY2hlZHVsZXI7XG4gICAgICAgIF90aGlzLnF1ZXJ5TWFuYWdlciA9IHF1ZXJ5TWFuYWdlcjtcbiAgICAgICAgX3RoaXMucXVlcnlJZCA9IHF1ZXJ5SWQ7XG4gICAgICAgIF90aGlzLnNob3VsZFN1YnNjcmliZSA9IHNob3VsZFN1YnNjcmliZTtcbiAgICAgICAgX3RoaXMub2JzZXJ2ZXJzID0gW107XG4gICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMgPSBbXTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLnJlc3VsdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB2YXIgb2JzZXJ2ZXIgPSB7XG4gICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZE9ic2VydmVycyA9IHRoYXQub2JzZXJ2ZXJzLmZpbHRlcihmdW5jdGlvbiAob2JzKSB7IHJldHVybiBvYnMgIT09IG9ic2VydmVyOyB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkT2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5xdWVyeU1hbmFnZXIucmVtb3ZlUXVlcnkodGhhdC5xdWVyeUlkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IHRoYXQuc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLmN1cnJlbnRSZXN1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMucXVlcnlNYW5hZ2VyLmdldEN1cnJlbnRRdWVyeVJlc3VsdCh0aGlzLCB0cnVlKSwgZGF0YSA9IF9hLmRhdGEsIHBhcnRpYWwgPSBfYS5wYXJ0aWFsO1xuICAgICAgICB2YXIgcXVlcnlTdG9yZVZhbHVlID0gdGhpcy5xdWVyeU1hbmFnZXIucXVlcnlTdG9yZS5nZXQodGhpcy5xdWVyeUlkKTtcbiAgICAgICAgaWYgKHF1ZXJ5U3RvcmVWYWx1ZSAmJlxuICAgICAgICAgICAgKChxdWVyeVN0b3JlVmFsdWUuZ3JhcGhRTEVycm9ycyAmJlxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5ncmFwaFFMRXJyb3JzLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgcXVlcnlTdG9yZVZhbHVlLm5ldHdvcmtFcnJvcikpIHtcbiAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgZ3JhcGhRTEVycm9yczogcXVlcnlTdG9yZVZhbHVlLmdyYXBoUUxFcnJvcnMsXG4gICAgICAgICAgICAgICAgbmV0d29ya0Vycm9yOiBxdWVyeVN0b3JlVmFsdWUubmV0d29ya0Vycm9yLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG5ldHdvcmtTdGF0dXM6IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHF1ZXJ5TG9hZGluZyA9ICFxdWVyeVN0b3JlVmFsdWUgfHxcbiAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzID09PSBOZXR3b3JrU3RhdHVzLmxvYWRpbmc7XG4gICAgICAgIHZhciBsb2FkaW5nID0gKHRoaXMub3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seScgJiYgcXVlcnlMb2FkaW5nKSB8fFxuICAgICAgICAgICAgKHBhcnRpYWwgJiYgdGhpcy5vcHRpb25zLmZldGNoUG9saWN5ICE9PSAnY2FjaGUtb25seScpO1xuICAgICAgICB2YXIgbmV0d29ya1N0YXR1cztcbiAgICAgICAgaWYgKHF1ZXJ5U3RvcmVWYWx1ZSkge1xuICAgICAgICAgICAgbmV0d29ya1N0YXR1cyA9IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV0d29ya1N0YXR1cyA9IGxvYWRpbmcgPyBOZXR3b3JrU3RhdHVzLmxvYWRpbmcgOiBOZXR3b3JrU3RhdHVzLnJlYWR5O1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgbG9hZGluZzogaXNOZXR3b3JrUmVxdWVzdEluRmxpZ2h0KG5ldHdvcmtTdGF0dXMpLFxuICAgICAgICAgICAgbmV0d29ya1N0YXR1czogbmV0d29ya1N0YXR1cyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgICAgICAgICB2YXIgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGFzdFJlc3VsdCA9IF9fYXNzaWduKHt9LCByZXN1bHQsIHsgc3RhbGU6IHN0YWxlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfX2Fzc2lnbih7fSwgcmVzdWx0LCB7IHBhcnRpYWw6IHBhcnRpYWwgfSk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLmdldExhc3RSZXN1bHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhc3RSZXN1bHQ7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLnJlZmV0Y2ggPSBmdW5jdGlvbiAodmFyaWFibGVzKSB7XG4gICAgICAgIHRoaXMudmFyaWFibGVzID0gX19hc3NpZ24oe30sIHRoaXMudmFyaWFibGVzLCB2YXJpYWJsZXMpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmZldGNoUG9saWN5ID09PSAnY2FjaGUtb25seScpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ2NhY2hlLW9ubHkgZmV0Y2hQb2xpY3kgb3B0aW9uIHNob3VsZCBub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIHF1ZXJ5IHJlZmV0Y2guJykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucy52YXJpYWJsZXMgPSBfX2Fzc2lnbih7fSwgdGhpcy5vcHRpb25zLnZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuICAgICAgICB2YXIgY29tYmluZWRPcHRpb25zID0gX19hc3NpZ24oe30sIHRoaXMub3B0aW9ucywgeyBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5TWFuYWdlclxuICAgICAgICAgICAgLmZldGNoUXVlcnkodGhpcy5xdWVyeUlkLCBjb21iaW5lZE9wdGlvbnMsIEZldGNoVHlwZS5yZWZldGNoKVxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeyByZXR1cm4gbWF5YmVEZWVwRnJlZXplKHJlc3VsdCk7IH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5mZXRjaE1vcmUgPSBmdW5jdGlvbiAoZmV0Y2hNb3JlT3B0aW9ucykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAoIWZldGNoTW9yZU9wdGlvbnMudXBkYXRlUXVlcnkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndXBkYXRlUXVlcnkgb3B0aW9uIGlzIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uIGRlZmluZXMgaG93IHRvIHVwZGF0ZSB0aGUgcXVlcnkgZGF0YSB3aXRoIHRoZSBuZXcgcmVzdWx0cy4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBxaWQgPSBfdGhpcy5xdWVyeU1hbmFnZXIuZ2VuZXJhdGVRdWVyeUlkKCk7XG4gICAgICAgICAgICB2YXIgY29tYmluZWRPcHRpb25zID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChmZXRjaE1vcmVPcHRpb25zLnF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgY29tYmluZWRPcHRpb25zID0gZmV0Y2hNb3JlT3B0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciB2YXJpYWJsZXMgPSBfX2Fzc2lnbih7fSwgX3RoaXMudmFyaWFibGVzLCBmZXRjaE1vcmVPcHRpb25zLnZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgY29tYmluZWRPcHRpb25zID0gX19hc3NpZ24oe30sIF90aGlzLm9wdGlvbnMsIGZldGNoTW9yZU9wdGlvbnMsIHsgdmFyaWFibGVzOiB2YXJpYWJsZXMgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21iaW5lZE9wdGlvbnMgPSBfX2Fzc2lnbih7fSwgY29tYmluZWRPcHRpb25zLCB7IHF1ZXJ5OiBjb21iaW5lZE9wdGlvbnMucXVlcnksIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyB9KTtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5xdWVyeU1hbmFnZXIuZmV0Y2hRdWVyeShxaWQsIGNvbWJpbmVkT3B0aW9ucywgRmV0Y2hUeXBlLm5vcm1hbCwgX3RoaXMucXVlcnlJZCk7XG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoZmV0Y2hNb3JlUmVzdWx0KSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IGZldGNoTW9yZVJlc3VsdC5kYXRhO1xuICAgICAgICAgICAgdmFyIHJlZHVjZXIgPSBmZXRjaE1vcmVPcHRpb25zLnVwZGF0ZVF1ZXJ5O1xuICAgICAgICAgICAgdmFyIG1hcEZuID0gZnVuY3Rpb24gKHByZXZpb3VzUmVzdWx0LCBfYSkge1xuICAgICAgICAgICAgICAgIHZhciB2YXJpYWJsZXMgPSBfYS52YXJpYWJsZXM7XG4gICAgICAgICAgICAgICAgdmFyIHF1ZXJ5VmFyaWFibGVzID0gdmFyaWFibGVzO1xuICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2VyKHByZXZpb3VzUmVzdWx0LCB7XG4gICAgICAgICAgICAgICAgICAgIGZldGNoTW9yZVJlc3VsdDogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlWYXJpYWJsZXM6IHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIF90aGlzLnVwZGF0ZVF1ZXJ5KG1hcEZuKTtcbiAgICAgICAgICAgIHJldHVybiBmZXRjaE1vcmVSZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zdWJzY3JpYmVUb01vcmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgb2JzZXJ2YWJsZSA9IHRoaXMucXVlcnlNYW5hZ2VyLnN0YXJ0R3JhcGhRTFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBxdWVyeTogb3B0aW9ucy5kb2N1bWVudCxcbiAgICAgICAgICAgIHZhcmlhYmxlczogb3B0aW9ucy52YXJpYWJsZXMsXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gb2JzZXJ2YWJsZS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy51cGRhdGVRdWVyeSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVkdWNlcl8xID0gb3B0aW9ucy51cGRhdGVRdWVyeTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1hcEZuID0gZnVuY3Rpb24gKHByZXZpb3VzUmVzdWx0LCBfYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1Y2VyXzEocHJldmlvdXNSZXN1bHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25EYXRhOiB7IGRhdGE6IGRhdGEgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy51cGRhdGVRdWVyeShtYXBGbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMub25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm9uRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VuaGFuZGxlZCBHcmFwaFFMIHN1YnNjcmlwdGlvbiBlcnJvcicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSGFuZGxlcy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgaSA9IF90aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMuaW5kZXhPZihzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgaWYgKGkgPj0gMCkge1xuICAgICAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zZXRPcHRpb25zID0gZnVuY3Rpb24gKG9wdHMpIHtcbiAgICAgICAgdmFyIG9sZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IF9fYXNzaWduKHt9LCB0aGlzLm9wdGlvbnMsIG9wdHMpO1xuICAgICAgICBpZiAob3B0cy5wb2xsSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRQb2xsaW5nKG9wdHMucG9sbEludGVydmFsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRzLnBvbGxJbnRlcnZhbCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zdG9wUG9sbGluZygpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0cnlGZXRjaCA9IChvbGRPcHRpb25zLmZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5JyAmJlxuICAgICAgICAgICAgb3B0cy5mZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seScpIHx8XG4gICAgICAgICAgICAob2xkT3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ2NhY2hlLW9ubHknICYmXG4gICAgICAgICAgICAgICAgb3B0cy5mZXRjaFBvbGljeSAhPT0gJ2NhY2hlLW9ubHknKSB8fFxuICAgICAgICAgICAgKG9sZE9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdzdGFuZGJ5JyAmJlxuICAgICAgICAgICAgICAgIG9wdHMuZmV0Y2hQb2xpY3kgIT09ICdzdGFuZGJ5JykgfHxcbiAgICAgICAgICAgIGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRWYXJpYWJsZXModGhpcy5vcHRpb25zLnZhcmlhYmxlcywgdHJ5RmV0Y2gsIG9wdHMuZmV0Y2hSZXN1bHRzKTtcbiAgICB9O1xuICAgIE9ic2VydmFibGVRdWVyeS5wcm90b3R5cGUuc2V0VmFyaWFibGVzID0gZnVuY3Rpb24gKHZhcmlhYmxlcywgdHJ5RmV0Y2gsIGZldGNoUmVzdWx0cykge1xuICAgICAgICBpZiAodHJ5RmV0Y2ggPT09IHZvaWQgMCkgeyB0cnlGZXRjaCA9IGZhbHNlOyB9XG4gICAgICAgIGlmIChmZXRjaFJlc3VsdHMgPT09IHZvaWQgMCkgeyBmZXRjaFJlc3VsdHMgPSB0cnVlOyB9XG4gICAgICAgIHZhciBuZXdWYXJpYWJsZXMgPSBfX2Fzc2lnbih7fSwgdGhpcy52YXJpYWJsZXMsIHZhcmlhYmxlcyk7XG4gICAgICAgIGlmIChpc0VxdWFsKG5ld1ZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpICYmICF0cnlGZXRjaCkge1xuICAgICAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCB8fCAhZmV0Y2hSZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiByZXNvbHZlKCk7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlcyA9IG5ld1ZhcmlhYmxlcztcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy52YXJpYWJsZXMgPSBuZXdWYXJpYWJsZXM7XG4gICAgICAgICAgICBpZiAodGhpcy5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiByZXNvbHZlKCk7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyXG4gICAgICAgICAgICAgICAgLmZldGNoUXVlcnkodGhpcy5xdWVyeUlkLCBfX2Fzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7IHZhcmlhYmxlczogdGhpcy52YXJpYWJsZXMgfSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgeyByZXR1cm4gbWF5YmVEZWVwRnJlZXplKHJlc3VsdCk7IH0pO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLnVwZGF0ZVF1ZXJ5ID0gZnVuY3Rpb24gKG1hcEZuKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMucXVlcnlNYW5hZ2VyLmdldFF1ZXJ5V2l0aFByZXZpb3VzUmVzdWx0KHRoaXMucXVlcnlJZCksIHByZXZpb3VzUmVzdWx0ID0gX2EucHJldmlvdXNSZXN1bHQsIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcywgZG9jdW1lbnQgPSBfYS5kb2N1bWVudDtcbiAgICAgICAgdmFyIG5ld1Jlc3VsdCA9IHRyeUZ1bmN0aW9uT3JMb2dFcnJvcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFwRm4ocHJldmlvdXNSZXN1bHQsIHsgdmFyaWFibGVzOiB2YXJpYWJsZXMgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobmV3UmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5TWFuYWdlci5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19VUERBVEVfUVVFUllfUkVTVUxUJyxcbiAgICAgICAgICAgICAgICBuZXdSZXN1bHQ6IG5ld1Jlc3VsdCxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShkb2N1bWVudCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zdG9wUG9sbGluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50bHlQb2xsaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlci5zdG9wUG9sbGluZ1F1ZXJ5KHRoaXMucXVlcnlJZCk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMucG9sbEludGVydmFsID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zdGFydFBvbGxpbmcgPSBmdW5jdGlvbiAocG9sbEludGVydmFsKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1maXJzdCcgfHxcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ2NhY2hlLW9ubHknKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1F1ZXJpZXMgdGhhdCBzcGVjaWZ5IHRoZSBjYWNoZS1maXJzdCBhbmQgY2FjaGUtb25seSBmZXRjaFBvbGljaWVzIGNhbm5vdCBhbHNvIGJlIHBvbGxpbmcgcXVlcmllcy4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0N1cnJlbnRseVBvbGxpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVyLnN0b3BQb2xsaW5nUXVlcnkodGhpcy5xdWVyeUlkKTtcbiAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50bHlQb2xsaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zLnBvbGxJbnRlcnZhbCA9IHBvbGxJbnRlcnZhbDtcbiAgICAgICAgdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnNjaGVkdWxlci5zdGFydFBvbGxpbmdRdWVyeSh0aGlzLm9wdGlvbnMsIHRoaXMucXVlcnlJZCk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlUXVlcnkucHJvdG90eXBlLm9uU3Vic2NyaWJlID0gZnVuY3Rpb24gKG9ic2VydmVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXIpO1xuICAgICAgICBpZiAob2JzZXJ2ZXIubmV4dCAmJiB0aGlzLmxhc3RSZXN1bHQpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQodGhpcy5sYXN0UmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IgJiYgdGhpcy5sYXN0RXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHRoaXMubGFzdEVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vYnNlcnZlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnNldFVwUXVlcnkoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmV0UXVlcnlTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICB1bnN1YnNjcmliZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICghX3RoaXMub2JzZXJ2ZXJzLnNvbWUoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbCA9PT0gb2JzZXJ2ZXI7IH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX3RoaXMub2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzLmZpbHRlcihmdW5jdGlvbiAob2JzKSB7IHJldHVybiBvYnMgIT09IG9ic2VydmVyOyB9KTtcbiAgICAgICAgICAgICAgICBpZiAoX3RoaXMub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy50ZWFyRG93blF1ZXJ5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJldFF1ZXJ5U3Vic2NyaXB0aW9uO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS5zZXRVcFF1ZXJ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5zaG91bGRTdWJzY3JpYmUpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlNYW5hZ2VyLmFkZE9ic2VydmFibGVRdWVyeSh0aGlzLnF1ZXJ5SWQsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIXRoaXMub3B0aW9ucy5wb2xsSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1maXJzdCcgfHxcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1vbmx5Jykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUXVlcmllcyB0aGF0IHNwZWNpZnkgdGhlIGNhY2hlLWZpcnN0IGFuZCBjYWNoZS1vbmx5IGZldGNoUG9saWNpZXMgY2Fubm90IGFsc28gYmUgcG9sbGluZyBxdWVyaWVzLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc0N1cnJlbnRseVBvbGxpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZXIuc3RhcnRQb2xsaW5nUXVlcnkodGhpcy5vcHRpb25zLCB0aGlzLnF1ZXJ5SWQpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBvYnNlcnZlciA9IHtcbiAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5sYXN0UmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIF90aGlzLm9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9icy5uZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnMubmV4dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIF90aGlzLm9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9icy5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1VuaGFuZGxlZCBlcnJvcicsIGVycm9yLm1lc3NhZ2UsIGVycm9yLnN0YWNrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIF90aGlzLmxhc3RFcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIuc3RhcnRRdWVyeSh0aGlzLnF1ZXJ5SWQsIHRoaXMub3B0aW9ucywgdGhpcy5xdWVyeU1hbmFnZXIucXVlcnlMaXN0ZW5lckZvck9ic2VydmVyKHRoaXMucXVlcnlJZCwgdGhpcy5vcHRpb25zLCBvYnNlcnZlcikpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZVF1ZXJ5LnByb3RvdHlwZS50ZWFyRG93blF1ZXJ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc0N1cnJlbnRseVBvbGxpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVyLnN0b3BQb2xsaW5nUXVlcnkodGhpcy5xdWVyeUlkKTtcbiAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50bHlQb2xsaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25IYW5kbGVzLmZvckVhY2goZnVuY3Rpb24gKHN1YikgeyByZXR1cm4gc3ViLnVuc3Vic2NyaWJlKCk7IH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbkhhbmRsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIuc3RvcFF1ZXJ5KHRoaXMucXVlcnlJZCk7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFN1YnNjcmliZSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIucmVtb3ZlT2JzZXJ2YWJsZVF1ZXJ5KHRoaXMucXVlcnlJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vYnNlcnZlcnMgPSBbXTtcbiAgICB9O1xuICAgIHJldHVybiBPYnNlcnZhYmxlUXVlcnk7XG59KE9ic2VydmFibGUpKTtcbmV4cG9ydCB7IE9ic2VydmFibGVRdWVyeSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9T2JzZXJ2YWJsZVF1ZXJ5LmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvY29yZS9PYnNlcnZhYmxlUXVlcnkuanNcbi8vIG1vZHVsZSBpZCA9IDY2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///66\n"); /***/ }), -/* 66 */ +/* 67 */ /*!**********************************************************!*\ !*** ./node_modules/apollo-client/errors/ApolloError.js ***! \**********************************************************/ @@ -864,10 +876,10 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"b\"] = isApolloError;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ApolloError; });\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (Array.isArray(err.graphQLErrors) && err.graphQLErrors.length !== 0) {\n err.graphQLErrors.forEach(function (graphQLError) {\n var errorMessage = graphQLError\n ? graphQLError.message\n : 'Error message not found.';\n message += \"GraphQL error: \" + errorMessage + \"\\n\";\n });\n }\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.networkError = networkError || null;\n if (!errorMessage) {\n _this.message = generateErrorMessage(_this);\n }\n else {\n _this.message = errorMessage;\n }\n _this.extraInfo = extraInfo;\n return _this;\n }\n return ApolloError;\n}(Error));\n\n//# sourceMappingURL=ApolloError.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9lcnJvcnMvQXBvbGxvRXJyb3IuanM/N2FkYyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbmV4cG9ydCBmdW5jdGlvbiBpc0Fwb2xsb0Vycm9yKGVycikge1xuICAgIHJldHVybiBlcnIuaGFzT3duUHJvcGVydHkoJ2dyYXBoUUxFcnJvcnMnKTtcbn1cbnZhciBnZW5lcmF0ZUVycm9yTWVzc2FnZSA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICcnO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGVyci5ncmFwaFFMRXJyb3JzKSAmJiBlcnIuZ3JhcGhRTEVycm9ycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgZXJyLmdyYXBoUUxFcnJvcnMuZm9yRWFjaChmdW5jdGlvbiAoZ3JhcGhRTEVycm9yKSB7XG4gICAgICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gZ3JhcGhRTEVycm9yXG4gICAgICAgICAgICAgICAgPyBncmFwaFFMRXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgIDogJ0Vycm9yIG1lc3NhZ2Ugbm90IGZvdW5kLic7XG4gICAgICAgICAgICBtZXNzYWdlICs9IFwiR3JhcGhRTCBlcnJvcjogXCIgKyBlcnJvck1lc3NhZ2UgKyBcIlxcblwiO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGVyci5uZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgbWVzc2FnZSArPSAnTmV0d29yayBlcnJvcjogJyArIGVyci5uZXR3b3JrRXJyb3IubWVzc2FnZSArICdcXG4nO1xuICAgIH1cbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXG4kLywgJycpO1xuICAgIHJldHVybiBtZXNzYWdlO1xufTtcbnZhciBBcG9sbG9FcnJvciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEFwb2xsb0Vycm9yLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEFwb2xsb0Vycm9yKF9hKSB7XG4gICAgICAgIHZhciBncmFwaFFMRXJyb3JzID0gX2EuZ3JhcGhRTEVycm9ycywgbmV0d29ya0Vycm9yID0gX2EubmV0d29ya0Vycm9yLCBlcnJvck1lc3NhZ2UgPSBfYS5lcnJvck1lc3NhZ2UsIGV4dHJhSW5mbyA9IF9hLmV4dHJhSW5mbztcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZXJyb3JNZXNzYWdlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5ncmFwaFFMRXJyb3JzID0gZ3JhcGhRTEVycm9ycyB8fCBbXTtcbiAgICAgICAgX3RoaXMubmV0d29ya0Vycm9yID0gbmV0d29ya0Vycm9yIHx8IG51bGw7XG4gICAgICAgIGlmICghZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICBfdGhpcy5tZXNzYWdlID0gZ2VuZXJhdGVFcnJvck1lc3NhZ2UoX3RoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMubWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICBfdGhpcy5leHRyYUluZm8gPSBleHRyYUluZm87XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIEFwb2xsb0Vycm9yO1xufShFcnJvcikpO1xuZXhwb3J0IHsgQXBvbGxvRXJyb3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwb2xsb0Vycm9yLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvZXJyb3JzL0Fwb2xsb0Vycm9yLmpzXG4vLyBtb2R1bGUgaWQgPSA2NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///66\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"b\"] = isApolloError;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ApolloError; });\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (Array.isArray(err.graphQLErrors) && err.graphQLErrors.length !== 0) {\n err.graphQLErrors.forEach(function (graphQLError) {\n var errorMessage = graphQLError\n ? graphQLError.message\n : 'Error message not found.';\n message += \"GraphQL error: \" + errorMessage + \"\\n\";\n });\n }\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.networkError = networkError || null;\n if (!errorMessage) {\n _this.message = generateErrorMessage(_this);\n }\n else {\n _this.message = errorMessage;\n }\n _this.extraInfo = extraInfo;\n return _this;\n }\n return ApolloError;\n}(Error));\n\n//# sourceMappingURL=ApolloError.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9lcnJvcnMvQXBvbGxvRXJyb3IuanM/N2FkYyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbmV4cG9ydCBmdW5jdGlvbiBpc0Fwb2xsb0Vycm9yKGVycikge1xuICAgIHJldHVybiBlcnIuaGFzT3duUHJvcGVydHkoJ2dyYXBoUUxFcnJvcnMnKTtcbn1cbnZhciBnZW5lcmF0ZUVycm9yTWVzc2FnZSA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICB2YXIgbWVzc2FnZSA9ICcnO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGVyci5ncmFwaFFMRXJyb3JzKSAmJiBlcnIuZ3JhcGhRTEVycm9ycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgZXJyLmdyYXBoUUxFcnJvcnMuZm9yRWFjaChmdW5jdGlvbiAoZ3JhcGhRTEVycm9yKSB7XG4gICAgICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gZ3JhcGhRTEVycm9yXG4gICAgICAgICAgICAgICAgPyBncmFwaFFMRXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgIDogJ0Vycm9yIG1lc3NhZ2Ugbm90IGZvdW5kLic7XG4gICAgICAgICAgICBtZXNzYWdlICs9IFwiR3JhcGhRTCBlcnJvcjogXCIgKyBlcnJvck1lc3NhZ2UgKyBcIlxcblwiO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGVyci5uZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgbWVzc2FnZSArPSAnTmV0d29yayBlcnJvcjogJyArIGVyci5uZXR3b3JrRXJyb3IubWVzc2FnZSArICdcXG4nO1xuICAgIH1cbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXG4kLywgJycpO1xuICAgIHJldHVybiBtZXNzYWdlO1xufTtcbnZhciBBcG9sbG9FcnJvciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEFwb2xsb0Vycm9yLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEFwb2xsb0Vycm9yKF9hKSB7XG4gICAgICAgIHZhciBncmFwaFFMRXJyb3JzID0gX2EuZ3JhcGhRTEVycm9ycywgbmV0d29ya0Vycm9yID0gX2EubmV0d29ya0Vycm9yLCBlcnJvck1lc3NhZ2UgPSBfYS5lcnJvck1lc3NhZ2UsIGV4dHJhSW5mbyA9IF9hLmV4dHJhSW5mbztcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZXJyb3JNZXNzYWdlKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5ncmFwaFFMRXJyb3JzID0gZ3JhcGhRTEVycm9ycyB8fCBbXTtcbiAgICAgICAgX3RoaXMubmV0d29ya0Vycm9yID0gbmV0d29ya0Vycm9yIHx8IG51bGw7XG4gICAgICAgIGlmICghZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICBfdGhpcy5tZXNzYWdlID0gZ2VuZXJhdGVFcnJvck1lc3NhZ2UoX3RoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMubWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICBfdGhpcy5leHRyYUluZm8gPSBleHRyYUluZm87XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIEFwb2xsb0Vycm9yO1xufShFcnJvcikpO1xuZXhwb3J0IHsgQXBvbGxvRXJyb3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwb2xsb0Vycm9yLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvZXJyb3JzL0Fwb2xsb0Vycm9yLmpzXG4vLyBtb2R1bGUgaWQgPSA2N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///67\n"); /***/ }), -/* 67 */ +/* 68 */ /*!**************************************************!*\ !*** ./node_modules/apollo-client/core/types.js ***! \**************************************************/ @@ -876,10 +888,10 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"b\"] = isApolloErro /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FetchType; });\nvar FetchType;\n(function (FetchType) {\n FetchType[FetchType[\"normal\"] = 1] = \"normal\";\n FetchType[FetchType[\"refetch\"] = 2] = \"refetch\";\n FetchType[FetchType[\"poll\"] = 3] = \"poll\";\n})(FetchType || (FetchType = {}));\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9jb3JlL3R5cGVzLmpzPzUzNWYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBGZXRjaFR5cGU7XG4oZnVuY3Rpb24gKEZldGNoVHlwZSkge1xuICAgIEZldGNoVHlwZVtGZXRjaFR5cGVbXCJub3JtYWxcIl0gPSAxXSA9IFwibm9ybWFsXCI7XG4gICAgRmV0Y2hUeXBlW0ZldGNoVHlwZVtcInJlZmV0Y2hcIl0gPSAyXSA9IFwicmVmZXRjaFwiO1xuICAgIEZldGNoVHlwZVtGZXRjaFR5cGVbXCJwb2xsXCJdID0gM10gPSBcInBvbGxcIjtcbn0pKEZldGNoVHlwZSB8fCAoRmV0Y2hUeXBlID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvY29yZS90eXBlcy5qc1xuLy8gbW9kdWxlIGlkID0gNjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///67\n"); +eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FetchType; });\nvar FetchType;\n(function (FetchType) {\n FetchType[FetchType[\"normal\"] = 1] = \"normal\";\n FetchType[FetchType[\"refetch\"] = 2] = \"refetch\";\n FetchType[FetchType[\"poll\"] = 3] = \"poll\";\n})(FetchType || (FetchType = {}));\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9jb3JlL3R5cGVzLmpzPzUzNWYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBGZXRjaFR5cGU7XG4oZnVuY3Rpb24gKEZldGNoVHlwZSkge1xuICAgIEZldGNoVHlwZVtGZXRjaFR5cGVbXCJub3JtYWxcIl0gPSAxXSA9IFwibm9ybWFsXCI7XG4gICAgRmV0Y2hUeXBlW0ZldGNoVHlwZVtcInJlZmV0Y2hcIl0gPSAyXSA9IFwicmVmZXRjaFwiO1xuICAgIEZldGNoVHlwZVtGZXRjaFR5cGVbXCJwb2xsXCJdID0gM10gPSBcInBvbGxcIjtcbn0pKEZldGNoVHlwZSB8fCAoRmV0Y2hUeXBlID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvY29yZS90eXBlcy5qc1xuLy8gbW9kdWxlIGlkID0gNjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///68\n"); /***/ }), -/* 68 */ +/* 69 */ /*!****************************************************!*\ !*** ./node_modules/graphql/error/GraphQLError.js ***! \****************************************************/ @@ -888,10 +900,10 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GraphQLError = GraphQLError;\n\nvar _location = __webpack_require__(/*! ../language/location */ 127);\n\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\nfunction GraphQLError( // eslint-disable-line no-redeclare\nmessage, nodes, source, positions, path, originalError) {\n // Compute locations in the source for the given nodes/positions.\n var _source = source;\n if (!_source && nodes && nodes.length > 0) {\n var node = nodes[0];\n _source = node && node.loc && node.loc.source;\n }\n\n var _positions = positions;\n if (!_positions && nodes) {\n _positions = nodes.filter(function (node) {\n return Boolean(node.loc);\n }).map(function (node) {\n return node.loc.start;\n });\n }\n if (_positions && _positions.length === 0) {\n _positions = undefined;\n }\n\n var _locations = void 0;\n var _source2 = _source; // seems here Flow need a const to resolve type.\n if (_source2 && _positions) {\n _locations = _positions.map(function (pos) {\n return (0, _location.getLocation)(_source2, pos);\n });\n }\n\n Object.defineProperties(this, {\n message: {\n value: message,\n // By being enumerable, JSON.stringify will include `message` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true,\n writable: true\n },\n locations: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: _locations || undefined,\n // By being enumerable, JSON.stringify will include `locations` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true\n },\n path: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: path || undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true\n },\n nodes: {\n value: nodes || undefined\n },\n source: {\n value: _source || undefined\n },\n positions: {\n value: _positions || undefined\n },\n originalError: {\n value: originalError\n }\n });\n\n // Include (non-enumerable) stack trace.\n if (originalError && originalError.stack) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n}\n/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nGraphQLError.prototype = Object.create(Error.prototype, {\n constructor: { value: GraphQLError },\n name: { value: 'GraphQLError' }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9HcmFwaFFMRXJyb3IuanM/NDI2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkdyYXBoUUxFcnJvciA9IEdyYXBoUUxFcnJvcjtcblxudmFyIF9sb2NhdGlvbiA9IHJlcXVpcmUoJy4uL2xhbmd1YWdlL2xvY2F0aW9uJyk7XG5cbi8qKlxuICogQSBHcmFwaFFMRXJyb3IgZGVzY3JpYmVzIGFuIEVycm9yIGZvdW5kIGR1cmluZyB0aGUgcGFyc2UsIHZhbGlkYXRlLCBvclxuICogZXhlY3V0ZSBwaGFzZXMgb2YgcGVyZm9ybWluZyBhIEdyYXBoUUwgb3BlcmF0aW9uLiBJbiBhZGRpdGlvbiB0byBhIG1lc3NhZ2VcbiAqIGFuZCBzdGFjayB0cmFjZSwgaXQgYWxzbyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYXRpb25zIGluIGFcbiAqIEdyYXBoUUwgZG9jdW1lbnQgYW5kL29yIGV4ZWN1dGlvbiByZXN1bHQgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSBFcnJvci5cbiAqL1xuZnVuY3Rpb24gR3JhcGhRTEVycm9yKCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlZGVjbGFyZVxubWVzc2FnZSwgbm9kZXMsIHNvdXJjZSwgcG9zaXRpb25zLCBwYXRoLCBvcmlnaW5hbEVycm9yKSB7XG4gIC8vIENvbXB1dGUgbG9jYXRpb25zIGluIHRoZSBzb3VyY2UgZm9yIHRoZSBnaXZlbiBub2Rlcy9wb3NpdGlvbnMuXG4gIHZhciBfc291cmNlID0gc291cmNlO1xuICBpZiAoIV9zb3VyY2UgJiYgbm9kZXMgJiYgbm9kZXMubGVuZ3RoID4gMCkge1xuICAgIHZhciBub2RlID0gbm9kZXNbMF07XG4gICAgX3NvdXJjZSA9IG5vZGUgJiYgbm9kZS5sb2MgJiYgbm9kZS5sb2Muc291cmNlO1xuICB9XG5cbiAgdmFyIF9wb3NpdGlvbnMgPSBwb3NpdGlvbnM7XG4gIGlmICghX3Bvc2l0aW9ucyAmJiBub2Rlcykge1xuICAgIF9wb3NpdGlvbnMgPSBub2Rlcy5maWx0ZXIoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKG5vZGUubG9jKTtcbiAgICB9KS5tYXAoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiBub2RlLmxvYy5zdGFydDtcbiAgICB9KTtcbiAgfVxuICBpZiAoX3Bvc2l0aW9ucyAmJiBfcG9zaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIF9wb3NpdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB2YXIgX2xvY2F0aW9ucyA9IHZvaWQgMDtcbiAgdmFyIF9zb3VyY2UyID0gX3NvdXJjZTsgLy8gc2VlbXMgaGVyZSBGbG93IG5lZWQgYSBjb25zdCB0byByZXNvbHZlIHR5cGUuXG4gIGlmIChfc291cmNlMiAmJiBfcG9zaXRpb25zKSB7XG4gICAgX2xvY2F0aW9ucyA9IF9wb3NpdGlvbnMubWFwKGZ1bmN0aW9uIChwb3MpIHtcbiAgICAgIHJldHVybiAoMCwgX2xvY2F0aW9uLmdldExvY2F0aW9uKShfc291cmNlMiwgcG9zKTtcbiAgICB9KTtcbiAgfVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHtcbiAgICBtZXNzYWdlOiB7XG4gICAgICB2YWx1ZTogbWVzc2FnZSxcbiAgICAgIC8vIEJ5IGJlaW5nIGVudW1lcmFibGUsIEpTT04uc3RyaW5naWZ5IHdpbGwgaW5jbHVkZSBgbWVzc2FnZWAgaW4gdGhlXG4gICAgICAvLyByZXN1bHRpbmcgb3V0cHV0LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgc2ltcGxlc3QgcG9zc2libGUgR3JhcGhRTFxuICAgICAgLy8gc2VydmljZSBhZGhlcmVzIHRvIHRoZSBzcGVjLlxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSxcbiAgICBsb2NhdGlvbnM6IHtcbiAgICAgIC8vIENvZXJjaW5nIGZhbHNleSB2YWx1ZXMgdG8gdW5kZWZpbmVkIGVuc3VyZXMgdGhleSB3aWxsIG5vdCBiZSBpbmNsdWRlZFxuICAgICAgLy8gaW4gSlNPTi5zdHJpbmdpZnkoKSB3aGVuIG5vdCBwcm92aWRlZC5cbiAgICAgIHZhbHVlOiBfbG9jYXRpb25zIHx8IHVuZGVmaW5lZCxcbiAgICAgIC8vIEJ5IGJlaW5nIGVudW1lcmFibGUsIEpTT04uc3RyaW5naWZ5IHdpbGwgaW5jbHVkZSBgbG9jYXRpb25zYCBpbiB0aGVcbiAgICAgIC8vIHJlc3VsdGluZyBvdXRwdXQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBzaW1wbGVzdCBwb3NzaWJsZSBHcmFwaFFMXG4gICAgICAvLyBzZXJ2aWNlIGFkaGVyZXMgdG8gdGhlIHNwZWMuXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgfSxcbiAgICBwYXRoOiB7XG4gICAgICAvLyBDb2VyY2luZyBmYWxzZXkgdmFsdWVzIHRvIHVuZGVmaW5lZCBlbnN1cmVzIHRoZXkgd2lsbCBub3QgYmUgaW5jbHVkZWRcbiAgICAgIC8vIGluIEpTT04uc3RyaW5naWZ5KCkgd2hlbiBub3QgcHJvdmlkZWQuXG4gICAgICB2YWx1ZTogcGF0aCB8fCB1bmRlZmluZWQsXG4gICAgICAvLyBCeSBiZWluZyBlbnVtZXJhYmxlLCBKU09OLnN0cmluZ2lmeSB3aWxsIGluY2x1ZGUgYHBhdGhgIGluIHRoZVxuICAgICAgLy8gcmVzdWx0aW5nIG91dHB1dC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHNpbXBsZXN0IHBvc3NpYmxlIEdyYXBoUUxcbiAgICAgIC8vIHNlcnZpY2UgYWRoZXJlcyB0byB0aGUgc3BlYy5cbiAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICB9LFxuICAgIG5vZGVzOiB7XG4gICAgICB2YWx1ZTogbm9kZXMgfHwgdW5kZWZpbmVkXG4gICAgfSxcbiAgICBzb3VyY2U6IHtcbiAgICAgIHZhbHVlOiBfc291cmNlIHx8IHVuZGVmaW5lZFxuICAgIH0sXG4gICAgcG9zaXRpb25zOiB7XG4gICAgICB2YWx1ZTogX3Bvc2l0aW9ucyB8fCB1bmRlZmluZWRcbiAgICB9LFxuICAgIG9yaWdpbmFsRXJyb3I6IHtcbiAgICAgIHZhbHVlOiBvcmlnaW5hbEVycm9yXG4gICAgfVxuICB9KTtcblxuICAvLyBJbmNsdWRlIChub24tZW51bWVyYWJsZSkgc3RhY2sgdHJhY2UuXG4gIGlmIChvcmlnaW5hbEVycm9yICYmIG9yaWdpbmFsRXJyb3Iuc3RhY2spIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3N0YWNrJywge1xuICAgICAgdmFsdWU6IG9yaWdpbmFsRXJyb3Iuc3RhY2ssXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgR3JhcGhRTEVycm9yKTtcbiAgfSBlbHNlIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3N0YWNrJywge1xuICAgICAgdmFsdWU6IEVycm9yKCkuc3RhY2ssXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG4vKipcbiAqICBDb3B5cmlnaHQgKGMpIDIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiAgVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiAgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiAgb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuR3JhcGhRTEVycm9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBHcmFwaFFMRXJyb3IgfSxcbiAgbmFtZTogeyB2YWx1ZTogJ0dyYXBoUUxFcnJvcicgfVxufSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9HcmFwaFFMRXJyb3IuanNcbi8vIG1vZHVsZSBpZCA9IDY4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///68\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GraphQLError = GraphQLError;\n\nvar _location = __webpack_require__(/*! ../language/location */ 127);\n\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\nfunction GraphQLError( // eslint-disable-line no-redeclare\nmessage, nodes, source, positions, path, originalError) {\n // Compute locations in the source for the given nodes/positions.\n var _source = source;\n if (!_source && nodes && nodes.length > 0) {\n var node = nodes[0];\n _source = node && node.loc && node.loc.source;\n }\n\n var _positions = positions;\n if (!_positions && nodes) {\n _positions = nodes.filter(function (node) {\n return Boolean(node.loc);\n }).map(function (node) {\n return node.loc.start;\n });\n }\n if (_positions && _positions.length === 0) {\n _positions = undefined;\n }\n\n var _locations = void 0;\n var _source2 = _source; // seems here Flow need a const to resolve type.\n if (_source2 && _positions) {\n _locations = _positions.map(function (pos) {\n return (0, _location.getLocation)(_source2, pos);\n });\n }\n\n Object.defineProperties(this, {\n message: {\n value: message,\n // By being enumerable, JSON.stringify will include `message` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true,\n writable: true\n },\n locations: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: _locations || undefined,\n // By being enumerable, JSON.stringify will include `locations` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true\n },\n path: {\n // Coercing falsey values to undefined ensures they will not be included\n // in JSON.stringify() when not provided.\n value: path || undefined,\n // By being enumerable, JSON.stringify will include `path` in the\n // resulting output. This ensures that the simplest possible GraphQL\n // service adheres to the spec.\n enumerable: true\n },\n nodes: {\n value: nodes || undefined\n },\n source: {\n value: _source || undefined\n },\n positions: {\n value: _positions || undefined\n },\n originalError: {\n value: originalError\n }\n });\n\n // Include (non-enumerable) stack trace.\n if (originalError && originalError.stack) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n}\n/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nGraphQLError.prototype = Object.create(Error.prototype, {\n constructor: { value: GraphQLError },\n name: { value: 'GraphQLError' }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9HcmFwaFFMRXJyb3IuanM/NDI2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkdyYXBoUUxFcnJvciA9IEdyYXBoUUxFcnJvcjtcblxudmFyIF9sb2NhdGlvbiA9IHJlcXVpcmUoJy4uL2xhbmd1YWdlL2xvY2F0aW9uJyk7XG5cbi8qKlxuICogQSBHcmFwaFFMRXJyb3IgZGVzY3JpYmVzIGFuIEVycm9yIGZvdW5kIGR1cmluZyB0aGUgcGFyc2UsIHZhbGlkYXRlLCBvclxuICogZXhlY3V0ZSBwaGFzZXMgb2YgcGVyZm9ybWluZyBhIEdyYXBoUUwgb3BlcmF0aW9uLiBJbiBhZGRpdGlvbiB0byBhIG1lc3NhZ2VcbiAqIGFuZCBzdGFjayB0cmFjZSwgaXQgYWxzbyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYXRpb25zIGluIGFcbiAqIEdyYXBoUUwgZG9jdW1lbnQgYW5kL29yIGV4ZWN1dGlvbiByZXN1bHQgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSBFcnJvci5cbiAqL1xuZnVuY3Rpb24gR3JhcGhRTEVycm9yKCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlZGVjbGFyZVxubWVzc2FnZSwgbm9kZXMsIHNvdXJjZSwgcG9zaXRpb25zLCBwYXRoLCBvcmlnaW5hbEVycm9yKSB7XG4gIC8vIENvbXB1dGUgbG9jYXRpb25zIGluIHRoZSBzb3VyY2UgZm9yIHRoZSBnaXZlbiBub2Rlcy9wb3NpdGlvbnMuXG4gIHZhciBfc291cmNlID0gc291cmNlO1xuICBpZiAoIV9zb3VyY2UgJiYgbm9kZXMgJiYgbm9kZXMubGVuZ3RoID4gMCkge1xuICAgIHZhciBub2RlID0gbm9kZXNbMF07XG4gICAgX3NvdXJjZSA9IG5vZGUgJiYgbm9kZS5sb2MgJiYgbm9kZS5sb2Muc291cmNlO1xuICB9XG5cbiAgdmFyIF9wb3NpdGlvbnMgPSBwb3NpdGlvbnM7XG4gIGlmICghX3Bvc2l0aW9ucyAmJiBub2Rlcykge1xuICAgIF9wb3NpdGlvbnMgPSBub2Rlcy5maWx0ZXIoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKG5vZGUubG9jKTtcbiAgICB9KS5tYXAoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiBub2RlLmxvYy5zdGFydDtcbiAgICB9KTtcbiAgfVxuICBpZiAoX3Bvc2l0aW9ucyAmJiBfcG9zaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIF9wb3NpdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB2YXIgX2xvY2F0aW9ucyA9IHZvaWQgMDtcbiAgdmFyIF9zb3VyY2UyID0gX3NvdXJjZTsgLy8gc2VlbXMgaGVyZSBGbG93IG5lZWQgYSBjb25zdCB0byByZXNvbHZlIHR5cGUuXG4gIGlmIChfc291cmNlMiAmJiBfcG9zaXRpb25zKSB7XG4gICAgX2xvY2F0aW9ucyA9IF9wb3NpdGlvbnMubWFwKGZ1bmN0aW9uIChwb3MpIHtcbiAgICAgIHJldHVybiAoMCwgX2xvY2F0aW9uLmdldExvY2F0aW9uKShfc291cmNlMiwgcG9zKTtcbiAgICB9KTtcbiAgfVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHtcbiAgICBtZXNzYWdlOiB7XG4gICAgICB2YWx1ZTogbWVzc2FnZSxcbiAgICAgIC8vIEJ5IGJlaW5nIGVudW1lcmFibGUsIEpTT04uc3RyaW5naWZ5IHdpbGwgaW5jbHVkZSBgbWVzc2FnZWAgaW4gdGhlXG4gICAgICAvLyByZXN1bHRpbmcgb3V0cHV0LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgc2ltcGxlc3QgcG9zc2libGUgR3JhcGhRTFxuICAgICAgLy8gc2VydmljZSBhZGhlcmVzIHRvIHRoZSBzcGVjLlxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSxcbiAgICBsb2NhdGlvbnM6IHtcbiAgICAgIC8vIENvZXJjaW5nIGZhbHNleSB2YWx1ZXMgdG8gdW5kZWZpbmVkIGVuc3VyZXMgdGhleSB3aWxsIG5vdCBiZSBpbmNsdWRlZFxuICAgICAgLy8gaW4gSlNPTi5zdHJpbmdpZnkoKSB3aGVuIG5vdCBwcm92aWRlZC5cbiAgICAgIHZhbHVlOiBfbG9jYXRpb25zIHx8IHVuZGVmaW5lZCxcbiAgICAgIC8vIEJ5IGJlaW5nIGVudW1lcmFibGUsIEpTT04uc3RyaW5naWZ5IHdpbGwgaW5jbHVkZSBgbG9jYXRpb25zYCBpbiB0aGVcbiAgICAgIC8vIHJlc3VsdGluZyBvdXRwdXQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBzaW1wbGVzdCBwb3NzaWJsZSBHcmFwaFFMXG4gICAgICAvLyBzZXJ2aWNlIGFkaGVyZXMgdG8gdGhlIHNwZWMuXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgfSxcbiAgICBwYXRoOiB7XG4gICAgICAvLyBDb2VyY2luZyBmYWxzZXkgdmFsdWVzIHRvIHVuZGVmaW5lZCBlbnN1cmVzIHRoZXkgd2lsbCBub3QgYmUgaW5jbHVkZWRcbiAgICAgIC8vIGluIEpTT04uc3RyaW5naWZ5KCkgd2hlbiBub3QgcHJvdmlkZWQuXG4gICAgICB2YWx1ZTogcGF0aCB8fCB1bmRlZmluZWQsXG4gICAgICAvLyBCeSBiZWluZyBlbnVtZXJhYmxlLCBKU09OLnN0cmluZ2lmeSB3aWxsIGluY2x1ZGUgYHBhdGhgIGluIHRoZVxuICAgICAgLy8gcmVzdWx0aW5nIG91dHB1dC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHNpbXBsZXN0IHBvc3NpYmxlIEdyYXBoUUxcbiAgICAgIC8vIHNlcnZpY2UgYWRoZXJlcyB0byB0aGUgc3BlYy5cbiAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICB9LFxuICAgIG5vZGVzOiB7XG4gICAgICB2YWx1ZTogbm9kZXMgfHwgdW5kZWZpbmVkXG4gICAgfSxcbiAgICBzb3VyY2U6IHtcbiAgICAgIHZhbHVlOiBfc291cmNlIHx8IHVuZGVmaW5lZFxuICAgIH0sXG4gICAgcG9zaXRpb25zOiB7XG4gICAgICB2YWx1ZTogX3Bvc2l0aW9ucyB8fCB1bmRlZmluZWRcbiAgICB9LFxuICAgIG9yaWdpbmFsRXJyb3I6IHtcbiAgICAgIHZhbHVlOiBvcmlnaW5hbEVycm9yXG4gICAgfVxuICB9KTtcblxuICAvLyBJbmNsdWRlIChub24tZW51bWVyYWJsZSkgc3RhY2sgdHJhY2UuXG4gIGlmIChvcmlnaW5hbEVycm9yICYmIG9yaWdpbmFsRXJyb3Iuc3RhY2spIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3N0YWNrJywge1xuICAgICAgdmFsdWU6IG9yaWdpbmFsRXJyb3Iuc3RhY2ssXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgR3JhcGhRTEVycm9yKTtcbiAgfSBlbHNlIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3N0YWNrJywge1xuICAgICAgdmFsdWU6IEVycm9yKCkuc3RhY2ssXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG4vKipcbiAqICBDb3B5cmlnaHQgKGMpIDIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiAgVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiAgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiAgb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuR3JhcGhRTEVycm9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBHcmFwaFFMRXJyb3IgfSxcbiAgbmFtZTogeyB2YWx1ZTogJ0dyYXBoUUxFcnJvcicgfVxufSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9HcmFwaFFMRXJyb3IuanNcbi8vIG1vZHVsZSBpZCA9IDY5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///69\n"); /***/ }), -/* 69 */ +/* 70 */ /*!**********************************************************************************************************************!*\ !*** ./node_modules/apollo-client/node_modules/apollo-link-core/node_modules/zen-observable-ts/lib/zenObservable.js ***! \**********************************************************************************************************************/ @@ -900,10 +912,10 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (!cleanup) {\n return;\n }\n subscription._cleanup = undefined;\n cleanup();\n}\nfunction subscriptionClosed(subscription) {\n return subscription._observer === undefined;\n}\nfunction closeSubscription(subscription) {\n if (subscriptionClosed(subscription)) {\n return;\n }\n subscription._observer = undefined;\n cleanupSubscription(subscription);\n}\nfunction cleanupFromSubscription(subscription) {\n return function () {\n subscription.unsubscribe();\n };\n}\nvar Subscription = (function () {\n function Subscription(observer, subscriber) {\n if (Object(observer) !== observer) {\n throw new TypeError('Observer must be an object');\n }\n this._cleanup = undefined;\n this._observer = observer;\n if (observer.start) {\n observer.start(this);\n }\n if (subscriptionClosed(this)) {\n return;\n }\n var _observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(_observer);\n if (cleanup != null) {\n if (typeof cleanup.unsubscribe ===\n 'function') {\n cleanup = cleanupFromSubscription(cleanup);\n }\n else if (typeof cleanup !== 'function') {\n throw new TypeError(cleanup + ' is not a function');\n }\n this._cleanup = cleanup;\n }\n }\n catch (e) {\n if (_observer.error) {\n _observer.error(e);\n }\n return;\n }\n if (subscriptionClosed(this)) {\n cleanupSubscription(this);\n }\n }\n Object.defineProperty(Subscription.prototype, \"closed\", {\n get: function () {\n return subscriptionClosed(this);\n },\n enumerable: true,\n configurable: true\n });\n Subscription.prototype.unsubscribe = function () {\n closeSubscription(this);\n };\n return Subscription;\n}());\nexports.Subscription = Subscription;\nvar SubscriptionObserver = (function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n Object.defineProperty(SubscriptionObserver.prototype, \"closed\", {\n get: function () {\n return subscriptionClosed(this._subscription);\n },\n enumerable: true,\n configurable: true\n });\n SubscriptionObserver.prototype.next = function (value) {\n var subscription = this._subscription;\n if (subscriptionClosed(subscription)) {\n return;\n }\n var observer = subscription._observer;\n if (!observer.next) {\n return;\n }\n observer.next(value);\n return;\n };\n SubscriptionObserver.prototype.error = function (value) {\n var subscription = this._subscription;\n if (subscriptionClosed(subscription)) {\n throw value;\n }\n var observer = subscription._observer;\n subscription._observer = undefined;\n try {\n if (!observer.error) {\n throw value;\n }\n observer.error(value);\n }\n catch (e) {\n try {\n cleanupSubscription(subscription);\n }\n finally {\n throw e;\n }\n }\n cleanupSubscription(subscription);\n };\n SubscriptionObserver.prototype.complete = function () {\n var subscription = this._subscription;\n if (subscriptionClosed(subscription)) {\n return;\n }\n var observer = subscription._observer;\n subscription._observer = undefined;\n try {\n if (observer.complete) {\n observer.complete();\n }\n }\n catch (e) {\n try {\n cleanupSubscription(subscription);\n }\n finally {\n throw e;\n }\n }\n cleanupSubscription(subscription);\n };\n return SubscriptionObserver;\n}());\nexports.SubscriptionObserver = SubscriptionObserver;\nvar Observable = (function () {\n function Observable(subscriber) {\n if (typeof subscriber !== 'function') {\n throw new TypeError('Observable initializer must be a function');\n }\n this._subscriber = subscriber;\n }\n Observable.from = function (observable) {\n if (observable.subscribe) {\n return new Observable(function (observer) {\n return observable.subscribe(observer);\n });\n }\n if (Array.isArray(observable)) {\n return new Observable(function (observer) {\n for (var i = 0; i < observable.length; ++i) {\n observer.next(observable[i]);\n if (observer.closed) {\n return;\n }\n }\n if (observer.complete) {\n observer.complete();\n }\n });\n }\n throw new TypeError(observable + ' is not observable');\n };\n Observable.of = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n return new Observable(function (observer) {\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) {\n return;\n }\n }\n if (observer.complete) {\n observer.complete();\n }\n });\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n if (typeof observerOrNext === 'function') {\n return new Subscription({\n next: observerOrNext,\n error: error,\n complete: complete,\n }, this._subscriber);\n }\n return new Subscription(observerOrNext, this._subscriber);\n };\n Observable.prototype.forEach = function (fn) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n return Promise.reject(new TypeError(fn + ' is not a function'));\n }\n _this.subscribe({\n start: function (subscription) {\n this._subscription = subscription;\n },\n next: function (value) {\n var subscription = this._subscription;\n if (subscription.closed) {\n return;\n }\n try {\n fn(value);\n return;\n }\n catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n });\n };\n Observable.prototype.map = function (fn) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n return new Observable(function (observer) {\n return _this.subscribe({\n next: function (value) {\n if (observer.closed) {\n return;\n }\n var _value;\n try {\n _value = fn(value);\n }\n catch (e) {\n observer.error(e);\n return;\n }\n observer.next(_value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n },\n });\n });\n };\n Observable.prototype.filter = function (fn) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n return new Observable(function (observer) {\n _this.subscribe({\n next: function (value) {\n if (observer.closed) {\n return;\n }\n try {\n if (!fn(value)) {\n return;\n }\n }\n catch (e) {\n if (observer.error) {\n observer.error(e);\n }\n return;\n }\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n },\n });\n });\n };\n Observable.prototype.reduce = function (fn, initialValue) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new Observable(function (observer) {\n _this.subscribe({\n next: function (value) {\n if (observer.closed) {\n return;\n }\n var first = !hasValue;\n hasValue = true;\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n }\n catch (e) {\n observer.error(e);\n return;\n }\n }\n else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) {\n observer.error(new TypeError('Cannot reduce an empty sequence'));\n return;\n }\n observer.next(acc);\n observer.complete();\n },\n });\n });\n };\n Observable.prototype.flatMap = function (fn) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n return new Observable(function (observer) {\n var completed = false;\n var subscriptions = [];\n var outer = _this.subscribe({\n next: function (value) {\n var _value;\n if (fn) {\n try {\n _value = fn(value);\n }\n catch (x) {\n observer.error(x);\n return;\n }\n }\n Observable.from(_value).subscribe({\n start: function (s) {\n subscriptions.push((this._subscription = s));\n },\n next: function (data) {\n observer.next(data);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(this._subscription);\n if (i >= 0) {\n subscriptions.splice(i, 1);\n }\n closeIfDone();\n },\n });\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completed = true;\n closeIfDone();\n },\n });\n function closeIfDone() {\n if (completed && subscriptions.length === 0) {\n observer.complete();\n }\n }\n return function () {\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n outer.unsubscribe();\n };\n });\n };\n return Observable;\n}());\nexports.default = Observable;\n//# sourceMappingURL=zenObservable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9ub2RlX21vZHVsZXMvYXBvbGxvLWxpbmstY29yZS9ub2RlX21vZHVsZXMvemVuLW9ic2VydmFibGUtdHMvbGliL3plbk9ic2VydmFibGUuanM/NjFhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIGNsZWFudXBTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKSB7XG4gICAgdmFyIGNsZWFudXAgPSBzdWJzY3JpcHRpb24uX2NsZWFudXA7XG4gICAgaWYgKCFjbGVhbnVwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3Vic2NyaXB0aW9uLl9jbGVhbnVwID0gdW5kZWZpbmVkO1xuICAgIGNsZWFudXAoKTtcbn1cbmZ1bmN0aW9uIHN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb24pIHtcbiAgICByZXR1cm4gc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9PT0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gY2xvc2VTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKSB7XG4gICAgaWYgKHN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbik7XG59XG5mdW5jdGlvbiBjbGVhbnVwRnJvbVN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xufVxudmFyIFN1YnNjcmlwdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU3Vic2NyaXB0aW9uKG9ic2VydmVyLCBzdWJzY3JpYmVyKSB7XG4gICAgICAgIGlmIChPYmplY3Qob2JzZXJ2ZXIpICE9PSBvYnNlcnZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT2JzZXJ2ZXIgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jbGVhbnVwID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9vYnNlcnZlciA9IG9ic2VydmVyO1xuICAgICAgICBpZiAob2JzZXJ2ZXIuc3RhcnQpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLnN0YXJ0KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25DbG9zZWQodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX29ic2VydmVyID0gbmV3IFN1YnNjcmlwdGlvbk9ic2VydmVyKHRoaXMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGNsZWFudXAgPSBzdWJzY3JpYmVyKF9vYnNlcnZlcik7XG4gICAgICAgICAgICBpZiAoY2xlYW51cCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjbGVhbnVwLnVuc3Vic2NyaWJlID09PVxuICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFudXAgPSBjbGVhbnVwRnJvbVN1YnNjcmlwdGlvbihjbGVhbnVwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNsZWFudXAgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihjbGVhbnVwICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9jbGVhbnVwID0gY2xlYW51cDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKF9vYnNlcnZlci5lcnJvcikge1xuICAgICAgICAgICAgICAgIF9vYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uQ2xvc2VkKHRoaXMpKSB7XG4gICAgICAgICAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdWJzY3JpcHRpb24ucHJvdG90eXBlLCBcImNsb3NlZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkNsb3NlZCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU3Vic2NyaXB0aW9uLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2xvc2VTdWJzY3JpcHRpb24odGhpcyk7XG4gICAgfTtcbiAgICByZXR1cm4gU3Vic2NyaXB0aW9uO1xufSgpKTtcbmV4cG9ydHMuU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uO1xudmFyIFN1YnNjcmlwdGlvbk9ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTdWJzY3JpcHRpb25PYnNlcnZlcihzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3Vic2NyaXB0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLCBcImNsb3NlZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkNsb3NlZCh0aGlzLl9zdWJzY3JpcHRpb24pO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBTdWJzY3JpcHRpb25PYnNlcnZlci5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gdGhpcy5fc3Vic2NyaXB0aW9uO1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uQ2xvc2VkKHN1YnNjcmlwdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb2JzZXJ2ZXIgPSBzdWJzY3JpcHRpb24uX29ic2VydmVyO1xuICAgICAgICBpZiAoIW9ic2VydmVyLm5leHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG4gICAgU3Vic2NyaXB0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciBzdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb247XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25DbG9zZWQoc3Vic2NyaXB0aW9uKSkge1xuICAgICAgICAgICAgdGhyb3cgdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9ic2VydmVyID0gc3Vic2NyaXB0aW9uLl9vYnNlcnZlcjtcbiAgICAgICAgc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghb2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNsZWFudXBTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKTtcbiAgICB9O1xuICAgIFN1YnNjcmlwdGlvbk9ic2VydmVyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IHRoaXMuX3N1YnNjcmlwdGlvbjtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9ic2VydmVyID0gc3Vic2NyaXB0aW9uLl9vYnNlcnZlcjtcbiAgICAgICAgc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChvYnNlcnZlci5jb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2xlYW51cFN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbik7XG4gICAgfTtcbiAgICByZXR1cm4gU3Vic2NyaXB0aW9uT2JzZXJ2ZXI7XG59KCkpO1xuZXhwb3J0cy5TdWJzY3JpcHRpb25PYnNlcnZlciA9IFN1YnNjcmlwdGlvbk9ic2VydmVyO1xudmFyIE9ic2VydmFibGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIE9ic2VydmFibGUoc3Vic2NyaWJlcikge1xuICAgICAgICBpZiAodHlwZW9mIHN1YnNjcmliZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09ic2VydmFibGUgaW5pdGlhbGl6ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlciA9IHN1YnNjcmliZXI7XG4gICAgfVxuICAgIE9ic2VydmFibGUuZnJvbSA9IGZ1bmN0aW9uIChvYnNlcnZhYmxlKSB7XG4gICAgICAgIGlmIChvYnNlcnZhYmxlLnN1YnNjcmliZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlLnN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYnNlcnZhYmxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JzZXJ2YWJsZS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG9ic2VydmFibGVbaV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihvYnNlcnZhYmxlICsgJyBpcyBub3Qgb2JzZXJ2YWJsZScpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5vZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGl0ZW1zID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBpdGVtc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGl0ZW1zW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlLnN1YnNjcmliZSA9IGZ1bmN0aW9uIChvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXJPck5leHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBvYnNlcnZlck9yTmV4dCxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlLFxuICAgICAgICAgICAgfSwgdGhpcy5fc3Vic2NyaWJlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb24ob2JzZXJ2ZXJPck5leHQsIHRoaXMuX3N1YnNjcmliZXIpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKGZuICsgJyBpcyBub3QgYSBmdW5jdGlvbicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF90aGlzLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb247XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogcmVqZWN0LFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiByZXNvbHZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUubWFwID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoZm4gKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlci5jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbHVlID0gZm4odmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KF92YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5maWx0ZXIgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihmbiArICcgaXMgbm90IGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZnVuY3Rpb24gKG9ic2VydmVyKSB7XG4gICAgICAgICAgICBfdGhpcy5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZm4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlLnJlZHVjZSA9IGZ1bmN0aW9uIChmbiwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoZm4gKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhhc1NlZWQgPSBhcmd1bWVudHMubGVuZ3RoID4gMTtcbiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7XG4gICAgICAgIHZhciBzZWVkID0gYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgYWNjID0gc2VlZDtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgX3RoaXMuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9ic2VydmVyLmNsb3NlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBmaXJzdCA9ICFoYXNWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0IHx8IGhhc1NlZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjID0gZm4oYWNjLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjYyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1ZhbHVlICYmICFoYXNTZWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgVHlwZUVycm9yKCdDYW5ub3QgcmVkdWNlIGFuIGVtcHR5IHNlcXVlbmNlJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoYWNjKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuZmxhdE1hcCA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGZuICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHZhciBjb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBzdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgICAgICB2YXIgb3V0ZXIgPSBfdGhpcy5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbHVlID0gZm4odmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcih4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2YWJsZS5mcm9tKF92YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCgodGhpcy5fc3Vic2NyaXB0aW9uID0gcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpID0gc3Vic2NyaXB0aW9ucy5pbmRleE9mKHRoaXMuX3N1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VJZkRvbmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VJZkRvbmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBjbG9zZUlmRG9uZSgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29tcGxldGVkICYmIHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKHMpIHsgcmV0dXJuIHMudW5zdWJzY3JpYmUoKTsgfSk7XG4gICAgICAgICAgICAgICAgb3V0ZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIE9ic2VydmFibGU7XG59KCkpO1xuZXhwb3J0cy5kZWZhdWx0ID0gT2JzZXJ2YWJsZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXplbk9ic2VydmFibGUuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9ub2RlX21vZHVsZXMvYXBvbGxvLWxpbmstY29yZS9ub2RlX21vZHVsZXMvemVuLW9ic2VydmFibGUtdHMvbGliL3plbk9ic2VydmFibGUuanNcbi8vIG1vZHVsZSBpZCA9IDY5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///69\n"); +eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (!cleanup) {\n return;\n }\n subscription._cleanup = undefined;\n cleanup();\n}\nfunction subscriptionClosed(subscription) {\n return subscription._observer === undefined;\n}\nfunction closeSubscription(subscription) {\n if (subscriptionClosed(subscription)) {\n return;\n }\n subscription._observer = undefined;\n cleanupSubscription(subscription);\n}\nfunction cleanupFromSubscription(subscription) {\n return function () {\n subscription.unsubscribe();\n };\n}\nvar Subscription = (function () {\n function Subscription(observer, subscriber) {\n if (Object(observer) !== observer) {\n throw new TypeError('Observer must be an object');\n }\n this._cleanup = undefined;\n this._observer = observer;\n if (observer.start) {\n observer.start(this);\n }\n if (subscriptionClosed(this)) {\n return;\n }\n var _observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(_observer);\n if (cleanup != null) {\n if (typeof cleanup.unsubscribe ===\n 'function') {\n cleanup = cleanupFromSubscription(cleanup);\n }\n else if (typeof cleanup !== 'function') {\n throw new TypeError(cleanup + ' is not a function');\n }\n this._cleanup = cleanup;\n }\n }\n catch (e) {\n if (_observer.error) {\n _observer.error(e);\n }\n return;\n }\n if (subscriptionClosed(this)) {\n cleanupSubscription(this);\n }\n }\n Object.defineProperty(Subscription.prototype, \"closed\", {\n get: function () {\n return subscriptionClosed(this);\n },\n enumerable: true,\n configurable: true\n });\n Subscription.prototype.unsubscribe = function () {\n closeSubscription(this);\n };\n return Subscription;\n}());\nexports.Subscription = Subscription;\nvar SubscriptionObserver = (function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n Object.defineProperty(SubscriptionObserver.prototype, \"closed\", {\n get: function () {\n return subscriptionClosed(this._subscription);\n },\n enumerable: true,\n configurable: true\n });\n SubscriptionObserver.prototype.next = function (value) {\n var subscription = this._subscription;\n if (subscriptionClosed(subscription)) {\n return;\n }\n var observer = subscription._observer;\n if (!observer.next) {\n return;\n }\n observer.next(value);\n return;\n };\n SubscriptionObserver.prototype.error = function (value) {\n var subscription = this._subscription;\n if (subscriptionClosed(subscription)) {\n throw value;\n }\n var observer = subscription._observer;\n subscription._observer = undefined;\n try {\n if (!observer.error) {\n throw value;\n }\n observer.error(value);\n }\n catch (e) {\n try {\n cleanupSubscription(subscription);\n }\n finally {\n throw e;\n }\n }\n cleanupSubscription(subscription);\n };\n SubscriptionObserver.prototype.complete = function () {\n var subscription = this._subscription;\n if (subscriptionClosed(subscription)) {\n return;\n }\n var observer = subscription._observer;\n subscription._observer = undefined;\n try {\n if (observer.complete) {\n observer.complete();\n }\n }\n catch (e) {\n try {\n cleanupSubscription(subscription);\n }\n finally {\n throw e;\n }\n }\n cleanupSubscription(subscription);\n };\n return SubscriptionObserver;\n}());\nexports.SubscriptionObserver = SubscriptionObserver;\nvar Observable = (function () {\n function Observable(subscriber) {\n if (typeof subscriber !== 'function') {\n throw new TypeError('Observable initializer must be a function');\n }\n this._subscriber = subscriber;\n }\n Observable.from = function (observable) {\n if (observable.subscribe) {\n return new Observable(function (observer) {\n return observable.subscribe(observer);\n });\n }\n if (Array.isArray(observable)) {\n return new Observable(function (observer) {\n for (var i = 0; i < observable.length; ++i) {\n observer.next(observable[i]);\n if (observer.closed) {\n return;\n }\n }\n if (observer.complete) {\n observer.complete();\n }\n });\n }\n throw new TypeError(observable + ' is not observable');\n };\n Observable.of = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n return new Observable(function (observer) {\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) {\n return;\n }\n }\n if (observer.complete) {\n observer.complete();\n }\n });\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n if (typeof observerOrNext === 'function') {\n return new Subscription({\n next: observerOrNext,\n error: error,\n complete: complete,\n }, this._subscriber);\n }\n return new Subscription(observerOrNext, this._subscriber);\n };\n Observable.prototype.forEach = function (fn) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n return Promise.reject(new TypeError(fn + ' is not a function'));\n }\n _this.subscribe({\n start: function (subscription) {\n this._subscription = subscription;\n },\n next: function (value) {\n var subscription = this._subscription;\n if (subscription.closed) {\n return;\n }\n try {\n fn(value);\n return;\n }\n catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n });\n };\n Observable.prototype.map = function (fn) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n return new Observable(function (observer) {\n return _this.subscribe({\n next: function (value) {\n if (observer.closed) {\n return;\n }\n var _value;\n try {\n _value = fn(value);\n }\n catch (e) {\n observer.error(e);\n return;\n }\n observer.next(_value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n },\n });\n });\n };\n Observable.prototype.filter = function (fn) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n return new Observable(function (observer) {\n _this.subscribe({\n next: function (value) {\n if (observer.closed) {\n return;\n }\n try {\n if (!fn(value)) {\n return;\n }\n }\n catch (e) {\n if (observer.error) {\n observer.error(e);\n }\n return;\n }\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n observer.complete();\n },\n });\n });\n };\n Observable.prototype.reduce = function (fn, initialValue) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new Observable(function (observer) {\n _this.subscribe({\n next: function (value) {\n if (observer.closed) {\n return;\n }\n var first = !hasValue;\n hasValue = true;\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n }\n catch (e) {\n observer.error(e);\n return;\n }\n }\n else {\n acc = value;\n }\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n if (!hasValue && !hasSeed) {\n observer.error(new TypeError('Cannot reduce an empty sequence'));\n return;\n }\n observer.next(acc);\n observer.complete();\n },\n });\n });\n };\n Observable.prototype.flatMap = function (fn) {\n var _this = this;\n if (typeof fn !== 'function') {\n throw new TypeError(fn + ' is not a function');\n }\n return new Observable(function (observer) {\n var completed = false;\n var subscriptions = [];\n var outer = _this.subscribe({\n next: function (value) {\n var _value;\n if (fn) {\n try {\n _value = fn(value);\n }\n catch (x) {\n observer.error(x);\n return;\n }\n }\n Observable.from(_value).subscribe({\n start: function (s) {\n subscriptions.push((this._subscription = s));\n },\n next: function (data) {\n observer.next(data);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n var i = subscriptions.indexOf(this._subscription);\n if (i >= 0) {\n subscriptions.splice(i, 1);\n }\n closeIfDone();\n },\n });\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\n completed = true;\n closeIfDone();\n },\n });\n function closeIfDone() {\n if (completed && subscriptions.length === 0) {\n observer.complete();\n }\n }\n return function () {\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n outer.unsubscribe();\n };\n });\n };\n return Observable;\n}());\nexports.default = Observable;\n//# sourceMappingURL=zenObservable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9ub2RlX21vZHVsZXMvYXBvbGxvLWxpbmstY29yZS9ub2RlX21vZHVsZXMvemVuLW9ic2VydmFibGUtdHMvbGliL3plbk9ic2VydmFibGUuanM/NjFhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIGNsZWFudXBTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKSB7XG4gICAgdmFyIGNsZWFudXAgPSBzdWJzY3JpcHRpb24uX2NsZWFudXA7XG4gICAgaWYgKCFjbGVhbnVwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3Vic2NyaXB0aW9uLl9jbGVhbnVwID0gdW5kZWZpbmVkO1xuICAgIGNsZWFudXAoKTtcbn1cbmZ1bmN0aW9uIHN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb24pIHtcbiAgICByZXR1cm4gc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9PT0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gY2xvc2VTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKSB7XG4gICAgaWYgKHN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbik7XG59XG5mdW5jdGlvbiBjbGVhbnVwRnJvbVN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xufVxudmFyIFN1YnNjcmlwdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU3Vic2NyaXB0aW9uKG9ic2VydmVyLCBzdWJzY3JpYmVyKSB7XG4gICAgICAgIGlmIChPYmplY3Qob2JzZXJ2ZXIpICE9PSBvYnNlcnZlcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT2JzZXJ2ZXIgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jbGVhbnVwID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9vYnNlcnZlciA9IG9ic2VydmVyO1xuICAgICAgICBpZiAob2JzZXJ2ZXIuc3RhcnQpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLnN0YXJ0KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25DbG9zZWQodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX29ic2VydmVyID0gbmV3IFN1YnNjcmlwdGlvbk9ic2VydmVyKHRoaXMpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGNsZWFudXAgPSBzdWJzY3JpYmVyKF9vYnNlcnZlcik7XG4gICAgICAgICAgICBpZiAoY2xlYW51cCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjbGVhbnVwLnVuc3Vic2NyaWJlID09PVxuICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFudXAgPSBjbGVhbnVwRnJvbVN1YnNjcmlwdGlvbihjbGVhbnVwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNsZWFudXAgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihjbGVhbnVwICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9jbGVhbnVwID0gY2xlYW51cDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKF9vYnNlcnZlci5lcnJvcikge1xuICAgICAgICAgICAgICAgIF9vYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uQ2xvc2VkKHRoaXMpKSB7XG4gICAgICAgICAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdWJzY3JpcHRpb24ucHJvdG90eXBlLCBcImNsb3NlZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkNsb3NlZCh0aGlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU3Vic2NyaXB0aW9uLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2xvc2VTdWJzY3JpcHRpb24odGhpcyk7XG4gICAgfTtcbiAgICByZXR1cm4gU3Vic2NyaXB0aW9uO1xufSgpKTtcbmV4cG9ydHMuU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uO1xudmFyIFN1YnNjcmlwdGlvbk9ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTdWJzY3JpcHRpb25PYnNlcnZlcihzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3Vic2NyaXB0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLCBcImNsb3NlZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkNsb3NlZCh0aGlzLl9zdWJzY3JpcHRpb24pO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBTdWJzY3JpcHRpb25PYnNlcnZlci5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gdGhpcy5fc3Vic2NyaXB0aW9uO1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uQ2xvc2VkKHN1YnNjcmlwdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb2JzZXJ2ZXIgPSBzdWJzY3JpcHRpb24uX29ic2VydmVyO1xuICAgICAgICBpZiAoIW9ic2VydmVyLm5leHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG4gICAgU3Vic2NyaXB0aW9uT2JzZXJ2ZXIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHZhciBzdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb247XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb25DbG9zZWQoc3Vic2NyaXB0aW9uKSkge1xuICAgICAgICAgICAgdGhyb3cgdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9ic2VydmVyID0gc3Vic2NyaXB0aW9uLl9vYnNlcnZlcjtcbiAgICAgICAgc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghb2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNsZWFudXBTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uKTtcbiAgICB9O1xuICAgIFN1YnNjcmlwdGlvbk9ic2VydmVyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IHRoaXMuX3N1YnNjcmlwdGlvbjtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG9ic2VydmVyID0gc3Vic2NyaXB0aW9uLl9vYnNlcnZlcjtcbiAgICAgICAgc3Vic2NyaXB0aW9uLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChvYnNlcnZlci5jb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2xlYW51cFN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbGVhbnVwU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbik7XG4gICAgfTtcbiAgICByZXR1cm4gU3Vic2NyaXB0aW9uT2JzZXJ2ZXI7XG59KCkpO1xuZXhwb3J0cy5TdWJzY3JpcHRpb25PYnNlcnZlciA9IFN1YnNjcmlwdGlvbk9ic2VydmVyO1xudmFyIE9ic2VydmFibGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIE9ic2VydmFibGUoc3Vic2NyaWJlcikge1xuICAgICAgICBpZiAodHlwZW9mIHN1YnNjcmliZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09ic2VydmFibGUgaW5pdGlhbGl6ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlciA9IHN1YnNjcmliZXI7XG4gICAgfVxuICAgIE9ic2VydmFibGUuZnJvbSA9IGZ1bmN0aW9uIChvYnNlcnZhYmxlKSB7XG4gICAgICAgIGlmIChvYnNlcnZhYmxlLnN1YnNjcmliZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlLnN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYnNlcnZhYmxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JzZXJ2YWJsZS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG9ic2VydmFibGVbaV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihvYnNlcnZhYmxlICsgJyBpcyBub3Qgb2JzZXJ2YWJsZScpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5vZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGl0ZW1zID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBpdGVtc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGl0ZW1zW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlLnN1YnNjcmliZSA9IGZ1bmN0aW9uIChvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXJPck5leHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBvYnNlcnZlck9yTmV4dCxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlLFxuICAgICAgICAgICAgfSwgdGhpcy5fc3Vic2NyaWJlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb24ob2JzZXJ2ZXJPck5leHQsIHRoaXMuX3N1YnNjcmliZXIpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKGZuICsgJyBpcyBub3QgYSBmdW5jdGlvbicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF90aGlzLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb247XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogcmVqZWN0LFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiByZXNvbHZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUubWFwID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoZm4gKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlci5jbG9zZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbHVlID0gZm4odmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KF92YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5maWx0ZXIgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihmbiArICcgaXMgbm90IGEgZnVuY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZnVuY3Rpb24gKG9ic2VydmVyKSB7XG4gICAgICAgICAgICBfdGhpcy5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZm4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlLnJlZHVjZSA9IGZ1bmN0aW9uIChmbiwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoZm4gKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhhc1NlZWQgPSBhcmd1bWVudHMubGVuZ3RoID4gMTtcbiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7XG4gICAgICAgIHZhciBzZWVkID0gYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgYWNjID0gc2VlZDtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgICAgICAgX3RoaXMuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9ic2VydmVyLmNsb3NlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBmaXJzdCA9ICFoYXNWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0IHx8IGhhc1NlZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjID0gZm4oYWNjLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjYyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1ZhbHVlICYmICFoYXNTZWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgVHlwZUVycm9yKCdDYW5ub3QgcmVkdWNlIGFuIGVtcHR5IHNlcXVlbmNlJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoYWNjKTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuZmxhdE1hcCA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGZuICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHZhciBjb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBzdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgICAgICB2YXIgb3V0ZXIgPSBfdGhpcy5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbHVlID0gZm4odmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcih4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2YWJsZS5mcm9tKF92YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCgodGhpcy5fc3Vic2NyaXB0aW9uID0gcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpID0gc3Vic2NyaXB0aW9ucy5pbmRleE9mKHRoaXMuX3N1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VJZkRvbmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VJZkRvbmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBjbG9zZUlmRG9uZSgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29tcGxldGVkICYmIHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKHMpIHsgcmV0dXJuIHMudW5zdWJzY3JpYmUoKTsgfSk7XG4gICAgICAgICAgICAgICAgb3V0ZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIE9ic2VydmFibGU7XG59KCkpO1xuZXhwb3J0cy5kZWZhdWx0ID0gT2JzZXJ2YWJsZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXplbk9ic2VydmFibGUuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9ub2RlX21vZHVsZXMvYXBvbGxvLWxpbmstY29yZS9ub2RlX21vZHVsZXMvemVuLW9ic2VydmFibGUtdHMvbGliL3plbk9ic2VydmFibGUuanNcbi8vIG1vZHVsZSBpZCA9IDcwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///70\n"); /***/ }), -/* 70 */ +/* 71 */ /*!************************************************************!*\ !*** ./node_modules/apollo-client/data/fragmentMatcher.js ***! \************************************************************/ @@ -912,19 +924,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfuncti /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* unused harmony export IntrospectionFragmentMatcher */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return HeuristicFragmentMatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_environment__ = __webpack_require__(/*! ../util/environment */ 25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_warnOnce__ = __webpack_require__(/*! ../util/warnOnce */ 281);\n\n\nvar IntrospectionFragmentMatcher = (function () {\n function IntrospectionFragmentMatcher(options) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData);\n this.isReady = true;\n }\n else {\n this.isReady = false;\n }\n this.match = this.match.bind(this);\n }\n IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n if (!this.isReady) {\n throw new Error('FragmentMatcher.match() was called before FragmentMatcher.init()');\n }\n var obj = context.store[idValue.id];\n if (!obj) {\n return false;\n }\n if (!obj.__typename) {\n throw new Error(\"Cannot match fragment because __typename property is missing: \" + JSON.stringify(obj));\n }\n if (obj.__typename === typeCondition) {\n return true;\n }\n var implementingTypes = this.possibleTypesMap[typeCondition];\n if (implementingTypes && implementingTypes.indexOf(obj.__typename) > -1) {\n return true;\n }\n return false;\n };\n IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) {\n var typeMap = {};\n introspectionResultData.__schema.types.forEach(function (type) {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(function (implementingType) { return implementingType.name; });\n }\n });\n return typeMap;\n };\n return IntrospectionFragmentMatcher;\n}());\n\nvar haveWarned = false;\nvar HeuristicFragmentMatcher = (function () {\n function HeuristicFragmentMatcher() {\n }\n HeuristicFragmentMatcher.prototype.ensureReady = function () {\n return Promise.resolve();\n };\n HeuristicFragmentMatcher.prototype.canBypassInit = function () {\n return true;\n };\n HeuristicFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n var obj = context.store[idValue.id];\n if (!obj) {\n return false;\n }\n if (!obj.__typename) {\n if (!haveWarned) {\n console.warn(\"You're using fragments in your queries, but either don't have the addTypename:\\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\\n can accurately match fragments.\");\n console.warn('Could not find __typename on Fragment ', typeCondition, obj);\n console.warn(\"DEPRECATION WARNING: using fragments without __typename is unsupported behavior \" +\n \"and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.\");\n if (!Object(__WEBPACK_IMPORTED_MODULE_0__util_environment__[\"c\" /* isTest */])()) {\n haveWarned = true;\n }\n }\n context.returnPartialData = true;\n return true;\n }\n if (obj.__typename === typeCondition) {\n return true;\n }\n Object(__WEBPACK_IMPORTED_MODULE_1__util_warnOnce__[\"a\" /* warnOnceInDevelopment */])(\"You are using the simple (heuristic) fragment matcher, but your queries contain union or interface types.\\n Apollo Client will not be able to able to accurately map fragments.\" +\n \"To make this error go away, use the IntrospectionFragmentMatcher as described in the docs: \" +\n \"http://dev.apollodata.com/react/initialization.html#fragment-matcher\", 'error');\n context.returnPartialData = true;\n return true;\n };\n return HeuristicFragmentMatcher;\n}());\n\n//# sourceMappingURL=fragmentMatcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9kYXRhL2ZyYWdtZW50TWF0Y2hlci5qcz8zMjNhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVGVzdCB9IGZyb20gJy4uL3V0aWwvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgd2Fybk9uY2VJbkRldmVsb3BtZW50IH0gZnJvbSAnLi4vdXRpbC93YXJuT25jZSc7XG52YXIgSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlcihvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaW50cm9zcGVjdGlvblF1ZXJ5UmVzdWx0RGF0YSkge1xuICAgICAgICAgICAgdGhpcy5wb3NzaWJsZVR5cGVzTWFwID0gdGhpcy5wYXJzZUludHJvc3BlY3Rpb25SZXN1bHQob3B0aW9ucy5pbnRyb3NwZWN0aW9uUXVlcnlSZXN1bHREYXRhKTtcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5iaW5kKHRoaXMpO1xuICAgIH1cbiAgICBJbnRyb3NwZWN0aW9uRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5tYXRjaCA9IGZ1bmN0aW9uIChpZFZhbHVlLCB0eXBlQ29uZGl0aW9uLCBjb250ZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1JlYWR5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZyYWdtZW50TWF0Y2hlci5tYXRjaCgpIHdhcyBjYWxsZWQgYmVmb3JlIEZyYWdtZW50TWF0Y2hlci5pbml0KCknKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb2JqID0gY29udGV4dC5zdG9yZVtpZFZhbHVlLmlkXTtcbiAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9iai5fX3R5cGVuYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgbWF0Y2ggZnJhZ21lbnQgYmVjYXVzZSBfX3R5cGVuYW1lIHByb3BlcnR5IGlzIG1pc3Npbmc6IFwiICsgSlNPTi5zdHJpbmdpZnkob2JqKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5fX3R5cGVuYW1lID09PSB0eXBlQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW1wbGVtZW50aW5nVHlwZXMgPSB0aGlzLnBvc3NpYmxlVHlwZXNNYXBbdHlwZUNvbmRpdGlvbl07XG4gICAgICAgIGlmIChpbXBsZW1lbnRpbmdUeXBlcyAmJiBpbXBsZW1lbnRpbmdUeXBlcy5pbmRleE9mKG9iai5fX3R5cGVuYW1lKSA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBJbnRyb3NwZWN0aW9uRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5wYXJzZUludHJvc3BlY3Rpb25SZXN1bHQgPSBmdW5jdGlvbiAoaW50cm9zcGVjdGlvblJlc3VsdERhdGEpIHtcbiAgICAgICAgdmFyIHR5cGVNYXAgPSB7fTtcbiAgICAgICAgaW50cm9zcGVjdGlvblJlc3VsdERhdGEuX19zY2hlbWEudHlwZXMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICAgICAgaWYgKHR5cGUua2luZCA9PT0gJ1VOSU9OJyB8fCB0eXBlLmtpbmQgPT09ICdJTlRFUkZBQ0UnKSB7XG4gICAgICAgICAgICAgICAgdHlwZU1hcFt0eXBlLm5hbWVdID0gdHlwZS5wb3NzaWJsZVR5cGVzLm1hcChmdW5jdGlvbiAoaW1wbGVtZW50aW5nVHlwZSkgeyByZXR1cm4gaW1wbGVtZW50aW5nVHlwZS5uYW1lOyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0eXBlTWFwO1xuICAgIH07XG4gICAgcmV0dXJuIEludHJvc3BlY3Rpb25GcmFnbWVudE1hdGNoZXI7XG59KCkpO1xuZXhwb3J0IHsgSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlciB9O1xudmFyIGhhdmVXYXJuZWQgPSBmYWxzZTtcbnZhciBIZXVyaXN0aWNGcmFnbWVudE1hdGNoZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlcigpIHtcbiAgICB9XG4gICAgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5lbnN1cmVSZWFkeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH07XG4gICAgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5jYW5CeXBhc3NJbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlci5wcm90b3R5cGUubWF0Y2ggPSBmdW5jdGlvbiAoaWRWYWx1ZSwgdHlwZUNvbmRpdGlvbiwgY29udGV4dCkge1xuICAgICAgICB2YXIgb2JqID0gY29udGV4dC5zdG9yZVtpZFZhbHVlLmlkXTtcbiAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9iai5fX3R5cGVuYW1lKSB7XG4gICAgICAgICAgICBpZiAoIWhhdmVXYXJuZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJZb3UncmUgdXNpbmcgZnJhZ21lbnRzIGluIHlvdXIgcXVlcmllcywgYnV0IGVpdGhlciBkb24ndCBoYXZlIHRoZSBhZGRUeXBlbmFtZTpcXG4gIHRydWUgb3B0aW9uIHNldCBpbiBBcG9sbG8gQ2xpZW50LCBvciB5b3UgYXJlIHRyeWluZyB0byB3cml0ZSBhIGZyYWdtZW50IHRvIHRoZSBzdG9yZSB3aXRob3V0IHRoZSBfX3R5cGVuYW1lLlxcbiAgIFBsZWFzZSB0dXJuIG9uIHRoZSBhZGRUeXBlbmFtZSBvcHRpb24gYW5kIGluY2x1ZGUgX190eXBlbmFtZSB3aGVuIHdyaXRpbmcgZnJhZ21lbnRzIHNvIHRoYXQgQXBvbGxvIENsaWVudFxcbiAgIGNhbiBhY2N1cmF0ZWx5IG1hdGNoIGZyYWdtZW50cy5cIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdDb3VsZCBub3QgZmluZCBfX3R5cGVuYW1lIG9uIEZyYWdtZW50ICcsIHR5cGVDb25kaXRpb24sIG9iaik7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiREVQUkVDQVRJT04gV0FSTklORzogdXNpbmcgZnJhZ21lbnRzIHdpdGhvdXQgX190eXBlbmFtZSBpcyB1bnN1cHBvcnRlZCBiZWhhdmlvciBcIiArXG4gICAgICAgICAgICAgICAgICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgQXBvbGxvIGNsaWVudC4gWW91IHNob3VsZCBmaXggdGhpcyBhbmQgc2V0IGFkZFR5cGVuYW1lIHRvIHRydWUgbm93LlwiKTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVGVzdCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhdmVXYXJuZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRleHQucmV0dXJuUGFydGlhbERhdGEgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5fX3R5cGVuYW1lID09PSB0eXBlQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB3YXJuT25jZUluRGV2ZWxvcG1lbnQoXCJZb3UgYXJlIHVzaW5nIHRoZSBzaW1wbGUgKGhldXJpc3RpYykgZnJhZ21lbnQgbWF0Y2hlciwgYnV0IHlvdXIgcXVlcmllcyBjb250YWluIHVuaW9uIG9yIGludGVyZmFjZSB0eXBlcy5cXG4gICAgIEFwb2xsbyBDbGllbnQgd2lsbCBub3QgYmUgYWJsZSB0byBhYmxlIHRvIGFjY3VyYXRlbHkgbWFwIGZyYWdtZW50cy5cIiArXG4gICAgICAgICAgICBcIlRvIG1ha2UgdGhpcyBlcnJvciBnbyBhd2F5LCB1c2UgdGhlIEludHJvc3BlY3Rpb25GcmFnbWVudE1hdGNoZXIgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2NzOiBcIiArXG4gICAgICAgICAgICBcImh0dHA6Ly9kZXYuYXBvbGxvZGF0YS5jb20vcmVhY3QvaW5pdGlhbGl6YXRpb24uaHRtbCNmcmFnbWVudC1tYXRjaGVyXCIsICdlcnJvcicpO1xuICAgICAgICBjb250ZXh0LnJldHVyblBhcnRpYWxEYXRhID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICByZXR1cm4gSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyO1xufSgpKTtcbmV4cG9ydCB7IEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZnJhZ21lbnRNYXRjaGVyLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvZGF0YS9mcmFnbWVudE1hdGNoZXIuanNcbi8vIG1vZHVsZSBpZCA9IDcwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///70\n"); - -/***/ }), -/* 71 */ -/*!*************************************!*\ - !*** ./node_modules/react/react.js ***! - \*************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nmodule.exports = __webpack_require__(/*! ./lib/React */ 20);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvcmVhY3QuanM/NTNiYiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvUmVhY3QnKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0L3JlYWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA3MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///71\n"); +eval("/* unused harmony export IntrospectionFragmentMatcher */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return HeuristicFragmentMatcher; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_environment__ = __webpack_require__(/*! ../util/environment */ 25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_warnOnce__ = __webpack_require__(/*! ../util/warnOnce */ 281);\n\n\nvar IntrospectionFragmentMatcher = (function () {\n function IntrospectionFragmentMatcher(options) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData);\n this.isReady = true;\n }\n else {\n this.isReady = false;\n }\n this.match = this.match.bind(this);\n }\n IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n if (!this.isReady) {\n throw new Error('FragmentMatcher.match() was called before FragmentMatcher.init()');\n }\n var obj = context.store[idValue.id];\n if (!obj) {\n return false;\n }\n if (!obj.__typename) {\n throw new Error(\"Cannot match fragment because __typename property is missing: \" + JSON.stringify(obj));\n }\n if (obj.__typename === typeCondition) {\n return true;\n }\n var implementingTypes = this.possibleTypesMap[typeCondition];\n if (implementingTypes && implementingTypes.indexOf(obj.__typename) > -1) {\n return true;\n }\n return false;\n };\n IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) {\n var typeMap = {};\n introspectionResultData.__schema.types.forEach(function (type) {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(function (implementingType) { return implementingType.name; });\n }\n });\n return typeMap;\n };\n return IntrospectionFragmentMatcher;\n}());\n\nvar haveWarned = false;\nvar HeuristicFragmentMatcher = (function () {\n function HeuristicFragmentMatcher() {\n }\n HeuristicFragmentMatcher.prototype.ensureReady = function () {\n return Promise.resolve();\n };\n HeuristicFragmentMatcher.prototype.canBypassInit = function () {\n return true;\n };\n HeuristicFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n var obj = context.store[idValue.id];\n if (!obj) {\n return false;\n }\n if (!obj.__typename) {\n if (!haveWarned) {\n console.warn(\"You're using fragments in your queries, but either don't have the addTypename:\\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\\n can accurately match fragments.\");\n console.warn('Could not find __typename on Fragment ', typeCondition, obj);\n console.warn(\"DEPRECATION WARNING: using fragments without __typename is unsupported behavior \" +\n \"and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.\");\n if (!Object(__WEBPACK_IMPORTED_MODULE_0__util_environment__[\"c\" /* isTest */])()) {\n haveWarned = true;\n }\n }\n context.returnPartialData = true;\n return true;\n }\n if (obj.__typename === typeCondition) {\n return true;\n }\n Object(__WEBPACK_IMPORTED_MODULE_1__util_warnOnce__[\"a\" /* warnOnceInDevelopment */])(\"You are using the simple (heuristic) fragment matcher, but your queries contain union or interface types.\\n Apollo Client will not be able to able to accurately map fragments.\" +\n \"To make this error go away, use the IntrospectionFragmentMatcher as described in the docs: \" +\n \"http://dev.apollodata.com/react/initialization.html#fragment-matcher\", 'error');\n context.returnPartialData = true;\n return true;\n };\n return HeuristicFragmentMatcher;\n}());\n\n//# sourceMappingURL=fragmentMatcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9kYXRhL2ZyYWdtZW50TWF0Y2hlci5qcz8zMjNhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVGVzdCB9IGZyb20gJy4uL3V0aWwvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgd2Fybk9uY2VJbkRldmVsb3BtZW50IH0gZnJvbSAnLi4vdXRpbC93YXJuT25jZSc7XG52YXIgSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlcihvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaW50cm9zcGVjdGlvblF1ZXJ5UmVzdWx0RGF0YSkge1xuICAgICAgICAgICAgdGhpcy5wb3NzaWJsZVR5cGVzTWFwID0gdGhpcy5wYXJzZUludHJvc3BlY3Rpb25SZXN1bHQob3B0aW9ucy5pbnRyb3NwZWN0aW9uUXVlcnlSZXN1bHREYXRhKTtcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hdGNoID0gdGhpcy5tYXRjaC5iaW5kKHRoaXMpO1xuICAgIH1cbiAgICBJbnRyb3NwZWN0aW9uRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5tYXRjaCA9IGZ1bmN0aW9uIChpZFZhbHVlLCB0eXBlQ29uZGl0aW9uLCBjb250ZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1JlYWR5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZyYWdtZW50TWF0Y2hlci5tYXRjaCgpIHdhcyBjYWxsZWQgYmVmb3JlIEZyYWdtZW50TWF0Y2hlci5pbml0KCknKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb2JqID0gY29udGV4dC5zdG9yZVtpZFZhbHVlLmlkXTtcbiAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9iai5fX3R5cGVuYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgbWF0Y2ggZnJhZ21lbnQgYmVjYXVzZSBfX3R5cGVuYW1lIHByb3BlcnR5IGlzIG1pc3Npbmc6IFwiICsgSlNPTi5zdHJpbmdpZnkob2JqKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5fX3R5cGVuYW1lID09PSB0eXBlQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW1wbGVtZW50aW5nVHlwZXMgPSB0aGlzLnBvc3NpYmxlVHlwZXNNYXBbdHlwZUNvbmRpdGlvbl07XG4gICAgICAgIGlmIChpbXBsZW1lbnRpbmdUeXBlcyAmJiBpbXBsZW1lbnRpbmdUeXBlcy5pbmRleE9mKG9iai5fX3R5cGVuYW1lKSA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBJbnRyb3NwZWN0aW9uRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5wYXJzZUludHJvc3BlY3Rpb25SZXN1bHQgPSBmdW5jdGlvbiAoaW50cm9zcGVjdGlvblJlc3VsdERhdGEpIHtcbiAgICAgICAgdmFyIHR5cGVNYXAgPSB7fTtcbiAgICAgICAgaW50cm9zcGVjdGlvblJlc3VsdERhdGEuX19zY2hlbWEudHlwZXMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICAgICAgaWYgKHR5cGUua2luZCA9PT0gJ1VOSU9OJyB8fCB0eXBlLmtpbmQgPT09ICdJTlRFUkZBQ0UnKSB7XG4gICAgICAgICAgICAgICAgdHlwZU1hcFt0eXBlLm5hbWVdID0gdHlwZS5wb3NzaWJsZVR5cGVzLm1hcChmdW5jdGlvbiAoaW1wbGVtZW50aW5nVHlwZSkgeyByZXR1cm4gaW1wbGVtZW50aW5nVHlwZS5uYW1lOyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0eXBlTWFwO1xuICAgIH07XG4gICAgcmV0dXJuIEludHJvc3BlY3Rpb25GcmFnbWVudE1hdGNoZXI7XG59KCkpO1xuZXhwb3J0IHsgSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlciB9O1xudmFyIGhhdmVXYXJuZWQgPSBmYWxzZTtcbnZhciBIZXVyaXN0aWNGcmFnbWVudE1hdGNoZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlcigpIHtcbiAgICB9XG4gICAgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5lbnN1cmVSZWFkeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH07XG4gICAgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyLnByb3RvdHlwZS5jYW5CeXBhc3NJbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlci5wcm90b3R5cGUubWF0Y2ggPSBmdW5jdGlvbiAoaWRWYWx1ZSwgdHlwZUNvbmRpdGlvbiwgY29udGV4dCkge1xuICAgICAgICB2YXIgb2JqID0gY29udGV4dC5zdG9yZVtpZFZhbHVlLmlkXTtcbiAgICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9iai5fX3R5cGVuYW1lKSB7XG4gICAgICAgICAgICBpZiAoIWhhdmVXYXJuZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJZb3UncmUgdXNpbmcgZnJhZ21lbnRzIGluIHlvdXIgcXVlcmllcywgYnV0IGVpdGhlciBkb24ndCBoYXZlIHRoZSBhZGRUeXBlbmFtZTpcXG4gIHRydWUgb3B0aW9uIHNldCBpbiBBcG9sbG8gQ2xpZW50LCBvciB5b3UgYXJlIHRyeWluZyB0byB3cml0ZSBhIGZyYWdtZW50IHRvIHRoZSBzdG9yZSB3aXRob3V0IHRoZSBfX3R5cGVuYW1lLlxcbiAgIFBsZWFzZSB0dXJuIG9uIHRoZSBhZGRUeXBlbmFtZSBvcHRpb24gYW5kIGluY2x1ZGUgX190eXBlbmFtZSB3aGVuIHdyaXRpbmcgZnJhZ21lbnRzIHNvIHRoYXQgQXBvbGxvIENsaWVudFxcbiAgIGNhbiBhY2N1cmF0ZWx5IG1hdGNoIGZyYWdtZW50cy5cIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdDb3VsZCBub3QgZmluZCBfX3R5cGVuYW1lIG9uIEZyYWdtZW50ICcsIHR5cGVDb25kaXRpb24sIG9iaik7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiREVQUkVDQVRJT04gV0FSTklORzogdXNpbmcgZnJhZ21lbnRzIHdpdGhvdXQgX190eXBlbmFtZSBpcyB1bnN1cHBvcnRlZCBiZWhhdmlvciBcIiArXG4gICAgICAgICAgICAgICAgICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgQXBvbGxvIGNsaWVudC4gWW91IHNob3VsZCBmaXggdGhpcyBhbmQgc2V0IGFkZFR5cGVuYW1lIHRvIHRydWUgbm93LlwiKTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVGVzdCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhdmVXYXJuZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRleHQucmV0dXJuUGFydGlhbERhdGEgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5fX3R5cGVuYW1lID09PSB0eXBlQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB3YXJuT25jZUluRGV2ZWxvcG1lbnQoXCJZb3UgYXJlIHVzaW5nIHRoZSBzaW1wbGUgKGhldXJpc3RpYykgZnJhZ21lbnQgbWF0Y2hlciwgYnV0IHlvdXIgcXVlcmllcyBjb250YWluIHVuaW9uIG9yIGludGVyZmFjZSB0eXBlcy5cXG4gICAgIEFwb2xsbyBDbGllbnQgd2lsbCBub3QgYmUgYWJsZSB0byBhYmxlIHRvIGFjY3VyYXRlbHkgbWFwIGZyYWdtZW50cy5cIiArXG4gICAgICAgICAgICBcIlRvIG1ha2UgdGhpcyBlcnJvciBnbyBhd2F5LCB1c2UgdGhlIEludHJvc3BlY3Rpb25GcmFnbWVudE1hdGNoZXIgYXMgZGVzY3JpYmVkIGluIHRoZSBkb2NzOiBcIiArXG4gICAgICAgICAgICBcImh0dHA6Ly9kZXYuYXBvbGxvZGF0YS5jb20vcmVhY3QvaW5pdGlhbGl6YXRpb24uaHRtbCNmcmFnbWVudC1tYXRjaGVyXCIsICdlcnJvcicpO1xuICAgICAgICBjb250ZXh0LnJldHVyblBhcnRpYWxEYXRhID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICByZXR1cm4gSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyO1xufSgpKTtcbmV4cG9ydCB7IEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZnJhZ21lbnRNYXRjaGVyLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvZGF0YS9mcmFnbWVudE1hdGNoZXIuanNcbi8vIG1vZHVsZSBpZCA9IDcxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///71\n"); /***/ }), /* 72 */ @@ -936,7 +936,7 @@ eval("\n\nmodule.exports = __webpack_require__(/*! ./lib/React */ 20);\n//# sour /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 21),\n _assign = __webpack_require__(/*! object-assign */ 34);\n\nvar ReactNoopUpdateQueue = __webpack_require__(/*! ./ReactNoopUpdateQueue */ 73);\n\nvar canDefineProperty = __webpack_require__(/*! ./canDefineProperty */ 35);\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ 74);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 13);\nvar lowPriorityWarning = __webpack_require__(/*! ./lowPriorityWarning */ 45);\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\n }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'forceUpdate');\n }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function () {\n lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n return undefined;\n }\n });\n }\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = {\n Component: ReactComponent,\n PureComponent: ReactPureComponent\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL1JlYWN0QmFzZUNsYXNzZXMuanM/M2JhNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpLFxuICAgIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHJlcXVpcmUoJy4vUmVhY3ROb29wVXBkYXRlUXVldWUnKTtcblxudmFyIGNhbkRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9jYW5EZWZpbmVQcm9wZXJ0eScpO1xudmFyIGVtcHR5T2JqZWN0ID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlPYmplY3QnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciBsb3dQcmlvcml0eVdhcm5pbmcgPSByZXF1aXJlKCcuL2xvd1ByaW9yaXR5V2FybmluZycpO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgaGVscGVycyBmb3IgdGhlIHVwZGF0aW5nIHN0YXRlIG9mIGEgY29tcG9uZW50LlxuICovXG5mdW5jdGlvbiBSZWFjdENvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0O1xuICAvLyBXZSBpbml0aWFsaXplIHRoZSBkZWZhdWx0IHVwZGF0ZXIgYnV0IHRoZSByZWFsIG9uZSBnZXRzIGluamVjdGVkIGJ5IHRoZVxuICAvLyByZW5kZXJlci5cbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxuUmVhY3RDb21wb25lbnQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcblxuLyoqXG4gKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gQWx3YXlzIHVzZSB0aGlzIHRvIG11dGF0ZVxuICogc3RhdGUuIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBjYWxscyB0byBgc2V0U3RhdGVgIHdpbGwgcnVuIHN5bmNocm9ub3VzbHksXG4gKiBhcyB0aGV5IG1heSBldmVudHVhbGx5IGJlIGJhdGNoZWQgdG9nZXRoZXIuICBZb3UgY2FuIHByb3ZpZGUgYW4gb3B0aW9uYWxcbiAqIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZSBjYWxsIHRvIHNldFN0YXRlIGlzIGFjdHVhbGx5XG4gKiBjb21wbGV0ZWQuXG4gKlxuICogV2hlbiBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIHRvIHNldFN0YXRlLCBpdCB3aWxsIGJlIGNhbGxlZCBhdCBzb21lIHBvaW50IGluXG4gKiB0aGUgZnV0dXJlIChub3Qgc3luY2hyb25vdXNseSkuIEl0IHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHVwIHRvIGRhdGVcbiAqIGNvbXBvbmVudCBhcmd1bWVudHMgKHN0YXRlLCBwcm9wcywgY29udGV4dCkuIFRoZXNlIHZhbHVlcyBjYW4gYmUgZGlmZmVyZW50XG4gKiBmcm9tIHRoaXMuKiBiZWNhdXNlIHlvdXIgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBhZnRlciByZWNlaXZlUHJvcHMgYnV0IGJlZm9yZVxuICogc2hvdWxkQ29tcG9uZW50VXBkYXRlLCBhbmQgdGhpcyBuZXcgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCB3aWxsIG5vdCB5ZXQgYmVcbiAqIGFzc2lnbmVkIHRvIHRoaXMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgb3IgZnVuY3Rpb24gdG9cbiAqICAgICAgICBwcm9kdWNlIG5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBzdGF0ZSBpcyB1cGRhdGVkLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblJlYWN0Q29tcG9uZW50LnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uIChwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrKSB7XG4gICEodHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyB8fCBwYXJ0aWFsU3RhdGUgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnc2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuJykgOiBfcHJvZEludmFyaWFudCgnODUnKSA6IHZvaWQgMDtcbiAgdGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLCBwYXJ0aWFsU3RhdGUpO1xuICBpZiAoY2FsbGJhY2spIHtcbiAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUNhbGxiYWNrKHRoaXMsIGNhbGxiYWNrLCAnc2V0U3RhdGUnKTtcbiAgfVxufTtcblxuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblJlYWN0Q29tcG9uZW50LnByb3RvdHlwZS5mb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMpO1xuICBpZiAoY2FsbGJhY2spIHtcbiAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUNhbGxiYWNrKHRoaXMsIGNhbGxiYWNrLCAnZm9yY2VVcGRhdGUnKTtcbiAgfVxufTtcblxuLyoqXG4gKiBEZXByZWNhdGVkIEFQSXMuIFRoZXNlIEFQSXMgdXNlZCB0byBleGlzdCBvbiBjbGFzc2ljIFJlYWN0IGNsYXNzZXMgYnV0IHNpbmNlXG4gKiB3ZSB3b3VsZCBsaWtlIHRvIGRlcHJlY2F0ZSB0aGVtLCB3ZSdyZSBub3QgZ29pbmcgdG8gbW92ZSB0aGVtIG92ZXIgdG8gdGhpc1xuICogbW9kZXJuIGJhc2UgY2xhc3MuIEluc3RlYWQsIHdlIGRlZmluZSBhIGdldHRlciB0aGF0IHdhcm5zIGlmIGl0J3MgYWNjZXNzZWQuXG4gKi9cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBkZXByZWNhdGVkQVBJcyA9IHtcbiAgICBpc01vdW50ZWQ6IFsnaXNNb3VudGVkJywgJ0luc3RlYWQsIG1ha2Ugc3VyZSB0byBjbGVhbiB1cCBzdWJzY3JpcHRpb25zIGFuZCBwZW5kaW5nIHJlcXVlc3RzIGluICcgKyAnY29tcG9uZW50V2lsbFVubW91bnQgdG8gcHJldmVudCBtZW1vcnkgbGVha3MuJ10sXG4gICAgcmVwbGFjZVN0YXRlOiBbJ3JlcGxhY2VTdGF0ZScsICdSZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIHNldFN0YXRlIGluc3RlYWQgKHNlZSAnICsgJ2h0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMzIzNikuJ11cbiAgfTtcbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgaWYgKGNhbkRlZmluZVByb3BlcnR5KSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhY3RDb21wb25lbnQucHJvdG90eXBlLCBtZXRob2ROYW1lLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGxvd1ByaW9yaXR5V2FybmluZyhmYWxzZSwgJyVzKC4uLikgaXMgZGVwcmVjYXRlZCBpbiBwbGFpbiBKYXZhU2NyaXB0IFJlYWN0IGNsYXNzZXMuICVzJywgaW5mb1swXSwgaW5mb1sxXSk7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBmb3IgKHZhciBmbk5hbWUgaW4gZGVwcmVjYXRlZEFQSXMpIHtcbiAgICBpZiAoZGVwcmVjYXRlZEFQSXMuaGFzT3duUHJvcGVydHkoZm5OYW1lKSkge1xuICAgICAgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKGZuTmFtZSwgZGVwcmVjYXRlZEFQSXNbZm5OYW1lXSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cbmZ1bmN0aW9uIFJlYWN0UHVyZUNvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICAvLyBEdXBsaWNhdGVkIGZyb20gUmVhY3RDb21wb25lbnQuXG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gIC8vIFdlIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgdXBkYXRlciBidXQgdGhlIHJlYWwgb25lIGdldHMgaW5qZWN0ZWQgYnkgdGhlXG4gIC8vIHJlbmRlcmVyLlxuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5Db21wb25lbnREdW1teS5wcm90b3R5cGUgPSBSZWFjdENvbXBvbmVudC5wcm90b3R5cGU7XG5SZWFjdFB1cmVDb21wb25lbnQucHJvdG90eXBlID0gbmV3IENvbXBvbmVudER1bW15KCk7XG5SZWFjdFB1cmVDb21wb25lbnQucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gUmVhY3RQdXJlQ29tcG9uZW50O1xuLy8gQXZvaWQgYW4gZXh0cmEgcHJvdG90eXBlIGp1bXAgZm9yIHRoZXNlIG1ldGhvZHMuXG5fYXNzaWduKFJlYWN0UHVyZUNvbXBvbmVudC5wcm90b3R5cGUsIFJlYWN0Q29tcG9uZW50LnByb3RvdHlwZSk7XG5SZWFjdFB1cmVDb21wb25lbnQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENvbXBvbmVudDogUmVhY3RDb21wb25lbnQsXG4gIFB1cmVDb21wb25lbnQ6IFJlYWN0UHVyZUNvbXBvbmVudFxufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9saWIvUmVhY3RCYXNlQ2xhc3Nlcy5qc1xuLy8gbW9kdWxlIGlkID0gNzJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///72\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 21),\n _assign = __webpack_require__(/*! object-assign */ 34);\n\nvar ReactNoopUpdateQueue = __webpack_require__(/*! ./ReactNoopUpdateQueue */ 73);\n\nvar canDefineProperty = __webpack_require__(/*! ./canDefineProperty */ 35);\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ 74);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 13);\nvar lowPriorityWarning = __webpack_require__(/*! ./lowPriorityWarning */ 46);\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\n }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'forceUpdate');\n }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function () {\n lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n return undefined;\n }\n });\n }\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = {\n Component: ReactComponent,\n PureComponent: ReactPureComponent\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL1JlYWN0QmFzZUNsYXNzZXMuanM/M2JhNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpLFxuICAgIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHJlcXVpcmUoJy4vUmVhY3ROb29wVXBkYXRlUXVldWUnKTtcblxudmFyIGNhbkRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9jYW5EZWZpbmVQcm9wZXJ0eScpO1xudmFyIGVtcHR5T2JqZWN0ID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlPYmplY3QnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciBsb3dQcmlvcml0eVdhcm5pbmcgPSByZXF1aXJlKCcuL2xvd1ByaW9yaXR5V2FybmluZycpO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgaGVscGVycyBmb3IgdGhlIHVwZGF0aW5nIHN0YXRlIG9mIGEgY29tcG9uZW50LlxuICovXG5mdW5jdGlvbiBSZWFjdENvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0O1xuICAvLyBXZSBpbml0aWFsaXplIHRoZSBkZWZhdWx0IHVwZGF0ZXIgYnV0IHRoZSByZWFsIG9uZSBnZXRzIGluamVjdGVkIGJ5IHRoZVxuICAvLyByZW5kZXJlci5cbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxuUmVhY3RDb21wb25lbnQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcblxuLyoqXG4gKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gQWx3YXlzIHVzZSB0aGlzIHRvIG11dGF0ZVxuICogc3RhdGUuIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBjYWxscyB0byBgc2V0U3RhdGVgIHdpbGwgcnVuIHN5bmNocm9ub3VzbHksXG4gKiBhcyB0aGV5IG1heSBldmVudHVhbGx5IGJlIGJhdGNoZWQgdG9nZXRoZXIuICBZb3UgY2FuIHByb3ZpZGUgYW4gb3B0aW9uYWxcbiAqIGNhbGxiYWNrIHRoYXQgd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoZSBjYWxsIHRvIHNldFN0YXRlIGlzIGFjdHVhbGx5XG4gKiBjb21wbGV0ZWQuXG4gKlxuICogV2hlbiBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIHRvIHNldFN0YXRlLCBpdCB3aWxsIGJlIGNhbGxlZCBhdCBzb21lIHBvaW50IGluXG4gKiB0aGUgZnV0dXJlIChub3Qgc3luY2hyb25vdXNseSkuIEl0IHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHVwIHRvIGRhdGVcbiAqIGNvbXBvbmVudCBhcmd1bWVudHMgKHN0YXRlLCBwcm9wcywgY29udGV4dCkuIFRoZXNlIHZhbHVlcyBjYW4gYmUgZGlmZmVyZW50XG4gKiBmcm9tIHRoaXMuKiBiZWNhdXNlIHlvdXIgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBhZnRlciByZWNlaXZlUHJvcHMgYnV0IGJlZm9yZVxuICogc2hvdWxkQ29tcG9uZW50VXBkYXRlLCBhbmQgdGhpcyBuZXcgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCB3aWxsIG5vdCB5ZXQgYmVcbiAqIGFzc2lnbmVkIHRvIHRoaXMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgb3IgZnVuY3Rpb24gdG9cbiAqICAgICAgICBwcm9kdWNlIG5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBzdGF0ZSBpcyB1cGRhdGVkLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblJlYWN0Q29tcG9uZW50LnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uIChwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrKSB7XG4gICEodHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHBhcnRpYWxTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyB8fCBwYXJ0aWFsU3RhdGUgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnc2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuJykgOiBfcHJvZEludmFyaWFudCgnODUnKSA6IHZvaWQgMDtcbiAgdGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLCBwYXJ0aWFsU3RhdGUpO1xuICBpZiAoY2FsbGJhY2spIHtcbiAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUNhbGxiYWNrKHRoaXMsIGNhbGxiYWNrLCAnc2V0U3RhdGUnKTtcbiAgfVxufTtcblxuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblJlYWN0Q29tcG9uZW50LnByb3RvdHlwZS5mb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMpO1xuICBpZiAoY2FsbGJhY2spIHtcbiAgICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUNhbGxiYWNrKHRoaXMsIGNhbGxiYWNrLCAnZm9yY2VVcGRhdGUnKTtcbiAgfVxufTtcblxuLyoqXG4gKiBEZXByZWNhdGVkIEFQSXMuIFRoZXNlIEFQSXMgdXNlZCB0byBleGlzdCBvbiBjbGFzc2ljIFJlYWN0IGNsYXNzZXMgYnV0IHNpbmNlXG4gKiB3ZSB3b3VsZCBsaWtlIHRvIGRlcHJlY2F0ZSB0aGVtLCB3ZSdyZSBub3QgZ29pbmcgdG8gbW92ZSB0aGVtIG92ZXIgdG8gdGhpc1xuICogbW9kZXJuIGJhc2UgY2xhc3MuIEluc3RlYWQsIHdlIGRlZmluZSBhIGdldHRlciB0aGF0IHdhcm5zIGlmIGl0J3MgYWNjZXNzZWQuXG4gKi9cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBkZXByZWNhdGVkQVBJcyA9IHtcbiAgICBpc01vdW50ZWQ6IFsnaXNNb3VudGVkJywgJ0luc3RlYWQsIG1ha2Ugc3VyZSB0byBjbGVhbiB1cCBzdWJzY3JpcHRpb25zIGFuZCBwZW5kaW5nIHJlcXVlc3RzIGluICcgKyAnY29tcG9uZW50V2lsbFVubW91bnQgdG8gcHJldmVudCBtZW1vcnkgbGVha3MuJ10sXG4gICAgcmVwbGFjZVN0YXRlOiBbJ3JlcGxhY2VTdGF0ZScsICdSZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIHNldFN0YXRlIGluc3RlYWQgKHNlZSAnICsgJ2h0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMzIzNikuJ11cbiAgfTtcbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgaWYgKGNhbkRlZmluZVByb3BlcnR5KSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVhY3RDb21wb25lbnQucHJvdG90eXBlLCBtZXRob2ROYW1lLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGxvd1ByaW9yaXR5V2FybmluZyhmYWxzZSwgJyVzKC4uLikgaXMgZGVwcmVjYXRlZCBpbiBwbGFpbiBKYXZhU2NyaXB0IFJlYWN0IGNsYXNzZXMuICVzJywgaW5mb1swXSwgaW5mb1sxXSk7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBmb3IgKHZhciBmbk5hbWUgaW4gZGVwcmVjYXRlZEFQSXMpIHtcbiAgICBpZiAoZGVwcmVjYXRlZEFQSXMuaGFzT3duUHJvcGVydHkoZm5OYW1lKSkge1xuICAgICAgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKGZuTmFtZSwgZGVwcmVjYXRlZEFQSXNbZm5OYW1lXSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cbmZ1bmN0aW9uIFJlYWN0UHVyZUNvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICAvLyBEdXBsaWNhdGVkIGZyb20gUmVhY3RDb21wb25lbnQuXG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gIC8vIFdlIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgdXBkYXRlciBidXQgdGhlIHJlYWwgb25lIGdldHMgaW5qZWN0ZWQgYnkgdGhlXG4gIC8vIHJlbmRlcmVyLlxuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5Db21wb25lbnREdW1teS5wcm90b3R5cGUgPSBSZWFjdENvbXBvbmVudC5wcm90b3R5cGU7XG5SZWFjdFB1cmVDb21wb25lbnQucHJvdG90eXBlID0gbmV3IENvbXBvbmVudER1bW15KCk7XG5SZWFjdFB1cmVDb21wb25lbnQucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gUmVhY3RQdXJlQ29tcG9uZW50O1xuLy8gQXZvaWQgYW4gZXh0cmEgcHJvdG90eXBlIGp1bXAgZm9yIHRoZXNlIG1ldGhvZHMuXG5fYXNzaWduKFJlYWN0UHVyZUNvbXBvbmVudC5wcm90b3R5cGUsIFJlYWN0Q29tcG9uZW50LnByb3RvdHlwZSk7XG5SZWFjdFB1cmVDb21wb25lbnQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENvbXBvbmVudDogUmVhY3RDb21wb25lbnQsXG4gIFB1cmVDb21wb25lbnQ6IFJlYWN0UHVyZUNvbXBvbmVudFxufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9saWIvUmVhY3RCYXNlQ2xhc3Nlcy5qc1xuLy8gbW9kdWxlIGlkID0gNzJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///72\n"); /***/ }), /* 73 */ @@ -996,7 +996,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n\n\nvar ReactCurrentOwner = __webpack_require__(/*! ./ReactCurrentOwner */ 9);\nvar ReactComponentTreeHook = __webpack_require__(/*! ./ReactComponentTreeHook */ 7);\nvar ReactElement = __webpack_require__(/*! ./ReactElement */ 18);\n\nvar checkReactTypeSpec = __webpack_require__(/*! ./checkReactTypeSpec */ 134);\n\nvar canDefineProperty = __webpack_require__(/*! ./canDefineProperty */ 35);\nvar getIteratorFn = __webpack_require__(/*! ./getIteratorFn */ 76);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 12);\nvar lowPriorityWarning = __webpack_require__(/*! ./lowPriorityWarning */ 45);\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(elementProps) {\n if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) {\n var source = elementProps.__source;\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return ' Check your code at ' + fileName + ':' + lineNumber + '.';\n }\n return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n if (parentName) {\n info = ' Check the top-level render call using <' + parentName + '>.';\n }\n }\n return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n\n var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});\n\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (memoizer[currentComponentErrorInfo]) {\n return;\n }\n memoizer[currentComponentErrorInfo] = true;\n\n // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = '';\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n }\n\n process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n if (ReactElement.isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (ReactElement.isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n // Entry iterators provide implicit keys.\n if (iteratorFn) {\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while (!(step = iterator.next()).done) {\n if (ReactElement.isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n var componentClass = element.type;\n if (typeof componentClass !== 'function') {\n return;\n }\n var name = componentClass.displayName || componentClass.name;\n if (componentClass.propTypes) {\n checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null);\n }\n if (typeof componentClass.getDefaultProps === 'function') {\n process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n }\n}\n\nvar ReactElementValidator = {\n createElement: function (type, props, children) {\n var validType = typeof type === 'string' || typeof type === 'function';\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(props);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n info += ReactComponentTreeHook.getCurrentStackAddendum();\n\n var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null;\n ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource);\n process.env.NODE_ENV !== 'production' ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0;\n ReactComponentTreeHook.popNonStandardWarningStack();\n }\n }\n\n var element = ReactElement.createElement.apply(this, arguments);\n\n // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n }\n\n // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n validatePropTypes(element);\n\n return element;\n },\n\n createFactory: function (type) {\n var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n // Legacy hook TODO: Warn if this is accessed\n validatedFactory.type = type;\n\n if (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n }\n\n return validatedFactory;\n },\n\n cloneElement: function (element, props, children) {\n var newElement = ReactElement.cloneElement.apply(this, arguments);\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n};\n\nmodule.exports = ReactElementValidator;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL1JlYWN0RWxlbWVudFZhbGlkYXRvci5qcz9mNjUyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4vKipcbiAqIFJlYWN0RWxlbWVudFZhbGlkYXRvciBwcm92aWRlcyBhIHdyYXBwZXIgYXJvdW5kIGEgZWxlbWVudCBmYWN0b3J5XG4gKiB3aGljaCB2YWxpZGF0ZXMgdGhlIHByb3BzIHBhc3NlZCB0byB0aGUgZWxlbWVudC4gVGhpcyBpcyBpbnRlbmRlZCB0byBiZVxuICogdXNlZCBvbmx5IGluIERFViBhbmQgY291bGQgYmUgcmVwbGFjZWQgYnkgYSBzdGF0aWMgdHlwZSBjaGVja2VyIGZvciBsYW5ndWFnZXNcbiAqIHRoYXQgc3VwcG9ydCBpdC5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJy4vUmVhY3RDdXJyZW50T3duZXInKTtcbnZhciBSZWFjdENvbXBvbmVudFRyZWVIb29rID0gcmVxdWlyZSgnLi9SZWFjdENvbXBvbmVudFRyZWVIb29rJyk7XG52YXIgUmVhY3RFbGVtZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVsZW1lbnQnKTtcblxudmFyIGNoZWNrUmVhY3RUeXBlU3BlYyA9IHJlcXVpcmUoJy4vY2hlY2tSZWFjdFR5cGVTcGVjJyk7XG5cbnZhciBjYW5EZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vY2FuRGVmaW5lUHJvcGVydHknKTtcbnZhciBnZXRJdGVyYXRvckZuID0gcmVxdWlyZSgnLi9nZXRJdGVyYXRvckZuJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcbnZhciBsb3dQcmlvcml0eVdhcm5pbmcgPSByZXF1aXJlKCcuL2xvd1ByaW9yaXR5V2FybmluZycpO1xuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIGlmIChSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgdmFyIG5hbWUgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LmdldE5hbWUoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuICcgQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBuYW1lICsgJ2AuJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShlbGVtZW50UHJvcHMpIHtcbiAgaWYgKGVsZW1lbnRQcm9wcyAhPT0gbnVsbCAmJiBlbGVtZW50UHJvcHMgIT09IHVuZGVmaW5lZCAmJiBlbGVtZW50UHJvcHMuX19zb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBzb3VyY2UgPSBlbGVtZW50UHJvcHMuX19zb3VyY2U7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnIENoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAqIHVwZGF0ZXMuXG4gKi9cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gIHZhciBpbmZvID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG5cbiAgaWYgKCFpbmZvKSB7XG4gICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XG4gICAgaWYgKHBhcmVudE5hbWUpIHtcbiAgICAgIGluZm8gPSAnIENoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPCcgKyBwYXJlbnROYW1lICsgJz4uJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluZm87XG59XG5cbi8qKlxuICogV2FybiBpZiB0aGUgZWxlbWVudCBkb2Vzbid0IGhhdmUgYW4gZXhwbGljaXQga2V5IGFzc2lnbmVkIHRvIGl0LlxuICogVGhpcyBlbGVtZW50IGlzIGluIGFuIGFycmF5LiBUaGUgYXJyYXkgY291bGQgZ3JvdyBhbmQgc2hyaW5rIG9yIGJlXG4gKiByZW9yZGVyZWQuIEFsbCBjaGlsZHJlbiB0aGF0IGhhdmVuJ3QgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZCBhcmUgcmVxdWlyZWQgdG9cbiAqIGhhdmUgYSBcImtleVwiIHByb3BlcnR5IGFzc2lnbmVkIHRvIGl0LiBFcnJvciBzdGF0dXNlcyBhcmUgY2FjaGVkIHNvIGEgd2FybmluZ1xuICogd2lsbCBvbmx5IGJlIHNob3duIG9uY2UuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudCBFbGVtZW50IHRoYXQgcmVxdWlyZXMgYSBrZXkuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgZWxlbWVudCdzIHBhcmVudCdzIHR5cGUuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG5cbiAgdmFyIG1lbW9pemVyID0gb3duZXJIYXNLZXlVc2VXYXJuaW5nLnVuaXF1ZUtleSB8fCAob3duZXJIYXNLZXlVc2VXYXJuaW5nLnVuaXF1ZUtleSA9IHt9KTtcblxuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG4gIGlmIChtZW1vaXplcltjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuICBtZW1vaXplcltjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7XG5cbiAgLy8gVXN1YWxseSB0aGUgY3VycmVudCBvd25lciBpcyB0aGUgb2ZmZW5kZXIsIGJ1dCBpZiBpdCBhY2NlcHRzIGNoaWxkcmVuIGFzIGFcbiAgLy8gcHJvcGVydHksIGl0IG1heSBiZSB0aGUgY3JlYXRvciBvZiB0aGUgY2hpbGQgdGhhdCdzIHJlc3BvbnNpYmxlIGZvclxuICAvLyBhc3NpZ25pbmcgaXQgYSBrZXkuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG4gIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgY2hpbGRPd25lciA9ICcgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gJyArIGVsZW1lbnQuX293bmVyLmdldE5hbWUoKSArICcuJztcbiAgfVxuXG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnRWFjaCBjaGlsZCBpbiBhbiBhcnJheSBvciBpdGVyYXRvciBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4lcycsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIsIFJlYWN0Q29tcG9uZW50VHJlZUhvb2suZ2V0Q3VycmVudFN0YWNrQWRkZW5kdW0oZWxlbWVudCkpIDogdm9pZCAwO1xufVxuXG4vKipcbiAqIEVuc3VyZSB0aGF0IGV2ZXJ5IGVsZW1lbnQgZWl0aGVyIGlzIHBhc3NlZCBpbiBhIHN0YXRpYyBsb2NhdGlvbiwgaW4gYW5cbiAqIGFycmF5IHdpdGggYW4gZXhwbGljaXQga2V5cyBwcm9wZXJ0eSBkZWZpbmVkLCBvciBpbiBhbiBvYmplY3QgbGl0ZXJhbFxuICogd2l0aCB2YWxpZCBrZXkgcHJvcGVydHkuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0ge1JlYWN0Tm9kZX0gbm9kZSBTdGF0aWNhbGx5IHBhc3NlZCBjaGlsZCBvZiBhbnkgdHlwZS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBub2RlJ3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hpbGQgPSBub2RlW2ldO1xuICAgICAgaWYgKFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShjaGlsZCwgcGFyZW50VHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudChub2RlKSkge1xuICAgIC8vIFRoaXMgZWxlbWVudCB3YXMgcGFzc2VkIGluIGEgdmFsaWQgbG9jYXRpb24uXG4gICAgaWYgKG5vZGUuX3N0b3JlKSB7XG4gICAgICBub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChub2RlKSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuICAgIC8vIEVudHJ5IGl0ZXJhdG9ycyBwcm92aWRlIGltcGxpY2l0IGtleXMuXG4gICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICAgIGlmIChpdGVyYXRvckZuICE9PSBub2RlLmVudHJpZXMpIHtcbiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICB2YXIgc3RlcDtcbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQoc3RlcC52YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoc3RlcC52YWx1ZSwgcGFyZW50VHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAgdmFyIGNvbXBvbmVudENsYXNzID0gZWxlbWVudC50eXBlO1xuICBpZiAodHlwZW9mIGNvbXBvbmVudENsYXNzICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBuYW1lID0gY29tcG9uZW50Q2xhc3MuZGlzcGxheU5hbWUgfHwgY29tcG9uZW50Q2xhc3MubmFtZTtcbiAgaWYgKGNvbXBvbmVudENsYXNzLnByb3BUeXBlcykge1xuICAgIGNoZWNrUmVhY3RUeXBlU3BlYyhjb21wb25lbnRDbGFzcy5wcm9wVHlwZXMsIGVsZW1lbnQucHJvcHMsICdwcm9wJywgbmFtZSwgZWxlbWVudCwgbnVsbCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBjb21wb25lbnRDbGFzcy5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhjb21wb25lbnRDbGFzcy5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQsICdnZXREZWZhdWx0UHJvcHMgaXMgb25seSB1c2VkIG9uIGNsYXNzaWMgUmVhY3QuY3JlYXRlQ2xhc3MgJyArICdkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuJykgOiB2b2lkIDA7XG4gIH1cbn1cblxudmFyIFJlYWN0RWxlbWVudFZhbGlkYXRvciA9IHtcbiAgY3JlYXRlRWxlbWVudDogZnVuY3Rpb24gKHR5cGUsIHByb3BzLCBjaGlsZHJlbikge1xuICAgIHZhciB2YWxpZFR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbic7XG4gICAgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cbiAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuICAgIGlmICghdmFsaWRUeXBlKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBpbmZvID0gJyc7XG4gICAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcIml0J3MgZGVmaW5lZCBpbi5cIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0ocHJvcHMpO1xuICAgICAgICBpZiAoc291cmNlSW5mbykge1xuICAgICAgICAgIGluZm8gKz0gc291cmNlSW5mbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmZvICs9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5mbyArPSBSZWFjdENvbXBvbmVudFRyZWVIb29rLmdldEN1cnJlbnRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICAgICAgdmFyIGN1cnJlbnRTb3VyY2UgPSBwcm9wcyAhPT0gbnVsbCAmJiBwcm9wcyAhPT0gdW5kZWZpbmVkICYmIHByb3BzLl9fc291cmNlICE9PSB1bmRlZmluZWQgPyBwcm9wcy5fX3NvdXJjZSA6IG51bGw7XG4gICAgICAgIFJlYWN0Q29tcG9uZW50VHJlZUhvb2sucHVzaE5vblN0YW5kYXJkV2FybmluZ1N0YWNrKHRydWUsIGN1cnJlbnRTb3VyY2UpO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1JlYWN0LmNyZWF0ZUVsZW1lbnQ6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZSA9PSBudWxsID8gdHlwZSA6IHR5cGVvZiB0eXBlLCBpbmZvKSA6IHZvaWQgMDtcbiAgICAgICAgUmVhY3RDb21wb25lbnRUcmVlSG9vay5wb3BOb25TdGFuZGFyZFdhcm5pbmdTdGFjaygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBlbGVtZW50ID0gUmVhY3RFbGVtZW50LmNyZWF0ZUVsZW1lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIC8vIFRoZSByZXN1bHQgY2FuIGJlIG51bGxpc2ggaWYgYSBtb2NrIG9yIGEgY3VzdG9tIGZ1bmN0aW9uIGlzIHVzZWQuXG4gICAgLy8gVE9ETzogRHJvcCB0aGlzIHdoZW4gdGhlc2UgYXJlIG5vIGxvbmdlciBhbGxvd2VkIGFzIHRoZSB0eXBlIGFyZ3VtZW50LlxuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cblxuICAgIC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgLy8gZG9lc24ndCBleHBlY3QgYSBub24tc3RyaW5nL2Z1bmN0aW9uIHR5cGUgYW5kIGNhbiB0aHJvdyBjb25mdXNpbmcgZXJyb3JzLlxuICAgIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cbiAgICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAgIC8vIGZpeGVkLCB0aGUga2V5IHdhcm5pbmdzIHdpbGwgYXBwZWFyLilcbiAgICBpZiAodmFsaWRUeXBlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIHR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH0sXG5cbiAgY3JlYXRlRmFjdG9yeTogZnVuY3Rpb24gKHR5cGUpIHtcbiAgICB2YXIgdmFsaWRhdGVkRmFjdG9yeSA9IFJlYWN0RWxlbWVudFZhbGlkYXRvci5jcmVhdGVFbGVtZW50LmJpbmQobnVsbCwgdHlwZSk7XG4gICAgLy8gTGVnYWN5IGhvb2sgVE9ETzogV2FybiBpZiB0aGlzIGlzIGFjY2Vzc2VkXG4gICAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoY2FuRGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbGlkYXRlZEZhY3RvcnksICd0eXBlJywge1xuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG93UHJpb3JpdHlXYXJuaW5nKGZhbHNlLCAnRmFjdG9yeS50eXBlIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB0aGUgY2xhc3MgZGlyZWN0bHkgJyArICdiZWZvcmUgcGFzc2luZyBpdCB0byBjcmVhdGVGYWN0b3J5LicpO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xuICB9LFxuXG4gIGNsb25lRWxlbWVudDogZnVuY3Rpb24gKGVsZW1lbnQsIHByb3BzLCBjaGlsZHJlbikge1xuICAgIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50LmNsb25lRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gICAgfVxuICAgIHZhbGlkYXRlUHJvcFR5cGVzKG5ld0VsZW1lbnQpO1xuICAgIHJldHVybiBuZXdFbGVtZW50O1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RWxlbWVudFZhbGlkYXRvcjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9saWIvUmVhY3RFbGVtZW50VmFsaWRhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSA3N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///77\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n\n\nvar ReactCurrentOwner = __webpack_require__(/*! ./ReactCurrentOwner */ 9);\nvar ReactComponentTreeHook = __webpack_require__(/*! ./ReactComponentTreeHook */ 7);\nvar ReactElement = __webpack_require__(/*! ./ReactElement */ 18);\n\nvar checkReactTypeSpec = __webpack_require__(/*! ./checkReactTypeSpec */ 134);\n\nvar canDefineProperty = __webpack_require__(/*! ./canDefineProperty */ 35);\nvar getIteratorFn = __webpack_require__(/*! ./getIteratorFn */ 76);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 12);\nvar lowPriorityWarning = __webpack_require__(/*! ./lowPriorityWarning */ 46);\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(elementProps) {\n if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) {\n var source = elementProps.__source;\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return ' Check your code at ' + fileName + ':' + lineNumber + '.';\n }\n return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n if (parentName) {\n info = ' Check the top-level render call using <' + parentName + '>.';\n }\n }\n return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n\n var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});\n\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (memoizer[currentComponentErrorInfo]) {\n return;\n }\n memoizer[currentComponentErrorInfo] = true;\n\n // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = '';\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n }\n\n process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n if (ReactElement.isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (ReactElement.isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n // Entry iterators provide implicit keys.\n if (iteratorFn) {\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while (!(step = iterator.next()).done) {\n if (ReactElement.isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n var componentClass = element.type;\n if (typeof componentClass !== 'function') {\n return;\n }\n var name = componentClass.displayName || componentClass.name;\n if (componentClass.propTypes) {\n checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null);\n }\n if (typeof componentClass.getDefaultProps === 'function') {\n process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n }\n}\n\nvar ReactElementValidator = {\n createElement: function (type, props, children) {\n var validType = typeof type === 'string' || typeof type === 'function';\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(props);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n info += ReactComponentTreeHook.getCurrentStackAddendum();\n\n var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null;\n ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource);\n process.env.NODE_ENV !== 'production' ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0;\n ReactComponentTreeHook.popNonStandardWarningStack();\n }\n }\n\n var element = ReactElement.createElement.apply(this, arguments);\n\n // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n }\n\n // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n validatePropTypes(element);\n\n return element;\n },\n\n createFactory: function (type) {\n var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n // Legacy hook TODO: Warn if this is accessed\n validatedFactory.type = type;\n\n if (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n }\n\n return validatedFactory;\n },\n\n cloneElement: function (element, props, children) {\n var newElement = ReactElement.cloneElement.apply(this, arguments);\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n};\n\nmodule.exports = ReactElementValidator;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvbGliL1JlYWN0RWxlbWVudFZhbGlkYXRvci5qcz9mNjUyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4vKipcbiAqIFJlYWN0RWxlbWVudFZhbGlkYXRvciBwcm92aWRlcyBhIHdyYXBwZXIgYXJvdW5kIGEgZWxlbWVudCBmYWN0b3J5XG4gKiB3aGljaCB2YWxpZGF0ZXMgdGhlIHByb3BzIHBhc3NlZCB0byB0aGUgZWxlbWVudC4gVGhpcyBpcyBpbnRlbmRlZCB0byBiZVxuICogdXNlZCBvbmx5IGluIERFViBhbmQgY291bGQgYmUgcmVwbGFjZWQgYnkgYSBzdGF0aWMgdHlwZSBjaGVja2VyIGZvciBsYW5ndWFnZXNcbiAqIHRoYXQgc3VwcG9ydCBpdC5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJy4vUmVhY3RDdXJyZW50T3duZXInKTtcbnZhciBSZWFjdENvbXBvbmVudFRyZWVIb29rID0gcmVxdWlyZSgnLi9SZWFjdENvbXBvbmVudFRyZWVIb29rJyk7XG52YXIgUmVhY3RFbGVtZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVsZW1lbnQnKTtcblxudmFyIGNoZWNrUmVhY3RUeXBlU3BlYyA9IHJlcXVpcmUoJy4vY2hlY2tSZWFjdFR5cGVTcGVjJyk7XG5cbnZhciBjYW5EZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vY2FuRGVmaW5lUHJvcGVydHknKTtcbnZhciBnZXRJdGVyYXRvckZuID0gcmVxdWlyZSgnLi9nZXRJdGVyYXRvckZuJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcbnZhciBsb3dQcmlvcml0eVdhcm5pbmcgPSByZXF1aXJlKCcuL2xvd1ByaW9yaXR5V2FybmluZycpO1xuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIGlmIChSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgdmFyIG5hbWUgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LmdldE5hbWUoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuICcgQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBuYW1lICsgJ2AuJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bShlbGVtZW50UHJvcHMpIHtcbiAgaWYgKGVsZW1lbnRQcm9wcyAhPT0gbnVsbCAmJiBlbGVtZW50UHJvcHMgIT09IHVuZGVmaW5lZCAmJiBlbGVtZW50UHJvcHMuX19zb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBzb3VyY2UgPSBlbGVtZW50UHJvcHMuX19zb3VyY2U7XG4gICAgdmFyIGZpbGVOYW1lID0gc291cmNlLmZpbGVOYW1lLnJlcGxhY2UoL14uKltcXFxcXFwvXS8sICcnKTtcbiAgICB2YXIgbGluZU51bWJlciA9IHNvdXJjZS5saW5lTnVtYmVyO1xuICAgIHJldHVybiAnIENoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAqIHVwZGF0ZXMuXG4gKi9cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gIHZhciBpbmZvID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG5cbiAgaWYgKCFpbmZvKSB7XG4gICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XG4gICAgaWYgKHBhcmVudE5hbWUpIHtcbiAgICAgIGluZm8gPSAnIENoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPCcgKyBwYXJlbnROYW1lICsgJz4uJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluZm87XG59XG5cbi8qKlxuICogV2FybiBpZiB0aGUgZWxlbWVudCBkb2Vzbid0IGhhdmUgYW4gZXhwbGljaXQga2V5IGFzc2lnbmVkIHRvIGl0LlxuICogVGhpcyBlbGVtZW50IGlzIGluIGFuIGFycmF5LiBUaGUgYXJyYXkgY291bGQgZ3JvdyBhbmQgc2hyaW5rIG9yIGJlXG4gKiByZW9yZGVyZWQuIEFsbCBjaGlsZHJlbiB0aGF0IGhhdmVuJ3QgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZCBhcmUgcmVxdWlyZWQgdG9cbiAqIGhhdmUgYSBcImtleVwiIHByb3BlcnR5IGFzc2lnbmVkIHRvIGl0LiBFcnJvciBzdGF0dXNlcyBhcmUgY2FjaGVkIHNvIGEgd2FybmluZ1xuICogd2lsbCBvbmx5IGJlIHNob3duIG9uY2UuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudCBFbGVtZW50IHRoYXQgcmVxdWlyZXMgYSBrZXkuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgZWxlbWVudCdzIHBhcmVudCdzIHR5cGUuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG5cbiAgdmFyIG1lbW9pemVyID0gb3duZXJIYXNLZXlVc2VXYXJuaW5nLnVuaXF1ZUtleSB8fCAob3duZXJIYXNLZXlVc2VXYXJuaW5nLnVuaXF1ZUtleSA9IHt9KTtcblxuICB2YXIgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSk7XG4gIGlmIChtZW1vaXplcltjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgIHJldHVybjtcbiAgfVxuICBtZW1vaXplcltjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7XG5cbiAgLy8gVXN1YWxseSB0aGUgY3VycmVudCBvd25lciBpcyB0aGUgb2ZmZW5kZXIsIGJ1dCBpZiBpdCBhY2NlcHRzIGNoaWxkcmVuIGFzIGFcbiAgLy8gcHJvcGVydHksIGl0IG1heSBiZSB0aGUgY3JlYXRvciBvZiB0aGUgY2hpbGQgdGhhdCdzIHJlc3BvbnNpYmxlIGZvclxuICAvLyBhc3NpZ25pbmcgaXQgYSBrZXkuXG4gIHZhciBjaGlsZE93bmVyID0gJyc7XG4gIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgY2hpbGRPd25lciA9ICcgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gJyArIGVsZW1lbnQuX293bmVyLmdldE5hbWUoKSArICcuJztcbiAgfVxuXG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnRWFjaCBjaGlsZCBpbiBhbiBhcnJheSBvciBpdGVyYXRvciBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4lcycsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIsIFJlYWN0Q29tcG9uZW50VHJlZUhvb2suZ2V0Q3VycmVudFN0YWNrQWRkZW5kdW0oZWxlbWVudCkpIDogdm9pZCAwO1xufVxuXG4vKipcbiAqIEVuc3VyZSB0aGF0IGV2ZXJ5IGVsZW1lbnQgZWl0aGVyIGlzIHBhc3NlZCBpbiBhIHN0YXRpYyBsb2NhdGlvbiwgaW4gYW5cbiAqIGFycmF5IHdpdGggYW4gZXhwbGljaXQga2V5cyBwcm9wZXJ0eSBkZWZpbmVkLCBvciBpbiBhbiBvYmplY3QgbGl0ZXJhbFxuICogd2l0aCB2YWxpZCBrZXkgcHJvcGVydHkuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0ge1JlYWN0Tm9kZX0gbm9kZSBTdGF0aWNhbGx5IHBhc3NlZCBjaGlsZCBvZiBhbnkgdHlwZS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBub2RlJ3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSwgcGFyZW50VHlwZSkge1xuICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hpbGQgPSBub2RlW2ldO1xuICAgICAgaWYgKFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShjaGlsZCwgcGFyZW50VHlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudChub2RlKSkge1xuICAgIC8vIFRoaXMgZWxlbWVudCB3YXMgcGFzc2VkIGluIGEgdmFsaWQgbG9jYXRpb24uXG4gICAgaWYgKG5vZGUuX3N0b3JlKSB7XG4gICAgICBub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChub2RlKSB7XG4gICAgdmFyIGl0ZXJhdG9yRm4gPSBnZXRJdGVyYXRvckZuKG5vZGUpO1xuICAgIC8vIEVudHJ5IGl0ZXJhdG9ycyBwcm92aWRlIGltcGxpY2l0IGtleXMuXG4gICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICAgIGlmIChpdGVyYXRvckZuICE9PSBub2RlLmVudHJpZXMpIHtcbiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICB2YXIgc3RlcDtcbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQoc3RlcC52YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoc3RlcC52YWx1ZSwgcGFyZW50VHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpIHtcbiAgdmFyIGNvbXBvbmVudENsYXNzID0gZWxlbWVudC50eXBlO1xuICBpZiAodHlwZW9mIGNvbXBvbmVudENsYXNzICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBuYW1lID0gY29tcG9uZW50Q2xhc3MuZGlzcGxheU5hbWUgfHwgY29tcG9uZW50Q2xhc3MubmFtZTtcbiAgaWYgKGNvbXBvbmVudENsYXNzLnByb3BUeXBlcykge1xuICAgIGNoZWNrUmVhY3RUeXBlU3BlYyhjb21wb25lbnRDbGFzcy5wcm9wVHlwZXMsIGVsZW1lbnQucHJvcHMsICdwcm9wJywgbmFtZSwgZWxlbWVudCwgbnVsbCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBjb21wb25lbnRDbGFzcy5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhjb21wb25lbnRDbGFzcy5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQsICdnZXREZWZhdWx0UHJvcHMgaXMgb25seSB1c2VkIG9uIGNsYXNzaWMgUmVhY3QuY3JlYXRlQ2xhc3MgJyArICdkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuJykgOiB2b2lkIDA7XG4gIH1cbn1cblxudmFyIFJlYWN0RWxlbWVudFZhbGlkYXRvciA9IHtcbiAgY3JlYXRlRWxlbWVudDogZnVuY3Rpb24gKHR5cGUsIHByb3BzLCBjaGlsZHJlbikge1xuICAgIHZhciB2YWxpZFR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbic7XG4gICAgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cbiAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuICAgIGlmICghdmFsaWRUeXBlKSB7XG4gICAgICBpZiAodHlwZW9mIHR5cGUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhciBpbmZvID0gJyc7XG4gICAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcIml0J3MgZGVmaW5lZCBpbi5cIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0ocHJvcHMpO1xuICAgICAgICBpZiAoc291cmNlSW5mbykge1xuICAgICAgICAgIGluZm8gKz0gc291cmNlSW5mbztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmZvICs9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5mbyArPSBSZWFjdENvbXBvbmVudFRyZWVIb29rLmdldEN1cnJlbnRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICAgICAgdmFyIGN1cnJlbnRTb3VyY2UgPSBwcm9wcyAhPT0gbnVsbCAmJiBwcm9wcyAhPT0gdW5kZWZpbmVkICYmIHByb3BzLl9fc291cmNlICE9PSB1bmRlZmluZWQgPyBwcm9wcy5fX3NvdXJjZSA6IG51bGw7XG4gICAgICAgIFJlYWN0Q29tcG9uZW50VHJlZUhvb2sucHVzaE5vblN0YW5kYXJkV2FybmluZ1N0YWNrKHRydWUsIGN1cnJlbnRTb3VyY2UpO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1JlYWN0LmNyZWF0ZUVsZW1lbnQ6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZSA9PSBudWxsID8gdHlwZSA6IHR5cGVvZiB0eXBlLCBpbmZvKSA6IHZvaWQgMDtcbiAgICAgICAgUmVhY3RDb21wb25lbnRUcmVlSG9vay5wb3BOb25TdGFuZGFyZFdhcm5pbmdTdGFjaygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBlbGVtZW50ID0gUmVhY3RFbGVtZW50LmNyZWF0ZUVsZW1lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIC8vIFRoZSByZXN1bHQgY2FuIGJlIG51bGxpc2ggaWYgYSBtb2NrIG9yIGEgY3VzdG9tIGZ1bmN0aW9uIGlzIHVzZWQuXG4gICAgLy8gVE9ETzogRHJvcCB0aGlzIHdoZW4gdGhlc2UgYXJlIG5vIGxvbmdlciBhbGxvd2VkIGFzIHRoZSB0eXBlIGFyZ3VtZW50LlxuICAgIGlmIChlbGVtZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cblxuICAgIC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgLy8gZG9lc24ndCBleHBlY3QgYSBub24tc3RyaW5nL2Z1bmN0aW9uIHR5cGUgYW5kIGNhbiB0aHJvdyBjb25mdXNpbmcgZXJyb3JzLlxuICAgIC8vIFdlIGRvbid0IHdhbnQgZXhjZXB0aW9uIGJlaGF2aW9yIHRvIGRpZmZlciBiZXR3ZWVuIGRldiBhbmQgcHJvZC5cbiAgICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAgIC8vIGZpeGVkLCB0aGUga2V5IHdhcm5pbmdzIHdpbGwgYXBwZWFyLilcbiAgICBpZiAodmFsaWRUeXBlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIHR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlUHJvcFR5cGVzKGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH0sXG5cbiAgY3JlYXRlRmFjdG9yeTogZnVuY3Rpb24gKHR5cGUpIHtcbiAgICB2YXIgdmFsaWRhdGVkRmFjdG9yeSA9IFJlYWN0RWxlbWVudFZhbGlkYXRvci5jcmVhdGVFbGVtZW50LmJpbmQobnVsbCwgdHlwZSk7XG4gICAgLy8gTGVnYWN5IGhvb2sgVE9ETzogV2FybiBpZiB0aGlzIGlzIGFjY2Vzc2VkXG4gICAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoY2FuRGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbGlkYXRlZEZhY3RvcnksICd0eXBlJywge1xuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG93UHJpb3JpdHlXYXJuaW5nKGZhbHNlLCAnRmFjdG9yeS50eXBlIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB0aGUgY2xhc3MgZGlyZWN0bHkgJyArICdiZWZvcmUgcGFzc2luZyBpdCB0byBjcmVhdGVGYWN0b3J5LicpO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xuICB9LFxuXG4gIGNsb25lRWxlbWVudDogZnVuY3Rpb24gKGVsZW1lbnQsIHByb3BzLCBjaGlsZHJlbikge1xuICAgIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50LmNsb25lRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gICAgfVxuICAgIHZhbGlkYXRlUHJvcFR5cGVzKG5ld0VsZW1lbnQpO1xuICAgIHJldHVybiBuZXdFbGVtZW50O1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RWxlbWVudFZhbGlkYXRvcjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9saWIvUmVhY3RFbGVtZW50VmFsaWRhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSA3N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///77\n"); /***/ }), /* 78 */ @@ -1200,7 +1200,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar LinkedValueUtils = __webpack_require__(/*! ./LinkedValueUtils */ 54);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n this._wrapperState.pendingUpdate = false;\n\n var props = this._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n\n if (value != null) {\n updateOptions(this, Boolean(props.multiple), value);\n }\n }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n var owner = inst._currentElement._owner;\n LinkedValueUtils.checkPropTypes('select', props, owner);\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n }\n }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n var selectedValue, i;\n var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;\n\n if (multiple) {\n selectedValue = {};\n for (i = 0; i < propValue.length; i++) {\n selectedValue['' + propValue[i]] = true;\n }\n for (i = 0; i < options.length; i++) {\n var selected = selectedValue.hasOwnProperty(options[i].value);\n if (options[i].selected !== selected) {\n options[i].selected = selected;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n selectedValue = '' + propValue;\n for (i = 0; i < options.length; i++) {\n if (options[i].value === selectedValue) {\n options[i].selected = true;\n return;\n }\n }\n if (options.length) {\n options[0].selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n getHostProps: function (inst, props) {\n return _assign({}, props, {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n checkSelectPropTypes(inst, props);\n }\n\n var value = LinkedValueUtils.getValue(props);\n inst._wrapperState = {\n pendingUpdate: false,\n initialValue: value != null ? value : props.defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this value down\n inst._wrapperState.initialValue = undefined;\n\n var wasMultiple = inst._wrapperState.wasMultiple;\n inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n inst._wrapperState.pendingUpdate = false;\n updateOptions(inst, Boolean(props.multiple), value);\n } else if (wasMultiple !== Boolean(props.multiple)) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n }\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdERPTVNlbGVjdC5qcz80YTEwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgTGlua2VkVmFsdWVVdGlscyA9IHJlcXVpcmUoJy4vTGlua2VkVmFsdWVVdGlscycpO1xudmFyIFJlYWN0RE9NQ29tcG9uZW50VHJlZSA9IHJlcXVpcmUoJy4vUmVhY3RET01Db21wb25lbnRUcmVlJyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcblxudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBkaWRXYXJuVmFsdWVMaW5rID0gZmFsc2U7XG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnNJZlBlbmRpbmdVcGRhdGVBbmRNb3VudGVkKCkge1xuICBpZiAodGhpcy5fcm9vdE5vZGVJRCAmJiB0aGlzLl93cmFwcGVyU3RhdGUucGVuZGluZ1VwZGF0ZSkge1xuICAgIHRoaXMuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlID0gZmFsc2U7XG5cbiAgICB2YXIgcHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcblxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICB1cGRhdGVPcHRpb25zKHRoaXMsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShvd25lcikge1xuICBpZiAob3duZXIpIHtcbiAgICB2YXIgbmFtZSA9IG93bmVyLmdldE5hbWUoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuICcgQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBuYW1lICsgJ2AuJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG52YXIgdmFsdWVQcm9wTmFtZXMgPSBbJ3ZhbHVlJywgJ2RlZmF1bHRWYWx1ZSddO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gZnVuY3Rpb24gZm9yIGB2YWx1ZWAgYW5kIGBkZWZhdWx0VmFsdWVgLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tTZWxlY3RQcm9wVHlwZXMoaW5zdCwgcHJvcHMpIHtcbiAgdmFyIG93bmVyID0gaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuICBMaW5rZWRWYWx1ZVV0aWxzLmNoZWNrUHJvcFR5cGVzKCdzZWxlY3QnLCBwcm9wcywgb3duZXIpO1xuXG4gIGlmIChwcm9wcy52YWx1ZUxpbmsgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblZhbHVlTGluaykge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnYHZhbHVlTGlua2AgcHJvcCBvbiBgc2VsZWN0YCBpcyBkZXByZWNhdGVkOyBzZXQgYHZhbHVlYCBhbmQgYG9uQ2hhbmdlYCBpbnN0ZWFkLicpIDogdm9pZCAwO1xuICAgIGRpZFdhcm5WYWx1ZUxpbmsgPSB0cnVlO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZVByb3BOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwcm9wTmFtZSA9IHZhbHVlUHJvcE5hbWVzW2ldO1xuICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShwcm9wc1twcm9wTmFtZV0pO1xuICAgIGlmIChwcm9wcy5tdWx0aXBsZSAmJiAhaXNBcnJheSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYW4gYXJyYXkgaWYgJyArICdgbXVsdGlwbGVgIGlzIHRydWUuJXMnLCBwcm9wTmFtZSwgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKG93bmVyKSkgOiB2b2lkIDA7XG4gICAgfSBlbHNlIGlmICghcHJvcHMubXVsdGlwbGUgJiYgaXNBcnJheSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYSBzY2FsYXIgJyArICd2YWx1ZSBpZiBgbXVsdGlwbGVgIGlzIGZhbHNlLiVzJywgcHJvcE5hbWUsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShvd25lcikpIDogdm9pZCAwO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVhY3RET01Db21wb25lbnR9IGluc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbXVsdGlwbGVcbiAqIEBwYXJhbSB7Kn0gcHJvcFZhbHVlIEEgc3RyaW5nYWJsZSAod2l0aCBgbXVsdGlwbGVgLCBhIGxpc3Qgb2Ygc3RyaW5nYWJsZXMpLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gdXBkYXRlT3B0aW9ucyhpbnN0LCBtdWx0aXBsZSwgcHJvcFZhbHVlKSB7XG4gIHZhciBzZWxlY3RlZFZhbHVlLCBpO1xuICB2YXIgb3B0aW9ucyA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKGluc3QpLm9wdGlvbnM7XG5cbiAgaWYgKG11bHRpcGxlKSB7XG4gICAgc2VsZWN0ZWRWYWx1ZSA9IHt9O1xuICAgIGZvciAoaSA9IDA7IGkgPCBwcm9wVmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNlbGVjdGVkVmFsdWVbJycgKyBwcm9wVmFsdWVbaV1dID0gdHJ1ZTtcbiAgICB9XG4gICAgZm9yIChpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzZWxlY3RlZCA9IHNlbGVjdGVkVmFsdWUuaGFzT3duUHJvcGVydHkob3B0aW9uc1tpXS52YWx1ZSk7XG4gICAgICBpZiAob3B0aW9uc1tpXS5zZWxlY3RlZCAhPT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgb3B0aW9uc1tpXS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgc2V0IGBzZWxlY3QudmFsdWVgIGFzIGV4YWN0IGJlaGF2aW9yIGlzbid0IGNvbnNpc3RlbnQgYWNyb3NzIGFsbFxuICAgIC8vIGJyb3dzZXJzIGZvciBhbGwgY2FzZXMuXG4gICAgc2VsZWN0ZWRWYWx1ZSA9ICcnICsgcHJvcFZhbHVlO1xuICAgIGZvciAoaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAob3B0aW9uc1tpXS52YWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBvcHRpb25zW2ldLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIG9wdGlvbnNbMF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYSA8c2VsZWN0PiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBvcHRpb25hbGx5IHNldHRpbmcgdGhlXG4gKiBwcm9wcyBgdmFsdWVgIGFuZCBgZGVmYXVsdFZhbHVlYC4gSWYgYG11bHRpcGxlYCBpcyBmYWxzZSwgdGhlIHByb3AgbXVzdCBiZSBhXG4gKiBzdHJpbmdhYmxlLiBJZiBgbXVsdGlwbGVgIGlzIHRydWUsIHRoZSBwcm9wIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5nYWJsZXMuXG4gKlxuICogSWYgYHZhbHVlYCBpcyBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zIHRoYXQgY2hhbmdlIHRoZVxuICogc2VsZWN0ZWQgb3B0aW9uIHdpbGwgdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSByZW5kZXJlZCBvcHRpb25zLlxuICpcbiAqIElmIGl0IGlzIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIG9wdGlvbnMgd2lsbCBub3RcbiAqIHVwZGF0ZSBpbiByZXNwb25zZSB0byB1c2VyIGFjdGlvbnMuIEluc3RlYWQsIHRoZSBgdmFsdWVgIHByb3AgbXVzdCBjaGFuZ2UgaW5cbiAqIG9yZGVyIGZvciB0aGUgcmVuZGVyZWQgb3B0aW9ucyB0byB1cGRhdGUuXG4gKlxuICogSWYgYGRlZmF1bHRWYWx1ZWAgaXMgcHJvdmlkZWQsIGFueSBvcHRpb25zIHdpdGggdGhlIHN1cHBsaWVkIHZhbHVlcyB3aWxsIGJlXG4gKiBzZWxlY3RlZC5cbiAqL1xudmFyIFJlYWN0RE9NU2VsZWN0ID0ge1xuICBnZXRIb3N0UHJvcHM6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcykge1xuICAgIHJldHVybiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgb25DaGFuZ2U6IGluc3QuX3dyYXBwZXJTdGF0ZS5vbkNoYW5nZSxcbiAgICAgIHZhbHVlOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgfSxcblxuICBtb3VudFdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjaGVja1NlbGVjdFByb3BUeXBlcyhpbnN0LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgdmFyIHZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5nZXRWYWx1ZShwcm9wcyk7XG4gICAgaW5zdC5fd3JhcHBlclN0YXRlID0ge1xuICAgICAgcGVuZGluZ1VwZGF0ZTogZmFsc2UsXG4gICAgICBpbml0aWFsVmFsdWU6IHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IHByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgIGxpc3RlbmVyczogbnVsbCxcbiAgICAgIG9uQ2hhbmdlOiBfaGFuZGxlQ2hhbmdlLmJpbmQoaW5zdCksXG4gICAgICB3YXNNdWx0aXBsZTogQm9vbGVhbihwcm9wcy5tdWx0aXBsZSlcbiAgICB9O1xuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdTZWxlY3QgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIHNlbGVjdCAnICsgJ2VsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50cycpIDogdm9pZCAwO1xuICAgICAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gIH0sXG5cbiAgZ2V0U2VsZWN0VmFsdWVDb250ZXh0OiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIC8vIFJlYWN0RE9NT3B0aW9uIGxvb2tzIGF0IHRoaXMgaW5pdGlhbCB2YWx1ZSBzbyB0aGUgaW5pdGlhbCBnZW5lcmF0ZWRcbiAgICAvLyBtYXJrdXAgaGFzIGNvcnJlY3QgYHNlbGVjdGVkYCBhdHRyaWJ1dGVzXG4gICAgcmV0dXJuIGluc3QuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU7XG4gIH0sXG5cbiAgcG9zdFVwZGF0ZVdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgdmFyIHByb3BzID0gaW5zdC5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICAvLyBBZnRlciB0aGUgaW5pdGlhbCBtb3VudCwgd2UgY29udHJvbCBzZWxlY3RlZC1uZXNzIG1hbnVhbGx5IHNvIGRvbid0IHBhc3NcbiAgICAvLyB0aGlzIHZhbHVlIGRvd25cbiAgICBpbnN0Ll93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlID0gdW5kZWZpbmVkO1xuXG4gICAgdmFyIHdhc011bHRpcGxlID0gaW5zdC5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlO1xuICAgIGluc3QuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSA9IEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpO1xuXG4gICAgdmFyIHZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5nZXRWYWx1ZShwcm9wcyk7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlID0gZmFsc2U7XG4gICAgICB1cGRhdGVPcHRpb25zKGluc3QsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCB2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh3YXNNdWx0aXBsZSAhPT0gQm9vbGVhbihwcm9wcy5tdWx0aXBsZSkpIHtcbiAgICAgIC8vIEZvciBzaW1wbGljaXR5LCByZWFwcGx5IGBkZWZhdWx0VmFsdWVgIGlmIGBtdWx0aXBsZWAgaXMgdG9nZ2xlZC5cbiAgICAgIGlmIChwcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgICB1cGRhdGVPcHRpb25zKGluc3QsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCBwcm9wcy5kZWZhdWx0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmV2ZXJ0IHRoZSBzZWxlY3QgYmFjayB0byBpdHMgZGVmYXVsdCB1bnNlbGVjdGVkIHN0YXRlLlxuICAgICAgICB1cGRhdGVPcHRpb25zKGluc3QsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCBwcm9wcy5tdWx0aXBsZSA/IFtdIDogJycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gX2hhbmRsZUNoYW5nZShldmVudCkge1xuICB2YXIgcHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgdmFyIHJldHVyblZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5leGVjdXRlT25DaGFuZ2UocHJvcHMsIGV2ZW50KTtcblxuICBpZiAodGhpcy5fcm9vdE5vZGVJRCkge1xuICAgIHRoaXMuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlID0gdHJ1ZTtcbiAgfVxuICBSZWFjdFVwZGF0ZXMuYXNhcCh1cGRhdGVPcHRpb25zSWZQZW5kaW5nVXBkYXRlQW5kTW91bnRlZCwgdGhpcyk7XG4gIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTVNlbGVjdDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NU2VsZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA5NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///94\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar LinkedValueUtils = __webpack_require__(/*! ./LinkedValueUtils */ 55);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n this._wrapperState.pendingUpdate = false;\n\n var props = this._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n\n if (value != null) {\n updateOptions(this, Boolean(props.multiple), value);\n }\n }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n var owner = inst._currentElement._owner;\n LinkedValueUtils.checkPropTypes('select', props, owner);\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n }\n }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n var selectedValue, i;\n var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;\n\n if (multiple) {\n selectedValue = {};\n for (i = 0; i < propValue.length; i++) {\n selectedValue['' + propValue[i]] = true;\n }\n for (i = 0; i < options.length; i++) {\n var selected = selectedValue.hasOwnProperty(options[i].value);\n if (options[i].selected !== selected) {\n options[i].selected = selected;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n selectedValue = '' + propValue;\n for (i = 0; i < options.length; i++) {\n if (options[i].value === selectedValue) {\n options[i].selected = true;\n return;\n }\n }\n if (options.length) {\n options[0].selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n getHostProps: function (inst, props) {\n return _assign({}, props, {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n checkSelectPropTypes(inst, props);\n }\n\n var value = LinkedValueUtils.getValue(props);\n inst._wrapperState = {\n pendingUpdate: false,\n initialValue: value != null ? value : props.defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this value down\n inst._wrapperState.initialValue = undefined;\n\n var wasMultiple = inst._wrapperState.wasMultiple;\n inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n inst._wrapperState.pendingUpdate = false;\n updateOptions(inst, Boolean(props.multiple), value);\n } else if (wasMultiple !== Boolean(props.multiple)) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n }\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdERPTVNlbGVjdC5qcz80YTEwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgTGlua2VkVmFsdWVVdGlscyA9IHJlcXVpcmUoJy4vTGlua2VkVmFsdWVVdGlscycpO1xudmFyIFJlYWN0RE9NQ29tcG9uZW50VHJlZSA9IHJlcXVpcmUoJy4vUmVhY3RET01Db21wb25lbnRUcmVlJyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcblxudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBkaWRXYXJuVmFsdWVMaW5rID0gZmFsc2U7XG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnNJZlBlbmRpbmdVcGRhdGVBbmRNb3VudGVkKCkge1xuICBpZiAodGhpcy5fcm9vdE5vZGVJRCAmJiB0aGlzLl93cmFwcGVyU3RhdGUucGVuZGluZ1VwZGF0ZSkge1xuICAgIHRoaXMuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlID0gZmFsc2U7XG5cbiAgICB2YXIgcHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcblxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICB1cGRhdGVPcHRpb25zKHRoaXMsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCB2YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShvd25lcikge1xuICBpZiAob3duZXIpIHtcbiAgICB2YXIgbmFtZSA9IG93bmVyLmdldE5hbWUoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuICcgQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBuYW1lICsgJ2AuJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG52YXIgdmFsdWVQcm9wTmFtZXMgPSBbJ3ZhbHVlJywgJ2RlZmF1bHRWYWx1ZSddO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gZnVuY3Rpb24gZm9yIGB2YWx1ZWAgYW5kIGBkZWZhdWx0VmFsdWVgLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY2hlY2tTZWxlY3RQcm9wVHlwZXMoaW5zdCwgcHJvcHMpIHtcbiAgdmFyIG93bmVyID0gaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuICBMaW5rZWRWYWx1ZVV0aWxzLmNoZWNrUHJvcFR5cGVzKCdzZWxlY3QnLCBwcm9wcywgb3duZXIpO1xuXG4gIGlmIChwcm9wcy52YWx1ZUxpbmsgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblZhbHVlTGluaykge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnYHZhbHVlTGlua2AgcHJvcCBvbiBgc2VsZWN0YCBpcyBkZXByZWNhdGVkOyBzZXQgYHZhbHVlYCBhbmQgYG9uQ2hhbmdlYCBpbnN0ZWFkLicpIDogdm9pZCAwO1xuICAgIGRpZFdhcm5WYWx1ZUxpbmsgPSB0cnVlO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZVByb3BOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwcm9wTmFtZSA9IHZhbHVlUHJvcE5hbWVzW2ldO1xuICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShwcm9wc1twcm9wTmFtZV0pO1xuICAgIGlmIChwcm9wcy5tdWx0aXBsZSAmJiAhaXNBcnJheSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYW4gYXJyYXkgaWYgJyArICdgbXVsdGlwbGVgIGlzIHRydWUuJXMnLCBwcm9wTmFtZSwgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKG93bmVyKSkgOiB2b2lkIDA7XG4gICAgfSBlbHNlIGlmICghcHJvcHMubXVsdGlwbGUgJiYgaXNBcnJheSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYSBzY2FsYXIgJyArICd2YWx1ZSBpZiBgbXVsdGlwbGVgIGlzIGZhbHNlLiVzJywgcHJvcE5hbWUsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShvd25lcikpIDogdm9pZCAwO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVhY3RET01Db21wb25lbnR9IGluc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbXVsdGlwbGVcbiAqIEBwYXJhbSB7Kn0gcHJvcFZhbHVlIEEgc3RyaW5nYWJsZSAod2l0aCBgbXVsdGlwbGVgLCBhIGxpc3Qgb2Ygc3RyaW5nYWJsZXMpLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gdXBkYXRlT3B0aW9ucyhpbnN0LCBtdWx0aXBsZSwgcHJvcFZhbHVlKSB7XG4gIHZhciBzZWxlY3RlZFZhbHVlLCBpO1xuICB2YXIgb3B0aW9ucyA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKGluc3QpLm9wdGlvbnM7XG5cbiAgaWYgKG11bHRpcGxlKSB7XG4gICAgc2VsZWN0ZWRWYWx1ZSA9IHt9O1xuICAgIGZvciAoaSA9IDA7IGkgPCBwcm9wVmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNlbGVjdGVkVmFsdWVbJycgKyBwcm9wVmFsdWVbaV1dID0gdHJ1ZTtcbiAgICB9XG4gICAgZm9yIChpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzZWxlY3RlZCA9IHNlbGVjdGVkVmFsdWUuaGFzT3duUHJvcGVydHkob3B0aW9uc1tpXS52YWx1ZSk7XG4gICAgICBpZiAob3B0aW9uc1tpXS5zZWxlY3RlZCAhPT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgb3B0aW9uc1tpXS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBEbyBub3Qgc2V0IGBzZWxlY3QudmFsdWVgIGFzIGV4YWN0IGJlaGF2aW9yIGlzbid0IGNvbnNpc3RlbnQgYWNyb3NzIGFsbFxuICAgIC8vIGJyb3dzZXJzIGZvciBhbGwgY2FzZXMuXG4gICAgc2VsZWN0ZWRWYWx1ZSA9ICcnICsgcHJvcFZhbHVlO1xuICAgIGZvciAoaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAob3B0aW9uc1tpXS52YWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBvcHRpb25zW2ldLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIG9wdGlvbnNbMF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYSA8c2VsZWN0PiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBvcHRpb25hbGx5IHNldHRpbmcgdGhlXG4gKiBwcm9wcyBgdmFsdWVgIGFuZCBgZGVmYXVsdFZhbHVlYC4gSWYgYG11bHRpcGxlYCBpcyBmYWxzZSwgdGhlIHByb3AgbXVzdCBiZSBhXG4gKiBzdHJpbmdhYmxlLiBJZiBgbXVsdGlwbGVgIGlzIHRydWUsIHRoZSBwcm9wIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5nYWJsZXMuXG4gKlxuICogSWYgYHZhbHVlYCBpcyBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zIHRoYXQgY2hhbmdlIHRoZVxuICogc2VsZWN0ZWQgb3B0aW9uIHdpbGwgdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSByZW5kZXJlZCBvcHRpb25zLlxuICpcbiAqIElmIGl0IGlzIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIG9wdGlvbnMgd2lsbCBub3RcbiAqIHVwZGF0ZSBpbiByZXNwb25zZSB0byB1c2VyIGFjdGlvbnMuIEluc3RlYWQsIHRoZSBgdmFsdWVgIHByb3AgbXVzdCBjaGFuZ2UgaW5cbiAqIG9yZGVyIGZvciB0aGUgcmVuZGVyZWQgb3B0aW9ucyB0byB1cGRhdGUuXG4gKlxuICogSWYgYGRlZmF1bHRWYWx1ZWAgaXMgcHJvdmlkZWQsIGFueSBvcHRpb25zIHdpdGggdGhlIHN1cHBsaWVkIHZhbHVlcyB3aWxsIGJlXG4gKiBzZWxlY3RlZC5cbiAqL1xudmFyIFJlYWN0RE9NU2VsZWN0ID0ge1xuICBnZXRIb3N0UHJvcHM6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcykge1xuICAgIHJldHVybiBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgb25DaGFuZ2U6IGluc3QuX3dyYXBwZXJTdGF0ZS5vbkNoYW5nZSxcbiAgICAgIHZhbHVlOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgfSxcblxuICBtb3VudFdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjaGVja1NlbGVjdFByb3BUeXBlcyhpbnN0LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgdmFyIHZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5nZXRWYWx1ZShwcm9wcyk7XG4gICAgaW5zdC5fd3JhcHBlclN0YXRlID0ge1xuICAgICAgcGVuZGluZ1VwZGF0ZTogZmFsc2UsXG4gICAgICBpbml0aWFsVmFsdWU6IHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IHByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgIGxpc3RlbmVyczogbnVsbCxcbiAgICAgIG9uQ2hhbmdlOiBfaGFuZGxlQ2hhbmdlLmJpbmQoaW5zdCksXG4gICAgICB3YXNNdWx0aXBsZTogQm9vbGVhbihwcm9wcy5tdWx0aXBsZSlcbiAgICB9O1xuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdTZWxlY3QgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIHNlbGVjdCAnICsgJ2VsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50cycpIDogdm9pZCAwO1xuICAgICAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gdHJ1ZTtcbiAgICB9XG4gIH0sXG5cbiAgZ2V0U2VsZWN0VmFsdWVDb250ZXh0OiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIC8vIFJlYWN0RE9NT3B0aW9uIGxvb2tzIGF0IHRoaXMgaW5pdGlhbCB2YWx1ZSBzbyB0aGUgaW5pdGlhbCBnZW5lcmF0ZWRcbiAgICAvLyBtYXJrdXAgaGFzIGNvcnJlY3QgYHNlbGVjdGVkYCBhdHRyaWJ1dGVzXG4gICAgcmV0dXJuIGluc3QuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU7XG4gIH0sXG5cbiAgcG9zdFVwZGF0ZVdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgdmFyIHByb3BzID0gaW5zdC5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICAvLyBBZnRlciB0aGUgaW5pdGlhbCBtb3VudCwgd2UgY29udHJvbCBzZWxlY3RlZC1uZXNzIG1hbnVhbGx5IHNvIGRvbid0IHBhc3NcbiAgICAvLyB0aGlzIHZhbHVlIGRvd25cbiAgICBpbnN0Ll93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlID0gdW5kZWZpbmVkO1xuXG4gICAgdmFyIHdhc011bHRpcGxlID0gaW5zdC5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlO1xuICAgIGluc3QuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSA9IEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpO1xuXG4gICAgdmFyIHZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5nZXRWYWx1ZShwcm9wcyk7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlID0gZmFsc2U7XG4gICAgICB1cGRhdGVPcHRpb25zKGluc3QsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCB2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh3YXNNdWx0aXBsZSAhPT0gQm9vbGVhbihwcm9wcy5tdWx0aXBsZSkpIHtcbiAgICAgIC8vIEZvciBzaW1wbGljaXR5LCByZWFwcGx5IGBkZWZhdWx0VmFsdWVgIGlmIGBtdWx0aXBsZWAgaXMgdG9nZ2xlZC5cbiAgICAgIGlmIChwcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgICB1cGRhdGVPcHRpb25zKGluc3QsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCBwcm9wcy5kZWZhdWx0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmV2ZXJ0IHRoZSBzZWxlY3QgYmFjayB0byBpdHMgZGVmYXVsdCB1bnNlbGVjdGVkIHN0YXRlLlxuICAgICAgICB1cGRhdGVPcHRpb25zKGluc3QsIEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpLCBwcm9wcy5tdWx0aXBsZSA/IFtdIDogJycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gX2hhbmRsZUNoYW5nZShldmVudCkge1xuICB2YXIgcHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgdmFyIHJldHVyblZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5leGVjdXRlT25DaGFuZ2UocHJvcHMsIGV2ZW50KTtcblxuICBpZiAodGhpcy5fcm9vdE5vZGVJRCkge1xuICAgIHRoaXMuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlID0gdHJ1ZTtcbiAgfVxuICBSZWFjdFVwZGF0ZXMuYXNhcCh1cGRhdGVPcHRpb25zSWZQZW5kaW5nVXBkYXRlQW5kTW91bnRlZCwgdGhpcyk7XG4gIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTVNlbGVjdDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NU2VsZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSA5NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///94\n"); /***/ }), /* 95 */ @@ -1272,7 +1272,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar REACT_ELEMENT_TYPE = __webpack_require__(/*! ./ReactElementSymbol */ 194);\n\nvar getIteratorFn = __webpack_require__(/*! ./getIteratorFn */ 195);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar KeyEscapeUtils = __webpack_require__(/*! ./KeyEscapeUtils */ 58);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = \" It looks like you're using an element created by a different \" + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvdHJhdmVyc2VBbGxDaGlsZHJlbi5qcz81ZWRmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50U3ltYm9sJyk7XG5cbnZhciBnZXRJdGVyYXRvckZuID0gcmVxdWlyZSgnLi9nZXRJdGVyYXRvckZuJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgS2V5RXNjYXBlVXRpbHMgPSByZXF1aXJlKCcuL0tleUVzY2FwZVV0aWxzJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIFNFUEFSQVRPUiA9ICcuJztcbnZhciBTVUJTRVBBUkFUT1IgPSAnOic7XG5cbi8qKlxuICogVGhpcyBpcyBpbmxpbmVkIGZyb20gUmVhY3RFbGVtZW50IHNpbmNlIHRoaXMgZmlsZSBpcyBzaGFyZWQgYmV0d2VlblxuICogaXNvbW9ycGhpYyBhbmQgcmVuZGVyZXJzLiBXZSBjb3VsZCBleHRyYWN0IHRoaXMgdG8gYVxuICpcbiAqL1xuXG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG52YXIgZGlkV2FybkFib3V0TWFwcyA9IGZhbHNlO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBjb21wb25lbnQgd2l0aGluIGEgc2V0LlxuICpcbiAqIEBwYXJhbSB7Kn0gY29tcG9uZW50IEEgY29tcG9uZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldENvbXBvbmVudEtleShjb21wb25lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAoY29tcG9uZW50ICYmIHR5cGVvZiBjb21wb25lbnQgPT09ICdvYmplY3QnICYmIGNvbXBvbmVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHJldHVybiBLZXlFc2NhcGVVdGlscy5lc2NhcGUoY29tcG9uZW50LmtleSk7XG4gIH1cbiAgLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcbiAgcmV0dXJuIGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEBwYXJhbSB7IXN0cmluZ30gbmFtZVNvRmFyIE5hbWUgb2YgdGhlIGtleSBwYXRoIHNvIGZhci5cbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBjYWxsYmFjayBDYWxsYmFjayB0byBpbnZva2Ugd2l0aCBlYWNoIGNoaWxkIGZvdW5kLlxuICogQHBhcmFtIHs/Kn0gdHJhdmVyc2VDb250ZXh0IFVzZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0aHJvdWdob3V0IHRoZSB0cmF2ZXJzYWxcbiAqIHByb2Nlc3MuXG4gKiBAcmV0dXJuIHshbnVtYmVyfSBUaGUgbnVtYmVyIG9mIGNoaWxkcmVuIGluIHRoaXMgc3VidHJlZS5cbiAqL1xuZnVuY3Rpb24gdHJhdmVyc2VBbGxDaGlsZHJlbkltcGwoY2hpbGRyZW4sIG5hbWVTb0ZhciwgY2FsbGJhY2ssIHRyYXZlcnNlQ29udGV4dCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBjaGlsZHJlbjtcblxuICBpZiAodHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gQWxsIG9mIHRoZSBhYm92ZSBhcmUgcGVyY2VpdmVkIGFzIG51bGwuXG4gICAgY2hpbGRyZW4gPSBudWxsO1xuICB9XG5cbiAgaWYgKGNoaWxkcmVuID09PSBudWxsIHx8IHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGUgPT09ICdudW1iZXInIHx8XG4gIC8vIFRoZSBmb2xsb3dpbmcgaXMgaW5saW5lZCBmcm9tIFJlYWN0RWxlbWVudC4gVGhpcyBtZWFucyB3ZSBjYW4gb3B0aW1pemVcbiAgLy8gc29tZSBjaGVja3MuIFJlYWN0IEZpYmVyIGFsc28gaW5saW5lcyB0aGlzIGxvZ2ljIGZvciBzaW1pbGFyIHB1cnBvc2VzLlxuICB0eXBlID09PSAnb2JqZWN0JyAmJiBjaGlsZHJlbi4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKSB7XG4gICAgY2FsbGJhY2sodHJhdmVyc2VDb250ZXh0LCBjaGlsZHJlbixcbiAgICAvLyBJZiBpdCdzIHRoZSBvbmx5IGNoaWxkLCB0cmVhdCB0aGUgbmFtZSBhcyBpZiBpdCB3YXMgd3JhcHBlZCBpbiBhbiBhcnJheVxuICAgIC8vIHNvIHRoYXQgaXQncyBjb25zaXN0ZW50IGlmIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gZ3Jvd3MuXG4gICAgbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiArIGdldENvbXBvbmVudEtleShjaGlsZHJlbiwgMCkgOiBuYW1lU29GYXIpO1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuICB2YXIgbmV4dE5hbWVQcmVmaXggPSBuYW1lU29GYXIgPT09ICcnID8gU0VQQVJBVE9SIDogbmFtZVNvRmFyICsgU1VCU0VQQVJBVE9SO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkID0gY2hpbGRyZW5baV07XG4gICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0Q29tcG9uZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoY2hpbGRyZW4pO1xuICAgICAgdmFyIHN0ZXA7XG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gY2hpbGRyZW4uZW50cmllcykge1xuICAgICAgICB2YXIgaWkgPSAwO1xuICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRDb21wb25lbnRLZXkoY2hpbGQsIGlpKyspO1xuICAgICAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHZhciBtYXBzQXNDaGlsZHJlbkFkZGVuZHVtID0gJyc7XG4gICAgICAgICAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHZhciBtYXBzQXNDaGlsZHJlbk93bmVyTmFtZSA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgaWYgKG1hcHNBc0NoaWxkcmVuT3duZXJOYW1lKSB7XG4gICAgICAgICAgICAgIG1hcHNBc0NoaWxkcmVuQWRkZW5kdW0gPSAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbWFwc0FzQ2hpbGRyZW5Pd25lck5hbWUgKyAnYC4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhkaWRXYXJuQWJvdXRNYXBzLCAnVXNpbmcgTWFwcyBhcyBjaGlsZHJlbiBpcyBub3QgeWV0IGZ1bGx5IHN1cHBvcnRlZC4gSXQgaXMgYW4gJyArICdleHBlcmltZW50YWwgZmVhdHVyZSB0aGF0IG1pZ2h0IGJlIHJlbW92ZWQuIENvbnZlcnQgaXQgdG8gYSAnICsgJ3NlcXVlbmNlIC8gaXRlcmFibGUgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLiVzJywgbWFwc0FzQ2hpbGRyZW5BZGRlbmR1bSkgOiB2b2lkIDA7XG4gICAgICAgICAgZGlkV2FybkFib3V0TWFwcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSXRlcmF0b3Igd2lsbCBwcm92aWRlIGVudHJ5IFtrLHZdIHR1cGxlcyByYXRoZXIgdGhhbiB2YWx1ZXMuXG4gICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgY2hpbGQgPSBlbnRyeVsxXTtcbiAgICAgICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBLZXlFc2NhcGVVdGlscy5lc2NhcGUoZW50cnlbMF0pICsgU1VCU0VQQVJBVE9SICsgZ2V0Q29tcG9uZW50S2V5KGNoaWxkLCAwKTtcbiAgICAgICAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBhZGRlbmR1bSA9ICcnO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgYWRkZW5kdW0gPSAnIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgJyArICdpbnN0ZWFkIG9yIHdyYXAgdGhlIG9iamVjdCB1c2luZyBjcmVhdGVGcmFnbWVudChvYmplY3QpIGZyb20gdGhlICcgKyAnUmVhY3QgYWRkLW9ucy4nO1xuICAgICAgICBpZiAoY2hpbGRyZW4uX2lzUmVhY3RFbGVtZW50KSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSBcIiBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyBhbiBlbGVtZW50IGNyZWF0ZWQgYnkgYSBkaWZmZXJlbnQgXCIgKyAndmVyc2lvbiBvZiBSZWFjdC4gTWFrZSBzdXJlIHRvIHVzZSBvbmx5IG9uZSBjb3B5IG9mIFJlYWN0Lic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICB2YXIgbmFtZSA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuZ2V0TmFtZSgpO1xuICAgICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBhZGRlbmR1bSArPSAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgY2hpbGRyZW5TdHJpbmcgPSBTdHJpbmcoY2hpbGRyZW4pO1xuICAgICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ09iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogJXMpLiVzJywgY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nLCBhZGRlbmR1bSkgOiBfcHJvZEludmFyaWFudCgnMzEnLCBjaGlsZHJlblN0cmluZyA9PT0gJ1tvYmplY3QgT2JqZWN0XScgPyAnb2JqZWN0IHdpdGgga2V5cyB7JyArIE9iamVjdC5rZXlzKGNoaWxkcmVuKS5qb2luKCcsICcpICsgJ30nIDogY2hpbGRyZW5TdHJpbmcsIGFkZGVuZHVtKSA6IHZvaWQgMDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIFRyYXZlcnNlcyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAsIGJ1dFxuICogbWlnaHQgYWxzbyBiZSBzcGVjaWZpZWQgdGhyb3VnaCBhdHRyaWJ1dGVzOlxuICpcbiAqIC0gYHRyYXZlcnNlQWxsQ2hpbGRyZW4odGhpcy5wcm9wcy5jaGlsZHJlbiwgLi4uKWBcbiAqIC0gYHRyYXZlcnNlQWxsQ2hpbGRyZW4odGhpcy5wcm9wcy5sZWZ0UGFuZWxDaGlsZHJlbiwgLi4uKWBcbiAqXG4gKiBUaGUgYHRyYXZlcnNlQ29udGV4dGAgaXMgYW4gb3B0aW9uYWwgYXJndW1lbnQgdGhhdCBpcyBwYXNzZWQgdGhyb3VnaCB0aGVcbiAqIGVudGlyZSB0cmF2ZXJzYWwuIEl0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFjY3VtdWxhdGlvbnMgb3IgYW55dGhpbmcgZWxzZSB0aGF0XG4gKiB0aGUgY2FsbGJhY2sgbWlnaHQgZmluZCByZWxldmFudC5cbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIG9iamVjdC5cbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBjYWxsYmFjayBUbyBpbnZva2UgdXBvbiB0cmF2ZXJzaW5nIGVhY2ggY2hpbGQuXG4gKiBAcGFyYW0gez8qfSB0cmF2ZXJzZUNvbnRleHQgQ29udGV4dCBmb3IgdHJhdmVyc2FsLlxuICogQHJldHVybiB7IW51bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbiBpbiB0aGlzIHN1YnRyZWUuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpIHtcbiAgaWYgKGNoaWxkcmVuID09IG51bGwpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZHJlbiwgJycsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRyYXZlcnNlQWxsQ2hpbGRyZW47XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi90cmF2ZXJzZUFsbENoaWxkcmVuLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///100\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar REACT_ELEMENT_TYPE = __webpack_require__(/*! ./ReactElementSymbol */ 194);\n\nvar getIteratorFn = __webpack_require__(/*! ./getIteratorFn */ 195);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar KeyEscapeUtils = __webpack_require__(/*! ./KeyEscapeUtils */ 59);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = \" It looks like you're using an element created by a different \" + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvdHJhdmVyc2VBbGxDaGlsZHJlbi5qcz81ZWRmIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50U3ltYm9sJyk7XG5cbnZhciBnZXRJdGVyYXRvckZuID0gcmVxdWlyZSgnLi9nZXRJdGVyYXRvckZuJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgS2V5RXNjYXBlVXRpbHMgPSByZXF1aXJlKCcuL0tleUVzY2FwZVV0aWxzJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIFNFUEFSQVRPUiA9ICcuJztcbnZhciBTVUJTRVBBUkFUT1IgPSAnOic7XG5cbi8qKlxuICogVGhpcyBpcyBpbmxpbmVkIGZyb20gUmVhY3RFbGVtZW50IHNpbmNlIHRoaXMgZmlsZSBpcyBzaGFyZWQgYmV0d2VlblxuICogaXNvbW9ycGhpYyBhbmQgcmVuZGVyZXJzLiBXZSBjb3VsZCBleHRyYWN0IHRoaXMgdG8gYVxuICpcbiAqL1xuXG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG52YXIgZGlkV2FybkFib3V0TWFwcyA9IGZhbHNlO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBjb21wb25lbnQgd2l0aGluIGEgc2V0LlxuICpcbiAqIEBwYXJhbSB7Kn0gY29tcG9uZW50IEEgY29tcG9uZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldENvbXBvbmVudEtleShjb21wb25lbnQsIGluZGV4KSB7XG4gIC8vIERvIHNvbWUgdHlwZWNoZWNraW5nIGhlcmUgc2luY2Ugd2UgY2FsbCB0aGlzIGJsaW5kbHkuIFdlIHdhbnQgdG8gZW5zdXJlXG4gIC8vIHRoYXQgd2UgZG9uJ3QgYmxvY2sgcG90ZW50aWFsIGZ1dHVyZSBFUyBBUElzLlxuICBpZiAoY29tcG9uZW50ICYmIHR5cGVvZiBjb21wb25lbnQgPT09ICdvYmplY3QnICYmIGNvbXBvbmVudC5rZXkgIT0gbnVsbCkge1xuICAgIC8vIEV4cGxpY2l0IGtleVxuICAgIHJldHVybiBLZXlFc2NhcGVVdGlscy5lc2NhcGUoY29tcG9uZW50LmtleSk7XG4gIH1cbiAgLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcbiAgcmV0dXJuIGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEBwYXJhbSB7IXN0cmluZ30gbmFtZVNvRmFyIE5hbWUgb2YgdGhlIGtleSBwYXRoIHNvIGZhci5cbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBjYWxsYmFjayBDYWxsYmFjayB0byBpbnZva2Ugd2l0aCBlYWNoIGNoaWxkIGZvdW5kLlxuICogQHBhcmFtIHs/Kn0gdHJhdmVyc2VDb250ZXh0IFVzZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0aHJvdWdob3V0IHRoZSB0cmF2ZXJzYWxcbiAqIHByb2Nlc3MuXG4gKiBAcmV0dXJuIHshbnVtYmVyfSBUaGUgbnVtYmVyIG9mIGNoaWxkcmVuIGluIHRoaXMgc3VidHJlZS5cbiAqL1xuZnVuY3Rpb24gdHJhdmVyc2VBbGxDaGlsZHJlbkltcGwoY2hpbGRyZW4sIG5hbWVTb0ZhciwgY2FsbGJhY2ssIHRyYXZlcnNlQ29udGV4dCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBjaGlsZHJlbjtcblxuICBpZiAodHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gQWxsIG9mIHRoZSBhYm92ZSBhcmUgcGVyY2VpdmVkIGFzIG51bGwuXG4gICAgY2hpbGRyZW4gPSBudWxsO1xuICB9XG5cbiAgaWYgKGNoaWxkcmVuID09PSBudWxsIHx8IHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGUgPT09ICdudW1iZXInIHx8XG4gIC8vIFRoZSBmb2xsb3dpbmcgaXMgaW5saW5lZCBmcm9tIFJlYWN0RWxlbWVudC4gVGhpcyBtZWFucyB3ZSBjYW4gb3B0aW1pemVcbiAgLy8gc29tZSBjaGVja3MuIFJlYWN0IEZpYmVyIGFsc28gaW5saW5lcyB0aGlzIGxvZ2ljIGZvciBzaW1pbGFyIHB1cnBvc2VzLlxuICB0eXBlID09PSAnb2JqZWN0JyAmJiBjaGlsZHJlbi4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKSB7XG4gICAgY2FsbGJhY2sodHJhdmVyc2VDb250ZXh0LCBjaGlsZHJlbixcbiAgICAvLyBJZiBpdCdzIHRoZSBvbmx5IGNoaWxkLCB0cmVhdCB0aGUgbmFtZSBhcyBpZiBpdCB3YXMgd3JhcHBlZCBpbiBhbiBhcnJheVxuICAgIC8vIHNvIHRoYXQgaXQncyBjb25zaXN0ZW50IGlmIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gZ3Jvd3MuXG4gICAgbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiArIGdldENvbXBvbmVudEtleShjaGlsZHJlbiwgMCkgOiBuYW1lU29GYXIpO1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuICB2YXIgbmV4dE5hbWVQcmVmaXggPSBuYW1lU29GYXIgPT09ICcnID8gU0VQQVJBVE9SIDogbmFtZVNvRmFyICsgU1VCU0VQQVJBVE9SO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkID0gY2hpbGRyZW5baV07XG4gICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0Q29tcG9uZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoY2hpbGRyZW4pO1xuICAgICAgdmFyIHN0ZXA7XG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gY2hpbGRyZW4uZW50cmllcykge1xuICAgICAgICB2YXIgaWkgPSAwO1xuICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRDb21wb25lbnRLZXkoY2hpbGQsIGlpKyspO1xuICAgICAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHZhciBtYXBzQXNDaGlsZHJlbkFkZGVuZHVtID0gJyc7XG4gICAgICAgICAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHZhciBtYXBzQXNDaGlsZHJlbk93bmVyTmFtZSA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgaWYgKG1hcHNBc0NoaWxkcmVuT3duZXJOYW1lKSB7XG4gICAgICAgICAgICAgIG1hcHNBc0NoaWxkcmVuQWRkZW5kdW0gPSAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbWFwc0FzQ2hpbGRyZW5Pd25lck5hbWUgKyAnYC4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhkaWRXYXJuQWJvdXRNYXBzLCAnVXNpbmcgTWFwcyBhcyBjaGlsZHJlbiBpcyBub3QgeWV0IGZ1bGx5IHN1cHBvcnRlZC4gSXQgaXMgYW4gJyArICdleHBlcmltZW50YWwgZmVhdHVyZSB0aGF0IG1pZ2h0IGJlIHJlbW92ZWQuIENvbnZlcnQgaXQgdG8gYSAnICsgJ3NlcXVlbmNlIC8gaXRlcmFibGUgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLiVzJywgbWFwc0FzQ2hpbGRyZW5BZGRlbmR1bSkgOiB2b2lkIDA7XG4gICAgICAgICAgZGlkV2FybkFib3V0TWFwcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSXRlcmF0b3Igd2lsbCBwcm92aWRlIGVudHJ5IFtrLHZdIHR1cGxlcyByYXRoZXIgdGhhbiB2YWx1ZXMuXG4gICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgY2hpbGQgPSBlbnRyeVsxXTtcbiAgICAgICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBLZXlFc2NhcGVVdGlscy5lc2NhcGUoZW50cnlbMF0pICsgU1VCU0VQQVJBVE9SICsgZ2V0Q29tcG9uZW50S2V5KGNoaWxkLCAwKTtcbiAgICAgICAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBhZGRlbmR1bSA9ICcnO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgYWRkZW5kdW0gPSAnIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgJyArICdpbnN0ZWFkIG9yIHdyYXAgdGhlIG9iamVjdCB1c2luZyBjcmVhdGVGcmFnbWVudChvYmplY3QpIGZyb20gdGhlICcgKyAnUmVhY3QgYWRkLW9ucy4nO1xuICAgICAgICBpZiAoY2hpbGRyZW4uX2lzUmVhY3RFbGVtZW50KSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSBcIiBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyBhbiBlbGVtZW50IGNyZWF0ZWQgYnkgYSBkaWZmZXJlbnQgXCIgKyAndmVyc2lvbiBvZiBSZWFjdC4gTWFrZSBzdXJlIHRvIHVzZSBvbmx5IG9uZSBjb3B5IG9mIFJlYWN0Lic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICB2YXIgbmFtZSA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuZ2V0TmFtZSgpO1xuICAgICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBhZGRlbmR1bSArPSAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgY2hpbGRyZW5TdHJpbmcgPSBTdHJpbmcoY2hpbGRyZW4pO1xuICAgICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ09iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogJXMpLiVzJywgY2hpbGRyZW5TdHJpbmcgPT09ICdbb2JqZWN0IE9iamVjdF0nID8gJ29iamVjdCB3aXRoIGtleXMgeycgKyBPYmplY3Qua2V5cyhjaGlsZHJlbikuam9pbignLCAnKSArICd9JyA6IGNoaWxkcmVuU3RyaW5nLCBhZGRlbmR1bSkgOiBfcHJvZEludmFyaWFudCgnMzEnLCBjaGlsZHJlblN0cmluZyA9PT0gJ1tvYmplY3QgT2JqZWN0XScgPyAnb2JqZWN0IHdpdGgga2V5cyB7JyArIE9iamVjdC5rZXlzKGNoaWxkcmVuKS5qb2luKCcsICcpICsgJ30nIDogY2hpbGRyZW5TdHJpbmcsIGFkZGVuZHVtKSA6IHZvaWQgMDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIFRyYXZlcnNlcyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAsIGJ1dFxuICogbWlnaHQgYWxzbyBiZSBzcGVjaWZpZWQgdGhyb3VnaCBhdHRyaWJ1dGVzOlxuICpcbiAqIC0gYHRyYXZlcnNlQWxsQ2hpbGRyZW4odGhpcy5wcm9wcy5jaGlsZHJlbiwgLi4uKWBcbiAqIC0gYHRyYXZlcnNlQWxsQ2hpbGRyZW4odGhpcy5wcm9wcy5sZWZ0UGFuZWxDaGlsZHJlbiwgLi4uKWBcbiAqXG4gKiBUaGUgYHRyYXZlcnNlQ29udGV4dGAgaXMgYW4gb3B0aW9uYWwgYXJndW1lbnQgdGhhdCBpcyBwYXNzZWQgdGhyb3VnaCB0aGVcbiAqIGVudGlyZSB0cmF2ZXJzYWwuIEl0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFjY3VtdWxhdGlvbnMgb3IgYW55dGhpbmcgZWxzZSB0aGF0XG4gKiB0aGUgY2FsbGJhY2sgbWlnaHQgZmluZCByZWxldmFudC5cbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIG9iamVjdC5cbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBjYWxsYmFjayBUbyBpbnZva2UgdXBvbiB0cmF2ZXJzaW5nIGVhY2ggY2hpbGQuXG4gKiBAcGFyYW0gez8qfSB0cmF2ZXJzZUNvbnRleHQgQ29udGV4dCBmb3IgdHJhdmVyc2FsLlxuICogQHJldHVybiB7IW51bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbiBpbiB0aGlzIHN1YnRyZWUuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpIHtcbiAgaWYgKGNoaWxkcmVuID09IG51bGwpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZHJlbiwgJycsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRyYXZlcnNlQWxsQ2hpbGRyZW47XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi90cmF2ZXJzZUFsbENoaWxkcmVuLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///100\n"); /***/ }), /* 101 */ @@ -1320,7 +1320,7 @@ eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights rese /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar DOMProperty = __webpack_require__(/*! ./DOMProperty */ 15);\nvar React = __webpack_require__(/*! react/lib/React */ 20);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactDOMContainerInfo = __webpack_require__(/*! ./ReactDOMContainerInfo */ 224);\nvar ReactDOMFeatureFlags = __webpack_require__(/*! ./ReactDOMFeatureFlags */ 225);\nvar ReactFeatureFlags = __webpack_require__(/*! ./ReactFeatureFlags */ 84);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactMarkupChecksum = __webpack_require__(/*! ./ReactMarkupChecksum */ 226);\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\nvar ReactUpdateQueue = __webpack_require__(/*! ./ReactUpdateQueue */ 59);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ 97);\nvar instantiateReactComponent = __webpack_require__(/*! ./instantiateReactComponent */ 95);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ 39);\nvar shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ 57);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n var minLen = Math.min(string1.length, string2.length);\n for (var i = 0; i < minLen; i++) {\n if (string1.charAt(i) !== string2.charAt(i)) {\n return i;\n }\n }\n return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n TopLevelWrapper: TopLevelWrapper,\n\n /**\n * Used by devtools. The keys are not important.\n */\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function (container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactElement} nextElement component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\n * @param {ReactElement} nextElement element to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\n\n // The initial render is synchronous but any updates that happen during\n // rendering, in componentWillMount or componentDidMount, will be batched\n // according to the current batching strategy.\n\n ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\n\n return componentInstance;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? \" Instead of passing a string like 'div', pass \" + \"React.createElement('div') or <div />.\" : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : // Check if it quacks like an element\n nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? \" Instead of passing a string like 'div', pass \" + \"React.createElement('div') or <div />.\" : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, {\n child: nextElement\n });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n var rootElementSibling = reactRootElement;\n while (rootElementSibling) {\n if (internalGetID(rootElementSibling)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;\n break;\n }\n rootElementSibling = rootElementSibling.nextSibling;\n }\n }\n }\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();\n if (callback) {\n callback.call(component);\n }\n return component;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function (nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function (container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\n // Check if the node being unmounted was rendered by React, but isn't a\n // root node.\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n // Check if the container itself is a React root node.\n var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, rootElement);\n return;\n } else {\n var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n var rootMarkup = rootElement.outerHTML;\n rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n var normalizedMarkup = markup;\n if (process.env.NODE_ENV !== 'production') {\n // because rootMarkup is retrieved from the DOM, various normalizations\n // will have occurred which will not be present in `markup`. Here,\n // insert markup into a <div> or <iframe> depending on the container\n // type to perform the same normalizations before comparing.\n var normalizer;\n if (container.nodeType === ELEMENT_NODE_TYPE) {\n normalizer = document.createElement('div');\n normalizer.innerHTML = markup;\n normalizedMarkup = normalizer.innerHTML;\n } else {\n normalizer = document.createElement('iframe');\n document.body.appendChild(normalizer);\n normalizer.contentDocument.write(markup);\n normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n document.body.removeChild(normalizer);\n }\n }\n\n var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\\n%s', difference) : _prodInvariant('42', difference) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but you didn\\'t use server rendering. We can\\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTA0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RNb3VudC5qcz8wY2MyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBET01MYXp5VHJlZSA9IHJlcXVpcmUoJy4vRE9NTGF6eVRyZWUnKTtcbnZhciBET01Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHknKTtcbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdCcpO1xudmFyIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJy4vUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyJyk7XG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSByZXF1aXJlKCdyZWFjdC9saWIvUmVhY3RDdXJyZW50T3duZXInKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0RE9NQ29udGFpbmVySW5mbyA9IHJlcXVpcmUoJy4vUmVhY3RET01Db250YWluZXJJbmZvJyk7XG52YXIgUmVhY3RET01GZWF0dXJlRmxhZ3MgPSByZXF1aXJlKCcuL1JlYWN0RE9NRmVhdHVyZUZsYWdzJyk7XG52YXIgUmVhY3RGZWF0dXJlRmxhZ3MgPSByZXF1aXJlKCcuL1JlYWN0RmVhdHVyZUZsYWdzJyk7XG52YXIgUmVhY3RJbnN0YW5jZU1hcCA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZU1hcCcpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFJlYWN0TWFya3VwQ2hlY2tzdW0gPSByZXF1aXJlKCcuL1JlYWN0TWFya3VwQ2hlY2tzdW0nKTtcbnZhciBSZWFjdFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0UmVjb25jaWxlcicpO1xudmFyIFJlYWN0VXBkYXRlUXVldWUgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlUXVldWUnKTtcbnZhciBSZWFjdFVwZGF0ZXMgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlcycpO1xuXG52YXIgZW1wdHlPYmplY3QgPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eU9iamVjdCcpO1xudmFyIGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQgPSByZXF1aXJlKCcuL2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciBzZXRJbm5lckhUTUwgPSByZXF1aXJlKCcuL3NldElubmVySFRNTCcpO1xudmFyIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBBVFRSX05BTUUgPSBET01Qcm9wZXJ0eS5JRF9BVFRSSUJVVEVfTkFNRTtcbnZhciBST09UX0FUVFJfTkFNRSA9IERPTVByb3BlcnR5LlJPT1RfQVRUUklCVVRFX05BTUU7XG5cbnZhciBFTEVNRU5UX05PREVfVFlQRSA9IDE7XG52YXIgRE9DX05PREVfVFlQRSA9IDk7XG52YXIgRE9DVU1FTlRfRlJBR01FTlRfTk9ERV9UWVBFID0gMTE7XG5cbnZhciBpbnN0YW5jZXNCeVJlYWN0Um9vdElEID0ge307XG5cbi8qKlxuICogRmluZHMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXJcbiAqIHRoYXQncyBub3QgY29tbW9uIGJldHdlZW4gdGhlIHR3byBnaXZlbiBzdHJpbmdzLlxuICpcbiAqIEByZXR1cm4ge251bWJlcn0gdGhlIGluZGV4IG9mIHRoZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIHN0cmluZ3MgZGl2ZXJnZVxuICovXG5mdW5jdGlvbiBmaXJzdERpZmZlcmVuY2VJbmRleChzdHJpbmcxLCBzdHJpbmcyKSB7XG4gIHZhciBtaW5MZW4gPSBNYXRoLm1pbihzdHJpbmcxLmxlbmd0aCwgc3RyaW5nMi5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG1pbkxlbjsgaSsrKSB7XG4gICAgaWYgKHN0cmluZzEuY2hhckF0KGkpICE9PSBzdHJpbmcyLmNoYXJBdChpKSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHJpbmcxLmxlbmd0aCA9PT0gc3RyaW5nMi5sZW5ndGggPyAtMSA6IG1pbkxlbjtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR8RE9NRG9jdW1lbnR9IGNvbnRhaW5lciBET00gZWxlbWVudCB0aGF0IG1heSBjb250YWluXG4gKiBhIFJlYWN0IGNvbXBvbmVudFxuICogQHJldHVybiB7Pyp9IERPTSBlbGVtZW50IHRoYXQgbWF5IGhhdmUgdGhlIHJlYWN0Um9vdCBJRCwgb3IgbnVsbC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcikge1xuICBpZiAoIWNvbnRhaW5lcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRE9DX05PREVfVFlQRSkge1xuICAgIHJldHVybiBjb250YWluZXIuZG9jdW1lbnRFbGVtZW50O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnRlcm5hbEdldElEKG5vZGUpIHtcbiAgLy8gSWYgbm9kZSBpcyBzb21ldGhpbmcgbGlrZSBhIHdpbmRvdywgZG9jdW1lbnQsIG9yIHRleHQgbm9kZSwgbm9uZSBvZlxuICAvLyB3aGljaCBzdXBwb3J0IGF0dHJpYnV0ZXMgb3IgYSAuZ2V0QXR0cmlidXRlIG1ldGhvZCwgZ3JhY2VmdWxseSByZXR1cm5cbiAgLy8gdGhlIGVtcHR5IHN0cmluZywgYXMgaWYgdGhlIGF0dHJpYnV0ZSB3ZXJlIG1pc3NpbmcuXG4gIHJldHVybiBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZShBVFRSX05BTUUpIHx8ICcnO1xufVxuXG4vKipcbiAqIE1vdW50cyB0aGlzIGNvbXBvbmVudCBhbmQgaW5zZXJ0cyBpdCBpbnRvIHRoZSBET00uXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY29tcG9uZW50SW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIG1vdW50LlxuICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gbW91bnQgaW50by5cbiAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvdWxkUmV1c2VNYXJrdXAgSWYgdHJ1ZSwgZG8gbm90IGluc2VydCBtYXJrdXBcbiAqL1xuZnVuY3Rpb24gbW91bnRDb21wb25lbnRJbnRvTm9kZSh3cmFwcGVySW5zdGFuY2UsIGNvbnRhaW5lciwgdHJhbnNhY3Rpb24sIHNob3VsZFJldXNlTWFya3VwLCBjb250ZXh0KSB7XG4gIHZhciBtYXJrZXJOYW1lO1xuICBpZiAoUmVhY3RGZWF0dXJlRmxhZ3MubG9nVG9wTGV2ZWxSZW5kZXJzKSB7XG4gICAgdmFyIHdyYXBwZWRFbGVtZW50ID0gd3JhcHBlckluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5wcm9wcy5jaGlsZDtcbiAgICB2YXIgdHlwZSA9IHdyYXBwZWRFbGVtZW50LnR5cGU7XG4gICAgbWFya2VyTmFtZSA9ICdSZWFjdCBtb3VudDogJyArICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgPyB0eXBlIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUpO1xuICAgIGNvbnNvbGUudGltZShtYXJrZXJOYW1lKTtcbiAgfVxuXG4gIHZhciBtYXJrdXAgPSBSZWFjdFJlY29uY2lsZXIubW91bnRDb21wb25lbnQod3JhcHBlckluc3RhbmNlLCB0cmFuc2FjdGlvbiwgbnVsbCwgUmVhY3RET01Db250YWluZXJJbmZvKHdyYXBwZXJJbnN0YW5jZSwgY29udGFpbmVyKSwgY29udGV4dCwgMCAvKiBwYXJlbnREZWJ1Z0lEICovXG4gICk7XG5cbiAgaWYgKG1hcmtlck5hbWUpIHtcbiAgICBjb25zb2xlLnRpbWVFbmQobWFya2VyTmFtZSk7XG4gIH1cblxuICB3cmFwcGVySW5zdGFuY2UuX3JlbmRlcmVkQ29tcG9uZW50Ll90b3BMZXZlbFdyYXBwZXIgPSB3cmFwcGVySW5zdGFuY2U7XG4gIFJlYWN0TW91bnQuX21vdW50SW1hZ2VJbnRvTm9kZShtYXJrdXAsIGNvbnRhaW5lciwgd3JhcHBlckluc3RhbmNlLCBzaG91bGRSZXVzZU1hcmt1cCwgdHJhbnNhY3Rpb24pO1xufVxuXG4vKipcbiAqIEJhdGNoZWQgbW91bnQuXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY29tcG9uZW50SW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIG1vdW50LlxuICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gbW91bnQgaW50by5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvdWxkUmV1c2VNYXJrdXAgSWYgdHJ1ZSwgZG8gbm90IGluc2VydCBtYXJrdXBcbiAqL1xuZnVuY3Rpb24gYmF0Y2hlZE1vdW50Q29tcG9uZW50SW50b05vZGUoY29tcG9uZW50SW5zdGFuY2UsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpIHtcbiAgdmFyIHRyYW5zYWN0aW9uID0gUmVhY3RVcGRhdGVzLlJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24uZ2V0UG9vbGVkKFxuICAvKiB1c2VDcmVhdGVFbGVtZW50ICovXG4gICFzaG91bGRSZXVzZU1hcmt1cCAmJiBSZWFjdERPTUZlYXR1cmVGbGFncy51c2VDcmVhdGVFbGVtZW50KTtcbiAgdHJhbnNhY3Rpb24ucGVyZm9ybShtb3VudENvbXBvbmVudEludG9Ob2RlLCBudWxsLCBjb21wb25lbnRJbnN0YW5jZSwgY29udGFpbmVyLCB0cmFuc2FjdGlvbiwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpO1xuICBSZWFjdFVwZGF0ZXMuUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5yZWxlYXNlKHRyYW5zYWN0aW9uKTtcbn1cblxuLyoqXG4gKiBVbm1vdW50cyBhIGNvbXBvbmVudCBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBET00uXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gaW5zdGFuY2UgUmVhY3QgY29tcG9uZW50IGluc3RhbmNlLlxuICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gdW5tb3VudCBmcm9tLlxuICogQGZpbmFsXG4gKiBAaW50ZXJuYWxcbiAqIEBzZWUge1JlYWN0TW91bnQudW5tb3VudENvbXBvbmVudEF0Tm9kZX1cbiAqL1xuZnVuY3Rpb24gdW5tb3VudENvbXBvbmVudEZyb21Ob2RlKGluc3RhbmNlLCBjb250YWluZXIsIHNhZmVseSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkJlZ2luRmx1c2goKTtcbiAgfVxuICBSZWFjdFJlY29uY2lsZXIudW5tb3VudENvbXBvbmVudChpbnN0YW5jZSwgc2FmZWx5KTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25FbmRGbHVzaCgpO1xuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRE9DX05PREVfVFlQRSkge1xuICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5kb2N1bWVudEVsZW1lbnQ7XG4gIH1cblxuICAvLyBodHRwOi8vanNwZXJmLmNvbS9lbXB0eWluZy1hLW5vZGVcbiAgd2hpbGUgKGNvbnRhaW5lci5sYXN0Q2hpbGQpIHtcbiAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoY29udGFpbmVyLmxhc3RDaGlsZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUcnVlIGlmIHRoZSBzdXBwbGllZCBET00gbm9kZSBoYXMgYSBkaXJlY3QgUmVhY3QtcmVuZGVyZWQgY2hpbGQgdGhhdCBpc1xuICogbm90IGEgUmVhY3Qgcm9vdCBlbGVtZW50LiBVc2VmdWwgZm9yIHdhcm5pbmcgaW4gYHJlbmRlcmAsXG4gKiBgdW5tb3VudENvbXBvbmVudEF0Tm9kZWAsIGV0Yy5cbiAqXG4gKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlIFRoZSBjYW5kaWRhdGUgRE9NIG5vZGUuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBET00gZWxlbWVudCBjb250YWlucyBhIGRpcmVjdCBjaGlsZCB0aGF0IHdhc1xuICogcmVuZGVyZWQgYnkgUmVhY3QgYnV0IGlzIG5vdCBhIHJvb3QgZWxlbWVudC5cbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBoYXNOb25Sb290UmVhY3RDaGlsZChjb250YWluZXIpIHtcbiAgdmFyIHJvb3RFbCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICBpZiAocm9vdEVsKSB7XG4gICAgdmFyIGluc3QgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpO1xuICAgIHJldHVybiAhIShpbnN0ICYmIGluc3QuX2hvc3RQYXJlbnQpO1xuICB9XG59XG5cbi8qKlxuICogVHJ1ZSBpZiB0aGUgc3VwcGxpZWQgRE9NIG5vZGUgaXMgYSBSZWFjdCBET00gZWxlbWVudCBhbmRcbiAqIGl0IGhhcyBiZWVuIHJlbmRlcmVkIGJ5IGFub3RoZXIgY29weSBvZiBSZWFjdC5cbiAqXG4gKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlIFRoZSBjYW5kaWRhdGUgRE9NIG5vZGUuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBET00gaGFzIGJlZW4gcmVuZGVyZWQgYnkgYW5vdGhlciBjb3B5IG9mIFJlYWN0XG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gbm9kZUlzUmVuZGVyZWRCeU90aGVySW5zdGFuY2UoY29udGFpbmVyKSB7XG4gIHZhciByb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgcmV0dXJuICEhKHJvb3RFbCAmJiBpc1JlYWN0Tm9kZShyb290RWwpICYmICFSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpKTtcbn1cblxuLyoqXG4gKiBUcnVlIGlmIHRoZSBzdXBwbGllZCBET00gbm9kZSBpcyBhIHZhbGlkIG5vZGUgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlIFRoZSBjYW5kaWRhdGUgRE9NIG5vZGUuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBET00gaXMgYSB2YWxpZCBET00gbm9kZS5cbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBpc1ZhbGlkQ29udGFpbmVyKG5vZGUpIHtcbiAgcmV0dXJuICEhKG5vZGUgJiYgKG5vZGUubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERV9UWVBFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ19OT0RFX1RZUEUgfHwgbm9kZS5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfRlJBR01FTlRfTk9ERV9UWVBFKSk7XG59XG5cbi8qKlxuICogVHJ1ZSBpZiB0aGUgc3VwcGxpZWQgRE9NIG5vZGUgaXMgYSB2YWxpZCBSZWFjdCBub2RlIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHs/RE9NRWxlbWVudH0gbm9kZSBUaGUgY2FuZGlkYXRlIERPTSBub2RlLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgRE9NIGlzIGEgdmFsaWQgUmVhY3QgRE9NIG5vZGUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gaXNSZWFjdE5vZGUobm9kZSkge1xuICByZXR1cm4gaXNWYWxpZENvbnRhaW5lcihub2RlKSAmJiAobm9kZS5oYXNBdHRyaWJ1dGUoUk9PVF9BVFRSX05BTUUpIHx8IG5vZGUuaGFzQXR0cmlidXRlKEFUVFJfTkFNRSkpO1xufVxuXG5mdW5jdGlvbiBnZXRIb3N0Um9vdEluc3RhbmNlSW5Db250YWluZXIoY29udGFpbmVyKSB7XG4gIHZhciByb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgdmFyIHByZXZIb3N0SW5zdGFuY2UgPSByb290RWwgJiYgUmVhY3RET01Db21wb25lbnRUcmVlLmdldEluc3RhbmNlRnJvbU5vZGUocm9vdEVsKTtcbiAgcmV0dXJuIHByZXZIb3N0SW5zdGFuY2UgJiYgIXByZXZIb3N0SW5zdGFuY2UuX2hvc3RQYXJlbnQgPyBwcmV2SG9zdEluc3RhbmNlIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0VG9wTGV2ZWxXcmFwcGVySW5Db250YWluZXIoY29udGFpbmVyKSB7XG4gIHZhciByb290ID0gZ2V0SG9zdFJvb3RJbnN0YW5jZUluQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gIHJldHVybiByb290ID8gcm9vdC5faG9zdENvbnRhaW5lckluZm8uX3RvcExldmVsV3JhcHBlciA6IG51bGw7XG59XG5cbi8qKlxuICogVGVtcG9yYXJ5ICg/KSBoYWNrIHNvIHRoYXQgd2UgY2FuIHN0b3JlIGFsbCB0b3AtbGV2ZWwgcGVuZGluZyB1cGRhdGVzIG9uXG4gKiBjb21wb3NpdGVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IGRpZmZlcmVudCB0eXBlcyBvZiBjb21wb25lbnRzXG4gKiBoZXJlLlxuICovXG52YXIgdG9wTGV2ZWxSb290Q291bnRlciA9IDE7XG52YXIgVG9wTGV2ZWxXcmFwcGVyID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLnJvb3RJRCA9IHRvcExldmVsUm9vdENvdW50ZXIrKztcbn07XG5Ub3BMZXZlbFdyYXBwZXIucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIFRvcExldmVsV3JhcHBlci5kaXNwbGF5TmFtZSA9ICdUb3BMZXZlbFdyYXBwZXInO1xufVxuVG9wTGV2ZWxXcmFwcGVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnByb3BzLmNoaWxkO1xufTtcblRvcExldmVsV3JhcHBlci5pc1JlYWN0VG9wTGV2ZWxXcmFwcGVyID0gdHJ1ZTtcblxuLyoqXG4gKiBNb3VudGluZyBpcyB0aGUgcHJvY2VzcyBvZiBpbml0aWFsaXppbmcgYSBSZWFjdCBjb21wb25lbnQgYnkgY3JlYXRpbmcgaXRzXG4gKiByZXByZXNlbnRhdGl2ZSBET00gZWxlbWVudHMgYW5kIGluc2VydGluZyB0aGVtIGludG8gYSBzdXBwbGllZCBgY29udGFpbmVyYC5cbiAqIEFueSBwcmlvciBjb250ZW50IGluc2lkZSBgY29udGFpbmVyYCBpcyBkZXN0cm95ZWQgaW4gdGhlIHByb2Nlc3MuXG4gKlxuICogICBSZWFjdE1vdW50LnJlbmRlcihcbiAqICAgICBjb21wb25lbnQsXG4gKiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpXG4gKiAgICk7XG4gKlxuICogICA8ZGl2IGlkPVwiY29udGFpbmVyXCI+ICAgICAgICAgICAgICAgICAgIDwtLSBTdXBwbGllZCBgY29udGFpbmVyYC5cbiAqICAgICA8ZGl2IGRhdGEtcmVhY3RpZD1cIi4zXCI+ICAgICAgICAgICAgICA8LS0gUmVuZGVyZWQgcmVhY3RSb290IG9mIFJlYWN0XG4gKiAgICAgICAvLyAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuXG4gKiAgICAgPC9kaXY+XG4gKiAgIDwvZGl2PlxuICpcbiAqIEluc2lkZSBvZiBgY29udGFpbmVyYCwgdGhlIGZpcnN0IGVsZW1lbnQgcmVuZGVyZWQgaXMgdGhlIFwicmVhY3RSb290XCIuXG4gKi9cbnZhciBSZWFjdE1vdW50ID0ge1xuICBUb3BMZXZlbFdyYXBwZXI6IFRvcExldmVsV3JhcHBlcixcblxuICAvKipcbiAgICogVXNlZCBieSBkZXZ0b29scy4gVGhlIGtleXMgYXJlIG5vdCBpbXBvcnRhbnQuXG4gICAqL1xuICBfaW5zdGFuY2VzQnlSZWFjdFJvb3RJRDogaW5zdGFuY2VzQnlSZWFjdFJvb3RJRCxcblxuICAvKipcbiAgICogVGhpcyBpcyBhIGhvb2sgcHJvdmlkZWQgdG8gc3VwcG9ydCByZW5kZXJpbmcgUmVhY3QgY29tcG9uZW50cyB3aGlsZVxuICAgKiBlbnN1cmluZyB0aGF0IHRoZSBhcHBhcmVudCBzY3JvbGwgcG9zaXRpb24gb2YgaXRzIGBjb250YWluZXJgIGRvZXMgbm90XG4gICAqIGNoYW5nZS5cbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgVGhlIGBjb250YWluZXJgIGJlaW5nIHJlbmRlcmVkIGludG8uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IHJlbmRlckNhbGxiYWNrIFRoaXMgbXVzdCBiZSBjYWxsZWQgb25jZSB0byBkbyB0aGUgcmVuZGVyLlxuICAgKi9cbiAgc2Nyb2xsTW9uaXRvcjogZnVuY3Rpb24gKGNvbnRhaW5lciwgcmVuZGVyQ2FsbGJhY2spIHtcbiAgICByZW5kZXJDYWxsYmFjaygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUYWtlIGEgY29tcG9uZW50IHRoYXQncyBhbHJlYWR5IG1vdW50ZWQgaW50byB0aGUgRE9NIGFuZCByZXBsYWNlIGl0cyBwcm9wc1xuICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBwcmV2Q29tcG9uZW50IGNvbXBvbmVudCBpbnN0YW5jZSBhbHJlYWR5IGluIHRoZSBET01cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRFbGVtZW50IGNvbXBvbmVudCBpbnN0YW5jZSB0byByZW5kZXJcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgY29udGFpbmVyIHRvIHJlbmRlciBpbnRvXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbiB0cmlnZ2VyZWQgb24gY29tcGxldGlvblxuICAgKi9cbiAgX3VwZGF0ZVJvb3RDb21wb25lbnQ6IGZ1bmN0aW9uIChwcmV2Q29tcG9uZW50LCBuZXh0RWxlbWVudCwgbmV4dENvbnRleHQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcbiAgICBSZWFjdE1vdW50LnNjcm9sbE1vbml0b3IoY29udGFpbmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVFbGVtZW50SW50ZXJuYWwocHJldkNvbXBvbmVudCwgbmV4dEVsZW1lbnQsIG5leHRDb250ZXh0KTtcbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVDYWxsYmFja0ludGVybmFsKHByZXZDb21wb25lbnQsIGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcmV2Q29tcG9uZW50O1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBuZXcgY29tcG9uZW50IGludG8gdGhlIERPTS4gSG9va2VkIGJ5IGhvb2tzIVxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnQgZWxlbWVudCB0byByZW5kZXJcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgY29udGFpbmVyIHRvIHJlbmRlciBpbnRvXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvdWxkUmV1c2VNYXJrdXAgaWYgd2Ugc2hvdWxkIHNraXAgdGhlIG1hcmt1cCBpbnNlcnRpb25cbiAgICogQHJldHVybiB7UmVhY3RDb21wb25lbnR9IG5leHRDb21wb25lbnRcbiAgICovXG4gIF9yZW5kZXJOZXdSb290Q29tcG9uZW50OiBmdW5jdGlvbiAobmV4dEVsZW1lbnQsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpIHtcbiAgICAvLyBWYXJpb3VzIHBhcnRzIG9mIG91ciBjb2RlIChzdWNoIGFzIFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50J3NcbiAgICAvLyBfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50KSBhc3N1bWUgdGhhdCBjYWxscyB0byByZW5kZXIgYXJlbid0IG5lc3RlZDtcbiAgICAvLyB2ZXJpZnkgdGhhdCB0aGF0J3MgdGhlIGNhc2UuXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAnX3JlbmRlck5ld1Jvb3RDb21wb25lbnQoKTogUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiAnICsgJ29mIHByb3BzIGFuZCBzdGF0ZTsgdHJpZ2dlcmluZyBuZXN0ZWQgY29tcG9uZW50IHVwZGF0ZXMgZnJvbSAnICsgJ3JlbmRlciBpcyBub3QgYWxsb3dlZC4gSWYgbmVjZXNzYXJ5LCB0cmlnZ2VyIG5lc3RlZCB1cGRhdGVzIGluICcgKyAnY29tcG9uZW50RGlkVXBkYXRlLiBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiAlcy4nLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogdm9pZCAwO1xuXG4gICAgIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdfcmVnaXN0ZXJDb21wb25lbnQoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKSA6IF9wcm9kSW52YXJpYW50KCczNycpIDogdm9pZCAwO1xuXG4gICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLmVuc3VyZVNjcm9sbFZhbHVlTW9uaXRvcmluZygpO1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQobmV4dEVsZW1lbnQsIGZhbHNlKTtcblxuICAgIC8vIFRoZSBpbml0aWFsIHJlbmRlciBpcyBzeW5jaHJvbm91cyBidXQgYW55IHVwZGF0ZXMgdGhhdCBoYXBwZW4gZHVyaW5nXG4gICAgLy8gcmVuZGVyaW5nLCBpbiBjb21wb25lbnRXaWxsTW91bnQgb3IgY29tcG9uZW50RGlkTW91bnQsIHdpbGwgYmUgYmF0Y2hlZFxuICAgIC8vIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBiYXRjaGluZyBzdHJhdGVneS5cblxuICAgIFJlYWN0VXBkYXRlcy5iYXRjaGVkVXBkYXRlcyhiYXRjaGVkTW91bnRDb21wb25lbnRJbnRvTm9kZSwgY29tcG9uZW50SW5zdGFuY2UsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpO1xuXG4gICAgdmFyIHdyYXBwZXJJRCA9IGNvbXBvbmVudEluc3RhbmNlLl9pbnN0YW5jZS5yb290SUQ7XG4gICAgaW5zdGFuY2VzQnlSZWFjdFJvb3RJRFt3cmFwcGVySURdID0gY29tcG9uZW50SW5zdGFuY2U7XG5cbiAgICByZXR1cm4gY29tcG9uZW50SW5zdGFuY2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBSZWFjdCBjb21wb25lbnQgaW50byB0aGUgRE9NIGluIHRoZSBzdXBwbGllZCBgY29udGFpbmVyYC5cbiAgICpcbiAgICogSWYgdGhlIFJlYWN0IGNvbXBvbmVudCB3YXMgcHJldmlvdXNseSByZW5kZXJlZCBpbnRvIGBjb250YWluZXJgLCB0aGlzIHdpbGxcbiAgICogcGVyZm9ybSBhbiB1cGRhdGUgb24gaXQgYW5kIG9ubHkgbXV0YXRlIHRoZSBET00gYXMgbmVjZXNzYXJ5IHRvIHJlZmxlY3QgdGhlXG4gICAqIGxhdGVzdCBSZWFjdCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IHBhcmVudENvbXBvbmVudCBUaGUgY29uY2VwdHVhbCBwYXJlbnQgb2YgdGhpcyByZW5kZXIgdHJlZS5cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRFbGVtZW50IENvbXBvbmVudCBlbGVtZW50IHRvIHJlbmRlci5cbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gcmVuZGVyIGludG8uXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbiB0cmlnZ2VyZWQgb24gY29tcGxldGlvblxuICAgKiBAcmV0dXJuIHtSZWFjdENvbXBvbmVudH0gQ29tcG9uZW50IGluc3RhbmNlIHJlbmRlcmVkIGluIGBjb250YWluZXJgLlxuICAgKi9cbiAgcmVuZGVyU3VidHJlZUludG9Db250YWluZXI6IGZ1bmN0aW9uIChwYXJlbnRDb21wb25lbnQsIG5leHRFbGVtZW50LCBjb250YWluZXIsIGNhbGxiYWNrKSB7XG4gICAgIShwYXJlbnRDb21wb25lbnQgIT0gbnVsbCAmJiBSZWFjdEluc3RhbmNlTWFwLmhhcyhwYXJlbnRDb21wb25lbnQpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdwYXJlbnRDb21wb25lbnQgbXVzdCBiZSBhIHZhbGlkIFJlYWN0IENvbXBvbmVudCcpIDogX3Byb2RJbnZhcmlhbnQoJzM4JykgOiB2b2lkIDA7XG4gICAgcmV0dXJuIFJlYWN0TW91bnQuX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKHBhcmVudENvbXBvbmVudCwgbmV4dEVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spO1xuICB9LFxuXG4gIF9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcjogZnVuY3Rpb24gKHBhcmVudENvbXBvbmVudCwgbmV4dEVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcbiAgICBSZWFjdFVwZGF0ZVF1ZXVlLnZhbGlkYXRlQ2FsbGJhY2soY2FsbGJhY2ssICdSZWFjdERPTS5yZW5kZXInKTtcbiAgICAhUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV4dEVsZW1lbnQpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0RE9NLnJlbmRlcigpOiBJbnZhbGlkIGNvbXBvbmVudCBlbGVtZW50LiVzJywgdHlwZW9mIG5leHRFbGVtZW50ID09PSAnc3RyaW5nJyA/IFwiIEluc3RlYWQgb2YgcGFzc2luZyBhIHN0cmluZyBsaWtlICdkaXYnLCBwYXNzIFwiICsgXCJSZWFjdC5jcmVhdGVFbGVtZW50KCdkaXYnKSBvciA8ZGl2IC8+LlwiIDogdHlwZW9mIG5leHRFbGVtZW50ID09PSAnZnVuY3Rpb24nID8gJyBJbnN0ZWFkIG9mIHBhc3NpbmcgYSBjbGFzcyBsaWtlIEZvbywgcGFzcyAnICsgJ1JlYWN0LmNyZWF0ZUVsZW1lbnQoRm9vKSBvciA8Rm9vIC8+LicgOiAvLyBDaGVjayBpZiBpdCBxdWFja3MgbGlrZSBhbiBlbGVtZW50XG4gICAgbmV4dEVsZW1lbnQgIT0gbnVsbCAmJiBuZXh0RWxlbWVudC5wcm9wcyAhPT0gdW5kZWZpbmVkID8gJyBUaGlzIG1heSBiZSBjYXVzZWQgYnkgdW5pbnRlbnRpb25hbGx5IGxvYWRpbmcgdHdvIGluZGVwZW5kZW50ICcgKyAnY29waWVzIG9mIFJlYWN0LicgOiAnJykgOiBfcHJvZEludmFyaWFudCgnMzknLCB0eXBlb2YgbmV4dEVsZW1lbnQgPT09ICdzdHJpbmcnID8gXCIgSW5zdGVhZCBvZiBwYXNzaW5nIGEgc3RyaW5nIGxpa2UgJ2RpdicsIHBhc3MgXCIgKyBcIlJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIG9yIDxkaXYgLz4uXCIgOiB0eXBlb2YgbmV4dEVsZW1lbnQgPT09ICdmdW5jdGlvbicgPyAnIEluc3RlYWQgb2YgcGFzc2luZyBhIGNsYXNzIGxpa2UgRm9vLCBwYXNzICcgKyAnUmVhY3QuY3JlYXRlRWxlbWVudChGb28pIG9yIDxGb28gLz4uJyA6IG5leHRFbGVtZW50ICE9IG51bGwgJiYgbmV4dEVsZW1lbnQucHJvcHMgIT09IHVuZGVmaW5lZCA/ICcgVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IHVuaW50ZW50aW9uYWxseSBsb2FkaW5nIHR3byBpbmRlcGVuZGVudCAnICsgJ2NvcGllcyBvZiBSZWFjdC4nIDogJycpIDogdm9pZCAwO1xuXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWNvbnRhaW5lciB8fCAhY29udGFpbmVyLnRhZ05hbWUgfHwgY29udGFpbmVyLnRhZ05hbWUudG9VcHBlckNhc2UoKSAhPT0gJ0JPRFknLCAncmVuZGVyKCk6IFJlbmRlcmluZyBjb21wb25lbnRzIGRpcmVjdGx5IGludG8gZG9jdW1lbnQuYm9keSBpcyAnICsgJ2Rpc2NvdXJhZ2VkLCBzaW5jZSBpdHMgY2hpbGRyZW4gYXJlIG9mdGVuIG1hbmlwdWxhdGVkIGJ5IHRoaXJkLXBhcnR5ICcgKyAnc2NyaXB0cyBhbmQgYnJvd3NlciBleHRlbnNpb25zLiBUaGlzIG1heSBsZWFkIHRvIHN1YnRsZSAnICsgJ3JlY29uY2lsaWF0aW9uIGlzc3Vlcy4gVHJ5IHJlbmRlcmluZyBpbnRvIGEgY29udGFpbmVyIGVsZW1lbnQgY3JlYXRlZCAnICsgJ2ZvciB5b3VyIGFwcC4nKSA6IHZvaWQgMDtcblxuICAgIHZhciBuZXh0V3JhcHBlZEVsZW1lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFRvcExldmVsV3JhcHBlciwge1xuICAgICAgY2hpbGQ6IG5leHRFbGVtZW50XG4gICAgfSk7XG5cbiAgICB2YXIgbmV4dENvbnRleHQ7XG4gICAgaWYgKHBhcmVudENvbXBvbmVudCkge1xuICAgICAgdmFyIHBhcmVudEluc3QgPSBSZWFjdEluc3RhbmNlTWFwLmdldChwYXJlbnRDb21wb25lbnQpO1xuICAgICAgbmV4dENvbnRleHQgPSBwYXJlbnRJbnN0Ll9wcm9jZXNzQ2hpbGRDb250ZXh0KHBhcmVudEluc3QuX2NvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0Q29udGV4dCA9IGVtcHR5T2JqZWN0O1xuICAgIH1cblxuICAgIHZhciBwcmV2Q29tcG9uZW50ID0gZ2V0VG9wTGV2ZWxXcmFwcGVySW5Db250YWluZXIoY29udGFpbmVyKTtcblxuICAgIGlmIChwcmV2Q29tcG9uZW50KSB7XG4gICAgICB2YXIgcHJldldyYXBwZWRFbGVtZW50ID0gcHJldkNvbXBvbmVudC5fY3VycmVudEVsZW1lbnQ7XG4gICAgICB2YXIgcHJldkVsZW1lbnQgPSBwcmV2V3JhcHBlZEVsZW1lbnQucHJvcHMuY2hpbGQ7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQocHJldkVsZW1lbnQsIG5leHRFbGVtZW50KSkge1xuICAgICAgICB2YXIgcHVibGljSW5zdCA9IHByZXZDb21wb25lbnQuX3JlbmRlcmVkQ29tcG9uZW50LmdldFB1YmxpY0luc3RhbmNlKCk7XG4gICAgICAgIHZhciB1cGRhdGVkQ2FsbGJhY2sgPSBjYWxsYmFjayAmJiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2suY2FsbChwdWJsaWNJbnN0KTtcbiAgICAgICAgfTtcbiAgICAgICAgUmVhY3RNb3VudC5fdXBkYXRlUm9vdENvbXBvbmVudChwcmV2Q29tcG9uZW50LCBuZXh0V3JhcHBlZEVsZW1lbnQsIG5leHRDb250ZXh0LCBjb250YWluZXIsIHVwZGF0ZWRDYWxsYmFjayk7XG4gICAgICAgIHJldHVybiBwdWJsaWNJbnN0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUmVhY3RNb3VudC51bm1vdW50Q29tcG9uZW50QXROb2RlKGNvbnRhaW5lcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlYWN0Um9vdEVsZW1lbnQgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICB2YXIgY29udGFpbmVySGFzUmVhY3RNYXJrdXAgPSByZWFjdFJvb3RFbGVtZW50ICYmICEhaW50ZXJuYWxHZXRJRChyZWFjdFJvb3RFbGVtZW50KTtcbiAgICB2YXIgY29udGFpbmVySGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSBoYXNOb25Sb290UmVhY3RDaGlsZChjb250YWluZXIpO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFjb250YWluZXJIYXNOb25Sb290UmVhY3RDaGlsZCwgJ3JlbmRlciguLi4pOiBSZXBsYWNpbmcgUmVhY3QtcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBhIG5ldyByb290ICcgKyAnY29tcG9uZW50LiBJZiB5b3UgaW50ZW5kZWQgdG8gdXBkYXRlIHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsICcgKyAneW91IHNob3VsZCBpbnN0ZWFkIGhhdmUgdGhlIGV4aXN0aW5nIGNoaWxkcmVuIHVwZGF0ZSB0aGVpciBzdGF0ZSAnICsgJ2FuZCByZW5kZXIgdGhlIG5ldyBjb21wb25lbnRzIGluc3RlYWQgb2YgY2FsbGluZyBSZWFjdERPTS5yZW5kZXIuJykgOiB2b2lkIDA7XG5cbiAgICAgIGlmICghY29udGFpbmVySGFzUmVhY3RNYXJrdXAgfHwgcmVhY3RSb290RWxlbWVudC5uZXh0U2libGluZykge1xuICAgICAgICB2YXIgcm9vdEVsZW1lbnRTaWJsaW5nID0gcmVhY3RSb290RWxlbWVudDtcbiAgICAgICAgd2hpbGUgKHJvb3RFbGVtZW50U2libGluZykge1xuICAgICAgICAgIGlmIChpbnRlcm5hbEdldElEKHJvb3RFbGVtZW50U2libGluZykpIHtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAncmVuZGVyKCk6IFRhcmdldCBub2RlIGhhcyBtYXJrdXAgcmVuZGVyZWQgYnkgUmVhY3QsIGJ1dCB0aGVyZSAnICsgJ2FyZSB1bnJlbGF0ZWQgbm9kZXMgYXMgd2VsbC4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IGNhdXNlZCBieSAnICsgJ3doaXRlLXNwYWNlIGluc2VydGVkIGFyb3VuZCBzZXJ2ZXItcmVuZGVyZWQgbWFya3VwLicpIDogdm9pZCAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJvb3RFbGVtZW50U2libGluZyA9IHJvb3RFbGVtZW50U2libGluZy5uZXh0U2libGluZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzaG91bGRSZXVzZU1hcmt1cCA9IGNvbnRhaW5lckhhc1JlYWN0TWFya3VwICYmICFwcmV2Q29tcG9uZW50ICYmICFjb250YWluZXJIYXNOb25Sb290UmVhY3RDaGlsZDtcbiAgICB2YXIgY29tcG9uZW50ID0gUmVhY3RNb3VudC5fcmVuZGVyTmV3Um9vdENvbXBvbmVudChuZXh0V3JhcHBlZEVsZW1lbnQsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIG5leHRDb250ZXh0KS5fcmVuZGVyZWRDb21wb25lbnQuZ2V0UHVibGljSW5zdGFuY2UoKTtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrLmNhbGwoY29tcG9uZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgfSxcblxuICAvKipcbiAgICogUmVuZGVycyBhIFJlYWN0IGNvbXBvbmVudCBpbnRvIHRoZSBET00gaW4gdGhlIHN1cHBsaWVkIGBjb250YWluZXJgLlxuICAgKiBTZWUgaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90b3AtbGV2ZWwtYXBpLmh0bWwjcmVhY3Rkb20ucmVuZGVyXG4gICAqXG4gICAqIElmIHRoZSBSZWFjdCBjb21wb25lbnQgd2FzIHByZXZpb3VzbHkgcmVuZGVyZWQgaW50byBgY29udGFpbmVyYCwgdGhpcyB3aWxsXG4gICAqIHBlcmZvcm0gYW4gdXBkYXRlIG9uIGl0IGFuZCBvbmx5IG11dGF0ZSB0aGUgRE9NIGFzIG5lY2Vzc2FyeSB0byByZWZsZWN0IHRoZVxuICAgKiBsYXRlc3QgUmVhY3QgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnQgQ29tcG9uZW50IGVsZW1lbnQgdG8gcmVuZGVyLlxuICAgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGNvbnRhaW5lciBET00gZWxlbWVudCB0byByZW5kZXIgaW50by5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIGZ1bmN0aW9uIHRyaWdnZXJlZCBvbiBjb21wbGV0aW9uXG4gICAqIEByZXR1cm4ge1JlYWN0Q29tcG9uZW50fSBDb21wb25lbnQgaW5zdGFuY2UgcmVuZGVyZWQgaW4gYGNvbnRhaW5lcmAuXG4gICAqL1xuICByZW5kZXI6IGZ1bmN0aW9uIChuZXh0RWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICAgIHJldHVybiBSZWFjdE1vdW50Ll9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihudWxsLCBuZXh0RWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVubW91bnRzIGFuZCBkZXN0cm95cyB0aGUgUmVhY3QgY29tcG9uZW50IHJlbmRlcmVkIGluIHRoZSBgY29udGFpbmVyYC5cbiAgICogU2VlIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdG9wLWxldmVsLWFwaS5odG1sI3JlYWN0ZG9tLnVubW91bnRjb21wb25lbnRhdG5vZGVcbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgY29udGFpbmluZyBhIFJlYWN0IGNvbXBvbmVudC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBhIGNvbXBvbmVudCB3YXMgZm91bmQgaW4gYW5kIHVubW91bnRlZCBmcm9tXG4gICAqICAgICAgICAgICAgICAgICAgIGBjb250YWluZXJgXG4gICAqL1xuICB1bm1vdW50Q29tcG9uZW50QXROb2RlOiBmdW5jdGlvbiAoY29udGFpbmVyKSB7XG4gICAgLy8gVmFyaW91cyBwYXJ0cyBvZiBvdXIgY29kZSAoc3VjaCBhcyBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCdzXG4gICAgLy8gX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCkgYXNzdW1lIHRoYXQgY2FsbHMgdG8gcmVuZGVyIGFyZW4ndCBuZXN0ZWQ7XG4gICAgLy8gdmVyaWZ5IHRoYXQgdGhhdCdzIHRoZSBjYXNlLiAoU3RyaWN0bHkgc3BlYWtpbmcsIHVubW91bnRpbmcgd29uJ3QgY2F1c2UgYVxuICAgIC8vIHJlbmRlciBidXQgd2Ugc3RpbGwgZG9uJ3QgZXhwZWN0IHRvIGJlIGluIGEgcmVuZGVyIGNhbGwgaGVyZS4pXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAndW5tb3VudENvbXBvbmVudEF0Tm9kZSgpOiBSZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uICcgKyAnb2YgcHJvcHMgYW5kIHN0YXRlOyB0cmlnZ2VyaW5nIG5lc3RlZCBjb21wb25lbnQgdXBkYXRlcyBmcm9tIHJlbmRlciAnICsgJ2lzIG5vdCBhbGxvd2VkLiBJZiBuZWNlc3NhcnksIHRyaWdnZXIgbmVzdGVkIHVwZGF0ZXMgaW4gJyArICdjb21wb25lbnREaWRVcGRhdGUuIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLicsIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB2b2lkIDA7XG5cbiAgICAhaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3VubW91bnRDb21wb25lbnRBdE5vZGUoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKSA6IF9wcm9kSW52YXJpYW50KCc0MCcpIDogdm9pZCAwO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFub2RlSXNSZW5kZXJlZEJ5T3RoZXJJbnN0YW5jZShjb250YWluZXIpLCBcInVubW91bnRDb21wb25lbnRBdE5vZGUoKTogVGhlIG5vZGUgeW91J3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCBcIiArICd3YXMgcmVuZGVyZWQgYnkgYW5vdGhlciBjb3B5IG9mIFJlYWN0LicpIDogdm9pZCAwO1xuICAgIH1cblxuICAgIHZhciBwcmV2Q29tcG9uZW50ID0gZ2V0VG9wTGV2ZWxXcmFwcGVySW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICBpZiAoIXByZXZDb21wb25lbnQpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBub2RlIGJlaW5nIHVubW91bnRlZCB3YXMgcmVuZGVyZWQgYnkgUmVhY3QsIGJ1dCBpc24ndCBhXG4gICAgICAvLyByb290IG5vZGUuXG4gICAgICB2YXIgY29udGFpbmVySGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSBoYXNOb25Sb290UmVhY3RDaGlsZChjb250YWluZXIpO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgY29udGFpbmVyIGl0c2VsZiBpcyBhIFJlYWN0IHJvb3Qgbm9kZS5cbiAgICAgIHZhciBpc0NvbnRhaW5lclJlYWN0Um9vdCA9IGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gMSAmJiBjb250YWluZXIuaGFzQXR0cmlidXRlKFJPT1RfQVRUUl9OQU1FKTtcblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWNvbnRhaW5lckhhc05vblJvb3RSZWFjdENoaWxkLCBcInVubW91bnRDb21wb25lbnRBdE5vZGUoKTogVGhlIG5vZGUgeW91J3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCBcIiArICd3YXMgcmVuZGVyZWQgYnkgUmVhY3QgYW5kIGlzIG5vdCBhIHRvcC1sZXZlbCBjb250YWluZXIuICVzJywgaXNDb250YWluZXJSZWFjdFJvb3QgPyAnWW91IG1heSBoYXZlIGFjY2lkZW50YWxseSBwYXNzZWQgaW4gYSBSZWFjdCByb290IG5vZGUgaW5zdGVhZCAnICsgJ29mIGl0cyBjb250YWluZXIuJyA6ICdJbnN0ZWFkLCBoYXZlIHRoZSBwYXJlbnQgY29tcG9uZW50IHVwZGF0ZSBpdHMgc3RhdGUgYW5kICcgKyAncmVyZW5kZXIgaW4gb3JkZXIgdG8gcmVtb3ZlIHRoaXMgY29tcG9uZW50LicpIDogdm9pZCAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGRlbGV0ZSBpbnN0YW5jZXNCeVJlYWN0Um9vdElEW3ByZXZDb21wb25lbnQuX2luc3RhbmNlLnJvb3RJRF07XG4gICAgUmVhY3RVcGRhdGVzLmJhdGNoZWRVcGRhdGVzKHVubW91bnRDb21wb25lbnRGcm9tTm9kZSwgcHJldkNvbXBvbmVudCwgY29udGFpbmVyLCBmYWxzZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG5cbiAgX21vdW50SW1hZ2VJbnRvTm9kZTogZnVuY3Rpb24gKG1hcmt1cCwgY29udGFpbmVyLCBpbnN0YW5jZSwgc2hvdWxkUmV1c2VNYXJrdXAsIHRyYW5zYWN0aW9uKSB7XG4gICAgIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdtb3VudENvbXBvbmVudEludG9Ob2RlKC4uLik6IFRhcmdldCBjb250YWluZXIgaXMgbm90IHZhbGlkLicpIDogX3Byb2RJbnZhcmlhbnQoJzQxJykgOiB2b2lkIDA7XG5cbiAgICBpZiAoc2hvdWxkUmV1c2VNYXJrdXApIHtcbiAgICAgIHZhciByb290RWxlbWVudCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgICAgaWYgKFJlYWN0TWFya3VwQ2hlY2tzdW0uY2FuUmV1c2VNYXJrdXAobWFya3VwLCByb290RWxlbWVudCkpIHtcbiAgICAgICAgUmVhY3RET01Db21wb25lbnRUcmVlLnByZWNhY2hlTm9kZShpbnN0YW5jZSwgcm9vdEVsZW1lbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgY2hlY2tzdW0gPSByb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoUmVhY3RNYXJrdXBDaGVja3N1bS5DSEVDS1NVTV9BVFRSX05BTUUpO1xuICAgICAgICByb290RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoUmVhY3RNYXJrdXBDaGVja3N1bS5DSEVDS1NVTV9BVFRSX05BTUUpO1xuXG4gICAgICAgIHZhciByb290TWFya3VwID0gcm9vdEVsZW1lbnQub3V0ZXJIVE1MO1xuICAgICAgICByb290RWxlbWVudC5zZXRBdHRyaWJ1dGUoUmVhY3RNYXJrdXBDaGVja3N1bS5DSEVDS1NVTV9BVFRSX05BTUUsIGNoZWNrc3VtKTtcblxuICAgICAgICB2YXIgbm9ybWFsaXplZE1hcmt1cCA9IG1hcmt1cDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAvLyBiZWNhdXNlIHJvb3RNYXJrdXAgaXMgcmV0cmlldmVkIGZyb20gdGhlIERPTSwgdmFyaW91cyBub3JtYWxpemF0aW9uc1xuICAgICAgICAgIC8vIHdpbGwgaGF2ZSBvY2N1cnJlZCB3aGljaCB3aWxsIG5vdCBiZSBwcmVzZW50IGluIGBtYXJrdXBgLiBIZXJlLFxuICAgICAgICAgIC8vIGluc2VydCBtYXJrdXAgaW50byBhIDxkaXY+IG9yIDxpZnJhbWU+IGRlcGVuZGluZyBvbiB0aGUgY29udGFpbmVyXG4gICAgICAgICAgLy8gdHlwZSB0byBwZXJmb3JtIHRoZSBzYW1lIG5vcm1hbGl6YXRpb25zIGJlZm9yZSBjb21wYXJpbmcuXG4gICAgICAgICAgdmFyIG5vcm1hbGl6ZXI7XG4gICAgICAgICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFX1RZUEUpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIG5vcm1hbGl6ZXIuaW5uZXJIVE1MID0gbWFya3VwO1xuICAgICAgICAgICAgbm9ybWFsaXplZE1hcmt1cCA9IG5vcm1hbGl6ZXIuaW5uZXJIVE1MO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub3JtYWxpemVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5vcm1hbGl6ZXIpO1xuICAgICAgICAgICAgbm9ybWFsaXplci5jb250ZW50RG9jdW1lbnQud3JpdGUobWFya3VwKTtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRNYXJrdXAgPSBub3JtYWxpemVyLmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChub3JtYWxpemVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGlmZkluZGV4ID0gZmlyc3REaWZmZXJlbmNlSW5kZXgobm9ybWFsaXplZE1hcmt1cCwgcm9vdE1hcmt1cCk7XG4gICAgICAgIHZhciBkaWZmZXJlbmNlID0gJyAoY2xpZW50KSAnICsgbm9ybWFsaXplZE1hcmt1cC5zdWJzdHJpbmcoZGlmZkluZGV4IC0gMjAsIGRpZmZJbmRleCArIDIwKSArICdcXG4gKHNlcnZlcikgJyArIHJvb3RNYXJrdXAuc3Vic3RyaW5nKGRpZmZJbmRleCAtIDIwLCBkaWZmSW5kZXggKyAyMCk7XG5cbiAgICAgICAgIShjb250YWluZXIubm9kZVR5cGUgIT09IERPQ19OT0RFX1RZUEUpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1lvdVxcJ3JlIHRyeWluZyB0byByZW5kZXIgYSBjb21wb25lbnQgdG8gdGhlIGRvY3VtZW50IHVzaW5nIHNlcnZlciByZW5kZXJpbmcgYnV0IHRoZSBjaGVja3N1bSB3YXMgaW52YWxpZC4gVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSByZW5kZXJlZCBhIGRpZmZlcmVudCBjb21wb25lbnQgdHlwZSBvciBwcm9wcyBvbiB0aGUgY2xpZW50IGZyb20gdGhlIG9uZSBvbiB0aGUgc2VydmVyLCBvciB5b3VyIHJlbmRlcigpIG1ldGhvZHMgYXJlIGltcHVyZS4gUmVhY3QgY2Fubm90IGhhbmRsZSB0aGlzIGNhc2UgZHVlIHRvIGNyb3NzLWJyb3dzZXIgcXVpcmtzIGJ5IHJlbmRlcmluZyBhdCB0aGUgZG9jdW1lbnQgcm9vdC4gWW91IHNob3VsZCBsb29rIGZvciBlbnZpcm9ubWVudCBkZXBlbmRlbnQgY29kZSBpbiB5b3VyIGNvbXBvbmVudHMgYW5kIGVuc3VyZSB0aGUgcHJvcHMgYXJlIHRoZSBzYW1lIGNsaWVudCBhbmQgc2VydmVyIHNpZGU6XFxuJXMnLCBkaWZmZXJlbmNlKSA6IF9wcm9kSW52YXJpYW50KCc0MicsIGRpZmZlcmVuY2UpIDogdm9pZCAwO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdSZWFjdCBhdHRlbXB0ZWQgdG8gcmV1c2UgbWFya3VwIGluIGEgY29udGFpbmVyIGJ1dCB0aGUgJyArICdjaGVja3N1bSB3YXMgaW52YWxpZC4gVGhpcyBnZW5lcmFsbHkgbWVhbnMgdGhhdCB5b3UgYXJlICcgKyAndXNpbmcgc2VydmVyIHJlbmRlcmluZyBhbmQgdGhlIG1hcmt1cCBnZW5lcmF0ZWQgb24gdGhlICcgKyAnc2VydmVyIHdhcyBub3Qgd2hhdCB0aGUgY2xpZW50IHdhcyBleHBlY3RpbmcuIFJlYWN0IGluamVjdGVkICcgKyAnbmV3IG1hcmt1cCB0byBjb21wZW5zYXRlIHdoaWNoIHdvcmtzIGJ1dCB5b3UgaGF2ZSBsb3N0IG1hbnkgJyArICdvZiB0aGUgYmVuZWZpdHMgb2Ygc2VydmVyIHJlbmRlcmluZy4gSW5zdGVhZCwgZmlndXJlIG91dCAnICsgJ3doeSB0aGUgbWFya3VwIGJlaW5nIGdlbmVyYXRlZCBpcyBkaWZmZXJlbnQgb24gdGhlIGNsaWVudCAnICsgJ29yIHNlcnZlcjpcXG4lcycsIGRpZmZlcmVuY2UpIDogdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgIShjb250YWluZXIubm9kZVR5cGUgIT09IERPQ19OT0RFX1RZUEUpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1lvdVxcJ3JlIHRyeWluZyB0byByZW5kZXIgYSBjb21wb25lbnQgdG8gdGhlIGRvY3VtZW50IGJ1dCB5b3UgZGlkblxcJ3QgdXNlIHNlcnZlciByZW5kZXJpbmcuIFdlIGNhblxcJ3QgZG8gdGhpcyB3aXRob3V0IHVzaW5nIHNlcnZlciByZW5kZXJpbmcgZHVlIHRvIGNyb3NzLWJyb3dzZXIgcXVpcmtzLiBTZWUgUmVhY3RET01TZXJ2ZXIucmVuZGVyVG9TdHJpbmcoKSBmb3Igc2VydmVyIHJlbmRlcmluZy4nKSA6IF9wcm9kSW52YXJpYW50KCc0MycpIDogdm9pZCAwO1xuXG4gICAgaWYgKHRyYW5zYWN0aW9uLnVzZUNyZWF0ZUVsZW1lbnQpIHtcbiAgICAgIHdoaWxlIChjb250YWluZXIubGFzdENoaWxkKSB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjb250YWluZXIubGFzdENoaWxkKTtcbiAgICAgIH1cbiAgICAgIERPTUxhenlUcmVlLmluc2VydFRyZWVCZWZvcmUoY29udGFpbmVyLCBtYXJrdXAsIG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRJbm5lckhUTUwoY29udGFpbmVyLCBtYXJrdXApO1xuICAgICAgUmVhY3RET01Db21wb25lbnRUcmVlLnByZWNhY2hlTm9kZShpbnN0YW5jZSwgY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgaG9zdE5vZGUgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShjb250YWluZXIuZmlyc3RDaGlsZCk7XG4gICAgICBpZiAoaG9zdE5vZGUuX2RlYnVnSUQgIT09IDApIHtcbiAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uSG9zdE9wZXJhdGlvbih7XG4gICAgICAgICAgaW5zdGFuY2VJRDogaG9zdE5vZGUuX2RlYnVnSUQsXG4gICAgICAgICAgdHlwZTogJ21vdW50JyxcbiAgICAgICAgICBwYXlsb2FkOiBtYXJrdXAudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RNb3VudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0TW91bnQuanNcbi8vIG1vZHVsZSBpZCA9IDEwNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///104\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar DOMProperty = __webpack_require__(/*! ./DOMProperty */ 15);\nvar React = __webpack_require__(/*! react/lib/React */ 20);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactDOMContainerInfo = __webpack_require__(/*! ./ReactDOMContainerInfo */ 224);\nvar ReactDOMFeatureFlags = __webpack_require__(/*! ./ReactDOMFeatureFlags */ 225);\nvar ReactFeatureFlags = __webpack_require__(/*! ./ReactFeatureFlags */ 84);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactMarkupChecksum = __webpack_require__(/*! ./ReactMarkupChecksum */ 226);\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\nvar ReactUpdateQueue = __webpack_require__(/*! ./ReactUpdateQueue */ 60);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ 97);\nvar instantiateReactComponent = __webpack_require__(/*! ./instantiateReactComponent */ 95);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ 39);\nvar shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ 58);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n var minLen = Math.min(string1.length, string2.length);\n for (var i = 0; i < minLen; i++) {\n if (string1.charAt(i) !== string2.charAt(i)) {\n return i;\n }\n }\n return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n TopLevelWrapper: TopLevelWrapper,\n\n /**\n * Used by devtools. The keys are not important.\n */\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function (container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactElement} nextElement component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\n * @param {ReactElement} nextElement element to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\n\n // The initial render is synchronous but any updates that happen during\n // rendering, in componentWillMount or componentDidMount, will be batched\n // according to the current batching strategy.\n\n ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\n\n return componentInstance;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? \" Instead of passing a string like 'div', pass \" + \"React.createElement('div') or <div />.\" : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : // Check if it quacks like an element\n nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? \" Instead of passing a string like 'div', pass \" + \"React.createElement('div') or <div />.\" : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, {\n child: nextElement\n });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n var rootElementSibling = reactRootElement;\n while (rootElementSibling) {\n if (internalGetID(rootElementSibling)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;\n break;\n }\n rootElementSibling = rootElementSibling.nextSibling;\n }\n }\n }\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();\n if (callback) {\n callback.call(component);\n }\n return component;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function (nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function (container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\n // Check if the node being unmounted was rendered by React, but isn't a\n // root node.\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n // Check if the container itself is a React root node.\n var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, rootElement);\n return;\n } else {\n var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n var rootMarkup = rootElement.outerHTML;\n rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n var normalizedMarkup = markup;\n if (process.env.NODE_ENV !== 'production') {\n // because rootMarkup is retrieved from the DOM, various normalizations\n // will have occurred which will not be present in `markup`. Here,\n // insert markup into a <div> or <iframe> depending on the container\n // type to perform the same normalizations before comparing.\n var normalizer;\n if (container.nodeType === ELEMENT_NODE_TYPE) {\n normalizer = document.createElement('div');\n normalizer.innerHTML = markup;\n normalizedMarkup = normalizer.innerHTML;\n } else {\n normalizer = document.createElement('iframe');\n document.body.appendChild(normalizer);\n normalizer.contentDocument.write(markup);\n normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n document.body.removeChild(normalizer);\n }\n }\n\n var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\\n%s', difference) : _prodInvariant('42', difference) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but you didn\\'t use server rendering. We can\\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTA0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RNb3VudC5qcz8wY2MyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBET01MYXp5VHJlZSA9IHJlcXVpcmUoJy4vRE9NTGF6eVRyZWUnKTtcbnZhciBET01Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHknKTtcbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdCcpO1xudmFyIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJy4vUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyJyk7XG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSByZXF1aXJlKCdyZWFjdC9saWIvUmVhY3RDdXJyZW50T3duZXInKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0RE9NQ29udGFpbmVySW5mbyA9IHJlcXVpcmUoJy4vUmVhY3RET01Db250YWluZXJJbmZvJyk7XG52YXIgUmVhY3RET01GZWF0dXJlRmxhZ3MgPSByZXF1aXJlKCcuL1JlYWN0RE9NRmVhdHVyZUZsYWdzJyk7XG52YXIgUmVhY3RGZWF0dXJlRmxhZ3MgPSByZXF1aXJlKCcuL1JlYWN0RmVhdHVyZUZsYWdzJyk7XG52YXIgUmVhY3RJbnN0YW5jZU1hcCA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZU1hcCcpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFJlYWN0TWFya3VwQ2hlY2tzdW0gPSByZXF1aXJlKCcuL1JlYWN0TWFya3VwQ2hlY2tzdW0nKTtcbnZhciBSZWFjdFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0UmVjb25jaWxlcicpO1xudmFyIFJlYWN0VXBkYXRlUXVldWUgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlUXVldWUnKTtcbnZhciBSZWFjdFVwZGF0ZXMgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlcycpO1xuXG52YXIgZW1wdHlPYmplY3QgPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eU9iamVjdCcpO1xudmFyIGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQgPSByZXF1aXJlKCcuL2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciBzZXRJbm5lckhUTUwgPSByZXF1aXJlKCcuL3NldElubmVySFRNTCcpO1xudmFyIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBBVFRSX05BTUUgPSBET01Qcm9wZXJ0eS5JRF9BVFRSSUJVVEVfTkFNRTtcbnZhciBST09UX0FUVFJfTkFNRSA9IERPTVByb3BlcnR5LlJPT1RfQVRUUklCVVRFX05BTUU7XG5cbnZhciBFTEVNRU5UX05PREVfVFlQRSA9IDE7XG52YXIgRE9DX05PREVfVFlQRSA9IDk7XG52YXIgRE9DVU1FTlRfRlJBR01FTlRfTk9ERV9UWVBFID0gMTE7XG5cbnZhciBpbnN0YW5jZXNCeVJlYWN0Um9vdElEID0ge307XG5cbi8qKlxuICogRmluZHMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXJcbiAqIHRoYXQncyBub3QgY29tbW9uIGJldHdlZW4gdGhlIHR3byBnaXZlbiBzdHJpbmdzLlxuICpcbiAqIEByZXR1cm4ge251bWJlcn0gdGhlIGluZGV4IG9mIHRoZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIHN0cmluZ3MgZGl2ZXJnZVxuICovXG5mdW5jdGlvbiBmaXJzdERpZmZlcmVuY2VJbmRleChzdHJpbmcxLCBzdHJpbmcyKSB7XG4gIHZhciBtaW5MZW4gPSBNYXRoLm1pbihzdHJpbmcxLmxlbmd0aCwgc3RyaW5nMi5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG1pbkxlbjsgaSsrKSB7XG4gICAgaWYgKHN0cmluZzEuY2hhckF0KGkpICE9PSBzdHJpbmcyLmNoYXJBdChpKSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHJpbmcxLmxlbmd0aCA9PT0gc3RyaW5nMi5sZW5ndGggPyAtMSA6IG1pbkxlbjtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR8RE9NRG9jdW1lbnR9IGNvbnRhaW5lciBET00gZWxlbWVudCB0aGF0IG1heSBjb250YWluXG4gKiBhIFJlYWN0IGNvbXBvbmVudFxuICogQHJldHVybiB7Pyp9IERPTSBlbGVtZW50IHRoYXQgbWF5IGhhdmUgdGhlIHJlYWN0Um9vdCBJRCwgb3IgbnVsbC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcikge1xuICBpZiAoIWNvbnRhaW5lcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRE9DX05PREVfVFlQRSkge1xuICAgIHJldHVybiBjb250YWluZXIuZG9jdW1lbnRFbGVtZW50O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnRlcm5hbEdldElEKG5vZGUpIHtcbiAgLy8gSWYgbm9kZSBpcyBzb21ldGhpbmcgbGlrZSBhIHdpbmRvdywgZG9jdW1lbnQsIG9yIHRleHQgbm9kZSwgbm9uZSBvZlxuICAvLyB3aGljaCBzdXBwb3J0IGF0dHJpYnV0ZXMgb3IgYSAuZ2V0QXR0cmlidXRlIG1ldGhvZCwgZ3JhY2VmdWxseSByZXR1cm5cbiAgLy8gdGhlIGVtcHR5IHN0cmluZywgYXMgaWYgdGhlIGF0dHJpYnV0ZSB3ZXJlIG1pc3NpbmcuXG4gIHJldHVybiBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZShBVFRSX05BTUUpIHx8ICcnO1xufVxuXG4vKipcbiAqIE1vdW50cyB0aGlzIGNvbXBvbmVudCBhbmQgaW5zZXJ0cyBpdCBpbnRvIHRoZSBET00uXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY29tcG9uZW50SW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIG1vdW50LlxuICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gbW91bnQgaW50by5cbiAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvdWxkUmV1c2VNYXJrdXAgSWYgdHJ1ZSwgZG8gbm90IGluc2VydCBtYXJrdXBcbiAqL1xuZnVuY3Rpb24gbW91bnRDb21wb25lbnRJbnRvTm9kZSh3cmFwcGVySW5zdGFuY2UsIGNvbnRhaW5lciwgdHJhbnNhY3Rpb24sIHNob3VsZFJldXNlTWFya3VwLCBjb250ZXh0KSB7XG4gIHZhciBtYXJrZXJOYW1lO1xuICBpZiAoUmVhY3RGZWF0dXJlRmxhZ3MubG9nVG9wTGV2ZWxSZW5kZXJzKSB7XG4gICAgdmFyIHdyYXBwZWRFbGVtZW50ID0gd3JhcHBlckluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5wcm9wcy5jaGlsZDtcbiAgICB2YXIgdHlwZSA9IHdyYXBwZWRFbGVtZW50LnR5cGU7XG4gICAgbWFya2VyTmFtZSA9ICdSZWFjdCBtb3VudDogJyArICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgPyB0eXBlIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUpO1xuICAgIGNvbnNvbGUudGltZShtYXJrZXJOYW1lKTtcbiAgfVxuXG4gIHZhciBtYXJrdXAgPSBSZWFjdFJlY29uY2lsZXIubW91bnRDb21wb25lbnQod3JhcHBlckluc3RhbmNlLCB0cmFuc2FjdGlvbiwgbnVsbCwgUmVhY3RET01Db250YWluZXJJbmZvKHdyYXBwZXJJbnN0YW5jZSwgY29udGFpbmVyKSwgY29udGV4dCwgMCAvKiBwYXJlbnREZWJ1Z0lEICovXG4gICk7XG5cbiAgaWYgKG1hcmtlck5hbWUpIHtcbiAgICBjb25zb2xlLnRpbWVFbmQobWFya2VyTmFtZSk7XG4gIH1cblxuICB3cmFwcGVySW5zdGFuY2UuX3JlbmRlcmVkQ29tcG9uZW50Ll90b3BMZXZlbFdyYXBwZXIgPSB3cmFwcGVySW5zdGFuY2U7XG4gIFJlYWN0TW91bnQuX21vdW50SW1hZ2VJbnRvTm9kZShtYXJrdXAsIGNvbnRhaW5lciwgd3JhcHBlckluc3RhbmNlLCBzaG91bGRSZXVzZU1hcmt1cCwgdHJhbnNhY3Rpb24pO1xufVxuXG4vKipcbiAqIEJhdGNoZWQgbW91bnQuXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY29tcG9uZW50SW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIG1vdW50LlxuICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gbW91bnQgaW50by5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvdWxkUmV1c2VNYXJrdXAgSWYgdHJ1ZSwgZG8gbm90IGluc2VydCBtYXJrdXBcbiAqL1xuZnVuY3Rpb24gYmF0Y2hlZE1vdW50Q29tcG9uZW50SW50b05vZGUoY29tcG9uZW50SW5zdGFuY2UsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpIHtcbiAgdmFyIHRyYW5zYWN0aW9uID0gUmVhY3RVcGRhdGVzLlJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24uZ2V0UG9vbGVkKFxuICAvKiB1c2VDcmVhdGVFbGVtZW50ICovXG4gICFzaG91bGRSZXVzZU1hcmt1cCAmJiBSZWFjdERPTUZlYXR1cmVGbGFncy51c2VDcmVhdGVFbGVtZW50KTtcbiAgdHJhbnNhY3Rpb24ucGVyZm9ybShtb3VudENvbXBvbmVudEludG9Ob2RlLCBudWxsLCBjb21wb25lbnRJbnN0YW5jZSwgY29udGFpbmVyLCB0cmFuc2FjdGlvbiwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpO1xuICBSZWFjdFVwZGF0ZXMuUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5yZWxlYXNlKHRyYW5zYWN0aW9uKTtcbn1cblxuLyoqXG4gKiBVbm1vdW50cyBhIGNvbXBvbmVudCBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBET00uXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gaW5zdGFuY2UgUmVhY3QgY29tcG9uZW50IGluc3RhbmNlLlxuICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gdW5tb3VudCBmcm9tLlxuICogQGZpbmFsXG4gKiBAaW50ZXJuYWxcbiAqIEBzZWUge1JlYWN0TW91bnQudW5tb3VudENvbXBvbmVudEF0Tm9kZX1cbiAqL1xuZnVuY3Rpb24gdW5tb3VudENvbXBvbmVudEZyb21Ob2RlKGluc3RhbmNlLCBjb250YWluZXIsIHNhZmVseSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkJlZ2luRmx1c2goKTtcbiAgfVxuICBSZWFjdFJlY29uY2lsZXIudW5tb3VudENvbXBvbmVudChpbnN0YW5jZSwgc2FmZWx5KTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25FbmRGbHVzaCgpO1xuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRE9DX05PREVfVFlQRSkge1xuICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5kb2N1bWVudEVsZW1lbnQ7XG4gIH1cblxuICAvLyBodHRwOi8vanNwZXJmLmNvbS9lbXB0eWluZy1hLW5vZGVcbiAgd2hpbGUgKGNvbnRhaW5lci5sYXN0Q2hpbGQpIHtcbiAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoY29udGFpbmVyLmxhc3RDaGlsZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUcnVlIGlmIHRoZSBzdXBwbGllZCBET00gbm9kZSBoYXMgYSBkaXJlY3QgUmVhY3QtcmVuZGVyZWQgY2hpbGQgdGhhdCBpc1xuICogbm90IGEgUmVhY3Qgcm9vdCBlbGVtZW50LiBVc2VmdWwgZm9yIHdhcm5pbmcgaW4gYHJlbmRlcmAsXG4gKiBgdW5tb3VudENvbXBvbmVudEF0Tm9kZWAsIGV0Yy5cbiAqXG4gKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlIFRoZSBjYW5kaWRhdGUgRE9NIG5vZGUuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBET00gZWxlbWVudCBjb250YWlucyBhIGRpcmVjdCBjaGlsZCB0aGF0IHdhc1xuICogcmVuZGVyZWQgYnkgUmVhY3QgYnV0IGlzIG5vdCBhIHJvb3QgZWxlbWVudC5cbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBoYXNOb25Sb290UmVhY3RDaGlsZChjb250YWluZXIpIHtcbiAgdmFyIHJvb3RFbCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICBpZiAocm9vdEVsKSB7XG4gICAgdmFyIGluc3QgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpO1xuICAgIHJldHVybiAhIShpbnN0ICYmIGluc3QuX2hvc3RQYXJlbnQpO1xuICB9XG59XG5cbi8qKlxuICogVHJ1ZSBpZiB0aGUgc3VwcGxpZWQgRE9NIG5vZGUgaXMgYSBSZWFjdCBET00gZWxlbWVudCBhbmRcbiAqIGl0IGhhcyBiZWVuIHJlbmRlcmVkIGJ5IGFub3RoZXIgY29weSBvZiBSZWFjdC5cbiAqXG4gKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlIFRoZSBjYW5kaWRhdGUgRE9NIG5vZGUuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBET00gaGFzIGJlZW4gcmVuZGVyZWQgYnkgYW5vdGhlciBjb3B5IG9mIFJlYWN0XG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gbm9kZUlzUmVuZGVyZWRCeU90aGVySW5zdGFuY2UoY29udGFpbmVyKSB7XG4gIHZhciByb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgcmV0dXJuICEhKHJvb3RFbCAmJiBpc1JlYWN0Tm9kZShyb290RWwpICYmICFSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpKTtcbn1cblxuLyoqXG4gKiBUcnVlIGlmIHRoZSBzdXBwbGllZCBET00gbm9kZSBpcyBhIHZhbGlkIG5vZGUgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlIFRoZSBjYW5kaWRhdGUgRE9NIG5vZGUuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBET00gaXMgYSB2YWxpZCBET00gbm9kZS5cbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBpc1ZhbGlkQ29udGFpbmVyKG5vZGUpIHtcbiAgcmV0dXJuICEhKG5vZGUgJiYgKG5vZGUubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERV9UWVBFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ19OT0RFX1RZUEUgfHwgbm9kZS5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfRlJBR01FTlRfTk9ERV9UWVBFKSk7XG59XG5cbi8qKlxuICogVHJ1ZSBpZiB0aGUgc3VwcGxpZWQgRE9NIG5vZGUgaXMgYSB2YWxpZCBSZWFjdCBub2RlIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHs/RE9NRWxlbWVudH0gbm9kZSBUaGUgY2FuZGlkYXRlIERPTSBub2RlLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgRE9NIGlzIGEgdmFsaWQgUmVhY3QgRE9NIG5vZGUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gaXNSZWFjdE5vZGUobm9kZSkge1xuICByZXR1cm4gaXNWYWxpZENvbnRhaW5lcihub2RlKSAmJiAobm9kZS5oYXNBdHRyaWJ1dGUoUk9PVF9BVFRSX05BTUUpIHx8IG5vZGUuaGFzQXR0cmlidXRlKEFUVFJfTkFNRSkpO1xufVxuXG5mdW5jdGlvbiBnZXRIb3N0Um9vdEluc3RhbmNlSW5Db250YWluZXIoY29udGFpbmVyKSB7XG4gIHZhciByb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgdmFyIHByZXZIb3N0SW5zdGFuY2UgPSByb290RWwgJiYgUmVhY3RET01Db21wb25lbnRUcmVlLmdldEluc3RhbmNlRnJvbU5vZGUocm9vdEVsKTtcbiAgcmV0dXJuIHByZXZIb3N0SW5zdGFuY2UgJiYgIXByZXZIb3N0SW5zdGFuY2UuX2hvc3RQYXJlbnQgPyBwcmV2SG9zdEluc3RhbmNlIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0VG9wTGV2ZWxXcmFwcGVySW5Db250YWluZXIoY29udGFpbmVyKSB7XG4gIHZhciByb290ID0gZ2V0SG9zdFJvb3RJbnN0YW5jZUluQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gIHJldHVybiByb290ID8gcm9vdC5faG9zdENvbnRhaW5lckluZm8uX3RvcExldmVsV3JhcHBlciA6IG51bGw7XG59XG5cbi8qKlxuICogVGVtcG9yYXJ5ICg/KSBoYWNrIHNvIHRoYXQgd2UgY2FuIHN0b3JlIGFsbCB0b3AtbGV2ZWwgcGVuZGluZyB1cGRhdGVzIG9uXG4gKiBjb21wb3NpdGVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IGRpZmZlcmVudCB0eXBlcyBvZiBjb21wb25lbnRzXG4gKiBoZXJlLlxuICovXG52YXIgdG9wTGV2ZWxSb290Q291bnRlciA9IDE7XG52YXIgVG9wTGV2ZWxXcmFwcGVyID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLnJvb3RJRCA9IHRvcExldmVsUm9vdENvdW50ZXIrKztcbn07XG5Ub3BMZXZlbFdyYXBwZXIucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIFRvcExldmVsV3JhcHBlci5kaXNwbGF5TmFtZSA9ICdUb3BMZXZlbFdyYXBwZXInO1xufVxuVG9wTGV2ZWxXcmFwcGVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnByb3BzLmNoaWxkO1xufTtcblRvcExldmVsV3JhcHBlci5pc1JlYWN0VG9wTGV2ZWxXcmFwcGVyID0gdHJ1ZTtcblxuLyoqXG4gKiBNb3VudGluZyBpcyB0aGUgcHJvY2VzcyBvZiBpbml0aWFsaXppbmcgYSBSZWFjdCBjb21wb25lbnQgYnkgY3JlYXRpbmcgaXRzXG4gKiByZXByZXNlbnRhdGl2ZSBET00gZWxlbWVudHMgYW5kIGluc2VydGluZyB0aGVtIGludG8gYSBzdXBwbGllZCBgY29udGFpbmVyYC5cbiAqIEFueSBwcmlvciBjb250ZW50IGluc2lkZSBgY29udGFpbmVyYCBpcyBkZXN0cm95ZWQgaW4gdGhlIHByb2Nlc3MuXG4gKlxuICogICBSZWFjdE1vdW50LnJlbmRlcihcbiAqICAgICBjb21wb25lbnQsXG4gKiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpXG4gKiAgICk7XG4gKlxuICogICA8ZGl2IGlkPVwiY29udGFpbmVyXCI+ICAgICAgICAgICAgICAgICAgIDwtLSBTdXBwbGllZCBgY29udGFpbmVyYC5cbiAqICAgICA8ZGl2IGRhdGEtcmVhY3RpZD1cIi4zXCI+ICAgICAgICAgICAgICA8LS0gUmVuZGVyZWQgcmVhY3RSb290IG9mIFJlYWN0XG4gKiAgICAgICAvLyAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuXG4gKiAgICAgPC9kaXY+XG4gKiAgIDwvZGl2PlxuICpcbiAqIEluc2lkZSBvZiBgY29udGFpbmVyYCwgdGhlIGZpcnN0IGVsZW1lbnQgcmVuZGVyZWQgaXMgdGhlIFwicmVhY3RSb290XCIuXG4gKi9cbnZhciBSZWFjdE1vdW50ID0ge1xuICBUb3BMZXZlbFdyYXBwZXI6IFRvcExldmVsV3JhcHBlcixcblxuICAvKipcbiAgICogVXNlZCBieSBkZXZ0b29scy4gVGhlIGtleXMgYXJlIG5vdCBpbXBvcnRhbnQuXG4gICAqL1xuICBfaW5zdGFuY2VzQnlSZWFjdFJvb3RJRDogaW5zdGFuY2VzQnlSZWFjdFJvb3RJRCxcblxuICAvKipcbiAgICogVGhpcyBpcyBhIGhvb2sgcHJvdmlkZWQgdG8gc3VwcG9ydCByZW5kZXJpbmcgUmVhY3QgY29tcG9uZW50cyB3aGlsZVxuICAgKiBlbnN1cmluZyB0aGF0IHRoZSBhcHBhcmVudCBzY3JvbGwgcG9zaXRpb24gb2YgaXRzIGBjb250YWluZXJgIGRvZXMgbm90XG4gICAqIGNoYW5nZS5cbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgVGhlIGBjb250YWluZXJgIGJlaW5nIHJlbmRlcmVkIGludG8uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IHJlbmRlckNhbGxiYWNrIFRoaXMgbXVzdCBiZSBjYWxsZWQgb25jZSB0byBkbyB0aGUgcmVuZGVyLlxuICAgKi9cbiAgc2Nyb2xsTW9uaXRvcjogZnVuY3Rpb24gKGNvbnRhaW5lciwgcmVuZGVyQ2FsbGJhY2spIHtcbiAgICByZW5kZXJDYWxsYmFjaygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUYWtlIGEgY29tcG9uZW50IHRoYXQncyBhbHJlYWR5IG1vdW50ZWQgaW50byB0aGUgRE9NIGFuZCByZXBsYWNlIGl0cyBwcm9wc1xuICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBwcmV2Q29tcG9uZW50IGNvbXBvbmVudCBpbnN0YW5jZSBhbHJlYWR5IGluIHRoZSBET01cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRFbGVtZW50IGNvbXBvbmVudCBpbnN0YW5jZSB0byByZW5kZXJcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgY29udGFpbmVyIHRvIHJlbmRlciBpbnRvXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbiB0cmlnZ2VyZWQgb24gY29tcGxldGlvblxuICAgKi9cbiAgX3VwZGF0ZVJvb3RDb21wb25lbnQ6IGZ1bmN0aW9uIChwcmV2Q29tcG9uZW50LCBuZXh0RWxlbWVudCwgbmV4dENvbnRleHQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcbiAgICBSZWFjdE1vdW50LnNjcm9sbE1vbml0b3IoY29udGFpbmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVFbGVtZW50SW50ZXJuYWwocHJldkNvbXBvbmVudCwgbmV4dEVsZW1lbnQsIG5leHRDb250ZXh0KTtcbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVDYWxsYmFja0ludGVybmFsKHByZXZDb21wb25lbnQsIGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwcmV2Q29tcG9uZW50O1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBuZXcgY29tcG9uZW50IGludG8gdGhlIERPTS4gSG9va2VkIGJ5IGhvb2tzIVxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnQgZWxlbWVudCB0byByZW5kZXJcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgY29udGFpbmVyIHRvIHJlbmRlciBpbnRvXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvdWxkUmV1c2VNYXJrdXAgaWYgd2Ugc2hvdWxkIHNraXAgdGhlIG1hcmt1cCBpbnNlcnRpb25cbiAgICogQHJldHVybiB7UmVhY3RDb21wb25lbnR9IG5leHRDb21wb25lbnRcbiAgICovXG4gIF9yZW5kZXJOZXdSb290Q29tcG9uZW50OiBmdW5jdGlvbiAobmV4dEVsZW1lbnQsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpIHtcbiAgICAvLyBWYXJpb3VzIHBhcnRzIG9mIG91ciBjb2RlIChzdWNoIGFzIFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50J3NcbiAgICAvLyBfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50KSBhc3N1bWUgdGhhdCBjYWxscyB0byByZW5kZXIgYXJlbid0IG5lc3RlZDtcbiAgICAvLyB2ZXJpZnkgdGhhdCB0aGF0J3MgdGhlIGNhc2UuXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAnX3JlbmRlck5ld1Jvb3RDb21wb25lbnQoKTogUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiAnICsgJ29mIHByb3BzIGFuZCBzdGF0ZTsgdHJpZ2dlcmluZyBuZXN0ZWQgY29tcG9uZW50IHVwZGF0ZXMgZnJvbSAnICsgJ3JlbmRlciBpcyBub3QgYWxsb3dlZC4gSWYgbmVjZXNzYXJ5LCB0cmlnZ2VyIG5lc3RlZCB1cGRhdGVzIGluICcgKyAnY29tcG9uZW50RGlkVXBkYXRlLiBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiAlcy4nLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogdm9pZCAwO1xuXG4gICAgIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdfcmVnaXN0ZXJDb21wb25lbnQoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKSA6IF9wcm9kSW52YXJpYW50KCczNycpIDogdm9pZCAwO1xuXG4gICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLmVuc3VyZVNjcm9sbFZhbHVlTW9uaXRvcmluZygpO1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQobmV4dEVsZW1lbnQsIGZhbHNlKTtcblxuICAgIC8vIFRoZSBpbml0aWFsIHJlbmRlciBpcyBzeW5jaHJvbm91cyBidXQgYW55IHVwZGF0ZXMgdGhhdCBoYXBwZW4gZHVyaW5nXG4gICAgLy8gcmVuZGVyaW5nLCBpbiBjb21wb25lbnRXaWxsTW91bnQgb3IgY29tcG9uZW50RGlkTW91bnQsIHdpbGwgYmUgYmF0Y2hlZFxuICAgIC8vIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBiYXRjaGluZyBzdHJhdGVneS5cblxuICAgIFJlYWN0VXBkYXRlcy5iYXRjaGVkVXBkYXRlcyhiYXRjaGVkTW91bnRDb21wb25lbnRJbnRvTm9kZSwgY29tcG9uZW50SW5zdGFuY2UsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpO1xuXG4gICAgdmFyIHdyYXBwZXJJRCA9IGNvbXBvbmVudEluc3RhbmNlLl9pbnN0YW5jZS5yb290SUQ7XG4gICAgaW5zdGFuY2VzQnlSZWFjdFJvb3RJRFt3cmFwcGVySURdID0gY29tcG9uZW50SW5zdGFuY2U7XG5cbiAgICByZXR1cm4gY29tcG9uZW50SW5zdGFuY2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBSZWFjdCBjb21wb25lbnQgaW50byB0aGUgRE9NIGluIHRoZSBzdXBwbGllZCBgY29udGFpbmVyYC5cbiAgICpcbiAgICogSWYgdGhlIFJlYWN0IGNvbXBvbmVudCB3YXMgcHJldmlvdXNseSByZW5kZXJlZCBpbnRvIGBjb250YWluZXJgLCB0aGlzIHdpbGxcbiAgICogcGVyZm9ybSBhbiB1cGRhdGUgb24gaXQgYW5kIG9ubHkgbXV0YXRlIHRoZSBET00gYXMgbmVjZXNzYXJ5IHRvIHJlZmxlY3QgdGhlXG4gICAqIGxhdGVzdCBSZWFjdCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IHBhcmVudENvbXBvbmVudCBUaGUgY29uY2VwdHVhbCBwYXJlbnQgb2YgdGhpcyByZW5kZXIgdHJlZS5cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRFbGVtZW50IENvbXBvbmVudCBlbGVtZW50IHRvIHJlbmRlci5cbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gcmVuZGVyIGludG8uXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbiB0cmlnZ2VyZWQgb24gY29tcGxldGlvblxuICAgKiBAcmV0dXJuIHtSZWFjdENvbXBvbmVudH0gQ29tcG9uZW50IGluc3RhbmNlIHJlbmRlcmVkIGluIGBjb250YWluZXJgLlxuICAgKi9cbiAgcmVuZGVyU3VidHJlZUludG9Db250YWluZXI6IGZ1bmN0aW9uIChwYXJlbnRDb21wb25lbnQsIG5leHRFbGVtZW50LCBjb250YWluZXIsIGNhbGxiYWNrKSB7XG4gICAgIShwYXJlbnRDb21wb25lbnQgIT0gbnVsbCAmJiBSZWFjdEluc3RhbmNlTWFwLmhhcyhwYXJlbnRDb21wb25lbnQpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdwYXJlbnRDb21wb25lbnQgbXVzdCBiZSBhIHZhbGlkIFJlYWN0IENvbXBvbmVudCcpIDogX3Byb2RJbnZhcmlhbnQoJzM4JykgOiB2b2lkIDA7XG4gICAgcmV0dXJuIFJlYWN0TW91bnQuX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKHBhcmVudENvbXBvbmVudCwgbmV4dEVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spO1xuICB9LFxuXG4gIF9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcjogZnVuY3Rpb24gKHBhcmVudENvbXBvbmVudCwgbmV4dEVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcbiAgICBSZWFjdFVwZGF0ZVF1ZXVlLnZhbGlkYXRlQ2FsbGJhY2soY2FsbGJhY2ssICdSZWFjdERPTS5yZW5kZXInKTtcbiAgICAhUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV4dEVsZW1lbnQpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0RE9NLnJlbmRlcigpOiBJbnZhbGlkIGNvbXBvbmVudCBlbGVtZW50LiVzJywgdHlwZW9mIG5leHRFbGVtZW50ID09PSAnc3RyaW5nJyA/IFwiIEluc3RlYWQgb2YgcGFzc2luZyBhIHN0cmluZyBsaWtlICdkaXYnLCBwYXNzIFwiICsgXCJSZWFjdC5jcmVhdGVFbGVtZW50KCdkaXYnKSBvciA8ZGl2IC8+LlwiIDogdHlwZW9mIG5leHRFbGVtZW50ID09PSAnZnVuY3Rpb24nID8gJyBJbnN0ZWFkIG9mIHBhc3NpbmcgYSBjbGFzcyBsaWtlIEZvbywgcGFzcyAnICsgJ1JlYWN0LmNyZWF0ZUVsZW1lbnQoRm9vKSBvciA8Rm9vIC8+LicgOiAvLyBDaGVjayBpZiBpdCBxdWFja3MgbGlrZSBhbiBlbGVtZW50XG4gICAgbmV4dEVsZW1lbnQgIT0gbnVsbCAmJiBuZXh0RWxlbWVudC5wcm9wcyAhPT0gdW5kZWZpbmVkID8gJyBUaGlzIG1heSBiZSBjYXVzZWQgYnkgdW5pbnRlbnRpb25hbGx5IGxvYWRpbmcgdHdvIGluZGVwZW5kZW50ICcgKyAnY29waWVzIG9mIFJlYWN0LicgOiAnJykgOiBfcHJvZEludmFyaWFudCgnMzknLCB0eXBlb2YgbmV4dEVsZW1lbnQgPT09ICdzdHJpbmcnID8gXCIgSW5zdGVhZCBvZiBwYXNzaW5nIGEgc3RyaW5nIGxpa2UgJ2RpdicsIHBhc3MgXCIgKyBcIlJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIG9yIDxkaXYgLz4uXCIgOiB0eXBlb2YgbmV4dEVsZW1lbnQgPT09ICdmdW5jdGlvbicgPyAnIEluc3RlYWQgb2YgcGFzc2luZyBhIGNsYXNzIGxpa2UgRm9vLCBwYXNzICcgKyAnUmVhY3QuY3JlYXRlRWxlbWVudChGb28pIG9yIDxGb28gLz4uJyA6IG5leHRFbGVtZW50ICE9IG51bGwgJiYgbmV4dEVsZW1lbnQucHJvcHMgIT09IHVuZGVmaW5lZCA/ICcgVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IHVuaW50ZW50aW9uYWxseSBsb2FkaW5nIHR3byBpbmRlcGVuZGVudCAnICsgJ2NvcGllcyBvZiBSZWFjdC4nIDogJycpIDogdm9pZCAwO1xuXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWNvbnRhaW5lciB8fCAhY29udGFpbmVyLnRhZ05hbWUgfHwgY29udGFpbmVyLnRhZ05hbWUudG9VcHBlckNhc2UoKSAhPT0gJ0JPRFknLCAncmVuZGVyKCk6IFJlbmRlcmluZyBjb21wb25lbnRzIGRpcmVjdGx5IGludG8gZG9jdW1lbnQuYm9keSBpcyAnICsgJ2Rpc2NvdXJhZ2VkLCBzaW5jZSBpdHMgY2hpbGRyZW4gYXJlIG9mdGVuIG1hbmlwdWxhdGVkIGJ5IHRoaXJkLXBhcnR5ICcgKyAnc2NyaXB0cyBhbmQgYnJvd3NlciBleHRlbnNpb25zLiBUaGlzIG1heSBsZWFkIHRvIHN1YnRsZSAnICsgJ3JlY29uY2lsaWF0aW9uIGlzc3Vlcy4gVHJ5IHJlbmRlcmluZyBpbnRvIGEgY29udGFpbmVyIGVsZW1lbnQgY3JlYXRlZCAnICsgJ2ZvciB5b3VyIGFwcC4nKSA6IHZvaWQgMDtcblxuICAgIHZhciBuZXh0V3JhcHBlZEVsZW1lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFRvcExldmVsV3JhcHBlciwge1xuICAgICAgY2hpbGQ6IG5leHRFbGVtZW50XG4gICAgfSk7XG5cbiAgICB2YXIgbmV4dENvbnRleHQ7XG4gICAgaWYgKHBhcmVudENvbXBvbmVudCkge1xuICAgICAgdmFyIHBhcmVudEluc3QgPSBSZWFjdEluc3RhbmNlTWFwLmdldChwYXJlbnRDb21wb25lbnQpO1xuICAgICAgbmV4dENvbnRleHQgPSBwYXJlbnRJbnN0Ll9wcm9jZXNzQ2hpbGRDb250ZXh0KHBhcmVudEluc3QuX2NvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0Q29udGV4dCA9IGVtcHR5T2JqZWN0O1xuICAgIH1cblxuICAgIHZhciBwcmV2Q29tcG9uZW50ID0gZ2V0VG9wTGV2ZWxXcmFwcGVySW5Db250YWluZXIoY29udGFpbmVyKTtcblxuICAgIGlmIChwcmV2Q29tcG9uZW50KSB7XG4gICAgICB2YXIgcHJldldyYXBwZWRFbGVtZW50ID0gcHJldkNvbXBvbmVudC5fY3VycmVudEVsZW1lbnQ7XG4gICAgICB2YXIgcHJldkVsZW1lbnQgPSBwcmV2V3JhcHBlZEVsZW1lbnQucHJvcHMuY2hpbGQ7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQocHJldkVsZW1lbnQsIG5leHRFbGVtZW50KSkge1xuICAgICAgICB2YXIgcHVibGljSW5zdCA9IHByZXZDb21wb25lbnQuX3JlbmRlcmVkQ29tcG9uZW50LmdldFB1YmxpY0luc3RhbmNlKCk7XG4gICAgICAgIHZhciB1cGRhdGVkQ2FsbGJhY2sgPSBjYWxsYmFjayAmJiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2suY2FsbChwdWJsaWNJbnN0KTtcbiAgICAgICAgfTtcbiAgICAgICAgUmVhY3RNb3VudC5fdXBkYXRlUm9vdENvbXBvbmVudChwcmV2Q29tcG9uZW50LCBuZXh0V3JhcHBlZEVsZW1lbnQsIG5leHRDb250ZXh0LCBjb250YWluZXIsIHVwZGF0ZWRDYWxsYmFjayk7XG4gICAgICAgIHJldHVybiBwdWJsaWNJbnN0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUmVhY3RNb3VudC51bm1vdW50Q29tcG9uZW50QXROb2RlKGNvbnRhaW5lcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlYWN0Um9vdEVsZW1lbnQgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICB2YXIgY29udGFpbmVySGFzUmVhY3RNYXJrdXAgPSByZWFjdFJvb3RFbGVtZW50ICYmICEhaW50ZXJuYWxHZXRJRChyZWFjdFJvb3RFbGVtZW50KTtcbiAgICB2YXIgY29udGFpbmVySGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSBoYXNOb25Sb290UmVhY3RDaGlsZChjb250YWluZXIpO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFjb250YWluZXJIYXNOb25Sb290UmVhY3RDaGlsZCwgJ3JlbmRlciguLi4pOiBSZXBsYWNpbmcgUmVhY3QtcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBhIG5ldyByb290ICcgKyAnY29tcG9uZW50LiBJZiB5b3UgaW50ZW5kZWQgdG8gdXBkYXRlIHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsICcgKyAneW91IHNob3VsZCBpbnN0ZWFkIGhhdmUgdGhlIGV4aXN0aW5nIGNoaWxkcmVuIHVwZGF0ZSB0aGVpciBzdGF0ZSAnICsgJ2FuZCByZW5kZXIgdGhlIG5ldyBjb21wb25lbnRzIGluc3RlYWQgb2YgY2FsbGluZyBSZWFjdERPTS5yZW5kZXIuJykgOiB2b2lkIDA7XG5cbiAgICAgIGlmICghY29udGFpbmVySGFzUmVhY3RNYXJrdXAgfHwgcmVhY3RSb290RWxlbWVudC5uZXh0U2libGluZykge1xuICAgICAgICB2YXIgcm9vdEVsZW1lbnRTaWJsaW5nID0gcmVhY3RSb290RWxlbWVudDtcbiAgICAgICAgd2hpbGUgKHJvb3RFbGVtZW50U2libGluZykge1xuICAgICAgICAgIGlmIChpbnRlcm5hbEdldElEKHJvb3RFbGVtZW50U2libGluZykpIHtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAncmVuZGVyKCk6IFRhcmdldCBub2RlIGhhcyBtYXJrdXAgcmVuZGVyZWQgYnkgUmVhY3QsIGJ1dCB0aGVyZSAnICsgJ2FyZSB1bnJlbGF0ZWQgbm9kZXMgYXMgd2VsbC4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IGNhdXNlZCBieSAnICsgJ3doaXRlLXNwYWNlIGluc2VydGVkIGFyb3VuZCBzZXJ2ZXItcmVuZGVyZWQgbWFya3VwLicpIDogdm9pZCAwO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJvb3RFbGVtZW50U2libGluZyA9IHJvb3RFbGVtZW50U2libGluZy5uZXh0U2libGluZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzaG91bGRSZXVzZU1hcmt1cCA9IGNvbnRhaW5lckhhc1JlYWN0TWFya3VwICYmICFwcmV2Q29tcG9uZW50ICYmICFjb250YWluZXJIYXNOb25Sb290UmVhY3RDaGlsZDtcbiAgICB2YXIgY29tcG9uZW50ID0gUmVhY3RNb3VudC5fcmVuZGVyTmV3Um9vdENvbXBvbmVudChuZXh0V3JhcHBlZEVsZW1lbnQsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIG5leHRDb250ZXh0KS5fcmVuZGVyZWRDb21wb25lbnQuZ2V0UHVibGljSW5zdGFuY2UoKTtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrLmNhbGwoY29tcG9uZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgfSxcblxuICAvKipcbiAgICogUmVuZGVycyBhIFJlYWN0IGNvbXBvbmVudCBpbnRvIHRoZSBET00gaW4gdGhlIHN1cHBsaWVkIGBjb250YWluZXJgLlxuICAgKiBTZWUgaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90b3AtbGV2ZWwtYXBpLmh0bWwjcmVhY3Rkb20ucmVuZGVyXG4gICAqXG4gICAqIElmIHRoZSBSZWFjdCBjb21wb25lbnQgd2FzIHByZXZpb3VzbHkgcmVuZGVyZWQgaW50byBgY29udGFpbmVyYCwgdGhpcyB3aWxsXG4gICAqIHBlcmZvcm0gYW4gdXBkYXRlIG9uIGl0IGFuZCBvbmx5IG11dGF0ZSB0aGUgRE9NIGFzIG5lY2Vzc2FyeSB0byByZWZsZWN0IHRoZVxuICAgKiBsYXRlc3QgUmVhY3QgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnQgQ29tcG9uZW50IGVsZW1lbnQgdG8gcmVuZGVyLlxuICAgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGNvbnRhaW5lciBET00gZWxlbWVudCB0byByZW5kZXIgaW50by5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIGZ1bmN0aW9uIHRyaWdnZXJlZCBvbiBjb21wbGV0aW9uXG4gICAqIEByZXR1cm4ge1JlYWN0Q29tcG9uZW50fSBDb21wb25lbnQgaW5zdGFuY2UgcmVuZGVyZWQgaW4gYGNvbnRhaW5lcmAuXG4gICAqL1xuICByZW5kZXI6IGZ1bmN0aW9uIChuZXh0RWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICAgIHJldHVybiBSZWFjdE1vdW50Ll9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihudWxsLCBuZXh0RWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVubW91bnRzIGFuZCBkZXN0cm95cyB0aGUgUmVhY3QgY29tcG9uZW50IHJlbmRlcmVkIGluIHRoZSBgY29udGFpbmVyYC5cbiAgICogU2VlIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdG9wLWxldmVsLWFwaS5odG1sI3JlYWN0ZG9tLnVubW91bnRjb21wb25lbnRhdG5vZGVcbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgY29udGFpbmluZyBhIFJlYWN0IGNvbXBvbmVudC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBhIGNvbXBvbmVudCB3YXMgZm91bmQgaW4gYW5kIHVubW91bnRlZCBmcm9tXG4gICAqICAgICAgICAgICAgICAgICAgIGBjb250YWluZXJgXG4gICAqL1xuICB1bm1vdW50Q29tcG9uZW50QXROb2RlOiBmdW5jdGlvbiAoY29udGFpbmVyKSB7XG4gICAgLy8gVmFyaW91cyBwYXJ0cyBvZiBvdXIgY29kZSAoc3VjaCBhcyBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCdzXG4gICAgLy8gX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCkgYXNzdW1lIHRoYXQgY2FsbHMgdG8gcmVuZGVyIGFyZW4ndCBuZXN0ZWQ7XG4gICAgLy8gdmVyaWZ5IHRoYXQgdGhhdCdzIHRoZSBjYXNlLiAoU3RyaWN0bHkgc3BlYWtpbmcsIHVubW91bnRpbmcgd29uJ3QgY2F1c2UgYVxuICAgIC8vIHJlbmRlciBidXQgd2Ugc3RpbGwgZG9uJ3QgZXhwZWN0IHRvIGJlIGluIGEgcmVuZGVyIGNhbGwgaGVyZS4pXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAndW5tb3VudENvbXBvbmVudEF0Tm9kZSgpOiBSZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uICcgKyAnb2YgcHJvcHMgYW5kIHN0YXRlOyB0cmlnZ2VyaW5nIG5lc3RlZCBjb21wb25lbnQgdXBkYXRlcyBmcm9tIHJlbmRlciAnICsgJ2lzIG5vdCBhbGxvd2VkLiBJZiBuZWNlc3NhcnksIHRyaWdnZXIgbmVzdGVkIHVwZGF0ZXMgaW4gJyArICdjb21wb25lbnREaWRVcGRhdGUuIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLicsIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB2b2lkIDA7XG5cbiAgICAhaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3VubW91bnRDb21wb25lbnRBdE5vZGUoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKSA6IF9wcm9kSW52YXJpYW50KCc0MCcpIDogdm9pZCAwO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFub2RlSXNSZW5kZXJlZEJ5T3RoZXJJbnN0YW5jZShjb250YWluZXIpLCBcInVubW91bnRDb21wb25lbnRBdE5vZGUoKTogVGhlIG5vZGUgeW91J3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCBcIiArICd3YXMgcmVuZGVyZWQgYnkgYW5vdGhlciBjb3B5IG9mIFJlYWN0LicpIDogdm9pZCAwO1xuICAgIH1cblxuICAgIHZhciBwcmV2Q29tcG9uZW50ID0gZ2V0VG9wTGV2ZWxXcmFwcGVySW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICBpZiAoIXByZXZDb21wb25lbnQpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBub2RlIGJlaW5nIHVubW91bnRlZCB3YXMgcmVuZGVyZWQgYnkgUmVhY3QsIGJ1dCBpc24ndCBhXG4gICAgICAvLyByb290IG5vZGUuXG4gICAgICB2YXIgY29udGFpbmVySGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSBoYXNOb25Sb290UmVhY3RDaGlsZChjb250YWluZXIpO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgY29udGFpbmVyIGl0c2VsZiBpcyBhIFJlYWN0IHJvb3Qgbm9kZS5cbiAgICAgIHZhciBpc0NvbnRhaW5lclJlYWN0Um9vdCA9IGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gMSAmJiBjb250YWluZXIuaGFzQXR0cmlidXRlKFJPT1RfQVRUUl9OQU1FKTtcblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWNvbnRhaW5lckhhc05vblJvb3RSZWFjdENoaWxkLCBcInVubW91bnRDb21wb25lbnRBdE5vZGUoKTogVGhlIG5vZGUgeW91J3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCBcIiArICd3YXMgcmVuZGVyZWQgYnkgUmVhY3QgYW5kIGlzIG5vdCBhIHRvcC1sZXZlbCBjb250YWluZXIuICVzJywgaXNDb250YWluZXJSZWFjdFJvb3QgPyAnWW91IG1heSBoYXZlIGFjY2lkZW50YWxseSBwYXNzZWQgaW4gYSBSZWFjdCByb290IG5vZGUgaW5zdGVhZCAnICsgJ29mIGl0cyBjb250YWluZXIuJyA6ICdJbnN0ZWFkLCBoYXZlIHRoZSBwYXJlbnQgY29tcG9uZW50IHVwZGF0ZSBpdHMgc3RhdGUgYW5kICcgKyAncmVyZW5kZXIgaW4gb3JkZXIgdG8gcmVtb3ZlIHRoaXMgY29tcG9uZW50LicpIDogdm9pZCAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGRlbGV0ZSBpbnN0YW5jZXNCeVJlYWN0Um9vdElEW3ByZXZDb21wb25lbnQuX2luc3RhbmNlLnJvb3RJRF07XG4gICAgUmVhY3RVcGRhdGVzLmJhdGNoZWRVcGRhdGVzKHVubW91bnRDb21wb25lbnRGcm9tTm9kZSwgcHJldkNvbXBvbmVudCwgY29udGFpbmVyLCBmYWxzZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG5cbiAgX21vdW50SW1hZ2VJbnRvTm9kZTogZnVuY3Rpb24gKG1hcmt1cCwgY29udGFpbmVyLCBpbnN0YW5jZSwgc2hvdWxkUmV1c2VNYXJrdXAsIHRyYW5zYWN0aW9uKSB7XG4gICAgIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdtb3VudENvbXBvbmVudEludG9Ob2RlKC4uLik6IFRhcmdldCBjb250YWluZXIgaXMgbm90IHZhbGlkLicpIDogX3Byb2RJbnZhcmlhbnQoJzQxJykgOiB2b2lkIDA7XG5cbiAgICBpZiAoc2hvdWxkUmV1c2VNYXJrdXApIHtcbiAgICAgIHZhciByb290RWxlbWVudCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgICAgaWYgKFJlYWN0TWFya3VwQ2hlY2tzdW0uY2FuUmV1c2VNYXJrdXAobWFya3VwLCByb290RWxlbWVudCkpIHtcbiAgICAgICAgUmVhY3RET01Db21wb25lbnRUcmVlLnByZWNhY2hlTm9kZShpbnN0YW5jZSwgcm9vdEVsZW1lbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgY2hlY2tzdW0gPSByb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoUmVhY3RNYXJrdXBDaGVja3N1bS5DSEVDS1NVTV9BVFRSX05BTUUpO1xuICAgICAgICByb290RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoUmVhY3RNYXJrdXBDaGVja3N1bS5DSEVDS1NVTV9BVFRSX05BTUUpO1xuXG4gICAgICAgIHZhciByb290TWFya3VwID0gcm9vdEVsZW1lbnQub3V0ZXJIVE1MO1xuICAgICAgICByb290RWxlbWVudC5zZXRBdHRyaWJ1dGUoUmVhY3RNYXJrdXBDaGVja3N1bS5DSEVDS1NVTV9BVFRSX05BTUUsIGNoZWNrc3VtKTtcblxuICAgICAgICB2YXIgbm9ybWFsaXplZE1hcmt1cCA9IG1hcmt1cDtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAvLyBiZWNhdXNlIHJvb3RNYXJrdXAgaXMgcmV0cmlldmVkIGZyb20gdGhlIERPTSwgdmFyaW91cyBub3JtYWxpemF0aW9uc1xuICAgICAgICAgIC8vIHdpbGwgaGF2ZSBvY2N1cnJlZCB3aGljaCB3aWxsIG5vdCBiZSBwcmVzZW50IGluIGBtYXJrdXBgLiBIZXJlLFxuICAgICAgICAgIC8vIGluc2VydCBtYXJrdXAgaW50byBhIDxkaXY+IG9yIDxpZnJhbWU+IGRlcGVuZGluZyBvbiB0aGUgY29udGFpbmVyXG4gICAgICAgICAgLy8gdHlwZSB0byBwZXJmb3JtIHRoZSBzYW1lIG5vcm1hbGl6YXRpb25zIGJlZm9yZSBjb21wYXJpbmcuXG4gICAgICAgICAgdmFyIG5vcm1hbGl6ZXI7XG4gICAgICAgICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFX1RZUEUpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIG5vcm1hbGl6ZXIuaW5uZXJIVE1MID0gbWFya3VwO1xuICAgICAgICAgICAgbm9ybWFsaXplZE1hcmt1cCA9IG5vcm1hbGl6ZXIuaW5uZXJIVE1MO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub3JtYWxpemVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5vcm1hbGl6ZXIpO1xuICAgICAgICAgICAgbm9ybWFsaXplci5jb250ZW50RG9jdW1lbnQud3JpdGUobWFya3VwKTtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRNYXJrdXAgPSBub3JtYWxpemVyLmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChub3JtYWxpemVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGlmZkluZGV4ID0gZmlyc3REaWZmZXJlbmNlSW5kZXgobm9ybWFsaXplZE1hcmt1cCwgcm9vdE1hcmt1cCk7XG4gICAgICAgIHZhciBkaWZmZXJlbmNlID0gJyAoY2xpZW50KSAnICsgbm9ybWFsaXplZE1hcmt1cC5zdWJzdHJpbmcoZGlmZkluZGV4IC0gMjAsIGRpZmZJbmRleCArIDIwKSArICdcXG4gKHNlcnZlcikgJyArIHJvb3RNYXJrdXAuc3Vic3RyaW5nKGRpZmZJbmRleCAtIDIwLCBkaWZmSW5kZXggKyAyMCk7XG5cbiAgICAgICAgIShjb250YWluZXIubm9kZVR5cGUgIT09IERPQ19OT0RFX1RZUEUpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1lvdVxcJ3JlIHRyeWluZyB0byByZW5kZXIgYSBjb21wb25lbnQgdG8gdGhlIGRvY3VtZW50IHVzaW5nIHNlcnZlciByZW5kZXJpbmcgYnV0IHRoZSBjaGVja3N1bSB3YXMgaW52YWxpZC4gVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSByZW5kZXJlZCBhIGRpZmZlcmVudCBjb21wb25lbnQgdHlwZSBvciBwcm9wcyBvbiB0aGUgY2xpZW50IGZyb20gdGhlIG9uZSBvbiB0aGUgc2VydmVyLCBvciB5b3VyIHJlbmRlcigpIG1ldGhvZHMgYXJlIGltcHVyZS4gUmVhY3QgY2Fubm90IGhhbmRsZSB0aGlzIGNhc2UgZHVlIHRvIGNyb3NzLWJyb3dzZXIgcXVpcmtzIGJ5IHJlbmRlcmluZyBhdCB0aGUgZG9jdW1lbnQgcm9vdC4gWW91IHNob3VsZCBsb29rIGZvciBlbnZpcm9ubWVudCBkZXBlbmRlbnQgY29kZSBpbiB5b3VyIGNvbXBvbmVudHMgYW5kIGVuc3VyZSB0aGUgcHJvcHMgYXJlIHRoZSBzYW1lIGNsaWVudCBhbmQgc2VydmVyIHNpZGU6XFxuJXMnLCBkaWZmZXJlbmNlKSA6IF9wcm9kSW52YXJpYW50KCc0MicsIGRpZmZlcmVuY2UpIDogdm9pZCAwO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdSZWFjdCBhdHRlbXB0ZWQgdG8gcmV1c2UgbWFya3VwIGluIGEgY29udGFpbmVyIGJ1dCB0aGUgJyArICdjaGVja3N1bSB3YXMgaW52YWxpZC4gVGhpcyBnZW5lcmFsbHkgbWVhbnMgdGhhdCB5b3UgYXJlICcgKyAndXNpbmcgc2VydmVyIHJlbmRlcmluZyBhbmQgdGhlIG1hcmt1cCBnZW5lcmF0ZWQgb24gdGhlICcgKyAnc2VydmVyIHdhcyBub3Qgd2hhdCB0aGUgY2xpZW50IHdhcyBleHBlY3RpbmcuIFJlYWN0IGluamVjdGVkICcgKyAnbmV3IG1hcmt1cCB0byBjb21wZW5zYXRlIHdoaWNoIHdvcmtzIGJ1dCB5b3UgaGF2ZSBsb3N0IG1hbnkgJyArICdvZiB0aGUgYmVuZWZpdHMgb2Ygc2VydmVyIHJlbmRlcmluZy4gSW5zdGVhZCwgZmlndXJlIG91dCAnICsgJ3doeSB0aGUgbWFya3VwIGJlaW5nIGdlbmVyYXRlZCBpcyBkaWZmZXJlbnQgb24gdGhlIGNsaWVudCAnICsgJ29yIHNlcnZlcjpcXG4lcycsIGRpZmZlcmVuY2UpIDogdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgIShjb250YWluZXIubm9kZVR5cGUgIT09IERPQ19OT0RFX1RZUEUpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1lvdVxcJ3JlIHRyeWluZyB0byByZW5kZXIgYSBjb21wb25lbnQgdG8gdGhlIGRvY3VtZW50IGJ1dCB5b3UgZGlkblxcJ3QgdXNlIHNlcnZlciByZW5kZXJpbmcuIFdlIGNhblxcJ3QgZG8gdGhpcyB3aXRob3V0IHVzaW5nIHNlcnZlciByZW5kZXJpbmcgZHVlIHRvIGNyb3NzLWJyb3dzZXIgcXVpcmtzLiBTZWUgUmVhY3RET01TZXJ2ZXIucmVuZGVyVG9TdHJpbmcoKSBmb3Igc2VydmVyIHJlbmRlcmluZy4nKSA6IF9wcm9kSW52YXJpYW50KCc0MycpIDogdm9pZCAwO1xuXG4gICAgaWYgKHRyYW5zYWN0aW9uLnVzZUNyZWF0ZUVsZW1lbnQpIHtcbiAgICAgIHdoaWxlIChjb250YWluZXIubGFzdENoaWxkKSB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjb250YWluZXIubGFzdENoaWxkKTtcbiAgICAgIH1cbiAgICAgIERPTUxhenlUcmVlLmluc2VydFRyZWVCZWZvcmUoY29udGFpbmVyLCBtYXJrdXAsIG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRJbm5lckhUTUwoY29udGFpbmVyLCBtYXJrdXApO1xuICAgICAgUmVhY3RET01Db21wb25lbnRUcmVlLnByZWNhY2hlTm9kZShpbnN0YW5jZSwgY29udGFpbmVyLmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgaG9zdE5vZGUgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0SW5zdGFuY2VGcm9tTm9kZShjb250YWluZXIuZmlyc3RDaGlsZCk7XG4gICAgICBpZiAoaG9zdE5vZGUuX2RlYnVnSUQgIT09IDApIHtcbiAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uSG9zdE9wZXJhdGlvbih7XG4gICAgICAgICAgaW5zdGFuY2VJRDogaG9zdE5vZGUuX2RlYnVnSUQsXG4gICAgICAgICAgdHlwZTogJ21vdW50JyxcbiAgICAgICAgICBwYXlsb2FkOiBtYXJrdXAudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RNb3VudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0TW91bnQuanNcbi8vIG1vZHVsZSBpZCA9IDEwNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///104\n"); /***/ }), /* 105 */ @@ -1436,7 +1436,7 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = compose;\n/* /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = data;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__actions__ = __webpack_require__(/*! ../actions */ 64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__writeToStore__ = __webpack_require__(/*! ./writeToStore */ 32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__data_proxy__ = __webpack_require__(/*! ../data/proxy */ 115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__queries_getFromAST__ = __webpack_require__(/*! ../queries/getFromAST */ 16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__storeUtils__ = __webpack_require__(/*! ./storeUtils */ 17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__replaceQueryResults__ = __webpack_require__(/*! ./replaceQueryResults */ 271);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__readFromStore__ = __webpack_require__(/*! ./readFromStore */ 26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_errorHandling__ = __webpack_require__(/*! ../util/errorHandling */ 119);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\nfunction data(previousState, action, config) {\n if (previousState === void 0) { previousState = {}; }\n var constAction = action;\n if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"d\" /* isQueryResultAction */])(action)) {\n if (action.fetchMoreForQueryId) {\n return previousState;\n }\n if (!Object(__WEBPACK_IMPORTED_MODULE_4__storeUtils__[\"b\" /* graphQLResultHasError */])(action.result)) {\n var clonedState = __assign({}, previousState);\n var newState_1 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: action.result.data,\n dataId: 'ROOT_QUERY',\n document: action.document,\n variables: action.variables,\n store: clonedState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n if (action.extraReducers) {\n action.extraReducers.forEach(function (reducer) {\n newState_1 = reducer(newState_1, constAction);\n });\n }\n return newState_1;\n }\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"f\" /* isSubscriptionResultAction */])(action)) {\n if (!Object(__WEBPACK_IMPORTED_MODULE_4__storeUtils__[\"b\" /* graphQLResultHasError */])(action.result)) {\n var clonedState = __assign({}, previousState);\n var newState_2 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: action.result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n document: action.document,\n variables: action.variables,\n store: clonedState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n if (action.extraReducers) {\n action.extraReducers.forEach(function (reducer) {\n newState_2 = reducer(newState_2, constAction);\n });\n }\n return newState_2;\n }\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"c\" /* isMutationResultAction */])(constAction)) {\n if (!constAction.result.errors) {\n var clonedState = __assign({}, previousState);\n var newState_3 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: constAction.result.data,\n dataId: 'ROOT_MUTATION',\n document: constAction.document,\n variables: constAction.variables,\n store: clonedState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n var updateQueries_1 = constAction.updateQueries;\n if (updateQueries_1) {\n Object.keys(updateQueries_1)\n .filter(function (id) { return updateQueries_1[id]; })\n .forEach(function (queryId) {\n var _a = updateQueries_1[queryId], query = _a.query, reducer = _a.reducer;\n var _b = Object(__WEBPACK_IMPORTED_MODULE_6__readFromStore__[\"a\" /* diffQueryAgainstStore */])({\n store: previousState,\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n fragmentMatcherFunction: config.fragmentMatcher,\n config: config,\n }), currentQueryResult = _b.result, isMissing = _b.isMissing;\n if (isMissing) {\n return;\n }\n var nextQueryResult = Object(__WEBPACK_IMPORTED_MODULE_7__util_errorHandling__[\"a\" /* tryFunctionOrLogError */])(function () {\n return reducer(currentQueryResult, {\n mutationResult: constAction.result,\n queryName: Object(__WEBPACK_IMPORTED_MODULE_3__queries_getFromAST__[\"h\" /* getOperationName */])(query.document),\n queryVariables: query.variables,\n });\n });\n if (nextQueryResult) {\n newState_3 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n document: query.document,\n variables: query.variables,\n store: newState_3,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n }\n });\n }\n if (constAction.update) {\n var update_1 = constAction.update;\n var proxy_1 = new __WEBPACK_IMPORTED_MODULE_2__data_proxy__[\"b\" /* TransactionDataProxy */](newState_3, config);\n Object(__WEBPACK_IMPORTED_MODULE_7__util_errorHandling__[\"a\" /* tryFunctionOrLogError */])(function () { return update_1(proxy_1, constAction.result); });\n var writes = proxy_1.finish();\n newState_3 = data(newState_3, { type: 'APOLLO_WRITE', writes: writes }, config);\n }\n if (constAction.extraReducers) {\n constAction.extraReducers.forEach(function (reducer) {\n newState_3 = reducer(newState_3, constAction);\n });\n }\n return newState_3;\n }\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"g\" /* isUpdateQueryResultAction */])(constAction)) {\n return Object(__WEBPACK_IMPORTED_MODULE_5__replaceQueryResults__[\"a\" /* replaceQueryResults */])(previousState, constAction, config);\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"e\" /* isStoreResetAction */])(action)) {\n return {};\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"h\" /* isWriteAction */])(action)) {\n return action.writes.reduce(function (currentState, write) {\n return Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: write.result,\n dataId: write.rootId,\n document: write.document,\n variables: write.variables,\n store: currentState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n }, __assign({}, previousState));\n }\n return previousState;\n}\n//# sourceMappingURL=store.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTE0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvZGF0YS9zdG9yZS5qcz8zMTlkIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgaXNRdWVyeVJlc3VsdEFjdGlvbiwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbiwgaXNVcGRhdGVRdWVyeVJlc3VsdEFjdGlvbiwgaXNTdG9yZVJlc2V0QWN0aW9uLCBpc1N1YnNjcmlwdGlvblJlc3VsdEFjdGlvbiwgaXNXcml0ZUFjdGlvbiwgfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IHdyaXRlUmVzdWx0VG9TdG9yZSB9IGZyb20gJy4vd3JpdGVUb1N0b3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uRGF0YVByb3h5IH0gZnJvbSAnLi4vZGF0YS9wcm94eSc7XG5pbXBvcnQgeyBnZXRPcGVyYXRpb25OYW1lIH0gZnJvbSAnLi4vcXVlcmllcy9nZXRGcm9tQVNUJztcbmltcG9ydCB7IGdyYXBoUUxSZXN1bHRIYXNFcnJvciB9IGZyb20gJy4vc3RvcmVVdGlscyc7XG5pbXBvcnQgeyByZXBsYWNlUXVlcnlSZXN1bHRzIH0gZnJvbSAnLi9yZXBsYWNlUXVlcnlSZXN1bHRzJztcbmltcG9ydCB7IGRpZmZRdWVyeUFnYWluc3RTdG9yZSB9IGZyb20gJy4vcmVhZEZyb21TdG9yZSc7XG5pbXBvcnQgeyB0cnlGdW5jdGlvbk9yTG9nRXJyb3IgfSBmcm9tICcuLi91dGlsL2Vycm9ySGFuZGxpbmcnO1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGEocHJldmlvdXNTdGF0ZSwgYWN0aW9uLCBjb25maWcpIHtcbiAgICBpZiAocHJldmlvdXNTdGF0ZSA9PT0gdm9pZCAwKSB7IHByZXZpb3VzU3RhdGUgPSB7fTsgfVxuICAgIHZhciBjb25zdEFjdGlvbiA9IGFjdGlvbjtcbiAgICBpZiAoaXNRdWVyeVJlc3VsdEFjdGlvbihhY3Rpb24pKSB7XG4gICAgICAgIGlmIChhY3Rpb24uZmV0Y2hNb3JlRm9yUXVlcnlJZCkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzU3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFncmFwaFFMUmVzdWx0SGFzRXJyb3IoYWN0aW9uLnJlc3VsdCkpIHtcbiAgICAgICAgICAgIHZhciBjbG9uZWRTdGF0ZSA9IF9fYXNzaWduKHt9LCBwcmV2aW91c1N0YXRlKTtcbiAgICAgICAgICAgIHZhciBuZXdTdGF0ZV8xID0gd3JpdGVSZXN1bHRUb1N0b3JlKHtcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGFjdGlvbi5yZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICBkYXRhSWQ6ICdST09UX1FVRVJZJyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogYWN0aW9uLmRvY3VtZW50LFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogYWN0aW9uLnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBzdG9yZTogY2xvbmVkU3RhdGUsXG4gICAgICAgICAgICAgICAgZGF0YUlkRnJvbU9iamVjdDogY29uZmlnLmRhdGFJZEZyb21PYmplY3QsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IGNvbmZpZy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uZXh0cmFSZWR1Y2Vycykge1xuICAgICAgICAgICAgICAgIGFjdGlvbi5leHRyYVJlZHVjZXJzLmZvckVhY2goZnVuY3Rpb24gKHJlZHVjZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGVfMSA9IHJlZHVjZXIobmV3U3RhdGVfMSwgY29uc3RBY3Rpb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlXzE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoaXNTdWJzY3JpcHRpb25SZXN1bHRBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICBpZiAoIWdyYXBoUUxSZXN1bHRIYXNFcnJvcihhY3Rpb24ucmVzdWx0KSkge1xuICAgICAgICAgICAgdmFyIGNsb25lZFN0YXRlID0gX19hc3NpZ24oe30sIHByZXZpb3VzU3RhdGUpO1xuICAgICAgICAgICAgdmFyIG5ld1N0YXRlXzIgPSB3cml0ZVJlc3VsdFRvU3RvcmUoe1xuICAgICAgICAgICAgICAgIHJlc3VsdDogYWN0aW9uLnJlc3VsdC5kYXRhLFxuICAgICAgICAgICAgICAgIGRhdGFJZDogJ1JPT1RfU1VCU0NSSVBUSU9OJyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogYWN0aW9uLmRvY3VtZW50LFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogYWN0aW9uLnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBzdG9yZTogY2xvbmVkU3RhdGUsXG4gICAgICAgICAgICAgICAgZGF0YUlkRnJvbU9iamVjdDogY29uZmlnLmRhdGFJZEZyb21PYmplY3QsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IGNvbmZpZy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uZXh0cmFSZWR1Y2Vycykge1xuICAgICAgICAgICAgICAgIGFjdGlvbi5leHRyYVJlZHVjZXJzLmZvckVhY2goZnVuY3Rpb24gKHJlZHVjZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGVfMiA9IHJlZHVjZXIobmV3U3RhdGVfMiwgY29uc3RBY3Rpb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlXzI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoaXNNdXRhdGlvblJlc3VsdEFjdGlvbihjb25zdEFjdGlvbikpIHtcbiAgICAgICAgaWYgKCFjb25zdEFjdGlvbi5yZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgICAgICB2YXIgY2xvbmVkU3RhdGUgPSBfX2Fzc2lnbih7fSwgcHJldmlvdXNTdGF0ZSk7XG4gICAgICAgICAgICB2YXIgbmV3U3RhdGVfMyA9IHdyaXRlUmVzdWx0VG9TdG9yZSh7XG4gICAgICAgICAgICAgICAgcmVzdWx0OiBjb25zdEFjdGlvbi5yZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICBkYXRhSWQ6ICdST09UX01VVEFUSU9OJyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogY29uc3RBY3Rpb24uZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiBjb25zdEFjdGlvbi52YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgc3RvcmU6IGNsb25lZFN0YXRlLFxuICAgICAgICAgICAgICAgIGRhdGFJZEZyb21PYmplY3Q6IGNvbmZpZy5kYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiBjb25maWcuZnJhZ21lbnRNYXRjaGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgdXBkYXRlUXVlcmllc18xID0gY29uc3RBY3Rpb24udXBkYXRlUXVlcmllcztcbiAgICAgICAgICAgIGlmICh1cGRhdGVRdWVyaWVzXzEpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVRdWVyaWVzXzEpXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGlkKSB7IHJldHVybiB1cGRhdGVRdWVyaWVzXzFbaWRdOyB9KVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EgPSB1cGRhdGVRdWVyaWVzXzFbcXVlcnlJZF0sIHF1ZXJ5ID0gX2EucXVlcnksIHJlZHVjZXIgPSBfYS5yZWR1Y2VyO1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2IgPSBkaWZmUXVlcnlBZ2FpbnN0U3RvcmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmU6IHByZXZpb3VzU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogcXVlcnkuZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHF1ZXJ5LnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblBhcnRpYWxEYXRhOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IGNvbmZpZy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgfSksIGN1cnJlbnRRdWVyeVJlc3VsdCA9IF9iLnJlc3VsdCwgaXNNaXNzaW5nID0gX2IuaXNNaXNzaW5nO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNaXNzaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRRdWVyeVJlc3VsdCA9IHRyeUZ1bmN0aW9uT3JMb2dFcnJvcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlcihjdXJyZW50UXVlcnlSZXN1bHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvblJlc3VsdDogY29uc3RBY3Rpb24ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5TmFtZTogZ2V0T3BlcmF0aW9uTmFtZShxdWVyeS5kb2N1bWVudCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlWYXJpYWJsZXM6IHF1ZXJ5LnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRRdWVyeVJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGVfMyA9IHdyaXRlUmVzdWx0VG9TdG9yZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBuZXh0UXVlcnlSZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUlkOiAnUk9PVF9RVUVSWScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQ6IHF1ZXJ5LmRvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogcXVlcnkudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlOiBuZXdTdGF0ZV8zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFJZEZyb21PYmplY3Q6IGNvbmZpZy5kYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiBjb25maWcuZnJhZ21lbnRNYXRjaGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25zdEFjdGlvbi51cGRhdGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlXzEgPSBjb25zdEFjdGlvbi51cGRhdGU7XG4gICAgICAgICAgICAgICAgdmFyIHByb3h5XzEgPSBuZXcgVHJhbnNhY3Rpb25EYXRhUHJveHkobmV3U3RhdGVfMywgY29uZmlnKTtcbiAgICAgICAgICAgICAgICB0cnlGdW5jdGlvbk9yTG9nRXJyb3IoZnVuY3Rpb24gKCkgeyByZXR1cm4gdXBkYXRlXzEocHJveHlfMSwgY29uc3RBY3Rpb24ucmVzdWx0KTsgfSk7XG4gICAgICAgICAgICAgICAgdmFyIHdyaXRlcyA9IHByb3h5XzEuZmluaXNoKCk7XG4gICAgICAgICAgICAgICAgbmV3U3RhdGVfMyA9IGRhdGEobmV3U3RhdGVfMywgeyB0eXBlOiAnQVBPTExPX1dSSVRFJywgd3JpdGVzOiB3cml0ZXMgfSwgY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25zdEFjdGlvbi5leHRyYVJlZHVjZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3RBY3Rpb24uZXh0cmFSZWR1Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uIChyZWR1Y2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlXzMgPSByZWR1Y2VyKG5ld1N0YXRlXzMsIGNvbnN0QWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZV8zO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzVXBkYXRlUXVlcnlSZXN1bHRBY3Rpb24oY29uc3RBY3Rpb24pKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlUXVlcnlSZXN1bHRzKHByZXZpb3VzU3RhdGUsIGNvbnN0QWN0aW9uLCBjb25maWcpO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1N0b3JlUmVzZXRBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzV3JpdGVBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICByZXR1cm4gYWN0aW9uLndyaXRlcy5yZWR1Y2UoZnVuY3Rpb24gKGN1cnJlbnRTdGF0ZSwgd3JpdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB3cml0ZVJlc3VsdFRvU3RvcmUoe1xuICAgICAgICAgICAgICAgIHJlc3VsdDogd3JpdGUucmVzdWx0LFxuICAgICAgICAgICAgICAgIGRhdGFJZDogd3JpdGUucm9vdElkLFxuICAgICAgICAgICAgICAgIGRvY3VtZW50OiB3cml0ZS5kb2N1bWVudCxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHdyaXRlLnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBzdG9yZTogY3VycmVudFN0YXRlLFxuICAgICAgICAgICAgICAgIGRhdGFJZEZyb21PYmplY3Q6IGNvbmZpZy5kYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiBjb25maWcuZnJhZ21lbnRNYXRjaGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIF9fYXNzaWduKHt9LCBwcmV2aW91c1N0YXRlKSk7XG4gICAgfVxuICAgIHJldHVybiBwcmV2aW91c1N0YXRlO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RvcmUuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9kYXRhL3N0b3JlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///114\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = data;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__actions__ = __webpack_require__(/*! ../actions */ 65);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__writeToStore__ = __webpack_require__(/*! ./writeToStore */ 32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__data_proxy__ = __webpack_require__(/*! ../data/proxy */ 115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__queries_getFromAST__ = __webpack_require__(/*! ../queries/getFromAST */ 16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__storeUtils__ = __webpack_require__(/*! ./storeUtils */ 17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__replaceQueryResults__ = __webpack_require__(/*! ./replaceQueryResults */ 271);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__readFromStore__ = __webpack_require__(/*! ./readFromStore */ 26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_errorHandling__ = __webpack_require__(/*! ../util/errorHandling */ 119);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\nfunction data(previousState, action, config) {\n if (previousState === void 0) { previousState = {}; }\n var constAction = action;\n if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"d\" /* isQueryResultAction */])(action)) {\n if (action.fetchMoreForQueryId) {\n return previousState;\n }\n if (!Object(__WEBPACK_IMPORTED_MODULE_4__storeUtils__[\"b\" /* graphQLResultHasError */])(action.result)) {\n var clonedState = __assign({}, previousState);\n var newState_1 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: action.result.data,\n dataId: 'ROOT_QUERY',\n document: action.document,\n variables: action.variables,\n store: clonedState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n if (action.extraReducers) {\n action.extraReducers.forEach(function (reducer) {\n newState_1 = reducer(newState_1, constAction);\n });\n }\n return newState_1;\n }\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"f\" /* isSubscriptionResultAction */])(action)) {\n if (!Object(__WEBPACK_IMPORTED_MODULE_4__storeUtils__[\"b\" /* graphQLResultHasError */])(action.result)) {\n var clonedState = __assign({}, previousState);\n var newState_2 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: action.result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n document: action.document,\n variables: action.variables,\n store: clonedState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n if (action.extraReducers) {\n action.extraReducers.forEach(function (reducer) {\n newState_2 = reducer(newState_2, constAction);\n });\n }\n return newState_2;\n }\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"c\" /* isMutationResultAction */])(constAction)) {\n if (!constAction.result.errors) {\n var clonedState = __assign({}, previousState);\n var newState_3 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: constAction.result.data,\n dataId: 'ROOT_MUTATION',\n document: constAction.document,\n variables: constAction.variables,\n store: clonedState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n var updateQueries_1 = constAction.updateQueries;\n if (updateQueries_1) {\n Object.keys(updateQueries_1)\n .filter(function (id) { return updateQueries_1[id]; })\n .forEach(function (queryId) {\n var _a = updateQueries_1[queryId], query = _a.query, reducer = _a.reducer;\n var _b = Object(__WEBPACK_IMPORTED_MODULE_6__readFromStore__[\"a\" /* diffQueryAgainstStore */])({\n store: previousState,\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n fragmentMatcherFunction: config.fragmentMatcher,\n config: config,\n }), currentQueryResult = _b.result, isMissing = _b.isMissing;\n if (isMissing) {\n return;\n }\n var nextQueryResult = Object(__WEBPACK_IMPORTED_MODULE_7__util_errorHandling__[\"a\" /* tryFunctionOrLogError */])(function () {\n return reducer(currentQueryResult, {\n mutationResult: constAction.result,\n queryName: Object(__WEBPACK_IMPORTED_MODULE_3__queries_getFromAST__[\"h\" /* getOperationName */])(query.document),\n queryVariables: query.variables,\n });\n });\n if (nextQueryResult) {\n newState_3 = Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n document: query.document,\n variables: query.variables,\n store: newState_3,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n }\n });\n }\n if (constAction.update) {\n var update_1 = constAction.update;\n var proxy_1 = new __WEBPACK_IMPORTED_MODULE_2__data_proxy__[\"b\" /* TransactionDataProxy */](newState_3, config);\n Object(__WEBPACK_IMPORTED_MODULE_7__util_errorHandling__[\"a\" /* tryFunctionOrLogError */])(function () { return update_1(proxy_1, constAction.result); });\n var writes = proxy_1.finish();\n newState_3 = data(newState_3, { type: 'APOLLO_WRITE', writes: writes }, config);\n }\n if (constAction.extraReducers) {\n constAction.extraReducers.forEach(function (reducer) {\n newState_3 = reducer(newState_3, constAction);\n });\n }\n return newState_3;\n }\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"g\" /* isUpdateQueryResultAction */])(constAction)) {\n return Object(__WEBPACK_IMPORTED_MODULE_5__replaceQueryResults__[\"a\" /* replaceQueryResults */])(previousState, constAction, config);\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"e\" /* isStoreResetAction */])(action)) {\n return {};\n }\n else if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"h\" /* isWriteAction */])(action)) {\n return action.writes.reduce(function (currentState, write) {\n return Object(__WEBPACK_IMPORTED_MODULE_1__writeToStore__[\"a\" /* writeResultToStore */])({\n result: write.result,\n dataId: write.rootId,\n document: write.document,\n variables: write.variables,\n store: currentState,\n dataIdFromObject: config.dataIdFromObject,\n fragmentMatcherFunction: config.fragmentMatcher,\n });\n }, __assign({}, previousState));\n }\n return previousState;\n}\n//# sourceMappingURL=store.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTE0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvZGF0YS9zdG9yZS5qcz8zMTlkIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgaXNRdWVyeVJlc3VsdEFjdGlvbiwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbiwgaXNVcGRhdGVRdWVyeVJlc3VsdEFjdGlvbiwgaXNTdG9yZVJlc2V0QWN0aW9uLCBpc1N1YnNjcmlwdGlvblJlc3VsdEFjdGlvbiwgaXNXcml0ZUFjdGlvbiwgfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IHdyaXRlUmVzdWx0VG9TdG9yZSB9IGZyb20gJy4vd3JpdGVUb1N0b3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uRGF0YVByb3h5IH0gZnJvbSAnLi4vZGF0YS9wcm94eSc7XG5pbXBvcnQgeyBnZXRPcGVyYXRpb25OYW1lIH0gZnJvbSAnLi4vcXVlcmllcy9nZXRGcm9tQVNUJztcbmltcG9ydCB7IGdyYXBoUUxSZXN1bHRIYXNFcnJvciB9IGZyb20gJy4vc3RvcmVVdGlscyc7XG5pbXBvcnQgeyByZXBsYWNlUXVlcnlSZXN1bHRzIH0gZnJvbSAnLi9yZXBsYWNlUXVlcnlSZXN1bHRzJztcbmltcG9ydCB7IGRpZmZRdWVyeUFnYWluc3RTdG9yZSB9IGZyb20gJy4vcmVhZEZyb21TdG9yZSc7XG5pbXBvcnQgeyB0cnlGdW5jdGlvbk9yTG9nRXJyb3IgfSBmcm9tICcuLi91dGlsL2Vycm9ySGFuZGxpbmcnO1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGEocHJldmlvdXNTdGF0ZSwgYWN0aW9uLCBjb25maWcpIHtcbiAgICBpZiAocHJldmlvdXNTdGF0ZSA9PT0gdm9pZCAwKSB7IHByZXZpb3VzU3RhdGUgPSB7fTsgfVxuICAgIHZhciBjb25zdEFjdGlvbiA9IGFjdGlvbjtcbiAgICBpZiAoaXNRdWVyeVJlc3VsdEFjdGlvbihhY3Rpb24pKSB7XG4gICAgICAgIGlmIChhY3Rpb24uZmV0Y2hNb3JlRm9yUXVlcnlJZCkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzU3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFncmFwaFFMUmVzdWx0SGFzRXJyb3IoYWN0aW9uLnJlc3VsdCkpIHtcbiAgICAgICAgICAgIHZhciBjbG9uZWRTdGF0ZSA9IF9fYXNzaWduKHt9LCBwcmV2aW91c1N0YXRlKTtcbiAgICAgICAgICAgIHZhciBuZXdTdGF0ZV8xID0gd3JpdGVSZXN1bHRUb1N0b3JlKHtcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGFjdGlvbi5yZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICBkYXRhSWQ6ICdST09UX1FVRVJZJyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogYWN0aW9uLmRvY3VtZW50LFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogYWN0aW9uLnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBzdG9yZTogY2xvbmVkU3RhdGUsXG4gICAgICAgICAgICAgICAgZGF0YUlkRnJvbU9iamVjdDogY29uZmlnLmRhdGFJZEZyb21PYmplY3QsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IGNvbmZpZy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uZXh0cmFSZWR1Y2Vycykge1xuICAgICAgICAgICAgICAgIGFjdGlvbi5leHRyYVJlZHVjZXJzLmZvckVhY2goZnVuY3Rpb24gKHJlZHVjZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGVfMSA9IHJlZHVjZXIobmV3U3RhdGVfMSwgY29uc3RBY3Rpb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlXzE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoaXNTdWJzY3JpcHRpb25SZXN1bHRBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICBpZiAoIWdyYXBoUUxSZXN1bHRIYXNFcnJvcihhY3Rpb24ucmVzdWx0KSkge1xuICAgICAgICAgICAgdmFyIGNsb25lZFN0YXRlID0gX19hc3NpZ24oe30sIHByZXZpb3VzU3RhdGUpO1xuICAgICAgICAgICAgdmFyIG5ld1N0YXRlXzIgPSB3cml0ZVJlc3VsdFRvU3RvcmUoe1xuICAgICAgICAgICAgICAgIHJlc3VsdDogYWN0aW9uLnJlc3VsdC5kYXRhLFxuICAgICAgICAgICAgICAgIGRhdGFJZDogJ1JPT1RfU1VCU0NSSVBUSU9OJyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogYWN0aW9uLmRvY3VtZW50LFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogYWN0aW9uLnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBzdG9yZTogY2xvbmVkU3RhdGUsXG4gICAgICAgICAgICAgICAgZGF0YUlkRnJvbU9iamVjdDogY29uZmlnLmRhdGFJZEZyb21PYmplY3QsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IGNvbmZpZy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uZXh0cmFSZWR1Y2Vycykge1xuICAgICAgICAgICAgICAgIGFjdGlvbi5leHRyYVJlZHVjZXJzLmZvckVhY2goZnVuY3Rpb24gKHJlZHVjZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGVfMiA9IHJlZHVjZXIobmV3U3RhdGVfMiwgY29uc3RBY3Rpb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld1N0YXRlXzI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoaXNNdXRhdGlvblJlc3VsdEFjdGlvbihjb25zdEFjdGlvbikpIHtcbiAgICAgICAgaWYgKCFjb25zdEFjdGlvbi5yZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgICAgICB2YXIgY2xvbmVkU3RhdGUgPSBfX2Fzc2lnbih7fSwgcHJldmlvdXNTdGF0ZSk7XG4gICAgICAgICAgICB2YXIgbmV3U3RhdGVfMyA9IHdyaXRlUmVzdWx0VG9TdG9yZSh7XG4gICAgICAgICAgICAgICAgcmVzdWx0OiBjb25zdEFjdGlvbi5yZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICBkYXRhSWQ6ICdST09UX01VVEFUSU9OJyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogY29uc3RBY3Rpb24uZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiBjb25zdEFjdGlvbi52YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgc3RvcmU6IGNsb25lZFN0YXRlLFxuICAgICAgICAgICAgICAgIGRhdGFJZEZyb21PYmplY3Q6IGNvbmZpZy5kYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiBjb25maWcuZnJhZ21lbnRNYXRjaGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgdXBkYXRlUXVlcmllc18xID0gY29uc3RBY3Rpb24udXBkYXRlUXVlcmllcztcbiAgICAgICAgICAgIGlmICh1cGRhdGVRdWVyaWVzXzEpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVRdWVyaWVzXzEpXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGlkKSB7IHJldHVybiB1cGRhdGVRdWVyaWVzXzFbaWRdOyB9KVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EgPSB1cGRhdGVRdWVyaWVzXzFbcXVlcnlJZF0sIHF1ZXJ5ID0gX2EucXVlcnksIHJlZHVjZXIgPSBfYS5yZWR1Y2VyO1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2IgPSBkaWZmUXVlcnlBZ2FpbnN0U3RvcmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmU6IHByZXZpb3VzU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogcXVlcnkuZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHF1ZXJ5LnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblBhcnRpYWxEYXRhOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IGNvbmZpZy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgfSksIGN1cnJlbnRRdWVyeVJlc3VsdCA9IF9iLnJlc3VsdCwgaXNNaXNzaW5nID0gX2IuaXNNaXNzaW5nO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNaXNzaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRRdWVyeVJlc3VsdCA9IHRyeUZ1bmN0aW9uT3JMb2dFcnJvcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdWNlcihjdXJyZW50UXVlcnlSZXN1bHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvblJlc3VsdDogY29uc3RBY3Rpb24ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5TmFtZTogZ2V0T3BlcmF0aW9uTmFtZShxdWVyeS5kb2N1bWVudCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlWYXJpYWJsZXM6IHF1ZXJ5LnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRRdWVyeVJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGVfMyA9IHdyaXRlUmVzdWx0VG9TdG9yZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBuZXh0UXVlcnlSZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUlkOiAnUk9PVF9RVUVSWScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQ6IHF1ZXJ5LmRvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogcXVlcnkudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlOiBuZXdTdGF0ZV8zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFJZEZyb21PYmplY3Q6IGNvbmZpZy5kYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiBjb25maWcuZnJhZ21lbnRNYXRjaGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25zdEFjdGlvbi51cGRhdGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlXzEgPSBjb25zdEFjdGlvbi51cGRhdGU7XG4gICAgICAgICAgICAgICAgdmFyIHByb3h5XzEgPSBuZXcgVHJhbnNhY3Rpb25EYXRhUHJveHkobmV3U3RhdGVfMywgY29uZmlnKTtcbiAgICAgICAgICAgICAgICB0cnlGdW5jdGlvbk9yTG9nRXJyb3IoZnVuY3Rpb24gKCkgeyByZXR1cm4gdXBkYXRlXzEocHJveHlfMSwgY29uc3RBY3Rpb24ucmVzdWx0KTsgfSk7XG4gICAgICAgICAgICAgICAgdmFyIHdyaXRlcyA9IHByb3h5XzEuZmluaXNoKCk7XG4gICAgICAgICAgICAgICAgbmV3U3RhdGVfMyA9IGRhdGEobmV3U3RhdGVfMywgeyB0eXBlOiAnQVBPTExPX1dSSVRFJywgd3JpdGVzOiB3cml0ZXMgfSwgY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25zdEFjdGlvbi5leHRyYVJlZHVjZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3RBY3Rpb24uZXh0cmFSZWR1Y2Vycy5mb3JFYWNoKGZ1bmN0aW9uIChyZWR1Y2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlXzMgPSByZWR1Y2VyKG5ld1N0YXRlXzMsIGNvbnN0QWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZV8zO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzVXBkYXRlUXVlcnlSZXN1bHRBY3Rpb24oY29uc3RBY3Rpb24pKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlUXVlcnlSZXN1bHRzKHByZXZpb3VzU3RhdGUsIGNvbnN0QWN0aW9uLCBjb25maWcpO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1N0b3JlUmVzZXRBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzV3JpdGVBY3Rpb24oYWN0aW9uKSkge1xuICAgICAgICByZXR1cm4gYWN0aW9uLndyaXRlcy5yZWR1Y2UoZnVuY3Rpb24gKGN1cnJlbnRTdGF0ZSwgd3JpdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB3cml0ZVJlc3VsdFRvU3RvcmUoe1xuICAgICAgICAgICAgICAgIHJlc3VsdDogd3JpdGUucmVzdWx0LFxuICAgICAgICAgICAgICAgIGRhdGFJZDogd3JpdGUucm9vdElkLFxuICAgICAgICAgICAgICAgIGRvY3VtZW50OiB3cml0ZS5kb2N1bWVudCxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHdyaXRlLnZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICBzdG9yZTogY3VycmVudFN0YXRlLFxuICAgICAgICAgICAgICAgIGRhdGFJZEZyb21PYmplY3Q6IGNvbmZpZy5kYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiBjb25maWcuZnJhZ21lbnRNYXRjaGVyLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIF9fYXNzaWduKHt9LCBwcmV2aW91c1N0YXRlKSk7XG4gICAgfVxuICAgIHJldHVybiBwcmV2aW91c1N0YXRlO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RvcmUuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9kYXRhL3N0b3JlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///114\n"); /***/ }), /* 115 */ @@ -1460,7 +1460,7 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getDataWithOptimisticResults;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = optimistic;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__actions__ = __webpack_require__(/*! ../actions */ 64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__data_store__ = __webpack_require__(/*! ../data/store */ 114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_assign__ = __webpack_require__(/*! ../util/assign */ 24);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nvar optimisticDefaultState = [];\nfunction getDataWithOptimisticResults(store) {\n if (store.optimistic.length === 0) {\n return store.data;\n }\n var patches = store.optimistic.map(function (opt) { return opt.data; });\n return __WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */].apply(void 0, [{}, store.data].concat(patches));\n}\nfunction optimistic(previousState, action, store, config) {\n if (previousState === void 0) { previousState = optimisticDefaultState; }\n if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"b\" /* isMutationInitAction */])(action) && action.optimisticResponse) {\n var optimisticResponse = void 0;\n if (typeof action.optimisticResponse === 'function') {\n optimisticResponse = action.optimisticResponse(action.variables);\n }\n else {\n optimisticResponse = action.optimisticResponse;\n }\n var fakeMutationResultAction = {\n type: 'APOLLO_MUTATION_RESULT',\n result: { data: optimisticResponse },\n document: action.mutation,\n operationName: action.operationName,\n variables: action.variables,\n mutationId: action.mutationId,\n extraReducers: action.extraReducers,\n updateQueries: action.updateQueries,\n update: action.update,\n };\n var optimisticData = getDataWithOptimisticResults(__assign({}, store, { optimistic: previousState }));\n var patch = getOptimisticDataPatch(optimisticData, fakeMutationResultAction, store.queries, store.mutations, config);\n var optimisticState = {\n action: fakeMutationResultAction,\n data: patch,\n mutationId: action.mutationId,\n };\n var newState = previousState.concat([optimisticState]);\n return newState;\n }\n else if ((Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"a\" /* isMutationErrorAction */])(action) || Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"c\" /* isMutationResultAction */])(action)) &&\n previousState.some(function (change) { return change.mutationId === action.mutationId; })) {\n return rollbackOptimisticData(function (change) { return change.mutationId === action.mutationId; }, previousState, store, config);\n }\n return previousState;\n}\nfunction getOptimisticDataPatch(previousData, optimisticAction, queries, mutations, config) {\n var optimisticData = Object(__WEBPACK_IMPORTED_MODULE_1__data_store__[\"a\" /* data */])(previousData, optimisticAction, config);\n var patch = {};\n Object.keys(optimisticData).forEach(function (key) {\n if (optimisticData[key] !== previousData[key]) {\n patch[key] = optimisticData[key];\n }\n });\n return patch;\n}\nfunction rollbackOptimisticData(filterFn, previousState, store, config) {\n if (previousState === void 0) { previousState = optimisticDefaultState; }\n var optimisticData = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, store.data);\n var newState = previousState\n .filter(function (item) { return !filterFn(item); })\n .map(function (change) {\n var patch = getOptimisticDataPatch(optimisticData, change.action, store.queries, store.mutations, config);\n Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])(optimisticData, patch);\n return __assign({}, change, { data: patch });\n });\n return newState;\n}\n//# sourceMappingURL=store.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTE2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvb3B0aW1pc3RpYy1kYXRhL3N0b3JlLmpzP2Q1ODkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBpc011dGF0aW9uSW5pdEFjdGlvbiwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbiwgaXNNdXRhdGlvbkVycm9yQWN0aW9uLCB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZGF0YSB9IGZyb20gJy4uL2RhdGEvc3RvcmUnO1xuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnLi4vdXRpbC9hc3NpZ24nO1xudmFyIG9wdGltaXN0aWNEZWZhdWx0U3RhdGUgPSBbXTtcbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKHN0b3JlKSB7XG4gICAgaWYgKHN0b3JlLm9wdGltaXN0aWMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdG9yZS5kYXRhO1xuICAgIH1cbiAgICB2YXIgcGF0Y2hlcyA9IHN0b3JlLm9wdGltaXN0aWMubWFwKGZ1bmN0aW9uIChvcHQpIHsgcmV0dXJuIG9wdC5kYXRhOyB9KTtcbiAgICByZXR1cm4gYXNzaWduLmFwcGx5KHZvaWQgMCwgW3t9LCBzdG9yZS5kYXRhXS5jb25jYXQocGF0Y2hlcykpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG9wdGltaXN0aWMocHJldmlvdXNTdGF0ZSwgYWN0aW9uLCBzdG9yZSwgY29uZmlnKSB7XG4gICAgaWYgKHByZXZpb3VzU3RhdGUgPT09IHZvaWQgMCkgeyBwcmV2aW91c1N0YXRlID0gb3B0aW1pc3RpY0RlZmF1bHRTdGF0ZTsgfVxuICAgIGlmIChpc011dGF0aW9uSW5pdEFjdGlvbihhY3Rpb24pICYmIGFjdGlvbi5vcHRpbWlzdGljUmVzcG9uc2UpIHtcbiAgICAgICAgdmFyIG9wdGltaXN0aWNSZXNwb25zZSA9IHZvaWQgMDtcbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24ub3B0aW1pc3RpY1Jlc3BvbnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBvcHRpbWlzdGljUmVzcG9uc2UgPSBhY3Rpb24ub3B0aW1pc3RpY1Jlc3BvbnNlKGFjdGlvbi52YXJpYWJsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlID0gYWN0aW9uLm9wdGltaXN0aWNSZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZmFrZU11dGF0aW9uUmVzdWx0QWN0aW9uID0ge1xuICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19NVVRBVElPTl9SRVNVTFQnLFxuICAgICAgICAgICAgcmVzdWx0OiB7IGRhdGE6IG9wdGltaXN0aWNSZXNwb25zZSB9LFxuICAgICAgICAgICAgZG9jdW1lbnQ6IGFjdGlvbi5tdXRhdGlvbixcbiAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGFjdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgdmFyaWFibGVzOiBhY3Rpb24udmFyaWFibGVzLFxuICAgICAgICAgICAgbXV0YXRpb25JZDogYWN0aW9uLm11dGF0aW9uSWQsXG4gICAgICAgICAgICBleHRyYVJlZHVjZXJzOiBhY3Rpb24uZXh0cmFSZWR1Y2VycyxcbiAgICAgICAgICAgIHVwZGF0ZVF1ZXJpZXM6IGFjdGlvbi51cGRhdGVRdWVyaWVzLFxuICAgICAgICAgICAgdXBkYXRlOiBhY3Rpb24udXBkYXRlLFxuICAgICAgICB9O1xuICAgICAgICB2YXIgb3B0aW1pc3RpY0RhdGEgPSBnZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKF9fYXNzaWduKHt9LCBzdG9yZSwgeyBvcHRpbWlzdGljOiBwcmV2aW91c1N0YXRlIH0pKTtcbiAgICAgICAgdmFyIHBhdGNoID0gZ2V0T3B0aW1pc3RpY0RhdGFQYXRjaChvcHRpbWlzdGljRGF0YSwgZmFrZU11dGF0aW9uUmVzdWx0QWN0aW9uLCBzdG9yZS5xdWVyaWVzLCBzdG9yZS5tdXRhdGlvbnMsIGNvbmZpZyk7XG4gICAgICAgIHZhciBvcHRpbWlzdGljU3RhdGUgPSB7XG4gICAgICAgICAgICBhY3Rpb246IGZha2VNdXRhdGlvblJlc3VsdEFjdGlvbixcbiAgICAgICAgICAgIGRhdGE6IHBhdGNoLFxuICAgICAgICAgICAgbXV0YXRpb25JZDogYWN0aW9uLm11dGF0aW9uSWQsXG4gICAgICAgIH07XG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IHByZXZpb3VzU3RhdGUuY29uY2F0KFtvcHRpbWlzdGljU3RhdGVdKTtcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cbiAgICBlbHNlIGlmICgoaXNNdXRhdGlvbkVycm9yQWN0aW9uKGFjdGlvbikgfHwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pKSAmJlxuICAgICAgICBwcmV2aW91c1N0YXRlLnNvbWUoZnVuY3Rpb24gKGNoYW5nZSkgeyByZXR1cm4gY2hhbmdlLm11dGF0aW9uSWQgPT09IGFjdGlvbi5tdXRhdGlvbklkOyB9KSkge1xuICAgICAgICByZXR1cm4gcm9sbGJhY2tPcHRpbWlzdGljRGF0YShmdW5jdGlvbiAoY2hhbmdlKSB7IHJldHVybiBjaGFuZ2UubXV0YXRpb25JZCA9PT0gYWN0aW9uLm11dGF0aW9uSWQ7IH0sIHByZXZpb3VzU3RhdGUsIHN0b3JlLCBjb25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gcHJldmlvdXNTdGF0ZTtcbn1cbmZ1bmN0aW9uIGdldE9wdGltaXN0aWNEYXRhUGF0Y2gocHJldmlvdXNEYXRhLCBvcHRpbWlzdGljQWN0aW9uLCBxdWVyaWVzLCBtdXRhdGlvbnMsIGNvbmZpZykge1xuICAgIHZhciBvcHRpbWlzdGljRGF0YSA9IGRhdGEocHJldmlvdXNEYXRhLCBvcHRpbWlzdGljQWN0aW9uLCBjb25maWcpO1xuICAgIHZhciBwYXRjaCA9IHt9O1xuICAgIE9iamVjdC5rZXlzKG9wdGltaXN0aWNEYXRhKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgaWYgKG9wdGltaXN0aWNEYXRhW2tleV0gIT09IHByZXZpb3VzRGF0YVtrZXldKSB7XG4gICAgICAgICAgICBwYXRjaFtrZXldID0gb3B0aW1pc3RpY0RhdGFba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwYXRjaDtcbn1cbmZ1bmN0aW9uIHJvbGxiYWNrT3B0aW1pc3RpY0RhdGEoZmlsdGVyRm4sIHByZXZpb3VzU3RhdGUsIHN0b3JlLCBjb25maWcpIHtcbiAgICBpZiAocHJldmlvdXNTdGF0ZSA9PT0gdm9pZCAwKSB7IHByZXZpb3VzU3RhdGUgPSBvcHRpbWlzdGljRGVmYXVsdFN0YXRlOyB9XG4gICAgdmFyIG9wdGltaXN0aWNEYXRhID0gYXNzaWduKHt9LCBzdG9yZS5kYXRhKTtcbiAgICB2YXIgbmV3U3RhdGUgPSBwcmV2aW91c1N0YXRlXG4gICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuICFmaWx0ZXJGbihpdGVtKTsgfSlcbiAgICAgICAgLm1hcChmdW5jdGlvbiAoY2hhbmdlKSB7XG4gICAgICAgIHZhciBwYXRjaCA9IGdldE9wdGltaXN0aWNEYXRhUGF0Y2gob3B0aW1pc3RpY0RhdGEsIGNoYW5nZS5hY3Rpb24sIHN0b3JlLnF1ZXJpZXMsIHN0b3JlLm11dGF0aW9ucywgY29uZmlnKTtcbiAgICAgICAgYXNzaWduKG9wdGltaXN0aWNEYXRhLCBwYXRjaCk7XG4gICAgICAgIHJldHVybiBfX2Fzc2lnbih7fSwgY2hhbmdlLCB7IGRhdGE6IHBhdGNoIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdTdGF0ZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0b3JlLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvb3B0aW1pc3RpYy1kYXRhL3N0b3JlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///116\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getDataWithOptimisticResults;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = optimistic;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__actions__ = __webpack_require__(/*! ../actions */ 65);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__data_store__ = __webpack_require__(/*! ../data/store */ 114);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_assign__ = __webpack_require__(/*! ../util/assign */ 24);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nvar optimisticDefaultState = [];\nfunction getDataWithOptimisticResults(store) {\n if (store.optimistic.length === 0) {\n return store.data;\n }\n var patches = store.optimistic.map(function (opt) { return opt.data; });\n return __WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */].apply(void 0, [{}, store.data].concat(patches));\n}\nfunction optimistic(previousState, action, store, config) {\n if (previousState === void 0) { previousState = optimisticDefaultState; }\n if (Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"b\" /* isMutationInitAction */])(action) && action.optimisticResponse) {\n var optimisticResponse = void 0;\n if (typeof action.optimisticResponse === 'function') {\n optimisticResponse = action.optimisticResponse(action.variables);\n }\n else {\n optimisticResponse = action.optimisticResponse;\n }\n var fakeMutationResultAction = {\n type: 'APOLLO_MUTATION_RESULT',\n result: { data: optimisticResponse },\n document: action.mutation,\n operationName: action.operationName,\n variables: action.variables,\n mutationId: action.mutationId,\n extraReducers: action.extraReducers,\n updateQueries: action.updateQueries,\n update: action.update,\n };\n var optimisticData = getDataWithOptimisticResults(__assign({}, store, { optimistic: previousState }));\n var patch = getOptimisticDataPatch(optimisticData, fakeMutationResultAction, store.queries, store.mutations, config);\n var optimisticState = {\n action: fakeMutationResultAction,\n data: patch,\n mutationId: action.mutationId,\n };\n var newState = previousState.concat([optimisticState]);\n return newState;\n }\n else if ((Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"a\" /* isMutationErrorAction */])(action) || Object(__WEBPACK_IMPORTED_MODULE_0__actions__[\"c\" /* isMutationResultAction */])(action)) &&\n previousState.some(function (change) { return change.mutationId === action.mutationId; })) {\n return rollbackOptimisticData(function (change) { return change.mutationId === action.mutationId; }, previousState, store, config);\n }\n return previousState;\n}\nfunction getOptimisticDataPatch(previousData, optimisticAction, queries, mutations, config) {\n var optimisticData = Object(__WEBPACK_IMPORTED_MODULE_1__data_store__[\"a\" /* data */])(previousData, optimisticAction, config);\n var patch = {};\n Object.keys(optimisticData).forEach(function (key) {\n if (optimisticData[key] !== previousData[key]) {\n patch[key] = optimisticData[key];\n }\n });\n return patch;\n}\nfunction rollbackOptimisticData(filterFn, previousState, store, config) {\n if (previousState === void 0) { previousState = optimisticDefaultState; }\n var optimisticData = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, store.data);\n var newState = previousState\n .filter(function (item) { return !filterFn(item); })\n .map(function (change) {\n var patch = getOptimisticDataPatch(optimisticData, change.action, store.queries, store.mutations, config);\n Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])(optimisticData, patch);\n return __assign({}, change, { data: patch });\n });\n return newState;\n}\n//# sourceMappingURL=store.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTE2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvb3B0aW1pc3RpYy1kYXRhL3N0b3JlLmpzP2Q1ODkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBpc011dGF0aW9uSW5pdEFjdGlvbiwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbiwgaXNNdXRhdGlvbkVycm9yQWN0aW9uLCB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZGF0YSB9IGZyb20gJy4uL2RhdGEvc3RvcmUnO1xuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnLi4vdXRpbC9hc3NpZ24nO1xudmFyIG9wdGltaXN0aWNEZWZhdWx0U3RhdGUgPSBbXTtcbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKHN0b3JlKSB7XG4gICAgaWYgKHN0b3JlLm9wdGltaXN0aWMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdG9yZS5kYXRhO1xuICAgIH1cbiAgICB2YXIgcGF0Y2hlcyA9IHN0b3JlLm9wdGltaXN0aWMubWFwKGZ1bmN0aW9uIChvcHQpIHsgcmV0dXJuIG9wdC5kYXRhOyB9KTtcbiAgICByZXR1cm4gYXNzaWduLmFwcGx5KHZvaWQgMCwgW3t9LCBzdG9yZS5kYXRhXS5jb25jYXQocGF0Y2hlcykpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG9wdGltaXN0aWMocHJldmlvdXNTdGF0ZSwgYWN0aW9uLCBzdG9yZSwgY29uZmlnKSB7XG4gICAgaWYgKHByZXZpb3VzU3RhdGUgPT09IHZvaWQgMCkgeyBwcmV2aW91c1N0YXRlID0gb3B0aW1pc3RpY0RlZmF1bHRTdGF0ZTsgfVxuICAgIGlmIChpc011dGF0aW9uSW5pdEFjdGlvbihhY3Rpb24pICYmIGFjdGlvbi5vcHRpbWlzdGljUmVzcG9uc2UpIHtcbiAgICAgICAgdmFyIG9wdGltaXN0aWNSZXNwb25zZSA9IHZvaWQgMDtcbiAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24ub3B0aW1pc3RpY1Jlc3BvbnNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBvcHRpbWlzdGljUmVzcG9uc2UgPSBhY3Rpb24ub3B0aW1pc3RpY1Jlc3BvbnNlKGFjdGlvbi52YXJpYWJsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb3B0aW1pc3RpY1Jlc3BvbnNlID0gYWN0aW9uLm9wdGltaXN0aWNSZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZmFrZU11dGF0aW9uUmVzdWx0QWN0aW9uID0ge1xuICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19NVVRBVElPTl9SRVNVTFQnLFxuICAgICAgICAgICAgcmVzdWx0OiB7IGRhdGE6IG9wdGltaXN0aWNSZXNwb25zZSB9LFxuICAgICAgICAgICAgZG9jdW1lbnQ6IGFjdGlvbi5tdXRhdGlvbixcbiAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGFjdGlvbi5vcGVyYXRpb25OYW1lLFxuICAgICAgICAgICAgdmFyaWFibGVzOiBhY3Rpb24udmFyaWFibGVzLFxuICAgICAgICAgICAgbXV0YXRpb25JZDogYWN0aW9uLm11dGF0aW9uSWQsXG4gICAgICAgICAgICBleHRyYVJlZHVjZXJzOiBhY3Rpb24uZXh0cmFSZWR1Y2VycyxcbiAgICAgICAgICAgIHVwZGF0ZVF1ZXJpZXM6IGFjdGlvbi51cGRhdGVRdWVyaWVzLFxuICAgICAgICAgICAgdXBkYXRlOiBhY3Rpb24udXBkYXRlLFxuICAgICAgICB9O1xuICAgICAgICB2YXIgb3B0aW1pc3RpY0RhdGEgPSBnZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKF9fYXNzaWduKHt9LCBzdG9yZSwgeyBvcHRpbWlzdGljOiBwcmV2aW91c1N0YXRlIH0pKTtcbiAgICAgICAgdmFyIHBhdGNoID0gZ2V0T3B0aW1pc3RpY0RhdGFQYXRjaChvcHRpbWlzdGljRGF0YSwgZmFrZU11dGF0aW9uUmVzdWx0QWN0aW9uLCBzdG9yZS5xdWVyaWVzLCBzdG9yZS5tdXRhdGlvbnMsIGNvbmZpZyk7XG4gICAgICAgIHZhciBvcHRpbWlzdGljU3RhdGUgPSB7XG4gICAgICAgICAgICBhY3Rpb246IGZha2VNdXRhdGlvblJlc3VsdEFjdGlvbixcbiAgICAgICAgICAgIGRhdGE6IHBhdGNoLFxuICAgICAgICAgICAgbXV0YXRpb25JZDogYWN0aW9uLm11dGF0aW9uSWQsXG4gICAgICAgIH07XG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IHByZXZpb3VzU3RhdGUuY29uY2F0KFtvcHRpbWlzdGljU3RhdGVdKTtcbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cbiAgICBlbHNlIGlmICgoaXNNdXRhdGlvbkVycm9yQWN0aW9uKGFjdGlvbikgfHwgaXNNdXRhdGlvblJlc3VsdEFjdGlvbihhY3Rpb24pKSAmJlxuICAgICAgICBwcmV2aW91c1N0YXRlLnNvbWUoZnVuY3Rpb24gKGNoYW5nZSkgeyByZXR1cm4gY2hhbmdlLm11dGF0aW9uSWQgPT09IGFjdGlvbi5tdXRhdGlvbklkOyB9KSkge1xuICAgICAgICByZXR1cm4gcm9sbGJhY2tPcHRpbWlzdGljRGF0YShmdW5jdGlvbiAoY2hhbmdlKSB7IHJldHVybiBjaGFuZ2UubXV0YXRpb25JZCA9PT0gYWN0aW9uLm11dGF0aW9uSWQ7IH0sIHByZXZpb3VzU3RhdGUsIHN0b3JlLCBjb25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gcHJldmlvdXNTdGF0ZTtcbn1cbmZ1bmN0aW9uIGdldE9wdGltaXN0aWNEYXRhUGF0Y2gocHJldmlvdXNEYXRhLCBvcHRpbWlzdGljQWN0aW9uLCBxdWVyaWVzLCBtdXRhdGlvbnMsIGNvbmZpZykge1xuICAgIHZhciBvcHRpbWlzdGljRGF0YSA9IGRhdGEocHJldmlvdXNEYXRhLCBvcHRpbWlzdGljQWN0aW9uLCBjb25maWcpO1xuICAgIHZhciBwYXRjaCA9IHt9O1xuICAgIE9iamVjdC5rZXlzKG9wdGltaXN0aWNEYXRhKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgaWYgKG9wdGltaXN0aWNEYXRhW2tleV0gIT09IHByZXZpb3VzRGF0YVtrZXldKSB7XG4gICAgICAgICAgICBwYXRjaFtrZXldID0gb3B0aW1pc3RpY0RhdGFba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwYXRjaDtcbn1cbmZ1bmN0aW9uIHJvbGxiYWNrT3B0aW1pc3RpY0RhdGEoZmlsdGVyRm4sIHByZXZpb3VzU3RhdGUsIHN0b3JlLCBjb25maWcpIHtcbiAgICBpZiAocHJldmlvdXNTdGF0ZSA9PT0gdm9pZCAwKSB7IHByZXZpb3VzU3RhdGUgPSBvcHRpbWlzdGljRGVmYXVsdFN0YXRlOyB9XG4gICAgdmFyIG9wdGltaXN0aWNEYXRhID0gYXNzaWduKHt9LCBzdG9yZS5kYXRhKTtcbiAgICB2YXIgbmV3U3RhdGUgPSBwcmV2aW91c1N0YXRlXG4gICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuICFmaWx0ZXJGbihpdGVtKTsgfSlcbiAgICAgICAgLm1hcChmdW5jdGlvbiAoY2hhbmdlKSB7XG4gICAgICAgIHZhciBwYXRjaCA9IGdldE9wdGltaXN0aWNEYXRhUGF0Y2gob3B0aW1pc3RpY0RhdGEsIGNoYW5nZS5hY3Rpb24sIHN0b3JlLnF1ZXJpZXMsIHN0b3JlLm11dGF0aW9ucywgY29uZmlnKTtcbiAgICAgICAgYXNzaWduKG9wdGltaXN0aWNEYXRhLCBwYXRjaCk7XG4gICAgICAgIHJldHVybiBfX2Fzc2lnbih7fSwgY2hhbmdlLCB7IGRhdGE6IHBhdGNoIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdTdGF0ZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0b3JlLmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvb3B0aW1pc3RpYy1kYXRhL3N0b3JlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///116\n"); /***/ }), /* 117 */ @@ -1532,7 +1532,7 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = maybeDeepFre /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linkUtils_1 = __webpack_require__(/*! ./linkUtils */ 123);\nvar graphql_tag_1 = __webpack_require__(/*! graphql-tag */ 124);\nvar zen_observable_ts_1 = __webpack_require__(/*! zen-observable-ts */ 69);\nvar ApolloLink = (function () {\n function ApolloLink() {\n }\n ApolloLink.from = function (links) {\n if (links.length === 0) {\n return ApolloLink.empty();\n }\n return links.map(linkUtils_1.toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.empty = function () {\n return new FunctionLink(function (op, forward) { return zen_observable_ts_1.default.of(); });\n };\n ApolloLink.passthrough = function () {\n return new FunctionLink(function (op, forward) { return (forward ? forward(op) : zen_observable_ts_1.default.of()); });\n };\n ApolloLink.split = function (test, left, right) {\n if (right === void 0) { right = ApolloLink.passthrough(); }\n var leftLink = linkUtils_1.validateLink(linkUtils_1.toLink(left));\n var rightLink = linkUtils_1.validateLink(linkUtils_1.toLink(right));\n if (linkUtils_1.isTerminating(leftLink) && linkUtils_1.isTerminating(rightLink)) {\n return new FunctionLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || zen_observable_ts_1.default.of()\n : rightLink.request(operation) || zen_observable_ts_1.default.of();\n });\n }\n else {\n return new FunctionLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || zen_observable_ts_1.default.of()\n : rightLink.request(operation, forward) || zen_observable_ts_1.default.of();\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n if (right === void 0) { right = ApolloLink.passthrough(); }\n return this.concat(ApolloLink.split(test, left, right));\n };\n ApolloLink.prototype.concat = function (next) {\n var _this = this;\n linkUtils_1.validateLink(this);\n if (linkUtils_1.isTerminating(this)) {\n console.warn(new linkUtils_1.LinkError(\"You are calling concat on a terminating link, which will have no effect\", this));\n return this;\n }\n var nextLink = linkUtils_1.validateLink(linkUtils_1.toLink(next));\n if (linkUtils_1.isTerminating(nextLink)) {\n return new FunctionLink(function (operation) {\n return _this.request(operation, function (op) { return nextLink.request(op) || zen_observable_ts_1.default.of(); }) || zen_observable_ts_1.default.of();\n });\n }\n else {\n return new FunctionLink(function (operation, forward) {\n return (_this.request(operation, function (op) {\n return nextLink.request(op, forward) || zen_observable_ts_1.default.of();\n }) || zen_observable_ts_1.default.of());\n });\n }\n };\n return ApolloLink;\n}());\nexports.ApolloLink = ApolloLink;\nfunction execute(link, operation) {\n var copy = __assign({}, operation);\n linkUtils_1.validateOperation(copy);\n if (!copy.context) {\n copy.context = {};\n }\n if (!copy.variables) {\n copy.variables = {};\n }\n if (!copy.query) {\n console.warn(\"query should either be a string or GraphQL AST\");\n copy.query = {};\n }\n return link.request(transformOperation(copy)) || zen_observable_ts_1.default.of();\n}\nexports.execute = execute;\nfunction getName(node) {\n return node && node.name && node.name.kind === 'Name' && node.name.value;\n}\nfunction transformOperation(operation) {\n var transformedOperation;\n if (typeof operation.query === 'string') {\n transformedOperation = __assign({}, operation, { query: graphql_tag_1.default(operation.query) });\n }\n else {\n transformedOperation = __assign({}, operation);\n }\n if (transformedOperation.query && transformedOperation.query.definitions) {\n if (!transformedOperation.operationName) {\n var operationTypes_1 = ['query', 'mutation', 'subscription'];\n var definitions = transformedOperation.query.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' &&\n operationTypes_1.indexOf(x.operation) >= 0;\n });\n transformedOperation.operationName = getName(definitions[0]) || '';\n }\n }\n else if (!transformedOperation.operationName) {\n transformedOperation.operationName = '';\n }\n return transformedOperation;\n}\nvar FunctionLink = (function (_super) {\n __extends(FunctionLink, _super);\n function FunctionLink(f) {\n var _this = _super.call(this) || this;\n _this.f = f;\n _this.request = f;\n return _this;\n }\n FunctionLink.prototype.request = function (operation, forward) {\n throw Error('should be overridden');\n };\n return FunctionLink;\n}(ApolloLink));\nexports.FunctionLink = FunctionLink;\n//# sourceMappingURL=link.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvbm9kZV9tb2R1bGVzL2Fwb2xsby1saW5rLWNvcmUvbGliL2xpbmsuanM/OTgzYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgbGlua1V0aWxzXzEgPSByZXF1aXJlKFwiLi9saW5rVXRpbHNcIik7XG52YXIgZ3JhcGhxbF90YWdfMSA9IHJlcXVpcmUoXCJncmFwaHFsLXRhZ1wiKTtcbnZhciB6ZW5fb2JzZXJ2YWJsZV90c18xID0gcmVxdWlyZShcInplbi1vYnNlcnZhYmxlLXRzXCIpO1xudmFyIEFwb2xsb0xpbmsgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFwb2xsb0xpbmsoKSB7XG4gICAgfVxuICAgIEFwb2xsb0xpbmsuZnJvbSA9IGZ1bmN0aW9uIChsaW5rcykge1xuICAgICAgICBpZiAobGlua3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gQXBvbGxvTGluay5lbXB0eSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5rcy5tYXAobGlua1V0aWxzXzEudG9MaW5rKS5yZWR1Y2UoZnVuY3Rpb24gKHgsIHkpIHsgcmV0dXJuIHguY29uY2F0KHkpOyB9KTtcbiAgICB9O1xuICAgIEFwb2xsb0xpbmsuZW1wdHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaW5rKGZ1bmN0aW9uIChvcCwgZm9yd2FyZCkgeyByZXR1cm4gemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCk7IH0pO1xuICAgIH07XG4gICAgQXBvbGxvTGluay5wYXNzdGhyb3VnaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvbkxpbmsoZnVuY3Rpb24gKG9wLCBmb3J3YXJkKSB7IHJldHVybiAoZm9yd2FyZCA/IGZvcndhcmQob3ApIDogemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCkpOyB9KTtcbiAgICB9O1xuICAgIEFwb2xsb0xpbmsuc3BsaXQgPSBmdW5jdGlvbiAodGVzdCwgbGVmdCwgcmlnaHQpIHtcbiAgICAgICAgaWYgKHJpZ2h0ID09PSB2b2lkIDApIHsgcmlnaHQgPSBBcG9sbG9MaW5rLnBhc3N0aHJvdWdoKCk7IH1cbiAgICAgICAgdmFyIGxlZnRMaW5rID0gbGlua1V0aWxzXzEudmFsaWRhdGVMaW5rKGxpbmtVdGlsc18xLnRvTGluayhsZWZ0KSk7XG4gICAgICAgIHZhciByaWdodExpbmsgPSBsaW5rVXRpbHNfMS52YWxpZGF0ZUxpbmsobGlua1V0aWxzXzEudG9MaW5rKHJpZ2h0KSk7XG4gICAgICAgIGlmIChsaW5rVXRpbHNfMS5pc1Rlcm1pbmF0aW5nKGxlZnRMaW5rKSAmJiBsaW5rVXRpbHNfMS5pc1Rlcm1pbmF0aW5nKHJpZ2h0TGluaykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaW5rKGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGVzdChvcGVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gbGVmdExpbmsucmVxdWVzdChvcGVyYXRpb24pIHx8IHplbl9vYnNlcnZhYmxlX3RzXzEuZGVmYXVsdC5vZigpXG4gICAgICAgICAgICAgICAgICAgIDogcmlnaHRMaW5rLnJlcXVlc3Qob3BlcmF0aW9uKSB8fCB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQub2YoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvbkxpbmsoZnVuY3Rpb24gKG9wZXJhdGlvbiwgZm9yd2FyZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0KG9wZXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgPyBsZWZ0TGluay5yZXF1ZXN0KG9wZXJhdGlvbiwgZm9yd2FyZCkgfHwgemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKClcbiAgICAgICAgICAgICAgICAgICAgOiByaWdodExpbmsucmVxdWVzdChvcGVyYXRpb24sIGZvcndhcmQpIHx8IHplbl9vYnNlcnZhYmxlX3RzXzEuZGVmYXVsdC5vZigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEFwb2xsb0xpbmsucHJvdG90eXBlLnNwbGl0ID0gZnVuY3Rpb24gKHRlc3QsIGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgIGlmIChyaWdodCA9PT0gdm9pZCAwKSB7IHJpZ2h0ID0gQXBvbGxvTGluay5wYXNzdGhyb3VnaCgpOyB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmNhdChBcG9sbG9MaW5rLnNwbGl0KHRlc3QsIGxlZnQsIHJpZ2h0KSk7XG4gICAgfTtcbiAgICBBcG9sbG9MaW5rLnByb3RvdHlwZS5jb25jYXQgPSBmdW5jdGlvbiAobmV4dCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBsaW5rVXRpbHNfMS52YWxpZGF0ZUxpbmsodGhpcyk7XG4gICAgICAgIGlmIChsaW5rVXRpbHNfMS5pc1Rlcm1pbmF0aW5nKHRoaXMpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4obmV3IGxpbmtVdGlsc18xLkxpbmtFcnJvcihcIllvdSBhcmUgY2FsbGluZyBjb25jYXQgb24gYSB0ZXJtaW5hdGluZyBsaW5rLCB3aGljaCB3aWxsIGhhdmUgbm8gZWZmZWN0XCIsIHRoaXMpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIHZhciBuZXh0TGluayA9IGxpbmtVdGlsc18xLnZhbGlkYXRlTGluayhsaW5rVXRpbHNfMS50b0xpbmsobmV4dCkpO1xuICAgICAgICBpZiAobGlua1V0aWxzXzEuaXNUZXJtaW5hdGluZyhuZXh0TGluaykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaW5rKGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMucmVxdWVzdChvcGVyYXRpb24sIGZ1bmN0aW9uIChvcCkgeyByZXR1cm4gbmV4dExpbmsucmVxdWVzdChvcCkgfHwgemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCk7IH0pIHx8IHplbl9vYnNlcnZhYmxlX3RzXzEuZGVmYXVsdC5vZigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uTGluayhmdW5jdGlvbiAob3BlcmF0aW9uLCBmb3J3YXJkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfdGhpcy5yZXF1ZXN0KG9wZXJhdGlvbiwgZnVuY3Rpb24gKG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TGluay5yZXF1ZXN0KG9wLCBmb3J3YXJkKSB8fCB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQub2YoKTtcbiAgICAgICAgICAgICAgICB9KSB8fCB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQub2YoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIEFwb2xsb0xpbms7XG59KCkpO1xuZXhwb3J0cy5BcG9sbG9MaW5rID0gQXBvbGxvTGluaztcbmZ1bmN0aW9uIGV4ZWN1dGUobGluaywgb3BlcmF0aW9uKSB7XG4gICAgdmFyIGNvcHkgPSBfX2Fzc2lnbih7fSwgb3BlcmF0aW9uKTtcbiAgICBsaW5rVXRpbHNfMS52YWxpZGF0ZU9wZXJhdGlvbihjb3B5KTtcbiAgICBpZiAoIWNvcHkuY29udGV4dCkge1xuICAgICAgICBjb3B5LmNvbnRleHQgPSB7fTtcbiAgICB9XG4gICAgaWYgKCFjb3B5LnZhcmlhYmxlcykge1xuICAgICAgICBjb3B5LnZhcmlhYmxlcyA9IHt9O1xuICAgIH1cbiAgICBpZiAoIWNvcHkucXVlcnkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwicXVlcnkgc2hvdWxkIGVpdGhlciBiZSBhIHN0cmluZyBvciBHcmFwaFFMIEFTVFwiKTtcbiAgICAgICAgY29weS5xdWVyeSA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gbGluay5yZXF1ZXN0KHRyYW5zZm9ybU9wZXJhdGlvbihjb3B5KSkgfHwgemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCk7XG59XG5leHBvcnRzLmV4ZWN1dGUgPSBleGVjdXRlO1xuZnVuY3Rpb24gZ2V0TmFtZShub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS5uYW1lICYmIG5vZGUubmFtZS5raW5kID09PSAnTmFtZScgJiYgbm9kZS5uYW1lLnZhbHVlO1xufVxuZnVuY3Rpb24gdHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbikge1xuICAgIHZhciB0cmFuc2Zvcm1lZE9wZXJhdGlvbjtcbiAgICBpZiAodHlwZW9mIG9wZXJhdGlvbi5xdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHJhbnNmb3JtZWRPcGVyYXRpb24gPSBfX2Fzc2lnbih7fSwgb3BlcmF0aW9uLCB7IHF1ZXJ5OiBncmFwaHFsX3RhZ18xLmRlZmF1bHQob3BlcmF0aW9uLnF1ZXJ5KSB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyYW5zZm9ybWVkT3BlcmF0aW9uID0gX19hc3NpZ24oe30sIG9wZXJhdGlvbik7XG4gICAgfVxuICAgIGlmICh0cmFuc2Zvcm1lZE9wZXJhdGlvbi5xdWVyeSAmJiB0cmFuc2Zvcm1lZE9wZXJhdGlvbi5xdWVyeS5kZWZpbml0aW9ucykge1xuICAgICAgICBpZiAoIXRyYW5zZm9ybWVkT3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUpIHtcbiAgICAgICAgICAgIHZhciBvcGVyYXRpb25UeXBlc18xID0gWydxdWVyeScsICdtdXRhdGlvbicsICdzdWJzY3JpcHRpb24nXTtcbiAgICAgICAgICAgIHZhciBkZWZpbml0aW9ucyA9IHRyYW5zZm9ybWVkT3BlcmF0aW9uLnF1ZXJ5LmRlZmluaXRpb25zLmZpbHRlcihmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB4LmtpbmQgPT09ICdPcGVyYXRpb25EZWZpbml0aW9uJyAmJlxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25UeXBlc18xLmluZGV4T2YoeC5vcGVyYXRpb24pID49IDA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkT3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgPSBnZXROYW1lKGRlZmluaXRpb25zWzBdKSB8fCAnJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICghdHJhbnNmb3JtZWRPcGVyYXRpb24ub3BlcmF0aW9uTmFtZSkge1xuICAgICAgICB0cmFuc2Zvcm1lZE9wZXJhdGlvbi5vcGVyYXRpb25OYW1lID0gJyc7XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2Zvcm1lZE9wZXJhdGlvbjtcbn1cbnZhciBGdW5jdGlvbkxpbmsgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhGdW5jdGlvbkxpbmssIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gRnVuY3Rpb25MaW5rKGYpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuZiA9IGY7XG4gICAgICAgIF90aGlzLnJlcXVlc3QgPSBmO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEZ1bmN0aW9uTGluay5wcm90b3R5cGUucmVxdWVzdCA9IGZ1bmN0aW9uIChvcGVyYXRpb24sIGZvcndhcmQpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ3Nob3VsZCBiZSBvdmVycmlkZGVuJyk7XG4gICAgfTtcbiAgICByZXR1cm4gRnVuY3Rpb25MaW5rO1xufShBcG9sbG9MaW5rKSk7XG5leHBvcnRzLkZ1bmN0aW9uTGluayA9IEZ1bmN0aW9uTGluaztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9ub2RlX21vZHVsZXMvYXBvbGxvLWxpbmstY29yZS9saWIvbGluay5qc1xuLy8gbW9kdWxlIGlkID0gMTIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///122\n"); +eval("\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linkUtils_1 = __webpack_require__(/*! ./linkUtils */ 123);\nvar graphql_tag_1 = __webpack_require__(/*! graphql-tag */ 124);\nvar zen_observable_ts_1 = __webpack_require__(/*! zen-observable-ts */ 70);\nvar ApolloLink = (function () {\n function ApolloLink() {\n }\n ApolloLink.from = function (links) {\n if (links.length === 0) {\n return ApolloLink.empty();\n }\n return links.map(linkUtils_1.toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.empty = function () {\n return new FunctionLink(function (op, forward) { return zen_observable_ts_1.default.of(); });\n };\n ApolloLink.passthrough = function () {\n return new FunctionLink(function (op, forward) { return (forward ? forward(op) : zen_observable_ts_1.default.of()); });\n };\n ApolloLink.split = function (test, left, right) {\n if (right === void 0) { right = ApolloLink.passthrough(); }\n var leftLink = linkUtils_1.validateLink(linkUtils_1.toLink(left));\n var rightLink = linkUtils_1.validateLink(linkUtils_1.toLink(right));\n if (linkUtils_1.isTerminating(leftLink) && linkUtils_1.isTerminating(rightLink)) {\n return new FunctionLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || zen_observable_ts_1.default.of()\n : rightLink.request(operation) || zen_observable_ts_1.default.of();\n });\n }\n else {\n return new FunctionLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || zen_observable_ts_1.default.of()\n : rightLink.request(operation, forward) || zen_observable_ts_1.default.of();\n });\n }\n };\n ApolloLink.prototype.split = function (test, left, right) {\n if (right === void 0) { right = ApolloLink.passthrough(); }\n return this.concat(ApolloLink.split(test, left, right));\n };\n ApolloLink.prototype.concat = function (next) {\n var _this = this;\n linkUtils_1.validateLink(this);\n if (linkUtils_1.isTerminating(this)) {\n console.warn(new linkUtils_1.LinkError(\"You are calling concat on a terminating link, which will have no effect\", this));\n return this;\n }\n var nextLink = linkUtils_1.validateLink(linkUtils_1.toLink(next));\n if (linkUtils_1.isTerminating(nextLink)) {\n return new FunctionLink(function (operation) {\n return _this.request(operation, function (op) { return nextLink.request(op) || zen_observable_ts_1.default.of(); }) || zen_observable_ts_1.default.of();\n });\n }\n else {\n return new FunctionLink(function (operation, forward) {\n return (_this.request(operation, function (op) {\n return nextLink.request(op, forward) || zen_observable_ts_1.default.of();\n }) || zen_observable_ts_1.default.of());\n });\n }\n };\n return ApolloLink;\n}());\nexports.ApolloLink = ApolloLink;\nfunction execute(link, operation) {\n var copy = __assign({}, operation);\n linkUtils_1.validateOperation(copy);\n if (!copy.context) {\n copy.context = {};\n }\n if (!copy.variables) {\n copy.variables = {};\n }\n if (!copy.query) {\n console.warn(\"query should either be a string or GraphQL AST\");\n copy.query = {};\n }\n return link.request(transformOperation(copy)) || zen_observable_ts_1.default.of();\n}\nexports.execute = execute;\nfunction getName(node) {\n return node && node.name && node.name.kind === 'Name' && node.name.value;\n}\nfunction transformOperation(operation) {\n var transformedOperation;\n if (typeof operation.query === 'string') {\n transformedOperation = __assign({}, operation, { query: graphql_tag_1.default(operation.query) });\n }\n else {\n transformedOperation = __assign({}, operation);\n }\n if (transformedOperation.query && transformedOperation.query.definitions) {\n if (!transformedOperation.operationName) {\n var operationTypes_1 = ['query', 'mutation', 'subscription'];\n var definitions = transformedOperation.query.definitions.filter(function (x) {\n return x.kind === 'OperationDefinition' &&\n operationTypes_1.indexOf(x.operation) >= 0;\n });\n transformedOperation.operationName = getName(definitions[0]) || '';\n }\n }\n else if (!transformedOperation.operationName) {\n transformedOperation.operationName = '';\n }\n return transformedOperation;\n}\nvar FunctionLink = (function (_super) {\n __extends(FunctionLink, _super);\n function FunctionLink(f) {\n var _this = _super.call(this) || this;\n _this.f = f;\n _this.request = f;\n return _this;\n }\n FunctionLink.prototype.request = function (operation, forward) {\n throw Error('should be overridden');\n };\n return FunctionLink;\n}(ApolloLink));\nexports.FunctionLink = FunctionLink;\n//# sourceMappingURL=link.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvbm9kZV9tb2R1bGVzL2Fwb2xsby1saW5rLWNvcmUvbGliL2xpbmsuanM/OTgzYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xudmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgbGlua1V0aWxzXzEgPSByZXF1aXJlKFwiLi9saW5rVXRpbHNcIik7XG52YXIgZ3JhcGhxbF90YWdfMSA9IHJlcXVpcmUoXCJncmFwaHFsLXRhZ1wiKTtcbnZhciB6ZW5fb2JzZXJ2YWJsZV90c18xID0gcmVxdWlyZShcInplbi1vYnNlcnZhYmxlLXRzXCIpO1xudmFyIEFwb2xsb0xpbmsgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFwb2xsb0xpbmsoKSB7XG4gICAgfVxuICAgIEFwb2xsb0xpbmsuZnJvbSA9IGZ1bmN0aW9uIChsaW5rcykge1xuICAgICAgICBpZiAobGlua3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gQXBvbGxvTGluay5lbXB0eSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5rcy5tYXAobGlua1V0aWxzXzEudG9MaW5rKS5yZWR1Y2UoZnVuY3Rpb24gKHgsIHkpIHsgcmV0dXJuIHguY29uY2F0KHkpOyB9KTtcbiAgICB9O1xuICAgIEFwb2xsb0xpbmsuZW1wdHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaW5rKGZ1bmN0aW9uIChvcCwgZm9yd2FyZCkgeyByZXR1cm4gemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCk7IH0pO1xuICAgIH07XG4gICAgQXBvbGxvTGluay5wYXNzdGhyb3VnaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvbkxpbmsoZnVuY3Rpb24gKG9wLCBmb3J3YXJkKSB7IHJldHVybiAoZm9yd2FyZCA/IGZvcndhcmQob3ApIDogemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCkpOyB9KTtcbiAgICB9O1xuICAgIEFwb2xsb0xpbmsuc3BsaXQgPSBmdW5jdGlvbiAodGVzdCwgbGVmdCwgcmlnaHQpIHtcbiAgICAgICAgaWYgKHJpZ2h0ID09PSB2b2lkIDApIHsgcmlnaHQgPSBBcG9sbG9MaW5rLnBhc3N0aHJvdWdoKCk7IH1cbiAgICAgICAgdmFyIGxlZnRMaW5rID0gbGlua1V0aWxzXzEudmFsaWRhdGVMaW5rKGxpbmtVdGlsc18xLnRvTGluayhsZWZ0KSk7XG4gICAgICAgIHZhciByaWdodExpbmsgPSBsaW5rVXRpbHNfMS52YWxpZGF0ZUxpbmsobGlua1V0aWxzXzEudG9MaW5rKHJpZ2h0KSk7XG4gICAgICAgIGlmIChsaW5rVXRpbHNfMS5pc1Rlcm1pbmF0aW5nKGxlZnRMaW5rKSAmJiBsaW5rVXRpbHNfMS5pc1Rlcm1pbmF0aW5nKHJpZ2h0TGluaykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaW5rKGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGVzdChvcGVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gbGVmdExpbmsucmVxdWVzdChvcGVyYXRpb24pIHx8IHplbl9vYnNlcnZhYmxlX3RzXzEuZGVmYXVsdC5vZigpXG4gICAgICAgICAgICAgICAgICAgIDogcmlnaHRMaW5rLnJlcXVlc3Qob3BlcmF0aW9uKSB8fCB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQub2YoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvbkxpbmsoZnVuY3Rpb24gKG9wZXJhdGlvbiwgZm9yd2FyZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0KG9wZXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgPyBsZWZ0TGluay5yZXF1ZXN0KG9wZXJhdGlvbiwgZm9yd2FyZCkgfHwgemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKClcbiAgICAgICAgICAgICAgICAgICAgOiByaWdodExpbmsucmVxdWVzdChvcGVyYXRpb24sIGZvcndhcmQpIHx8IHplbl9vYnNlcnZhYmxlX3RzXzEuZGVmYXVsdC5vZigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEFwb2xsb0xpbmsucHJvdG90eXBlLnNwbGl0ID0gZnVuY3Rpb24gKHRlc3QsIGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgIGlmIChyaWdodCA9PT0gdm9pZCAwKSB7IHJpZ2h0ID0gQXBvbGxvTGluay5wYXNzdGhyb3VnaCgpOyB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmNhdChBcG9sbG9MaW5rLnNwbGl0KHRlc3QsIGxlZnQsIHJpZ2h0KSk7XG4gICAgfTtcbiAgICBBcG9sbG9MaW5rLnByb3RvdHlwZS5jb25jYXQgPSBmdW5jdGlvbiAobmV4dCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBsaW5rVXRpbHNfMS52YWxpZGF0ZUxpbmsodGhpcyk7XG4gICAgICAgIGlmIChsaW5rVXRpbHNfMS5pc1Rlcm1pbmF0aW5nKHRoaXMpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4obmV3IGxpbmtVdGlsc18xLkxpbmtFcnJvcihcIllvdSBhcmUgY2FsbGluZyBjb25jYXQgb24gYSB0ZXJtaW5hdGluZyBsaW5rLCB3aGljaCB3aWxsIGhhdmUgbm8gZWZmZWN0XCIsIHRoaXMpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIHZhciBuZXh0TGluayA9IGxpbmtVdGlsc18xLnZhbGlkYXRlTGluayhsaW5rVXRpbHNfMS50b0xpbmsobmV4dCkpO1xuICAgICAgICBpZiAobGlua1V0aWxzXzEuaXNUZXJtaW5hdGluZyhuZXh0TGluaykpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaW5rKGZ1bmN0aW9uIChvcGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMucmVxdWVzdChvcGVyYXRpb24sIGZ1bmN0aW9uIChvcCkgeyByZXR1cm4gbmV4dExpbmsucmVxdWVzdChvcCkgfHwgemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCk7IH0pIHx8IHplbl9vYnNlcnZhYmxlX3RzXzEuZGVmYXVsdC5vZigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uTGluayhmdW5jdGlvbiAob3BlcmF0aW9uLCBmb3J3YXJkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfdGhpcy5yZXF1ZXN0KG9wZXJhdGlvbiwgZnVuY3Rpb24gKG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TGluay5yZXF1ZXN0KG9wLCBmb3J3YXJkKSB8fCB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQub2YoKTtcbiAgICAgICAgICAgICAgICB9KSB8fCB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQub2YoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIEFwb2xsb0xpbms7XG59KCkpO1xuZXhwb3J0cy5BcG9sbG9MaW5rID0gQXBvbGxvTGluaztcbmZ1bmN0aW9uIGV4ZWN1dGUobGluaywgb3BlcmF0aW9uKSB7XG4gICAgdmFyIGNvcHkgPSBfX2Fzc2lnbih7fSwgb3BlcmF0aW9uKTtcbiAgICBsaW5rVXRpbHNfMS52YWxpZGF0ZU9wZXJhdGlvbihjb3B5KTtcbiAgICBpZiAoIWNvcHkuY29udGV4dCkge1xuICAgICAgICBjb3B5LmNvbnRleHQgPSB7fTtcbiAgICB9XG4gICAgaWYgKCFjb3B5LnZhcmlhYmxlcykge1xuICAgICAgICBjb3B5LnZhcmlhYmxlcyA9IHt9O1xuICAgIH1cbiAgICBpZiAoIWNvcHkucXVlcnkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwicXVlcnkgc2hvdWxkIGVpdGhlciBiZSBhIHN0cmluZyBvciBHcmFwaFFMIEFTVFwiKTtcbiAgICAgICAgY29weS5xdWVyeSA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gbGluay5yZXF1ZXN0KHRyYW5zZm9ybU9wZXJhdGlvbihjb3B5KSkgfHwgemVuX29ic2VydmFibGVfdHNfMS5kZWZhdWx0Lm9mKCk7XG59XG5leHBvcnRzLmV4ZWN1dGUgPSBleGVjdXRlO1xuZnVuY3Rpb24gZ2V0TmFtZShub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS5uYW1lICYmIG5vZGUubmFtZS5raW5kID09PSAnTmFtZScgJiYgbm9kZS5uYW1lLnZhbHVlO1xufVxuZnVuY3Rpb24gdHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbikge1xuICAgIHZhciB0cmFuc2Zvcm1lZE9wZXJhdGlvbjtcbiAgICBpZiAodHlwZW9mIG9wZXJhdGlvbi5xdWVyeSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHJhbnNmb3JtZWRPcGVyYXRpb24gPSBfX2Fzc2lnbih7fSwgb3BlcmF0aW9uLCB7IHF1ZXJ5OiBncmFwaHFsX3RhZ18xLmRlZmF1bHQob3BlcmF0aW9uLnF1ZXJ5KSB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRyYW5zZm9ybWVkT3BlcmF0aW9uID0gX19hc3NpZ24oe30sIG9wZXJhdGlvbik7XG4gICAgfVxuICAgIGlmICh0cmFuc2Zvcm1lZE9wZXJhdGlvbi5xdWVyeSAmJiB0cmFuc2Zvcm1lZE9wZXJhdGlvbi5xdWVyeS5kZWZpbml0aW9ucykge1xuICAgICAgICBpZiAoIXRyYW5zZm9ybWVkT3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUpIHtcbiAgICAgICAgICAgIHZhciBvcGVyYXRpb25UeXBlc18xID0gWydxdWVyeScsICdtdXRhdGlvbicsICdzdWJzY3JpcHRpb24nXTtcbiAgICAgICAgICAgIHZhciBkZWZpbml0aW9ucyA9IHRyYW5zZm9ybWVkT3BlcmF0aW9uLnF1ZXJ5LmRlZmluaXRpb25zLmZpbHRlcihmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB4LmtpbmQgPT09ICdPcGVyYXRpb25EZWZpbml0aW9uJyAmJlxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25UeXBlc18xLmluZGV4T2YoeC5vcGVyYXRpb24pID49IDA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkT3BlcmF0aW9uLm9wZXJhdGlvbk5hbWUgPSBnZXROYW1lKGRlZmluaXRpb25zWzBdKSB8fCAnJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICghdHJhbnNmb3JtZWRPcGVyYXRpb24ub3BlcmF0aW9uTmFtZSkge1xuICAgICAgICB0cmFuc2Zvcm1lZE9wZXJhdGlvbi5vcGVyYXRpb25OYW1lID0gJyc7XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2Zvcm1lZE9wZXJhdGlvbjtcbn1cbnZhciBGdW5jdGlvbkxpbmsgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhGdW5jdGlvbkxpbmssIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gRnVuY3Rpb25MaW5rKGYpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuZiA9IGY7XG4gICAgICAgIF90aGlzLnJlcXVlc3QgPSBmO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEZ1bmN0aW9uTGluay5wcm90b3R5cGUucmVxdWVzdCA9IGZ1bmN0aW9uIChvcGVyYXRpb24sIGZvcndhcmQpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ3Nob3VsZCBiZSBvdmVycmlkZGVuJyk7XG4gICAgfTtcbiAgICByZXR1cm4gRnVuY3Rpb25MaW5rO1xufShBcG9sbG9MaW5rKSk7XG5leHBvcnRzLkZ1bmN0aW9uTGluayA9IEZ1bmN0aW9uTGluaztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmsuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9ub2RlX21vZHVsZXMvYXBvbGxvLWxpbmstY29yZS9saWIvbGluay5qc1xuLy8gbW9kdWxlIGlkID0gMTIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///122\n"); /***/ }), /* 123 */ @@ -1579,7 +1579,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _GraphQLError = __webpack_require__(/*! ./GraphQLError */ 68);\n\nObject.defineProperty(exports, 'GraphQLError', {\n enumerable: true,\n get: function get() {\n return _GraphQLError.GraphQLError;\n }\n});\n\nvar _syntaxError = __webpack_require__(/*! ./syntaxError */ 276);\n\nObject.defineProperty(exports, 'syntaxError', {\n enumerable: true,\n get: function get() {\n return _syntaxError.syntaxError;\n }\n});\n\nvar _locatedError = __webpack_require__(/*! ./locatedError */ 277);\n\nObject.defineProperty(exports, 'locatedError', {\n enumerable: true,\n get: function get() {\n return _locatedError.locatedError;\n }\n});\n\nvar _formatError = __webpack_require__(/*! ./formatError */ 278);\n\nObject.defineProperty(exports, 'formatError', {\n enumerable: true,\n get: function get() {\n return _formatError.formatError;\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTI2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyYXBocWwvZXJyb3IvaW5kZXguanM/NDIxNyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfR3JhcGhRTEVycm9yID0gcmVxdWlyZSgnLi9HcmFwaFFMRXJyb3InKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdHcmFwaFFMRXJyb3InLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfR3JhcGhRTEVycm9yLkdyYXBoUUxFcnJvcjtcbiAgfVxufSk7XG5cbnZhciBfc3ludGF4RXJyb3IgPSByZXF1aXJlKCcuL3N5bnRheEVycm9yJyk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnc3ludGF4RXJyb3InLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfc3ludGF4RXJyb3Iuc3ludGF4RXJyb3I7XG4gIH1cbn0pO1xuXG52YXIgX2xvY2F0ZWRFcnJvciA9IHJlcXVpcmUoJy4vbG9jYXRlZEVycm9yJyk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnbG9jYXRlZEVycm9yJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2xvY2F0ZWRFcnJvci5sb2NhdGVkRXJyb3I7XG4gIH1cbn0pO1xuXG52YXIgX2Zvcm1hdEVycm9yID0gcmVxdWlyZSgnLi9mb3JtYXRFcnJvcicpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2Zvcm1hdEVycm9yJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2Zvcm1hdEVycm9yLmZvcm1hdEVycm9yO1xuICB9XG59KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9ncmFwaHFsL2Vycm9yL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAxMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///126\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _GraphQLError = __webpack_require__(/*! ./GraphQLError */ 69);\n\nObject.defineProperty(exports, 'GraphQLError', {\n enumerable: true,\n get: function get() {\n return _GraphQLError.GraphQLError;\n }\n});\n\nvar _syntaxError = __webpack_require__(/*! ./syntaxError */ 276);\n\nObject.defineProperty(exports, 'syntaxError', {\n enumerable: true,\n get: function get() {\n return _syntaxError.syntaxError;\n }\n});\n\nvar _locatedError = __webpack_require__(/*! ./locatedError */ 277);\n\nObject.defineProperty(exports, 'locatedError', {\n enumerable: true,\n get: function get() {\n return _locatedError.locatedError;\n }\n});\n\nvar _formatError = __webpack_require__(/*! ./formatError */ 278);\n\nObject.defineProperty(exports, 'formatError', {\n enumerable: true,\n get: function get() {\n return _formatError.formatError;\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTI2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyYXBocWwvZXJyb3IvaW5kZXguanM/NDIxNyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfR3JhcGhRTEVycm9yID0gcmVxdWlyZSgnLi9HcmFwaFFMRXJyb3InKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdHcmFwaFFMRXJyb3InLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfR3JhcGhRTEVycm9yLkdyYXBoUUxFcnJvcjtcbiAgfVxufSk7XG5cbnZhciBfc3ludGF4RXJyb3IgPSByZXF1aXJlKCcuL3N5bnRheEVycm9yJyk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnc3ludGF4RXJyb3InLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfc3ludGF4RXJyb3Iuc3ludGF4RXJyb3I7XG4gIH1cbn0pO1xuXG52YXIgX2xvY2F0ZWRFcnJvciA9IHJlcXVpcmUoJy4vbG9jYXRlZEVycm9yJyk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnbG9jYXRlZEVycm9yJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2xvY2F0ZWRFcnJvci5sb2NhdGVkRXJyb3I7XG4gIH1cbn0pO1xuXG52YXIgX2Zvcm1hdEVycm9yID0gcmVxdWlyZSgnLi9mb3JtYXRFcnJvcicpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2Zvcm1hdEVycm9yJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2Zvcm1hdEVycm9yLmZvcm1hdEVycm9yO1xuICB9XG59KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9ncmFwaHFsL2Vycm9yL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAxMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///126\n"); /***/ }), /* 127 */ @@ -1603,7 +1603,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ 71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(/*! react-dom */ 145);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__MagentoProduct_js__ = __webpack_require__(/*! ./MagentoProduct.js */ 234);\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__MagentoProduct_js__[\"a\" /* default */], null), document.getElementById('maincontent'));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTI4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9pbmRleC5qcz8xZmRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBNYWdlbnRvUHJvZHVjdCBmcm9tICcuL01hZ2VudG9Qcm9kdWN0LmpzJztcblxuUmVhY3RET00ucmVuZGVyKFxuICA8TWFnZW50b1Byb2R1Y3QgLz4sXG4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluY29udGVudCcpXG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9pbmRleC5qcyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///128\n"); +eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ 44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(/*! react-dom */ 145);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_App__ = __webpack_require__(/*! ./components/App */ 322);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ApolloFactory__ = __webpack_require__(/*! ./ApolloFactory */ 291);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_graphql_tag__ = __webpack_require__(/*! graphql-tag */ 124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_graphql_tag___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_graphql_tag__);\n\n\n\n\n\n\nvar queries = [];\nvar callbacks = [];\n\nfunction registerGQL(gqlSnippet) {\n queries.push(gqlSnippet.query);\n callbacks.push(gqlSnippet.callback);\n}\n\nfunction mounted() {\n const queriesConcat = '{ ' + queries.join(',') + ' }';\n const query = {\n query: __WEBPACK_IMPORTED_MODULE_4_graphql_tag___default()(queriesConcat)\n };\n\n const client = Object(__WEBPACK_IMPORTED_MODULE_3__ApolloFactory__[\"a\" /* default */])();\n const promise = client.query(query);\n\n const callbackPromises = [];\n callbacks.map(callback => {\n callbackPromises.push(callback(promise));\n });\n callbacks = [];\n queries = [];\n\n Promise.all(callbackPromises).then(results => {\n var toLoad = false;\n results.map(result => {\n if (result !== true) {\n registerGQL(result);\n toLoad = true;\n }\n });\n if (toLoad) {\n mounted();\n }\n }).catch(console.log);\n}\n\n__WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n null,\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__components_App__[\"a\" /* default */], { registerGQL: registerGQL, mounted: mounted })\n), document.getElementById('maincontent'));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTI4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9pbmRleC5qcz8xZmRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBBcHAgZnJvbSAnLi9jb21wb25lbnRzL0FwcCc7XG5pbXBvcnQgQXBvbGxvRmFjdG9yeSBmcm9tICcuL0Fwb2xsb0ZhY3RvcnknXG5pbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcblxuXG52YXIgcXVlcmllcyA9IFtdO1xudmFyIGNhbGxiYWNrcyA9IFtdO1xuXG5mdW5jdGlvbiByZWdpc3RlckdRTChncWxTbmlwcGV0KSB7XG4gIHF1ZXJpZXMucHVzaChncWxTbmlwcGV0LnF1ZXJ5KVxuICBjYWxsYmFja3MucHVzaChncWxTbmlwcGV0LmNhbGxiYWNrKVxufVxuXG5mdW5jdGlvbiBtb3VudGVkKCkge1xuICBjb25zdCBxdWVyaWVzQ29uY2F0ID0gICd7ICcgKyBxdWVyaWVzLmpvaW4oJywnKSArICcgfSc7XG4gIGNvbnN0IHF1ZXJ5ID0ge1xuICAgIHF1ZXJ5OiAgZ3FsKHF1ZXJpZXNDb25jYXQpXG4gIH1cbiAgXG4gIGNvbnN0IGNsaWVudCA9IEFwb2xsb0ZhY3RvcnkoKTtcbiAgY29uc3QgcHJvbWlzZSA9IGNsaWVudC5xdWVyeShxdWVyeSk7XG5cbiAgY29uc3QgY2FsbGJhY2tQcm9taXNlcyA9IFtdO1xuICBjYWxsYmFja3MubWFwKGNhbGxiYWNrID0+IHtcbiAgICBjYWxsYmFja1Byb21pc2VzLnB1c2goY2FsbGJhY2socHJvbWlzZSkpXG4gIH0pXG4gIGNhbGxiYWNrcyA9IFtdXG4gIHF1ZXJpZXMgPSBbXVxuXG4gIFByb21pc2UuYWxsKFxuICAgIGNhbGxiYWNrUHJvbWlzZXNcbiAgKS50aGVuKHJlc3VsdHMgPT4ge1xuICAgIHZhciB0b0xvYWQgPSBmYWxzZTtcbiAgICByZXN1bHRzLm1hcChyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICByZWdpc3RlckdRTChyZXN1bHQpXG4gICAgICAgIHRvTG9hZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSlcbiAgICBpZiAodG9Mb2FkKSB7XG4gICAgICBtb3VudGVkKClcbiAgICB9XG4gIH0pLmNhdGNoKGNvbnNvbGUubG9nKVxufVxuXG5SZWFjdERPTS5yZW5kZXIoXG4gIDxkaXY+XG4gICAgPEFwcCByZWdpc3RlckdRTD17cmVnaXN0ZXJHUUx9IG1vdW50ZWQ9e21vdW50ZWR9IC8+XG4gIDwvZGl2PixcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5jb250ZW50Jylcbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL2luZGV4LmpzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFEQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///128\n"); /***/ }), /* 129 */ @@ -1615,7 +1615,7 @@ eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true } /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar PooledClass = __webpack_require__(/*! ./PooledClass */ 130);\nvar ReactElement = __webpack_require__(/*! ./ReactElement */ 18);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 44);\nvar traverseAllChildren = __webpack_require__(/*! ./traverseAllChildren */ 131);\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTI5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2xpYi9SZWFjdENoaWxkcmVuLmpzPzJkMzAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFBvb2xlZENsYXNzID0gcmVxdWlyZSgnLi9Qb29sZWRDbGFzcycpO1xudmFyIFJlYWN0RWxlbWVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50Jyk7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xudmFyIHRyYXZlcnNlQWxsQ2hpbGRyZW4gPSByZXF1aXJlKCcuL3RyYXZlcnNlQWxsQ2hpbGRyZW4nKTtcblxudmFyIHR3b0FyZ3VtZW50UG9vbGVyID0gUG9vbGVkQ2xhc3MudHdvQXJndW1lbnRQb29sZXI7XG52YXIgZm91ckFyZ3VtZW50UG9vbGVyID0gUG9vbGVkQ2xhc3MuZm91ckFyZ3VtZW50UG9vbGVyO1xuXG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuZnVuY3Rpb24gZXNjYXBlVXNlclByb3ZpZGVkS2V5KHRleHQpIHtcbiAgcmV0dXJuICgnJyArIHRleHQpLnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsICckJi8nKTtcbn1cblxuLyoqXG4gKiBQb29sZWRDbGFzcyByZXByZXNlbnRpbmcgdGhlIGJvb2trZWVwaW5nIGFzc29jaWF0ZWQgd2l0aCBwZXJmb3JtaW5nIGEgY2hpbGRcbiAqIHRyYXZlcnNhbC4gQWxsb3dzIGF2b2lkaW5nIGJpbmRpbmcgY2FsbGJhY2tzLlxuICpcbiAqIEBjb25zdHJ1Y3RvciBGb3JFYWNoQm9va0tlZXBpbmdcbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBmb3JFYWNoRnVuY3Rpb24gRnVuY3Rpb24gdG8gcGVyZm9ybSB0cmF2ZXJzYWwgd2l0aC5cbiAqIEBwYXJhbSB7Pyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgdG8gcGVyZm9ybSBjb250ZXh0IHdpdGguXG4gKi9cbmZ1bmN0aW9uIEZvckVhY2hCb29rS2VlcGluZyhmb3JFYWNoRnVuY3Rpb24sIGZvckVhY2hDb250ZXh0KSB7XG4gIHRoaXMuZnVuYyA9IGZvckVhY2hGdW5jdGlvbjtcbiAgdGhpcy5jb250ZXh0ID0gZm9yRWFjaENvbnRleHQ7XG4gIHRoaXMuY291bnQgPSAwO1xufVxuRm9yRWFjaEJvb2tLZWVwaW5nLnByb3RvdHlwZS5kZXN0cnVjdG9yID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmZ1bmMgPSBudWxsO1xuICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICB0aGlzLmNvdW50ID0gMDtcbn07XG5Qb29sZWRDbGFzcy5hZGRQb29saW5nVG8oRm9yRWFjaEJvb2tLZWVwaW5nLCB0d29Bcmd1bWVudFBvb2xlcik7XG5cbmZ1bmN0aW9uIGZvckVhY2hTaW5nbGVDaGlsZChib29rS2VlcGluZywgY2hpbGQsIG5hbWUpIHtcbiAgdmFyIGZ1bmMgPSBib29rS2VlcGluZy5mdW5jLFxuICAgICAgY29udGV4dCA9IGJvb2tLZWVwaW5nLmNvbnRleHQ7XG5cbiAgZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBib29rS2VlcGluZy5jb3VudCsrKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90b3AtbGV2ZWwtYXBpLmh0bWwjcmVhY3QuY2hpbGRyZW4uZm9yZWFjaFxuICpcbiAqIFRoZSBwcm92aWRlZCBmb3JFYWNoRnVuYyhjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmb3JFYWNoRnVuY1xuICogQHBhcmFtIHsqfSBmb3JFYWNoQ29udGV4dCBDb250ZXh0IGZvciBmb3JFYWNoQ29udGV4dC5cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaENoaWxkcmVuKGNoaWxkcmVuLCBmb3JFYWNoRnVuYywgZm9yRWFjaENvbnRleHQpIHtcbiAgaWYgKGNoaWxkcmVuID09IG51bGwpIHtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbiAgdmFyIHRyYXZlcnNlQ29udGV4dCA9IEZvckVhY2hCb29rS2VlcGluZy5nZXRQb29sZWQoZm9yRWFjaEZ1bmMsIGZvckVhY2hDb250ZXh0KTtcbiAgdHJhdmVyc2VBbGxDaGlsZHJlbihjaGlsZHJlbiwgZm9yRWFjaFNpbmdsZUNoaWxkLCB0cmF2ZXJzZUNvbnRleHQpO1xuICBGb3JFYWNoQm9va0tlZXBpbmcucmVsZWFzZSh0cmF2ZXJzZUNvbnRleHQpO1xufVxuXG4vKipcbiAqIFBvb2xlZENsYXNzIHJlcHJlc2VudGluZyB0aGUgYm9va2tlZXBpbmcgYXNzb2NpYXRlZCB3aXRoIHBlcmZvcm1pbmcgYSBjaGlsZFxuICogbWFwcGluZy4gQWxsb3dzIGF2b2lkaW5nIGJpbmRpbmcgY2FsbGJhY2tzLlxuICpcbiAqIEBjb25zdHJ1Y3RvciBNYXBCb29rS2VlcGluZ1xuICogQHBhcmFtIHshKn0gbWFwUmVzdWx0IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICogQHBhcmFtIHshZnVuY3Rpb259IG1hcEZ1bmN0aW9uIEZ1bmN0aW9uIHRvIHBlcmZvcm0gbWFwcGluZyB3aXRoLlxuICogQHBhcmFtIHs/Kn0gbWFwQ29udGV4dCBDb250ZXh0IHRvIHBlcmZvcm0gbWFwcGluZyB3aXRoLlxuICovXG5mdW5jdGlvbiBNYXBCb29rS2VlcGluZyhtYXBSZXN1bHQsIGtleVByZWZpeCwgbWFwRnVuY3Rpb24sIG1hcENvbnRleHQpIHtcbiAgdGhpcy5yZXN1bHQgPSBtYXBSZXN1bHQ7XG4gIHRoaXMua2V5UHJlZml4ID0ga2V5UHJlZml4O1xuICB0aGlzLmZ1bmMgPSBtYXBGdW5jdGlvbjtcbiAgdGhpcy5jb250ZXh0ID0gbWFwQ29udGV4dDtcbiAgdGhpcy5jb3VudCA9IDA7XG59XG5NYXBCb29rS2VlcGluZy5wcm90b3R5cGUuZGVzdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5yZXN1bHQgPSBudWxsO1xuICB0aGlzLmtleVByZWZpeCA9IG51bGw7XG4gIHRoaXMuZnVuYyA9IG51bGw7XG4gIHRoaXMuY29udGV4dCA9IG51bGw7XG4gIHRoaXMuY291bnQgPSAwO1xufTtcblBvb2xlZENsYXNzLmFkZFBvb2xpbmdUbyhNYXBCb29rS2VlcGluZywgZm91ckFyZ3VtZW50UG9vbGVyKTtcblxuZnVuY3Rpb24gbWFwU2luZ2xlQ2hpbGRJbnRvQ29udGV4dChib29rS2VlcGluZywgY2hpbGQsIGNoaWxkS2V5KSB7XG4gIHZhciByZXN1bHQgPSBib29rS2VlcGluZy5yZXN1bHQsXG4gICAgICBrZXlQcmVmaXggPSBib29rS2VlcGluZy5rZXlQcmVmaXgsXG4gICAgICBmdW5jID0gYm9va0tlZXBpbmcuZnVuYyxcbiAgICAgIGNvbnRleHQgPSBib29rS2VlcGluZy5jb250ZXh0O1xuXG5cbiAgdmFyIG1hcHBlZENoaWxkID0gZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBib29rS2VlcGluZy5jb3VudCsrKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobWFwcGVkQ2hpbGQpKSB7XG4gICAgbWFwSW50b1dpdGhLZXlQcmVmaXhJbnRlcm5hbChtYXBwZWRDaGlsZCwgcmVzdWx0LCBjaGlsZEtleSwgZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc0FyZ3VtZW50KTtcbiAgfSBlbHNlIGlmIChtYXBwZWRDaGlsZCAhPSBudWxsKSB7XG4gICAgaWYgKFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgIG1hcHBlZENoaWxkID0gUmVhY3RFbGVtZW50LmNsb25lQW5kUmVwbGFjZUtleShtYXBwZWRDaGlsZCxcbiAgICAgIC8vIEtlZXAgYm90aCB0aGUgKG1hcHBlZCkgYW5kIG9sZCBrZXlzIGlmIHRoZXkgZGlmZmVyLCBqdXN0IGFzXG4gICAgICAvLyB0cmF2ZXJzZUFsbENoaWxkcmVuIHVzZWQgdG8gZG8gZm9yIG9iamVjdHMgYXMgY2hpbGRyZW5cbiAgICAgIGtleVByZWZpeCArIChtYXBwZWRDaGlsZC5rZXkgJiYgKCFjaGlsZCB8fCBjaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyBlc2NhcGVVc2VyUHJvdmlkZWRLZXkobWFwcGVkQ2hpbGQua2V5KSArICcvJyA6ICcnKSArIGNoaWxkS2V5KTtcbiAgICB9XG4gICAgcmVzdWx0LnB1c2gobWFwcGVkQ2hpbGQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcEludG9XaXRoS2V5UHJlZml4SW50ZXJuYWwoY2hpbGRyZW4sIGFycmF5LCBwcmVmaXgsIGZ1bmMsIGNvbnRleHQpIHtcbiAgdmFyIGVzY2FwZWRQcmVmaXggPSAnJztcbiAgaWYgKHByZWZpeCAhPSBudWxsKSB7XG4gICAgZXNjYXBlZFByZWZpeCA9IGVzY2FwZVVzZXJQcm92aWRlZEtleShwcmVmaXgpICsgJy8nO1xuICB9XG4gIHZhciB0cmF2ZXJzZUNvbnRleHQgPSBNYXBCb29rS2VlcGluZy5nZXRQb29sZWQoYXJyYXksIGVzY2FwZWRQcmVmaXgsIGZ1bmMsIGNvbnRleHQpO1xuICB0cmF2ZXJzZUFsbENoaWxkcmVuKGNoaWxkcmVuLCBtYXBTaW5nbGVDaGlsZEludG9Db250ZXh0LCB0cmF2ZXJzZUNvbnRleHQpO1xuICBNYXBCb29rS2VlcGluZy5yZWxlYXNlKHRyYXZlcnNlQ29udGV4dCk7XG59XG5cbi8qKlxuICogTWFwcyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdG9wLWxldmVsLWFwaS5odG1sI3JlYWN0LmNoaWxkcmVuLm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwga2V5LCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZ1bmMgVGhlIG1hcCBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBDb250ZXh0IGZvciBtYXBGdW5jdGlvbi5cbiAqIEByZXR1cm4ge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIG9yZGVyZWQgbWFwIG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIG1hcENoaWxkcmVuKGNoaWxkcmVuLCBmdW5jLCBjb250ZXh0KSB7XG4gIGlmIChjaGlsZHJlbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgbWFwSW50b1dpdGhLZXlQcmVmaXhJbnRlcm5hbChjaGlsZHJlbiwgcmVzdWx0LCBudWxsLCBmdW5jLCBjb250ZXh0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZm9yRWFjaFNpbmdsZUNoaWxkRHVtbXkodHJhdmVyc2VDb250ZXh0LCBjaGlsZCwgbmFtZSkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdG9wLWxldmVsLWFwaS5odG1sI3JlYWN0LmNoaWxkcmVuLmNvdW50XG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBudW1iZXIgb2YgY2hpbGRyZW4uXG4gKi9cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4sIGNvbnRleHQpIHtcbiAgcmV0dXJuIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hTaW5nbGVDaGlsZER1bW15LCBudWxsKTtcbn1cblxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90b3AtbGV2ZWwtYXBpLmh0bWwjcmVhY3QuY2hpbGRyZW4udG9hcnJheVxuICovXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgbWFwSW50b1dpdGhLZXlQcmVmaXhJbnRlcm5hbChjaGlsZHJlbiwgcmVzdWx0LCBudWxsLCBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zQXJndW1lbnQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG52YXIgUmVhY3RDaGlsZHJlbiA9IHtcbiAgZm9yRWFjaDogZm9yRWFjaENoaWxkcmVuLFxuICBtYXA6IG1hcENoaWxkcmVuLFxuICBtYXBJbnRvV2l0aEtleVByZWZpeEludGVybmFsOiBtYXBJbnRvV2l0aEtleVByZWZpeEludGVybmFsLFxuICBjb3VudDogY291bnRDaGlsZHJlbixcbiAgdG9BcnJheTogdG9BcnJheVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdENoaWxkcmVuO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0L2xpYi9SZWFjdENoaWxkcmVuLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///129\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar PooledClass = __webpack_require__(/*! ./PooledClass */ 130);\nvar ReactElement = __webpack_require__(/*! ./ReactElement */ 18);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 45);\nvar traverseAllChildren = __webpack_require__(/*! ./traverseAllChildren */ 131);\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTI5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2xpYi9SZWFjdENoaWxkcmVuLmpzPzJkMzAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFBvb2xlZENsYXNzID0gcmVxdWlyZSgnLi9Qb29sZWRDbGFzcycpO1xudmFyIFJlYWN0RWxlbWVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50Jyk7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xudmFyIHRyYXZlcnNlQWxsQ2hpbGRyZW4gPSByZXF1aXJlKCcuL3RyYXZlcnNlQWxsQ2hpbGRyZW4nKTtcblxudmFyIHR3b0FyZ3VtZW50UG9vbGVyID0gUG9vbGVkQ2xhc3MudHdvQXJndW1lbnRQb29sZXI7XG52YXIgZm91ckFyZ3VtZW50UG9vbGVyID0gUG9vbGVkQ2xhc3MuZm91ckFyZ3VtZW50UG9vbGVyO1xuXG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nO1xuZnVuY3Rpb24gZXNjYXBlVXNlclByb3ZpZGVkS2V5KHRleHQpIHtcbiAgcmV0dXJuICgnJyArIHRleHQpLnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsICckJi8nKTtcbn1cblxuLyoqXG4gKiBQb29sZWRDbGFzcyByZXByZXNlbnRpbmcgdGhlIGJvb2trZWVwaW5nIGFzc29jaWF0ZWQgd2l0aCBwZXJmb3JtaW5nIGEgY2hpbGRcbiAqIHRyYXZlcnNhbC4gQWxsb3dzIGF2b2lkaW5nIGJpbmRpbmcgY2FsbGJhY2tzLlxuICpcbiAqIEBjb25zdHJ1Y3RvciBGb3JFYWNoQm9va0tlZXBpbmdcbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBmb3JFYWNoRnVuY3Rpb24gRnVuY3Rpb24gdG8gcGVyZm9ybSB0cmF2ZXJzYWwgd2l0aC5cbiAqIEBwYXJhbSB7Pyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgdG8gcGVyZm9ybSBjb250ZXh0IHdpdGguXG4gKi9cbmZ1bmN0aW9uIEZvckVhY2hCb29rS2VlcGluZyhmb3JFYWNoRnVuY3Rpb24sIGZvckVhY2hDb250ZXh0KSB7XG4gIHRoaXMuZnVuYyA9IGZvckVhY2hGdW5jdGlvbjtcbiAgdGhpcy5jb250ZXh0ID0gZm9yRWFjaENvbnRleHQ7XG4gIHRoaXMuY291bnQgPSAwO1xufVxuRm9yRWFjaEJvb2tLZWVwaW5nLnByb3RvdHlwZS5kZXN0cnVjdG9yID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmZ1bmMgPSBudWxsO1xuICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICB0aGlzLmNvdW50ID0gMDtcbn07XG5Qb29sZWRDbGFzcy5hZGRQb29saW5nVG8oRm9yRWFjaEJvb2tLZWVwaW5nLCB0d29Bcmd1bWVudFBvb2xlcik7XG5cbmZ1bmN0aW9uIGZvckVhY2hTaW5nbGVDaGlsZChib29rS2VlcGluZywgY2hpbGQsIG5hbWUpIHtcbiAgdmFyIGZ1bmMgPSBib29rS2VlcGluZy5mdW5jLFxuICAgICAgY29udGV4dCA9IGJvb2tLZWVwaW5nLmNvbnRleHQ7XG5cbiAgZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBib29rS2VlcGluZy5jb3VudCsrKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90b3AtbGV2ZWwtYXBpLmh0bWwjcmVhY3QuY2hpbGRyZW4uZm9yZWFjaFxuICpcbiAqIFRoZSBwcm92aWRlZCBmb3JFYWNoRnVuYyhjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmb3JFYWNoRnVuY1xuICogQHBhcmFtIHsqfSBmb3JFYWNoQ29udGV4dCBDb250ZXh0IGZvciBmb3JFYWNoQ29udGV4dC5cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaENoaWxkcmVuKGNoaWxkcmVuLCBmb3JFYWNoRnVuYywgZm9yRWFjaENvbnRleHQpIHtcbiAgaWYgKGNoaWxkcmVuID09IG51bGwpIHtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbiAgdmFyIHRyYXZlcnNlQ29udGV4dCA9IEZvckVhY2hCb29rS2VlcGluZy5nZXRQb29sZWQoZm9yRWFjaEZ1bmMsIGZvckVhY2hDb250ZXh0KTtcbiAgdHJhdmVyc2VBbGxDaGlsZHJlbihjaGlsZHJlbiwgZm9yRWFjaFNpbmdsZUNoaWxkLCB0cmF2ZXJzZUNvbnRleHQpO1xuICBGb3JFYWNoQm9va0tlZXBpbmcucmVsZWFzZSh0cmF2ZXJzZUNvbnRleHQpO1xufVxuXG4vKipcbiAqIFBvb2xlZENsYXNzIHJlcHJlc2VudGluZyB0aGUgYm9va2tlZXBpbmcgYXNzb2NpYXRlZCB3aXRoIHBlcmZvcm1pbmcgYSBjaGlsZFxuICogbWFwcGluZy4gQWxsb3dzIGF2b2lkaW5nIGJpbmRpbmcgY2FsbGJhY2tzLlxuICpcbiAqIEBjb25zdHJ1Y3RvciBNYXBCb29rS2VlcGluZ1xuICogQHBhcmFtIHshKn0gbWFwUmVzdWx0IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICogQHBhcmFtIHshZnVuY3Rpb259IG1hcEZ1bmN0aW9uIEZ1bmN0aW9uIHRvIHBlcmZvcm0gbWFwcGluZyB3aXRoLlxuICogQHBhcmFtIHs/Kn0gbWFwQ29udGV4dCBDb250ZXh0IHRvIHBlcmZvcm0gbWFwcGluZyB3aXRoLlxuICovXG5mdW5jdGlvbiBNYXBCb29rS2VlcGluZyhtYXBSZXN1bHQsIGtleVByZWZpeCwgbWFwRnVuY3Rpb24sIG1hcENvbnRleHQpIHtcbiAgdGhpcy5yZXN1bHQgPSBtYXBSZXN1bHQ7XG4gIHRoaXMua2V5UHJlZml4ID0ga2V5UHJlZml4O1xuICB0aGlzLmZ1bmMgPSBtYXBGdW5jdGlvbjtcbiAgdGhpcy5jb250ZXh0ID0gbWFwQ29udGV4dDtcbiAgdGhpcy5jb3VudCA9IDA7XG59XG5NYXBCb29rS2VlcGluZy5wcm90b3R5cGUuZGVzdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5yZXN1bHQgPSBudWxsO1xuICB0aGlzLmtleVByZWZpeCA9IG51bGw7XG4gIHRoaXMuZnVuYyA9IG51bGw7XG4gIHRoaXMuY29udGV4dCA9IG51bGw7XG4gIHRoaXMuY291bnQgPSAwO1xufTtcblBvb2xlZENsYXNzLmFkZFBvb2xpbmdUbyhNYXBCb29rS2VlcGluZywgZm91ckFyZ3VtZW50UG9vbGVyKTtcblxuZnVuY3Rpb24gbWFwU2luZ2xlQ2hpbGRJbnRvQ29udGV4dChib29rS2VlcGluZywgY2hpbGQsIGNoaWxkS2V5KSB7XG4gIHZhciByZXN1bHQgPSBib29rS2VlcGluZy5yZXN1bHQsXG4gICAgICBrZXlQcmVmaXggPSBib29rS2VlcGluZy5rZXlQcmVmaXgsXG4gICAgICBmdW5jID0gYm9va0tlZXBpbmcuZnVuYyxcbiAgICAgIGNvbnRleHQgPSBib29rS2VlcGluZy5jb250ZXh0O1xuXG5cbiAgdmFyIG1hcHBlZENoaWxkID0gZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBib29rS2VlcGluZy5jb3VudCsrKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobWFwcGVkQ2hpbGQpKSB7XG4gICAgbWFwSW50b1dpdGhLZXlQcmVmaXhJbnRlcm5hbChtYXBwZWRDaGlsZCwgcmVzdWx0LCBjaGlsZEtleSwgZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc0FyZ3VtZW50KTtcbiAgfSBlbHNlIGlmIChtYXBwZWRDaGlsZCAhPSBudWxsKSB7XG4gICAgaWYgKFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudChtYXBwZWRDaGlsZCkpIHtcbiAgICAgIG1hcHBlZENoaWxkID0gUmVhY3RFbGVtZW50LmNsb25lQW5kUmVwbGFjZUtleShtYXBwZWRDaGlsZCxcbiAgICAgIC8vIEtlZXAgYm90aCB0aGUgKG1hcHBlZCkgYW5kIG9sZCBrZXlzIGlmIHRoZXkgZGlmZmVyLCBqdXN0IGFzXG4gICAgICAvLyB0cmF2ZXJzZUFsbENoaWxkcmVuIHVzZWQgdG8gZG8gZm9yIG9iamVjdHMgYXMgY2hpbGRyZW5cbiAgICAgIGtleVByZWZpeCArIChtYXBwZWRDaGlsZC5rZXkgJiYgKCFjaGlsZCB8fCBjaGlsZC5rZXkgIT09IG1hcHBlZENoaWxkLmtleSkgPyBlc2NhcGVVc2VyUHJvdmlkZWRLZXkobWFwcGVkQ2hpbGQua2V5KSArICcvJyA6ICcnKSArIGNoaWxkS2V5KTtcbiAgICB9XG4gICAgcmVzdWx0LnB1c2gobWFwcGVkQ2hpbGQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcEludG9XaXRoS2V5UHJlZml4SW50ZXJuYWwoY2hpbGRyZW4sIGFycmF5LCBwcmVmaXgsIGZ1bmMsIGNvbnRleHQpIHtcbiAgdmFyIGVzY2FwZWRQcmVmaXggPSAnJztcbiAgaWYgKHByZWZpeCAhPSBudWxsKSB7XG4gICAgZXNjYXBlZFByZWZpeCA9IGVzY2FwZVVzZXJQcm92aWRlZEtleShwcmVmaXgpICsgJy8nO1xuICB9XG4gIHZhciB0cmF2ZXJzZUNvbnRleHQgPSBNYXBCb29rS2VlcGluZy5nZXRQb29sZWQoYXJyYXksIGVzY2FwZWRQcmVmaXgsIGZ1bmMsIGNvbnRleHQpO1xuICB0cmF2ZXJzZUFsbENoaWxkcmVuKGNoaWxkcmVuLCBtYXBTaW5nbGVDaGlsZEludG9Db250ZXh0LCB0cmF2ZXJzZUNvbnRleHQpO1xuICBNYXBCb29rS2VlcGluZy5yZWxlYXNlKHRyYXZlcnNlQ29udGV4dCk7XG59XG5cbi8qKlxuICogTWFwcyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdG9wLWxldmVsLWFwaS5odG1sI3JlYWN0LmNoaWxkcmVuLm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwga2V5LCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZ1bmMgVGhlIG1hcCBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBDb250ZXh0IGZvciBtYXBGdW5jdGlvbi5cbiAqIEByZXR1cm4ge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIG9yZGVyZWQgbWFwIG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIG1hcENoaWxkcmVuKGNoaWxkcmVuLCBmdW5jLCBjb250ZXh0KSB7XG4gIGlmIChjaGlsZHJlbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgbWFwSW50b1dpdGhLZXlQcmVmaXhJbnRlcm5hbChjaGlsZHJlbiwgcmVzdWx0LCBudWxsLCBmdW5jLCBjb250ZXh0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZm9yRWFjaFNpbmdsZUNoaWxkRHVtbXkodHJhdmVyc2VDb250ZXh0LCBjaGlsZCwgbmFtZSkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvdG9wLWxldmVsLWFwaS5odG1sI3JlYWN0LmNoaWxkcmVuLmNvdW50XG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBudW1iZXIgb2YgY2hpbGRyZW4uXG4gKi9cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4sIGNvbnRleHQpIHtcbiAgcmV0dXJuIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hTaW5nbGVDaGlsZER1bW15LCBudWxsKTtcbn1cblxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy90b3AtbGV2ZWwtYXBpLmh0bWwjcmVhY3QuY2hpbGRyZW4udG9hcnJheVxuICovXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgbWFwSW50b1dpdGhLZXlQcmVmaXhJbnRlcm5hbChjaGlsZHJlbiwgcmVzdWx0LCBudWxsLCBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zQXJndW1lbnQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG52YXIgUmVhY3RDaGlsZHJlbiA9IHtcbiAgZm9yRWFjaDogZm9yRWFjaENoaWxkcmVuLFxuICBtYXA6IG1hcENoaWxkcmVuLFxuICBtYXBJbnRvV2l0aEtleVByZWZpeEludGVybmFsOiBtYXBJbnRvV2l0aEtleVByZWZpeEludGVybmFsLFxuICBjb3VudDogY291bnRDaGlsZHJlbixcbiAgdG9BcnJheTogdG9BcnJheVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdENoaWxkcmVuO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0L2xpYi9SZWFjdENoaWxkcmVuLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///129\n"); /***/ }), /* 130 */ @@ -1735,7 +1735,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 44);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 13);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 12);\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ 78);\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ 140);\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTM5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzPzFkYTUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW1wdHlGdW5jdGlvbiA9IHJlcXVpcmUoJ2ZianMvbGliL2VtcHR5RnVuY3Rpb24nKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlzVmFsaWRFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gIC8qIGdsb2JhbCBTeW1ib2wgKi9cbiAgdmFyIElURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xuICB2YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7IC8vIEJlZm9yZSBTeW1ib2wgc3BlYy5cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaXRlcmF0b3IgbWV0aG9kIGZ1bmN0aW9uIGNvbnRhaW5lZCBvbiB0aGUgaXRlcmFibGUgb2JqZWN0LlxuICAgKlxuICAgKiBCZSBzdXJlIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgaXRlcmFibGUgYXMgY29udGV4dDpcbiAgICpcbiAgICogICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihteUl0ZXJhYmxlKTtcbiAgICogICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAqICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChteUl0ZXJhYmxlKTtcbiAgICogICAgICAgLi4uXG4gICAqICAgICB9XG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbWF5YmVJdGVyYWJsZVxuICAgKiBAcmV0dXJuIHs/ZnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IG1heWJlSXRlcmFibGUgJiYgKElURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF0pO1xuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yRm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24gb2YgbWV0aG9kcyB0aGF0IGFsbG93IGRlY2xhcmF0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIHByb3BzIHRoYXQgYXJlXG4gICAqIHN1cHBsaWVkIHRvIFJlYWN0IGNvbXBvbmVudHMuIEV4YW1wbGUgdXNhZ2U6XG4gICAqXG4gICAqICAgdmFyIFByb3BzID0gcmVxdWlyZSgnUmVhY3RQcm9wVHlwZXMnKTtcbiAgICogICB2YXIgTXlBcnRpY2xlID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBwcm9wIG5hbWVkIFwiZGVzY3JpcHRpb25cIi5cbiAgICogICAgICAgZGVzY3JpcHRpb246IFByb3BzLnN0cmluZyxcbiAgICpcbiAgICogICAgICAgLy8gQSByZXF1aXJlZCBlbnVtIHByb3AgbmFtZWQgXCJjYXRlZ29yeVwiLlxuICAgKiAgICAgICBjYXRlZ29yeTogUHJvcHMub25lT2YoWydOZXdzJywnUGhvdG9zJ10pLmlzUmVxdWlyZWQsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcHJvcCBuYW1lZCBcImRpYWxvZ1wiIHRoYXQgcmVxdWlyZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nLlxuICAgKiAgICAgICBkaWFsb2c6IFByb3BzLmluc3RhbmNlT2YoRGlhbG9nKS5pc1JlcXVpcmVkXG4gICAqICAgICB9LFxuICAgKiAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsgLi4uIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogQSBtb3JlIGZvcm1hbCBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0aGVzZSBtZXRob2RzIGFyZSB1c2VkOlxuICAgKlxuICAgKiAgIHR5cGUgOj0gYXJyYXl8Ym9vbHxmdW5jfG9iamVjdHxudW1iZXJ8c3RyaW5nfG9uZU9mKFsuLi5dKXxpbnN0YW5jZU9mKC4uLilcbiAgICogICBkZWNsIDo9IFJlYWN0UHJvcFR5cGVzLnt0eXBlfSguaXNSZXF1aXJlZCk/XG4gICAqXG4gICAqIEVhY2ggYW5kIGV2ZXJ5IGRlY2xhcmF0aW9uIHByb2R1Y2VzIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBzaWduYXR1cmUuIFRoaXNcbiAgICogYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbnMuIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiAgdmFyIE15TGluayA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIG9yIFVSSSBwcm9wIG5hbWVkIFwiaHJlZlwiLlxuICAgKiAgICAgIGhyZWY6IGZ1bmN0aW9uKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgKiAgICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICogICAgICAgIGlmIChwcm9wVmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgcHJvcFZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgKiAgICAgICAgICAgICEocHJvcFZhbHVlIGluc3RhbmNlb2YgVVJJKSkge1xuICAgKiAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgKiAgICAgICAgICAgICdFeHBlY3RlZCBhIHN0cmluZyBvciBhbiBVUkkgZm9yICcgKyBwcm9wTmFtZSArICcgaW4gJyArXG4gICAqICAgICAgICAgICAgY29tcG9uZW50TmFtZVxuICAgKiAgICAgICAgICApO1xuICAgKiAgICAgICAgfVxuICAgKiAgICAgIH1cbiAgICogICAgfSxcbiAgICogICAgcmVuZGVyOiBmdW5jdGlvbigpIHsuLi59XG4gICAqICB9KTtcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuXG4gIHZhciBBTk9OWU1PVVMgPSAnPDxhbm9ueW1vdXM+Pic7XG5cbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2FycmF5JyksXG4gICAgYm9vbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Jvb2xlYW4nKSxcbiAgICBmdW5jOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignZnVuY3Rpb24nKSxcbiAgICBudW1iZXI6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdudW1iZXInKSxcbiAgICBvYmplY3Q6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdvYmplY3QnKSxcbiAgICBzdHJpbmc6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzdHJpbmcnKSxcbiAgICBzeW1ib2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzeW1ib2wnKSxcblxuICAgIGFueTogY3JlYXRlQW55VHlwZUNoZWNrZXIoKSxcbiAgICBhcnJheU9mOiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIsXG4gICAgZWxlbWVudDogY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyXG4gIH07XG5cbiAgLyoqXG4gICAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG4gICAqL1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXNlbGYtY29tcGFyZSovXG4gIGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gICAgaWYgKHggPT09IHkpIHtcbiAgICAgIC8vIFN0ZXBzIDEtNSwgNy0xMFxuICAgICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RlcCA2LmE6IE5hTiA9PSBOYU5cbiAgICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gICAgfVxuICB9XG4gIC8qZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuXG4gIC8qKlxuICAgKiBXZSB1c2UgYW4gRXJyb3ItbGlrZSBvYmplY3QgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYXMgcGVvcGxlIG1heSBjYWxsXG4gICAqIFByb3BUeXBlcyBkaXJlY3RseSBhbmQgaW5zcGVjdCB0aGVpciBvdXRwdXQuIEhvd2V2ZXIsIHdlIGRvbid0IHVzZSByZWFsXG4gICAqIEVycm9ycyBhbnltb3JlLiBXZSBkb24ndCBpbnNwZWN0IHRoZWlyIHN0YWNrIGFueXdheSwgYW5kIGNyZWF0aW5nIHRoZW1cbiAgICogaXMgcHJvaGliaXRpdmVseSBleHBlbnNpdmUgaWYgdGhleSBhcmUgY3JlYXRlZCB0b28gb2Z0ZW4sIHN1Y2ggYXMgd2hhdFxuICAgKiBoYXBwZW5zIGluIG9uZU9mVHlwZSgpIGZvciBhbnkgdHlwZSBiZWZvcmUgdGhlIG9uZSB0aGF0IG1hdGNoZWQuXG4gICAqL1xuICBmdW5jdGlvbiBQcm9wVHlwZUVycm9yKG1lc3NhZ2UpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc3RhY2sgPSAnJztcbiAgfVxuICAvLyBNYWtlIGBpbnN0YW5jZW9mIEVycm9yYCBzdGlsbCB3b3JrIGZvciByZXR1cm5lZCBlcnJvcnMuXG4gIFByb3BUeXBlRXJyb3IucHJvdG90eXBlID0gRXJyb3IucHJvdG90eXBlO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZSA9IHt9O1xuICAgICAgdmFyIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50ID0gMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tUeXBlKGlzUmVxdWlyZWQsIHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICBjb21wb25lbnROYW1lID0gY29tcG9uZW50TmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICBwcm9wRnVsbE5hbWUgPSBwcm9wRnVsbE5hbWUgfHwgcHJvcE5hbWU7XG5cbiAgICAgIGlmIChzZWNyZXQgIT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAgIGlmICh0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gICAgICAgICAgLy8gTmV3IGJlaGF2aW9yIG9ubHkgZm9yIHVzZXJzIG9mIGBwcm9wLXR5cGVzYCBwYWNrYWdlXG4gICAgICAgICAgaW52YXJpYW50KFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAvLyBPbGQgYmVoYXZpb3IgZm9yIHBlb3BsZSB1c2luZyBSZWFjdC5Qcm9wVHlwZXNcbiAgICAgICAgICB2YXIgY2FjaGVLZXkgPSBjb21wb25lbnROYW1lICsgJzonICsgcHJvcE5hbWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIW1hbnVhbFByb3BUeXBlQ2FsbENhY2hlW2NhY2hlS2V5XSAmJlxuICAgICAgICAgICAgLy8gQXZvaWQgc3BhbW1pbmcgdGhlIGNvbnNvbGUgYmVjYXVzZSB0aGV5IGFyZSBvZnRlbiBub3QgYWN0aW9uYWJsZSBleGNlcHQgZm9yIGxpYiBhdXRob3JzXG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA8IDNcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAnWW91IGFyZSBtYW51YWxseSBjYWxsaW5nIGEgUmVhY3QuUHJvcFR5cGVzIHZhbGlkYXRpb24gJyArXG4gICAgICAgICAgICAgICdmdW5jdGlvbiBmb3IgdGhlIGAlc2AgcHJvcCBvbiBgJXNgLiBUaGlzIGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgICAgICAgICAgICdhbmQgd2lsbCB0aHJvdyBpbiB0aGUgc3RhbmRhbG9uZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAgICdZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIGEgdGhpcmQtcGFydHkgUHJvcFR5cGVzICcgK1xuICAgICAgICAgICAgICAnbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2FybmluZy1kb250LWNhbGwtcHJvcHR5cGVzICcgKyAnZm9yIGRldGFpbHMuJyxcbiAgICAgICAgICAgICAgcHJvcEZ1bGxOYW1lLFxuICAgICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGVbY2FjaGVLZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09IG51bGwpIHtcbiAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1RoZSAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgaXMgbWFya2VkIGFzIHJlcXVpcmVkICcgKyAoJ2luIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBidXQgaXRzIHZhbHVlIGlzIGBudWxsYC4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgaW4gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYHVuZGVmaW5lZGAuJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoYWluZWRDaGVja1R5cGUgPSBjaGVja1R5cGUuYmluZChudWxsLCBmYWxzZSk7XG4gICAgY2hhaW5lZENoZWNrVHlwZS5pc1JlcXVpcmVkID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgdHJ1ZSk7XG5cbiAgICByZXR1cm4gY2hhaW5lZENoZWNrVHlwZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKGV4cGVjdGVkVHlwZSkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gZXhwZWN0ZWRUeXBlKSB7XG4gICAgICAgIC8vIGBwcm9wVmFsdWVgIGJlaW5nIGluc3RhbmNlIG9mLCBzYXksIGRhdGUvcmVnZXhwLCBwYXNzIHRoZSAnb2JqZWN0J1xuICAgICAgICAvLyBjaGVjaywgYnV0IHdlIGNhbiBvZmZlciBhIG1vcmUgcHJlY2lzZSBlcnJvciBtZXNzYWdlIGhlcmUgcmF0aGVyIHRoYW5cbiAgICAgICAgLy8gJ29mIHR5cGUgYG9iamVjdGAnLlxuICAgICAgICB2YXIgcHJlY2lzZVR5cGUgPSBnZXRQcmVjaXNlVHlwZShwcm9wVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByZWNpc2VUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdgJyArIGV4cGVjdGVkVHlwZSArICdgLicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQW55VHlwZUNoZWNrZXIoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlQ2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1Byb3BlcnR5IGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgY29tcG9uZW50IGAnICsgY29tcG9uZW50TmFtZSArICdgIGhhcyBpbnZhbGlkIFByb3BUeXBlIG5vdGF0aW9uIGluc2lkZSBhcnJheU9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIGFycmF5LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHR5cGVDaGVja2VyKHByb3BWYWx1ZSwgaSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICdbJyArIGkgKyAnXScsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzKHByb3BWYWx1ZSwgZXhwZWN0ZWRWYWx1ZXNbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHZhbHVlc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVmFsdWVzKTtcbiAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdmFsdWUgYCcgKyBwcm9wVmFsdWUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgb25lIG9mICcgKyB2YWx1ZXNTdHJpbmcgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgb2JqZWN0T2YuJyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKHByb3BWYWx1ZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAlcyBhdCBpbmRleCAlcy4nLFxuICAgICAgICAgIGdldFBvc3RmaXhGb3JUeXBlV2FybmluZyhjaGVja2VyKSxcbiAgICAgICAgICBpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc05vZGUocHJvcFZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcFZhbHVlID09PSBudWxsIHx8IGlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChwcm9wVmFsdWUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuICAgICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBwcm9wVmFsdWUuZW50cmllcykge1xuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJdGVyYXRvciB3aWxsIHByb3ZpZGUgZW50cnkgW2ssdl0gdHVwbGVzIHJhdGhlciB0aGFuIHZhbHVlcy5cbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpIHtcbiAgICAvLyBOYXRpdmUgU3ltYm9sLlxuICAgIGlmIChwcm9wVHlwZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qc1xuLy8gbW9kdWxlIGlkID0gMTM5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///139\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 45);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 13);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 12);\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ 78);\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ 140);\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTM5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzPzFkYTUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW1wdHlGdW5jdGlvbiA9IHJlcXVpcmUoJ2ZianMvbGliL2VtcHR5RnVuY3Rpb24nKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xudmFyIGNoZWNrUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9jaGVja1Byb3BUeXBlcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlzVmFsaWRFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gIC8qIGdsb2JhbCBTeW1ib2wgKi9cbiAgdmFyIElURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xuICB2YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7IC8vIEJlZm9yZSBTeW1ib2wgc3BlYy5cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaXRlcmF0b3IgbWV0aG9kIGZ1bmN0aW9uIGNvbnRhaW5lZCBvbiB0aGUgaXRlcmFibGUgb2JqZWN0LlxuICAgKlxuICAgKiBCZSBzdXJlIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgaXRlcmFibGUgYXMgY29udGV4dDpcbiAgICpcbiAgICogICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihteUl0ZXJhYmxlKTtcbiAgICogICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAqICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChteUl0ZXJhYmxlKTtcbiAgICogICAgICAgLi4uXG4gICAqICAgICB9XG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbWF5YmVJdGVyYWJsZVxuICAgKiBAcmV0dXJuIHs/ZnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IG1heWJlSXRlcmFibGUgJiYgKElURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF0pO1xuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yRm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24gb2YgbWV0aG9kcyB0aGF0IGFsbG93IGRlY2xhcmF0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIHByb3BzIHRoYXQgYXJlXG4gICAqIHN1cHBsaWVkIHRvIFJlYWN0IGNvbXBvbmVudHMuIEV4YW1wbGUgdXNhZ2U6XG4gICAqXG4gICAqICAgdmFyIFByb3BzID0gcmVxdWlyZSgnUmVhY3RQcm9wVHlwZXMnKTtcbiAgICogICB2YXIgTXlBcnRpY2xlID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBwcm9wIG5hbWVkIFwiZGVzY3JpcHRpb25cIi5cbiAgICogICAgICAgZGVzY3JpcHRpb246IFByb3BzLnN0cmluZyxcbiAgICpcbiAgICogICAgICAgLy8gQSByZXF1aXJlZCBlbnVtIHByb3AgbmFtZWQgXCJjYXRlZ29yeVwiLlxuICAgKiAgICAgICBjYXRlZ29yeTogUHJvcHMub25lT2YoWydOZXdzJywnUGhvdG9zJ10pLmlzUmVxdWlyZWQsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcHJvcCBuYW1lZCBcImRpYWxvZ1wiIHRoYXQgcmVxdWlyZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nLlxuICAgKiAgICAgICBkaWFsb2c6IFByb3BzLmluc3RhbmNlT2YoRGlhbG9nKS5pc1JlcXVpcmVkXG4gICAqICAgICB9LFxuICAgKiAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsgLi4uIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogQSBtb3JlIGZvcm1hbCBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0aGVzZSBtZXRob2RzIGFyZSB1c2VkOlxuICAgKlxuICAgKiAgIHR5cGUgOj0gYXJyYXl8Ym9vbHxmdW5jfG9iamVjdHxudW1iZXJ8c3RyaW5nfG9uZU9mKFsuLi5dKXxpbnN0YW5jZU9mKC4uLilcbiAgICogICBkZWNsIDo9IFJlYWN0UHJvcFR5cGVzLnt0eXBlfSguaXNSZXF1aXJlZCk/XG4gICAqXG4gICAqIEVhY2ggYW5kIGV2ZXJ5IGRlY2xhcmF0aW9uIHByb2R1Y2VzIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBzaWduYXR1cmUuIFRoaXNcbiAgICogYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbnMuIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiAgdmFyIE15TGluayA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIG9yIFVSSSBwcm9wIG5hbWVkIFwiaHJlZlwiLlxuICAgKiAgICAgIGhyZWY6IGZ1bmN0aW9uKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgKiAgICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICogICAgICAgIGlmIChwcm9wVmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgcHJvcFZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgKiAgICAgICAgICAgICEocHJvcFZhbHVlIGluc3RhbmNlb2YgVVJJKSkge1xuICAgKiAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgKiAgICAgICAgICAgICdFeHBlY3RlZCBhIHN0cmluZyBvciBhbiBVUkkgZm9yICcgKyBwcm9wTmFtZSArICcgaW4gJyArXG4gICAqICAgICAgICAgICAgY29tcG9uZW50TmFtZVxuICAgKiAgICAgICAgICApO1xuICAgKiAgICAgICAgfVxuICAgKiAgICAgIH1cbiAgICogICAgfSxcbiAgICogICAgcmVuZGVyOiBmdW5jdGlvbigpIHsuLi59XG4gICAqICB9KTtcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuXG4gIHZhciBBTk9OWU1PVVMgPSAnPDxhbm9ueW1vdXM+Pic7XG5cbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2FycmF5JyksXG4gICAgYm9vbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Jvb2xlYW4nKSxcbiAgICBmdW5jOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignZnVuY3Rpb24nKSxcbiAgICBudW1iZXI6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdudW1iZXInKSxcbiAgICBvYmplY3Q6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdvYmplY3QnKSxcbiAgICBzdHJpbmc6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzdHJpbmcnKSxcbiAgICBzeW1ib2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzeW1ib2wnKSxcblxuICAgIGFueTogY3JlYXRlQW55VHlwZUNoZWNrZXIoKSxcbiAgICBhcnJheU9mOiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIsXG4gICAgZWxlbWVudDogY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyXG4gIH07XG5cbiAgLyoqXG4gICAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG4gICAqL1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXNlbGYtY29tcGFyZSovXG4gIGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gICAgaWYgKHggPT09IHkpIHtcbiAgICAgIC8vIFN0ZXBzIDEtNSwgNy0xMFxuICAgICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RlcCA2LmE6IE5hTiA9PSBOYU5cbiAgICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gICAgfVxuICB9XG4gIC8qZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuXG4gIC8qKlxuICAgKiBXZSB1c2UgYW4gRXJyb3ItbGlrZSBvYmplY3QgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYXMgcGVvcGxlIG1heSBjYWxsXG4gICAqIFByb3BUeXBlcyBkaXJlY3RseSBhbmQgaW5zcGVjdCB0aGVpciBvdXRwdXQuIEhvd2V2ZXIsIHdlIGRvbid0IHVzZSByZWFsXG4gICAqIEVycm9ycyBhbnltb3JlLiBXZSBkb24ndCBpbnNwZWN0IHRoZWlyIHN0YWNrIGFueXdheSwgYW5kIGNyZWF0aW5nIHRoZW1cbiAgICogaXMgcHJvaGliaXRpdmVseSBleHBlbnNpdmUgaWYgdGhleSBhcmUgY3JlYXRlZCB0b28gb2Z0ZW4sIHN1Y2ggYXMgd2hhdFxuICAgKiBoYXBwZW5zIGluIG9uZU9mVHlwZSgpIGZvciBhbnkgdHlwZSBiZWZvcmUgdGhlIG9uZSB0aGF0IG1hdGNoZWQuXG4gICAqL1xuICBmdW5jdGlvbiBQcm9wVHlwZUVycm9yKG1lc3NhZ2UpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc3RhY2sgPSAnJztcbiAgfVxuICAvLyBNYWtlIGBpbnN0YW5jZW9mIEVycm9yYCBzdGlsbCB3b3JrIGZvciByZXR1cm5lZCBlcnJvcnMuXG4gIFByb3BUeXBlRXJyb3IucHJvdG90eXBlID0gRXJyb3IucHJvdG90eXBlO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZSA9IHt9O1xuICAgICAgdmFyIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50ID0gMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tUeXBlKGlzUmVxdWlyZWQsIHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICBjb21wb25lbnROYW1lID0gY29tcG9uZW50TmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICBwcm9wRnVsbE5hbWUgPSBwcm9wRnVsbE5hbWUgfHwgcHJvcE5hbWU7XG5cbiAgICAgIGlmIChzZWNyZXQgIT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAgIGlmICh0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gICAgICAgICAgLy8gTmV3IGJlaGF2aW9yIG9ubHkgZm9yIHVzZXJzIG9mIGBwcm9wLXR5cGVzYCBwYWNrYWdlXG4gICAgICAgICAgaW52YXJpYW50KFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAvLyBPbGQgYmVoYXZpb3IgZm9yIHBlb3BsZSB1c2luZyBSZWFjdC5Qcm9wVHlwZXNcbiAgICAgICAgICB2YXIgY2FjaGVLZXkgPSBjb21wb25lbnROYW1lICsgJzonICsgcHJvcE5hbWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIW1hbnVhbFByb3BUeXBlQ2FsbENhY2hlW2NhY2hlS2V5XSAmJlxuICAgICAgICAgICAgLy8gQXZvaWQgc3BhbW1pbmcgdGhlIGNvbnNvbGUgYmVjYXVzZSB0aGV5IGFyZSBvZnRlbiBub3QgYWN0aW9uYWJsZSBleGNlcHQgZm9yIGxpYiBhdXRob3JzXG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA8IDNcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAnWW91IGFyZSBtYW51YWxseSBjYWxsaW5nIGEgUmVhY3QuUHJvcFR5cGVzIHZhbGlkYXRpb24gJyArXG4gICAgICAgICAgICAgICdmdW5jdGlvbiBmb3IgdGhlIGAlc2AgcHJvcCBvbiBgJXNgLiBUaGlzIGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgICAgICAgICAgICdhbmQgd2lsbCB0aHJvdyBpbiB0aGUgc3RhbmRhbG9uZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAgICdZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIGEgdGhpcmQtcGFydHkgUHJvcFR5cGVzICcgK1xuICAgICAgICAgICAgICAnbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2FybmluZy1kb250LWNhbGwtcHJvcHR5cGVzICcgKyAnZm9yIGRldGFpbHMuJyxcbiAgICAgICAgICAgICAgcHJvcEZ1bGxOYW1lLFxuICAgICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGVbY2FjaGVLZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09IG51bGwpIHtcbiAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1RoZSAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgaXMgbWFya2VkIGFzIHJlcXVpcmVkICcgKyAoJ2luIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBidXQgaXRzIHZhbHVlIGlzIGBudWxsYC4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgaW4gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYHVuZGVmaW5lZGAuJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoYWluZWRDaGVja1R5cGUgPSBjaGVja1R5cGUuYmluZChudWxsLCBmYWxzZSk7XG4gICAgY2hhaW5lZENoZWNrVHlwZS5pc1JlcXVpcmVkID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgdHJ1ZSk7XG5cbiAgICByZXR1cm4gY2hhaW5lZENoZWNrVHlwZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKGV4cGVjdGVkVHlwZSkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gZXhwZWN0ZWRUeXBlKSB7XG4gICAgICAgIC8vIGBwcm9wVmFsdWVgIGJlaW5nIGluc3RhbmNlIG9mLCBzYXksIGRhdGUvcmVnZXhwLCBwYXNzIHRoZSAnb2JqZWN0J1xuICAgICAgICAvLyBjaGVjaywgYnV0IHdlIGNhbiBvZmZlciBhIG1vcmUgcHJlY2lzZSBlcnJvciBtZXNzYWdlIGhlcmUgcmF0aGVyIHRoYW5cbiAgICAgICAgLy8gJ29mIHR5cGUgYG9iamVjdGAnLlxuICAgICAgICB2YXIgcHJlY2lzZVR5cGUgPSBnZXRQcmVjaXNlVHlwZShwcm9wVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByZWNpc2VUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdgJyArIGV4cGVjdGVkVHlwZSArICdgLicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQW55VHlwZUNoZWNrZXIoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlQ2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1Byb3BlcnR5IGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgY29tcG9uZW50IGAnICsgY29tcG9uZW50TmFtZSArICdgIGhhcyBpbnZhbGlkIFByb3BUeXBlIG5vdGF0aW9uIGluc2lkZSBhcnJheU9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIGFycmF5LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHR5cGVDaGVja2VyKHByb3BWYWx1ZSwgaSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICdbJyArIGkgKyAnXScsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzKHByb3BWYWx1ZSwgZXhwZWN0ZWRWYWx1ZXNbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHZhbHVlc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVmFsdWVzKTtcbiAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdmFsdWUgYCcgKyBwcm9wVmFsdWUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgb25lIG9mICcgKyB2YWx1ZXNTdHJpbmcgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgb2JqZWN0T2YuJyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKHByb3BWYWx1ZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAlcyBhdCBpbmRleCAlcy4nLFxuICAgICAgICAgIGdldFBvc3RmaXhGb3JUeXBlV2FybmluZyhjaGVja2VyKSxcbiAgICAgICAgICBpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc05vZGUocHJvcFZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcFZhbHVlID09PSBudWxsIHx8IGlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChwcm9wVmFsdWUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuICAgICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBwcm9wVmFsdWUuZW50cmllcykge1xuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJdGVyYXRvciB3aWxsIHByb3ZpZGUgZW50cnkgW2ssdl0gdHVwbGVzIHJhdGhlciB0aGFuIHZhbHVlcy5cbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpIHtcbiAgICAvLyBOYXRpdmUgU3ltYm9sLlxuICAgIGlmIChwcm9wVHlwZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qc1xuLy8gbW9kdWxlIGlkID0gMTM5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///139\n"); /***/ }), /* 140 */ @@ -1903,7 +1903,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPropagators = __webpack_require__(/*! ./EventPropagators */ 27);\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\n\nvar inputValueTracking = __webpack_require__(/*! ./inputValueTracking */ 85);\nvar getEventTarget = __webpack_require__(/*! ./getEventTarget */ 48);\nvar isEventSupported = __webpack_require__(/*! ./isEventSupported */ 49);\nvar isTextInputElement = __webpack_require__(/*! ./isTextInputElement */ 86);\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\nfunction createAndAccumulateChangeEvent(inst, nativeEvent, target) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getInstIfValueChanged(targetInst, nativeEvent) {\n var updated = inputValueTracking.updateValueIfChanged(targetInst);\n var simulated = nativeEvent.simulated === true && ChangeEventPlugin._allowSimulatedPassThrough;\n\n if (updated || simulated) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\n\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForChangeEventIE8();\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n\n isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9);\n}\n\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n activeElement = null;\n activeElementInst = null;\n}\n\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n if (getInstIfValueChanged(activeElementInst, nativeEvent)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventPolyfill(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n return getInstIfValueChanged(activeElementInst, nativeEvent);\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topClick') {\n return getInstIfValueChanged(targetInst, nativeEvent);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topInput' || topLevelType === 'topChange') {\n return getInstIfValueChanged(targetInst, nativeEvent);\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n eventTypes: eventTypes,\n\n _allowSimulatedPassThrough: true,\n _isInputEventSupported: isInputEventSupported,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst, nativeEvent);\n if (inst) {\n var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n};\n\nmodule.exports = ChangeEventPlugin;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvQ2hhbmdlRXZlbnRQbHVnaW4uanM/MTVkZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRQbHVnaW5IdWIgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luSHViJyk7XG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHJlcXVpcmUoJy4vRXZlbnRQcm9wYWdhdG9ycycpO1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG52YXIgU3ludGhldGljRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY0V2ZW50Jyk7XG5cbnZhciBpbnB1dFZhbHVlVHJhY2tpbmcgPSByZXF1aXJlKCcuL2lucHV0VmFsdWVUcmFja2luZycpO1xudmFyIGdldEV2ZW50VGFyZ2V0ID0gcmVxdWlyZSgnLi9nZXRFdmVudFRhcmdldCcpO1xudmFyIGlzRXZlbnRTdXBwb3J0ZWQgPSByZXF1aXJlKCcuL2lzRXZlbnRTdXBwb3J0ZWQnKTtcbnZhciBpc1RleHRJbnB1dEVsZW1lbnQgPSByZXF1aXJlKCcuL2lzVGV4dElucHV0RWxlbWVudCcpO1xuXG52YXIgZXZlbnRUeXBlcyA9IHtcbiAgY2hhbmdlOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6ICdvbkNoYW5nZScsXG4gICAgICBjYXB0dXJlZDogJ29uQ2hhbmdlQ2FwdHVyZSdcbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogWyd0b3BCbHVyJywgJ3RvcENoYW5nZScsICd0b3BDbGljaycsICd0b3BGb2N1cycsICd0b3BJbnB1dCcsICd0b3BLZXlEb3duJywgJ3RvcEtleVVwJywgJ3RvcFNlbGVjdGlvbkNoYW5nZSddXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUFuZEFjY3VtdWxhdGVDaGFuZ2VFdmVudChpbnN0LCBuYXRpdmVFdmVudCwgdGFyZ2V0KSB7XG4gIHZhciBldmVudCA9IFN5bnRoZXRpY0V2ZW50LmdldFBvb2xlZChldmVudFR5cGVzLmNoYW5nZSwgaW5zdCwgbmF0aXZlRXZlbnQsIHRhcmdldCk7XG4gIGV2ZW50LnR5cGUgPSAnY2hhbmdlJztcbiAgRXZlbnRQcm9wYWdhdG9ycy5hY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzKGV2ZW50KTtcbiAgcmV0dXJuIGV2ZW50O1xufVxuLyoqXG4gKiBGb3IgSUUgc2hpbXNcbiAqL1xudmFyIGFjdGl2ZUVsZW1lbnQgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcblxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGNoYW5nZWAgZXZlbnRcbiAqL1xuZnVuY3Rpb24gc2hvdWxkVXNlQ2hhbmdlRXZlbnQoZWxlbSkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fCBub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBlbGVtLnR5cGUgPT09ICdmaWxlJztcbn1cblxudmFyIGRvZXNDaGFuZ2VFdmVudEJ1YmJsZSA9IGZhbHNlO1xuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAvLyBTZWUgYGhhbmRsZUNoYW5nZWAgY29tbWVudCBiZWxvd1xuICBkb2VzQ2hhbmdlRXZlbnRCdWJibGUgPSBpc0V2ZW50U3VwcG9ydGVkKCdjaGFuZ2UnKSAmJiAoIWRvY3VtZW50LmRvY3VtZW50TW9kZSB8fCBkb2N1bWVudC5kb2N1bWVudE1vZGUgPiA4KTtcbn1cblxuZnVuY3Rpb24gbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudChuYXRpdmVFdmVudCkge1xuICB2YXIgZXZlbnQgPSBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoYWN0aXZlRWxlbWVudEluc3QsIG5hdGl2ZUV2ZW50LCBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkpO1xuXG4gIC8vIElmIGNoYW5nZSBhbmQgcHJvcGVydHljaGFuZ2UgYnViYmxlZCwgd2UnZCBqdXN0IGJpbmQgdG8gaXQgbGlrZSBhbGwgdGhlXG4gIC8vIG90aGVyIGV2ZW50cyBhbmQgaGF2ZSBpdCBnbyB0aHJvdWdoIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci4gU2luY2UgaXRcbiAgLy8gZG9lc24ndCwgd2UgbWFudWFsbHkgbGlzdGVuIGZvciB0aGUgZXZlbnRzIGFuZCBzbyB3ZSBoYXZlIHRvIGVucXVldWUgYW5kXG4gIC8vIHByb2Nlc3MgdGhlIGFic3RyYWN0IGV2ZW50IG1hbnVhbGx5LlxuICAvL1xuICAvLyBCYXRjaGluZyBpcyBuZWNlc3NhcnkgaGVyZSBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCBhbGwgZXZlbnQgaGFuZGxlcnMgcnVuXG4gIC8vIGJlZm9yZSB0aGUgbmV4dCByZXJlbmRlciAoaW5jbHVkaW5nIGV2ZW50IGhhbmRsZXJzIGF0dGFjaGVkIHRvIGFuY2VzdG9yXG4gIC8vIGVsZW1lbnRzIGluc3RlYWQgb2YgZGlyZWN0bHkgb24gdGhlIGlucHV0KS4gV2l0aG91dCB0aGlzLCBjb250cm9sbGVkXG4gIC8vIGNvbXBvbmVudHMgZG9uJ3Qgd29yayBwcm9wZXJseSBpbiBjb25qdW5jdGlvbiB3aXRoIGV2ZW50IGJ1YmJsaW5nIGJlY2F1c2VcbiAgLy8gdGhlIGNvbXBvbmVudCBpcyByZXJlbmRlcmVkIGFuZCB0aGUgdmFsdWUgcmV2ZXJ0ZWQgYmVmb3JlIGFsbCB0aGUgZXZlbnRcbiAgLy8gaGFuZGxlcnMgY2FuIHJ1bi4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzA4LlxuICBSZWFjdFVwZGF0ZXMuYmF0Y2hlZFVwZGF0ZXMocnVuRXZlbnRJbkJhdGNoLCBldmVudCk7XG59XG5cbmZ1bmN0aW9uIHJ1bkV2ZW50SW5CYXRjaChldmVudCkge1xuICBFdmVudFBsdWdpbkh1Yi5lbnF1ZXVlRXZlbnRzKGV2ZW50KTtcbiAgRXZlbnRQbHVnaW5IdWIucHJvY2Vzc0V2ZW50UXVldWUoZmFsc2UpO1xufVxuXG5mdW5jdGlvbiBzdGFydFdhdGNoaW5nRm9yQ2hhbmdlRXZlbnRJRTgodGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGFjdGl2ZUVsZW1lbnQgPSB0YXJnZXQ7XG4gIGFjdGl2ZUVsZW1lbnRJbnN0ID0gdGFyZ2V0SW5zdDtcbiAgYWN0aXZlRWxlbWVudC5hdHRhY2hFdmVudCgnb25jaGFuZ2UnLCBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KTtcbn1cblxuZnVuY3Rpb24gc3RvcFdhdGNoaW5nRm9yQ2hhbmdlRXZlbnRJRTgoKSB7XG4gIGlmICghYWN0aXZlRWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuICBhY3RpdmVFbGVtZW50LmRldGFjaEV2ZW50KCdvbmNoYW5nZScsIG1hbnVhbERpc3BhdGNoQ2hhbmdlRXZlbnQpO1xuICBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQpIHtcbiAgdmFyIHVwZGF0ZWQgPSBpbnB1dFZhbHVlVHJhY2tpbmcudXBkYXRlVmFsdWVJZkNoYW5nZWQodGFyZ2V0SW5zdCk7XG4gIHZhciBzaW11bGF0ZWQgPSBuYXRpdmVFdmVudC5zaW11bGF0ZWQgPT09IHRydWUgJiYgQ2hhbmdlRXZlbnRQbHVnaW4uX2FsbG93U2ltdWxhdGVkUGFzc1Rocm91Z2g7XG5cbiAgaWYgKHVwZGF0ZWQgfHwgc2ltdWxhdGVkKSB7XG4gICAgcmV0dXJuIHRhcmdldEluc3Q7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNoYW5nZUV2ZW50KHRvcExldmVsVHlwZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQ2hhbmdlJykge1xuICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUV2ZW50c0ZvckNoYW5nZUV2ZW50SUU4KHRvcExldmVsVHlwZSwgdGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGlmICh0b3BMZXZlbFR5cGUgPT09ICd0b3BGb2N1cycpIHtcbiAgICAvLyBzdG9wV2F0Y2hpbmcoKSBzaG91bGQgYmUgYSBub29wIGhlcmUgYnV0IHdlIGNhbGwgaXQganVzdCBpbiBjYXNlIHdlXG4gICAgLy8gbWlzc2VkIGEgYmx1ciBldmVudCBzb21laG93LlxuICAgIHN0b3BXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KCk7XG4gICAgc3RhcnRXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KHRhcmdldCwgdGFyZ2V0SW5zdCk7XG4gIH0gZWxzZSBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQmx1cicpIHtcbiAgICBzdG9wV2F0Y2hpbmdGb3JDaGFuZ2VFdmVudElFOCgpO1xuICB9XG59XG5cbi8qKlxuICogU0VDVElPTjogaGFuZGxlIGBpbnB1dGAgZXZlbnRcbiAqL1xudmFyIGlzSW5wdXRFdmVudFN1cHBvcnRlZCA9IGZhbHNlO1xuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAvLyBJRTkgY2xhaW1zIHRvIHN1cHBvcnQgdGhlIGlucHV0IGV2ZW50IGJ1dCBmYWlscyB0byB0cmlnZ2VyIGl0IHdoZW5cbiAgLy8gZGVsZXRpbmcgdGV4dCwgc28gd2UgaWdub3JlIGl0cyBpbnB1dCBldmVudHMuXG5cbiAgaXNJbnB1dEV2ZW50U3VwcG9ydGVkID0gaXNFdmVudFN1cHBvcnRlZCgnaW5wdXQnKSAmJiAoISgnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCkgfHwgZG9jdW1lbnQuZG9jdW1lbnRNb2RlID4gOSk7XG59XG5cbi8qKlxuICogKEZvciBJRSA8PTkpIFN0YXJ0cyB0cmFja2luZyBwcm9wZXJ0eWNoYW5nZSBldmVudHMgb24gdGhlIHBhc3NlZC1pbiBlbGVtZW50XG4gKiBhbmQgb3ZlcnJpZGUgdGhlIHZhbHVlIHByb3BlcnR5IHNvIHRoYXQgd2UgY2FuIGRpc3Rpbmd1aXNoIHVzZXIgZXZlbnRzIGZyb21cbiAqIHZhbHVlIGNoYW5nZXMgaW4gSlMuXG4gKi9cbmZ1bmN0aW9uIHN0YXJ0V2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSh0YXJnZXQsIHRhcmdldEluc3QpIHtcbiAgYWN0aXZlRWxlbWVudCA9IHRhcmdldDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSB0YXJnZXRJbnN0O1xuICBhY3RpdmVFbGVtZW50LmF0dGFjaEV2ZW50KCdvbnByb3BlcnR5Y2hhbmdlJywgaGFuZGxlUHJvcGVydHlDaGFuZ2UpO1xufVxuXG4vKipcbiAqIChGb3IgSUUgPD05KSBSZW1vdmVzIHRoZSBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgY3VycmVudGx5LXRyYWNrZWQgZWxlbWVudCxcbiAqIGlmIGFueSBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCkge1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYWN0aXZlRWxlbWVudC5kZXRhY2hFdmVudCgnb25wcm9wZXJ0eWNoYW5nZScsIGhhbmRsZVByb3BlcnR5Q2hhbmdlKTtcblxuICBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xufVxuXG4vKipcbiAqIChGb3IgSUUgPD05KSBIYW5kbGVzIGEgcHJvcGVydHljaGFuZ2UgZXZlbnQsIHNlbmRpbmcgYSBgY2hhbmdlYCBldmVudCBpZlxuICogdGhlIHZhbHVlIG9mIHRoZSBhY3RpdmUgZWxlbWVudCBoYXMgY2hhbmdlZC5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlUHJvcGVydHlDaGFuZ2UobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LnByb3BlcnR5TmFtZSAhPT0gJ3ZhbHVlJykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCkpIHtcbiAgICBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGwodG9wTGV2ZWxUeXBlLCB0YXJnZXQsIHRhcmdldEluc3QpIHtcbiAgaWYgKHRvcExldmVsVHlwZSA9PT0gJ3RvcEZvY3VzJykge1xuICAgIC8vIEluIElFOCwgd2UgY2FuIGNhcHR1cmUgYWxtb3N0IGFsbCAudmFsdWUgY2hhbmdlcyBieSBhZGRpbmcgYVxuICAgIC8vIHByb3BlcnR5Y2hhbmdlIGhhbmRsZXIgYW5kIGxvb2tpbmcgZm9yIGV2ZW50cyB3aXRoIHByb3BlcnR5TmFtZVxuICAgIC8vIGVxdWFsIHRvICd2YWx1ZSdcbiAgICAvLyBJbiBJRTksIHByb3BlcnR5Y2hhbmdlIGZpcmVzIGZvciBtb3N0IGlucHV0IGV2ZW50cyBidXQgaXMgYnVnZ3kgYW5kXG4gICAgLy8gZG9lc24ndCBmaXJlIHdoZW4gdGV4dCBpcyBkZWxldGVkLCBidXQgY29udmVuaWVudGx5LCBzZWxlY3Rpb25jaGFuZ2VcbiAgICAvLyBhcHBlYXJzIHRvIGZpcmUgaW4gYWxsIG9mIHRoZSByZW1haW5pbmcgY2FzZXMgc28gd2UgY2F0Y2ggdGhvc2UgYW5kXG4gICAgLy8gZm9yd2FyZCB0aGUgZXZlbnQgaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgLy8gSW4gZWl0aGVyIGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gY2FsbCB0aGUgZXZlbnQgaGFuZGxlciBpZiB0aGUgdmFsdWVcbiAgICAvLyBpcyBjaGFuZ2VkIGZyb20gSlMgc28gd2UgcmVkZWZpbmUgYSBzZXR0ZXIgZm9yIGAudmFsdWVgIHRoYXQgdXBkYXRlc1xuICAgIC8vIG91ciBhY3RpdmVFbGVtZW50VmFsdWUgdmFyaWFibGUsIGFsbG93aW5nIHVzIHRvIGlnbm9yZSB0aG9zZSBjaGFuZ2VzXG4gICAgLy9cbiAgICAvLyBzdG9wV2F0Y2hpbmcoKSBzaG91bGQgYmUgYSBub29wIGhlcmUgYnV0IHdlIGNhbGwgaXQganVzdCBpbiBjYXNlIHdlXG4gICAgLy8gbWlzc2VkIGEgYmx1ciBldmVudCBzb21laG93LlxuICAgIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7XG4gICAgc3RhcnRXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKHRhcmdldCwgdGFyZ2V0SW5zdCk7XG4gIH0gZWxzZSBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQmx1cicpIHtcbiAgICBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpO1xuICB9XG59XG5cbi8vIEZvciBJRTggYW5kIElFOS5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGwodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wU2VsZWN0aW9uQ2hhbmdlJyB8fCB0b3BMZXZlbFR5cGUgPT09ICd0b3BLZXlVcCcgfHwgdG9wTGV2ZWxUeXBlID09PSAndG9wS2V5RG93bicpIHtcbiAgICAvLyBPbiB0aGUgc2VsZWN0aW9uY2hhbmdlIGV2ZW50LCB0aGUgdGFyZ2V0IGlzIGp1c3QgZG9jdW1lbnQgd2hpY2ggaXNuJ3RcbiAgICAvLyBoZWxwZnVsIGZvciB1cyBzbyBqdXN0IGNoZWNrIGFjdGl2ZUVsZW1lbnQgaW5zdGVhZC5cbiAgICAvL1xuICAgIC8vIDk5JSBvZiB0aGUgdGltZSwga2V5ZG93biBhbmQga2V5dXAgYXJlbid0IG5lY2Vzc2FyeS4gSUU4IGZhaWxzIHRvIGZpcmVcbiAgICAvLyBwcm9wZXJ0eWNoYW5nZSBvbiB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYWZ0ZXIgc2V0dGluZyBgdmFsdWVgIGZyb20gYVxuICAgIC8vIHNjcmlwdCBhbmQgZmlyZXMgb25seSBrZXlkb3duLCBrZXlwcmVzcywga2V5dXAuIENhdGNoaW5nIGtleXVwIHVzdWFsbHlcbiAgICAvLyBnZXRzIGl0IGFuZCBjYXRjaGluZyBrZXlkb3duIGxldHMgdXMgZmlyZSBhbiBldmVudCBmb3IgdGhlIGZpcnN0XG4gICAgLy8ga2V5c3Ryb2tlIGlmIHVzZXIgZG9lcyBhIGtleSByZXBlYXQgKGl0J2xsIGJlIGEgbGl0dGxlIGRlbGF5ZWQ6IHJpZ2h0XG4gICAgLy8gYmVmb3JlIHRoZSBzZWNvbmQga2V5c3Ryb2tlKS4gT3RoZXIgaW5wdXQgbWV0aG9kcyAoZS5nLiwgcGFzdGUpIHNlZW0gdG9cbiAgICAvLyBmaXJlIHNlbGVjdGlvbmNoYW5nZSBub3JtYWxseS5cbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGNsaWNrYCBldmVudFxuICovXG5mdW5jdGlvbiBzaG91bGRVc2VDbGlja0V2ZW50KGVsZW0pIHtcbiAgLy8gVXNlIHRoZSBgY2xpY2tgIGV2ZW50IHRvIGRldGVjdCBjaGFuZ2VzIHRvIGNoZWNrYm94IGFuZCByYWRpbyBpbnB1dHMuXG4gIC8vIFRoaXMgYXBwcm9hY2ggd29ya3MgYWNyb3NzIGFsbCBicm93c2Vycywgd2hlcmVhcyBgY2hhbmdlYCBkb2VzIG5vdCBmaXJlXG4gIC8vIHVudGlsIGBibHVyYCBpbiBJRTguXG4gIHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWU7XG4gIHJldHVybiBub2RlTmFtZSAmJiBub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmIChlbGVtLnR5cGUgPT09ICdjaGVja2JveCcgfHwgZWxlbS50eXBlID09PSAncmFkaW8nKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQ2xpY2snKSB7XG4gICAgcmV0dXJuIGdldEluc3RJZlZhbHVlQ2hhbmdlZCh0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvcklucHV0T3JDaGFuZ2VFdmVudCh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50KSB7XG4gIGlmICh0b3BMZXZlbFR5cGUgPT09ICd0b3BJbnB1dCcgfHwgdG9wTGV2ZWxUeXBlID09PSAndG9wQ2hhbmdlJykge1xuICAgIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUNvbnRyb2xsZWRJbnB1dEJsdXIoaW5zdCwgbm9kZSkge1xuICAvLyBUT0RPOiBJbiBJRSwgaW5zdCBpcyBvY2Nhc2lvbmFsbHkgbnVsbC4gV2h5P1xuICBpZiAoaW5zdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gRmliZXIgYW5kIFJlYWN0RE9NIGtlZXAgd3JhcHBlciBzdGF0ZSBpbiBzZXBhcmF0ZSBwbGFjZXNcbiAgdmFyIHN0YXRlID0gaW5zdC5fd3JhcHBlclN0YXRlIHx8IG5vZGUuX3dyYXBwZXJTdGF0ZTtcblxuICBpZiAoIXN0YXRlIHx8ICFzdGF0ZS5jb250cm9sbGVkIHx8IG5vZGUudHlwZSAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBJZiBjb250cm9sbGVkLCBhc3NpZ24gdGhlIHZhbHVlIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCB2YWx1ZSBvbiBibHVyXG4gIHZhciB2YWx1ZSA9ICcnICsgbm9kZS52YWx1ZTtcbiAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKCd2YWx1ZScpICE9PSB2YWx1ZSkge1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKCd2YWx1ZScsIHZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgcGx1Z2luIGNyZWF0ZXMgYW4gYG9uQ2hhbmdlYCBldmVudCB0aGF0IG5vcm1hbGl6ZXMgY2hhbmdlIGV2ZW50c1xuICogYWNyb3NzIGZvcm0gZWxlbWVudHMuIFRoaXMgZXZlbnQgZmlyZXMgYXQgYSB0aW1lIHdoZW4gaXQncyBwb3NzaWJsZSB0b1xuICogY2hhbmdlIHRoZSBlbGVtZW50J3MgdmFsdWUgd2l0aG91dCBzZWVpbmcgYSBmbGlja2VyLlxuICpcbiAqIFN1cHBvcnRlZCBlbGVtZW50cyBhcmU6XG4gKiAtIGlucHV0IChzZWUgYGlzVGV4dElucHV0RWxlbWVudGApXG4gKiAtIHRleHRhcmVhXG4gKiAtIHNlbGVjdFxuICovXG52YXIgQ2hhbmdlRXZlbnRQbHVnaW4gPSB7XG4gIGV2ZW50VHlwZXM6IGV2ZW50VHlwZXMsXG5cbiAgX2FsbG93U2ltdWxhdGVkUGFzc1Rocm91Z2g6IHRydWUsXG4gIF9pc0lucHV0RXZlbnRTdXBwb3J0ZWQ6IGlzSW5wdXRFdmVudFN1cHBvcnRlZCxcblxuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgdGFyZ2V0Tm9kZSA9IHRhcmdldEluc3QgPyBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdztcblxuICAgIHZhciBnZXRUYXJnZXRJbnN0RnVuYywgaGFuZGxlRXZlbnRGdW5jO1xuICAgIGlmIChzaG91bGRVc2VDaGFuZ2VFdmVudCh0YXJnZXROb2RlKSkge1xuICAgICAgaWYgKGRvZXNDaGFuZ2VFdmVudEJ1YmJsZSkge1xuICAgICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhhbmRsZUV2ZW50RnVuYyA9IGhhbmRsZUV2ZW50c0ZvckNoYW5nZUV2ZW50SUU4O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHRhcmdldE5vZGUpKSB7XG4gICAgICBpZiAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkKSB7XG4gICAgICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvcklucHV0T3JDaGFuZ2VFdmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvcklucHV0RXZlbnRQb2x5ZmlsbDtcbiAgICAgICAgaGFuZGxlRXZlbnRGdW5jID0gaGFuZGxlRXZlbnRzRm9ySW5wdXRFdmVudFBvbHlmaWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc2hvdWxkVXNlQ2xpY2tFdmVudCh0YXJnZXROb2RlKSkge1xuICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9yQ2xpY2tFdmVudDtcbiAgICB9XG5cbiAgICBpZiAoZ2V0VGFyZ2V0SW5zdEZ1bmMpIHtcbiAgICAgIHZhciBpbnN0ID0gZ2V0VGFyZ2V0SW5zdEZ1bmModG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCk7XG4gICAgICBpZiAoaW5zdCkge1xuICAgICAgICB2YXIgZXZlbnQgPSBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoaW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYW5kbGVFdmVudEZ1bmMpIHtcbiAgICAgIGhhbmRsZUV2ZW50RnVuYyh0b3BMZXZlbFR5cGUsIHRhcmdldE5vZGUsIHRhcmdldEluc3QpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gYmx1cnJpbmcsIHNldCB0aGUgdmFsdWUgYXR0cmlidXRlIGZvciBudW1iZXIgaW5wdXRzXG4gICAgaWYgKHRvcExldmVsVHlwZSA9PT0gJ3RvcEJsdXInKSB7XG4gICAgICBoYW5kbGVDb250cm9sbGVkSW5wdXRCbHVyKHRhcmdldEluc3QsIHRhcmdldE5vZGUpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDaGFuZ2VFdmVudFBsdWdpbjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0NoYW5nZUV2ZW50UGx1Z2luLmpzXG4vLyBtb2R1bGUgaWQgPSAxNTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///153\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPropagators = __webpack_require__(/*! ./EventPropagators */ 27);\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\n\nvar inputValueTracking = __webpack_require__(/*! ./inputValueTracking */ 85);\nvar getEventTarget = __webpack_require__(/*! ./getEventTarget */ 49);\nvar isEventSupported = __webpack_require__(/*! ./isEventSupported */ 50);\nvar isTextInputElement = __webpack_require__(/*! ./isTextInputElement */ 86);\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\nfunction createAndAccumulateChangeEvent(inst, nativeEvent, target) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getInstIfValueChanged(targetInst, nativeEvent) {\n var updated = inputValueTracking.updateValueIfChanged(targetInst);\n var simulated = nativeEvent.simulated === true && ChangeEventPlugin._allowSimulatedPassThrough;\n\n if (updated || simulated) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\n\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForChangeEventIE8();\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n\n isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9);\n}\n\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n activeElement = null;\n activeElementInst = null;\n}\n\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n if (getInstIfValueChanged(activeElementInst, nativeEvent)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {\n if (topLevelType === 'topFocus') {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventPolyfill(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n return getInstIfValueChanged(activeElementInst, nativeEvent);\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topClick') {\n return getInstIfValueChanged(targetInst, nativeEvent);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(topLevelType, targetInst, nativeEvent) {\n if (topLevelType === 'topInput' || topLevelType === 'topChange') {\n return getInstIfValueChanged(targetInst, nativeEvent);\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n eventTypes: eventTypes,\n\n _allowSimulatedPassThrough: true,\n _isInputEventSupported: isInputEventSupported,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst, nativeEvent);\n if (inst) {\n var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n};\n\nmodule.exports = ChangeEventPlugin;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvQ2hhbmdlRXZlbnRQbHVnaW4uanM/MTVkZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRQbHVnaW5IdWIgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luSHViJyk7XG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHJlcXVpcmUoJy4vRXZlbnRQcm9wYWdhdG9ycycpO1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG52YXIgU3ludGhldGljRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY0V2ZW50Jyk7XG5cbnZhciBpbnB1dFZhbHVlVHJhY2tpbmcgPSByZXF1aXJlKCcuL2lucHV0VmFsdWVUcmFja2luZycpO1xudmFyIGdldEV2ZW50VGFyZ2V0ID0gcmVxdWlyZSgnLi9nZXRFdmVudFRhcmdldCcpO1xudmFyIGlzRXZlbnRTdXBwb3J0ZWQgPSByZXF1aXJlKCcuL2lzRXZlbnRTdXBwb3J0ZWQnKTtcbnZhciBpc1RleHRJbnB1dEVsZW1lbnQgPSByZXF1aXJlKCcuL2lzVGV4dElucHV0RWxlbWVudCcpO1xuXG52YXIgZXZlbnRUeXBlcyA9IHtcbiAgY2hhbmdlOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6ICdvbkNoYW5nZScsXG4gICAgICBjYXB0dXJlZDogJ29uQ2hhbmdlQ2FwdHVyZSdcbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogWyd0b3BCbHVyJywgJ3RvcENoYW5nZScsICd0b3BDbGljaycsICd0b3BGb2N1cycsICd0b3BJbnB1dCcsICd0b3BLZXlEb3duJywgJ3RvcEtleVVwJywgJ3RvcFNlbGVjdGlvbkNoYW5nZSddXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUFuZEFjY3VtdWxhdGVDaGFuZ2VFdmVudChpbnN0LCBuYXRpdmVFdmVudCwgdGFyZ2V0KSB7XG4gIHZhciBldmVudCA9IFN5bnRoZXRpY0V2ZW50LmdldFBvb2xlZChldmVudFR5cGVzLmNoYW5nZSwgaW5zdCwgbmF0aXZlRXZlbnQsIHRhcmdldCk7XG4gIGV2ZW50LnR5cGUgPSAnY2hhbmdlJztcbiAgRXZlbnRQcm9wYWdhdG9ycy5hY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzKGV2ZW50KTtcbiAgcmV0dXJuIGV2ZW50O1xufVxuLyoqXG4gKiBGb3IgSUUgc2hpbXNcbiAqL1xudmFyIGFjdGl2ZUVsZW1lbnQgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcblxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGNoYW5nZWAgZXZlbnRcbiAqL1xuZnVuY3Rpb24gc2hvdWxkVXNlQ2hhbmdlRXZlbnQoZWxlbSkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fCBub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBlbGVtLnR5cGUgPT09ICdmaWxlJztcbn1cblxudmFyIGRvZXNDaGFuZ2VFdmVudEJ1YmJsZSA9IGZhbHNlO1xuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAvLyBTZWUgYGhhbmRsZUNoYW5nZWAgY29tbWVudCBiZWxvd1xuICBkb2VzQ2hhbmdlRXZlbnRCdWJibGUgPSBpc0V2ZW50U3VwcG9ydGVkKCdjaGFuZ2UnKSAmJiAoIWRvY3VtZW50LmRvY3VtZW50TW9kZSB8fCBkb2N1bWVudC5kb2N1bWVudE1vZGUgPiA4KTtcbn1cblxuZnVuY3Rpb24gbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudChuYXRpdmVFdmVudCkge1xuICB2YXIgZXZlbnQgPSBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoYWN0aXZlRWxlbWVudEluc3QsIG5hdGl2ZUV2ZW50LCBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkpO1xuXG4gIC8vIElmIGNoYW5nZSBhbmQgcHJvcGVydHljaGFuZ2UgYnViYmxlZCwgd2UnZCBqdXN0IGJpbmQgdG8gaXQgbGlrZSBhbGwgdGhlXG4gIC8vIG90aGVyIGV2ZW50cyBhbmQgaGF2ZSBpdCBnbyB0aHJvdWdoIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci4gU2luY2UgaXRcbiAgLy8gZG9lc24ndCwgd2UgbWFudWFsbHkgbGlzdGVuIGZvciB0aGUgZXZlbnRzIGFuZCBzbyB3ZSBoYXZlIHRvIGVucXVldWUgYW5kXG4gIC8vIHByb2Nlc3MgdGhlIGFic3RyYWN0IGV2ZW50IG1hbnVhbGx5LlxuICAvL1xuICAvLyBCYXRjaGluZyBpcyBuZWNlc3NhcnkgaGVyZSBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCBhbGwgZXZlbnQgaGFuZGxlcnMgcnVuXG4gIC8vIGJlZm9yZSB0aGUgbmV4dCByZXJlbmRlciAoaW5jbHVkaW5nIGV2ZW50IGhhbmRsZXJzIGF0dGFjaGVkIHRvIGFuY2VzdG9yXG4gIC8vIGVsZW1lbnRzIGluc3RlYWQgb2YgZGlyZWN0bHkgb24gdGhlIGlucHV0KS4gV2l0aG91dCB0aGlzLCBjb250cm9sbGVkXG4gIC8vIGNvbXBvbmVudHMgZG9uJ3Qgd29yayBwcm9wZXJseSBpbiBjb25qdW5jdGlvbiB3aXRoIGV2ZW50IGJ1YmJsaW5nIGJlY2F1c2VcbiAgLy8gdGhlIGNvbXBvbmVudCBpcyByZXJlbmRlcmVkIGFuZCB0aGUgdmFsdWUgcmV2ZXJ0ZWQgYmVmb3JlIGFsbCB0aGUgZXZlbnRcbiAgLy8gaGFuZGxlcnMgY2FuIHJ1bi4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzA4LlxuICBSZWFjdFVwZGF0ZXMuYmF0Y2hlZFVwZGF0ZXMocnVuRXZlbnRJbkJhdGNoLCBldmVudCk7XG59XG5cbmZ1bmN0aW9uIHJ1bkV2ZW50SW5CYXRjaChldmVudCkge1xuICBFdmVudFBsdWdpbkh1Yi5lbnF1ZXVlRXZlbnRzKGV2ZW50KTtcbiAgRXZlbnRQbHVnaW5IdWIucHJvY2Vzc0V2ZW50UXVldWUoZmFsc2UpO1xufVxuXG5mdW5jdGlvbiBzdGFydFdhdGNoaW5nRm9yQ2hhbmdlRXZlbnRJRTgodGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGFjdGl2ZUVsZW1lbnQgPSB0YXJnZXQ7XG4gIGFjdGl2ZUVsZW1lbnRJbnN0ID0gdGFyZ2V0SW5zdDtcbiAgYWN0aXZlRWxlbWVudC5hdHRhY2hFdmVudCgnb25jaGFuZ2UnLCBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KTtcbn1cblxuZnVuY3Rpb24gc3RvcFdhdGNoaW5nRm9yQ2hhbmdlRXZlbnRJRTgoKSB7XG4gIGlmICghYWN0aXZlRWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuICBhY3RpdmVFbGVtZW50LmRldGFjaEV2ZW50KCdvbmNoYW5nZScsIG1hbnVhbERpc3BhdGNoQ2hhbmdlRXZlbnQpO1xuICBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQpIHtcbiAgdmFyIHVwZGF0ZWQgPSBpbnB1dFZhbHVlVHJhY2tpbmcudXBkYXRlVmFsdWVJZkNoYW5nZWQodGFyZ2V0SW5zdCk7XG4gIHZhciBzaW11bGF0ZWQgPSBuYXRpdmVFdmVudC5zaW11bGF0ZWQgPT09IHRydWUgJiYgQ2hhbmdlRXZlbnRQbHVnaW4uX2FsbG93U2ltdWxhdGVkUGFzc1Rocm91Z2g7XG5cbiAgaWYgKHVwZGF0ZWQgfHwgc2ltdWxhdGVkKSB7XG4gICAgcmV0dXJuIHRhcmdldEluc3Q7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNoYW5nZUV2ZW50KHRvcExldmVsVHlwZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQ2hhbmdlJykge1xuICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUV2ZW50c0ZvckNoYW5nZUV2ZW50SUU4KHRvcExldmVsVHlwZSwgdGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGlmICh0b3BMZXZlbFR5cGUgPT09ICd0b3BGb2N1cycpIHtcbiAgICAvLyBzdG9wV2F0Y2hpbmcoKSBzaG91bGQgYmUgYSBub29wIGhlcmUgYnV0IHdlIGNhbGwgaXQganVzdCBpbiBjYXNlIHdlXG4gICAgLy8gbWlzc2VkIGEgYmx1ciBldmVudCBzb21laG93LlxuICAgIHN0b3BXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KCk7XG4gICAgc3RhcnRXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KHRhcmdldCwgdGFyZ2V0SW5zdCk7XG4gIH0gZWxzZSBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQmx1cicpIHtcbiAgICBzdG9wV2F0Y2hpbmdGb3JDaGFuZ2VFdmVudElFOCgpO1xuICB9XG59XG5cbi8qKlxuICogU0VDVElPTjogaGFuZGxlIGBpbnB1dGAgZXZlbnRcbiAqL1xudmFyIGlzSW5wdXRFdmVudFN1cHBvcnRlZCA9IGZhbHNlO1xuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAvLyBJRTkgY2xhaW1zIHRvIHN1cHBvcnQgdGhlIGlucHV0IGV2ZW50IGJ1dCBmYWlscyB0byB0cmlnZ2VyIGl0IHdoZW5cbiAgLy8gZGVsZXRpbmcgdGV4dCwgc28gd2UgaWdub3JlIGl0cyBpbnB1dCBldmVudHMuXG5cbiAgaXNJbnB1dEV2ZW50U3VwcG9ydGVkID0gaXNFdmVudFN1cHBvcnRlZCgnaW5wdXQnKSAmJiAoISgnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCkgfHwgZG9jdW1lbnQuZG9jdW1lbnRNb2RlID4gOSk7XG59XG5cbi8qKlxuICogKEZvciBJRSA8PTkpIFN0YXJ0cyB0cmFja2luZyBwcm9wZXJ0eWNoYW5nZSBldmVudHMgb24gdGhlIHBhc3NlZC1pbiBlbGVtZW50XG4gKiBhbmQgb3ZlcnJpZGUgdGhlIHZhbHVlIHByb3BlcnR5IHNvIHRoYXQgd2UgY2FuIGRpc3Rpbmd1aXNoIHVzZXIgZXZlbnRzIGZyb21cbiAqIHZhbHVlIGNoYW5nZXMgaW4gSlMuXG4gKi9cbmZ1bmN0aW9uIHN0YXJ0V2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSh0YXJnZXQsIHRhcmdldEluc3QpIHtcbiAgYWN0aXZlRWxlbWVudCA9IHRhcmdldDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSB0YXJnZXRJbnN0O1xuICBhY3RpdmVFbGVtZW50LmF0dGFjaEV2ZW50KCdvbnByb3BlcnR5Y2hhbmdlJywgaGFuZGxlUHJvcGVydHlDaGFuZ2UpO1xufVxuXG4vKipcbiAqIChGb3IgSUUgPD05KSBSZW1vdmVzIHRoZSBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgY3VycmVudGx5LXRyYWNrZWQgZWxlbWVudCxcbiAqIGlmIGFueSBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCkge1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYWN0aXZlRWxlbWVudC5kZXRhY2hFdmVudCgnb25wcm9wZXJ0eWNoYW5nZScsIGhhbmRsZVByb3BlcnR5Q2hhbmdlKTtcblxuICBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbiAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xufVxuXG4vKipcbiAqIChGb3IgSUUgPD05KSBIYW5kbGVzIGEgcHJvcGVydHljaGFuZ2UgZXZlbnQsIHNlbmRpbmcgYSBgY2hhbmdlYCBldmVudCBpZlxuICogdGhlIHZhbHVlIG9mIHRoZSBhY3RpdmUgZWxlbWVudCBoYXMgY2hhbmdlZC5cbiAqL1xuZnVuY3Rpb24gaGFuZGxlUHJvcGVydHlDaGFuZ2UobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LnByb3BlcnR5TmFtZSAhPT0gJ3ZhbHVlJykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCkpIHtcbiAgICBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGwodG9wTGV2ZWxUeXBlLCB0YXJnZXQsIHRhcmdldEluc3QpIHtcbiAgaWYgKHRvcExldmVsVHlwZSA9PT0gJ3RvcEZvY3VzJykge1xuICAgIC8vIEluIElFOCwgd2UgY2FuIGNhcHR1cmUgYWxtb3N0IGFsbCAudmFsdWUgY2hhbmdlcyBieSBhZGRpbmcgYVxuICAgIC8vIHByb3BlcnR5Y2hhbmdlIGhhbmRsZXIgYW5kIGxvb2tpbmcgZm9yIGV2ZW50cyB3aXRoIHByb3BlcnR5TmFtZVxuICAgIC8vIGVxdWFsIHRvICd2YWx1ZSdcbiAgICAvLyBJbiBJRTksIHByb3BlcnR5Y2hhbmdlIGZpcmVzIGZvciBtb3N0IGlucHV0IGV2ZW50cyBidXQgaXMgYnVnZ3kgYW5kXG4gICAgLy8gZG9lc24ndCBmaXJlIHdoZW4gdGV4dCBpcyBkZWxldGVkLCBidXQgY29udmVuaWVudGx5LCBzZWxlY3Rpb25jaGFuZ2VcbiAgICAvLyBhcHBlYXJzIHRvIGZpcmUgaW4gYWxsIG9mIHRoZSByZW1haW5pbmcgY2FzZXMgc28gd2UgY2F0Y2ggdGhvc2UgYW5kXG4gICAgLy8gZm9yd2FyZCB0aGUgZXZlbnQgaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgLy8gSW4gZWl0aGVyIGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gY2FsbCB0aGUgZXZlbnQgaGFuZGxlciBpZiB0aGUgdmFsdWVcbiAgICAvLyBpcyBjaGFuZ2VkIGZyb20gSlMgc28gd2UgcmVkZWZpbmUgYSBzZXR0ZXIgZm9yIGAudmFsdWVgIHRoYXQgdXBkYXRlc1xuICAgIC8vIG91ciBhY3RpdmVFbGVtZW50VmFsdWUgdmFyaWFibGUsIGFsbG93aW5nIHVzIHRvIGlnbm9yZSB0aG9zZSBjaGFuZ2VzXG4gICAgLy9cbiAgICAvLyBzdG9wV2F0Y2hpbmcoKSBzaG91bGQgYmUgYSBub29wIGhlcmUgYnV0IHdlIGNhbGwgaXQganVzdCBpbiBjYXNlIHdlXG4gICAgLy8gbWlzc2VkIGEgYmx1ciBldmVudCBzb21laG93LlxuICAgIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7XG4gICAgc3RhcnRXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKHRhcmdldCwgdGFyZ2V0SW5zdCk7XG4gIH0gZWxzZSBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQmx1cicpIHtcbiAgICBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpO1xuICB9XG59XG5cbi8vIEZvciBJRTggYW5kIElFOS5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGwodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wU2VsZWN0aW9uQ2hhbmdlJyB8fCB0b3BMZXZlbFR5cGUgPT09ICd0b3BLZXlVcCcgfHwgdG9wTGV2ZWxUeXBlID09PSAndG9wS2V5RG93bicpIHtcbiAgICAvLyBPbiB0aGUgc2VsZWN0aW9uY2hhbmdlIGV2ZW50LCB0aGUgdGFyZ2V0IGlzIGp1c3QgZG9jdW1lbnQgd2hpY2ggaXNuJ3RcbiAgICAvLyBoZWxwZnVsIGZvciB1cyBzbyBqdXN0IGNoZWNrIGFjdGl2ZUVsZW1lbnQgaW5zdGVhZC5cbiAgICAvL1xuICAgIC8vIDk5JSBvZiB0aGUgdGltZSwga2V5ZG93biBhbmQga2V5dXAgYXJlbid0IG5lY2Vzc2FyeS4gSUU4IGZhaWxzIHRvIGZpcmVcbiAgICAvLyBwcm9wZXJ0eWNoYW5nZSBvbiB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYWZ0ZXIgc2V0dGluZyBgdmFsdWVgIGZyb20gYVxuICAgIC8vIHNjcmlwdCBhbmQgZmlyZXMgb25seSBrZXlkb3duLCBrZXlwcmVzcywga2V5dXAuIENhdGNoaW5nIGtleXVwIHVzdWFsbHlcbiAgICAvLyBnZXRzIGl0IGFuZCBjYXRjaGluZyBrZXlkb3duIGxldHMgdXMgZmlyZSBhbiBldmVudCBmb3IgdGhlIGZpcnN0XG4gICAgLy8ga2V5c3Ryb2tlIGlmIHVzZXIgZG9lcyBhIGtleSByZXBlYXQgKGl0J2xsIGJlIGEgbGl0dGxlIGRlbGF5ZWQ6IHJpZ2h0XG4gICAgLy8gYmVmb3JlIHRoZSBzZWNvbmQga2V5c3Ryb2tlKS4gT3RoZXIgaW5wdXQgbWV0aG9kcyAoZS5nLiwgcGFzdGUpIHNlZW0gdG9cbiAgICAvLyBmaXJlIHNlbGVjdGlvbmNoYW5nZSBub3JtYWxseS5cbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGNsaWNrYCBldmVudFxuICovXG5mdW5jdGlvbiBzaG91bGRVc2VDbGlja0V2ZW50KGVsZW0pIHtcbiAgLy8gVXNlIHRoZSBgY2xpY2tgIGV2ZW50IHRvIGRldGVjdCBjaGFuZ2VzIHRvIGNoZWNrYm94IGFuZCByYWRpbyBpbnB1dHMuXG4gIC8vIFRoaXMgYXBwcm9hY2ggd29ya3MgYWNyb3NzIGFsbCBicm93c2Vycywgd2hlcmVhcyBgY2hhbmdlYCBkb2VzIG5vdCBmaXJlXG4gIC8vIHVudGlsIGBibHVyYCBpbiBJRTguXG4gIHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWU7XG4gIHJldHVybiBub2RlTmFtZSAmJiBub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmIChlbGVtLnR5cGUgPT09ICdjaGVja2JveCcgfHwgZWxlbS50eXBlID09PSAncmFkaW8nKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvckNsaWNrRXZlbnQodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSAndG9wQ2xpY2snKSB7XG4gICAgcmV0dXJuIGdldEluc3RJZlZhbHVlQ2hhbmdlZCh0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SW5zdEZvcklucHV0T3JDaGFuZ2VFdmVudCh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50KSB7XG4gIGlmICh0b3BMZXZlbFR5cGUgPT09ICd0b3BJbnB1dCcgfHwgdG9wTGV2ZWxUeXBlID09PSAndG9wQ2hhbmdlJykge1xuICAgIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQodGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUNvbnRyb2xsZWRJbnB1dEJsdXIoaW5zdCwgbm9kZSkge1xuICAvLyBUT0RPOiBJbiBJRSwgaW5zdCBpcyBvY2Nhc2lvbmFsbHkgbnVsbC4gV2h5P1xuICBpZiAoaW5zdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gRmliZXIgYW5kIFJlYWN0RE9NIGtlZXAgd3JhcHBlciBzdGF0ZSBpbiBzZXBhcmF0ZSBwbGFjZXNcbiAgdmFyIHN0YXRlID0gaW5zdC5fd3JhcHBlclN0YXRlIHx8IG5vZGUuX3dyYXBwZXJTdGF0ZTtcblxuICBpZiAoIXN0YXRlIHx8ICFzdGF0ZS5jb250cm9sbGVkIHx8IG5vZGUudHlwZSAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBJZiBjb250cm9sbGVkLCBhc3NpZ24gdGhlIHZhbHVlIGF0dHJpYnV0ZSB0byB0aGUgY3VycmVudCB2YWx1ZSBvbiBibHVyXG4gIHZhciB2YWx1ZSA9ICcnICsgbm9kZS52YWx1ZTtcbiAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKCd2YWx1ZScpICE9PSB2YWx1ZSkge1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKCd2YWx1ZScsIHZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgcGx1Z2luIGNyZWF0ZXMgYW4gYG9uQ2hhbmdlYCBldmVudCB0aGF0IG5vcm1hbGl6ZXMgY2hhbmdlIGV2ZW50c1xuICogYWNyb3NzIGZvcm0gZWxlbWVudHMuIFRoaXMgZXZlbnQgZmlyZXMgYXQgYSB0aW1lIHdoZW4gaXQncyBwb3NzaWJsZSB0b1xuICogY2hhbmdlIHRoZSBlbGVtZW50J3MgdmFsdWUgd2l0aG91dCBzZWVpbmcgYSBmbGlja2VyLlxuICpcbiAqIFN1cHBvcnRlZCBlbGVtZW50cyBhcmU6XG4gKiAtIGlucHV0IChzZWUgYGlzVGV4dElucHV0RWxlbWVudGApXG4gKiAtIHRleHRhcmVhXG4gKiAtIHNlbGVjdFxuICovXG52YXIgQ2hhbmdlRXZlbnRQbHVnaW4gPSB7XG4gIGV2ZW50VHlwZXM6IGV2ZW50VHlwZXMsXG5cbiAgX2FsbG93U2ltdWxhdGVkUGFzc1Rocm91Z2g6IHRydWUsXG4gIF9pc0lucHV0RXZlbnRTdXBwb3J0ZWQ6IGlzSW5wdXRFdmVudFN1cHBvcnRlZCxcblxuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgdGFyZ2V0Tm9kZSA9IHRhcmdldEluc3QgPyBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdztcblxuICAgIHZhciBnZXRUYXJnZXRJbnN0RnVuYywgaGFuZGxlRXZlbnRGdW5jO1xuICAgIGlmIChzaG91bGRVc2VDaGFuZ2VFdmVudCh0YXJnZXROb2RlKSkge1xuICAgICAgaWYgKGRvZXNDaGFuZ2VFdmVudEJ1YmJsZSkge1xuICAgICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhhbmRsZUV2ZW50RnVuYyA9IGhhbmRsZUV2ZW50c0ZvckNoYW5nZUV2ZW50SUU4O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHRhcmdldE5vZGUpKSB7XG4gICAgICBpZiAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkKSB7XG4gICAgICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvcklucHV0T3JDaGFuZ2VFdmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvcklucHV0RXZlbnRQb2x5ZmlsbDtcbiAgICAgICAgaGFuZGxlRXZlbnRGdW5jID0gaGFuZGxlRXZlbnRzRm9ySW5wdXRFdmVudFBvbHlmaWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc2hvdWxkVXNlQ2xpY2tFdmVudCh0YXJnZXROb2RlKSkge1xuICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9yQ2xpY2tFdmVudDtcbiAgICB9XG5cbiAgICBpZiAoZ2V0VGFyZ2V0SW5zdEZ1bmMpIHtcbiAgICAgIHZhciBpbnN0ID0gZ2V0VGFyZ2V0SW5zdEZ1bmModG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCk7XG4gICAgICBpZiAoaW5zdCkge1xuICAgICAgICB2YXIgZXZlbnQgPSBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoaW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYW5kbGVFdmVudEZ1bmMpIHtcbiAgICAgIGhhbmRsZUV2ZW50RnVuYyh0b3BMZXZlbFR5cGUsIHRhcmdldE5vZGUsIHRhcmdldEluc3QpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gYmx1cnJpbmcsIHNldCB0aGUgdmFsdWUgYXR0cmlidXRlIGZvciBudW1iZXIgaW5wdXRzXG4gICAgaWYgKHRvcExldmVsVHlwZSA9PT0gJ3RvcEJsdXInKSB7XG4gICAgICBoYW5kbGVDb250cm9sbGVkSW5wdXRCbHVyKHRhcmdldEluc3QsIHRhcmdldE5vZGUpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDaGFuZ2VFdmVudFBsdWdpbjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL0NoYW5nZUV2ZW50UGx1Z2luLmpzXG4vLyBtb2R1bGUgaWQgPSAxNTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///153\n"); /***/ }), /* 154 */ @@ -2035,7 +2035,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(/*! ./DOMChildrenOperations */ 51);\nvar ReactDOMIDOperations = __webpack_require__(/*! ./ReactDOMIDOperations */ 169);\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQuanM/MTA3MCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBSZWFjdERPTUlET3BlcmF0aW9ucyA9IHJlcXVpcmUoJy4vUmVhY3RET01JRE9wZXJhdGlvbnMnKTtcblxuLyoqXG4gKiBBYnN0cmFjdHMgYXdheSBhbGwgZnVuY3Rpb25hbGl0eSBvZiB0aGUgcmVjb25jaWxlciB0aGF0IHJlcXVpcmVzIGtub3dsZWRnZSBvZlxuICogdGhlIGJyb3dzZXIgY29udGV4dC4gVE9ETzogVGhlc2UgY2FsbGVycyBzaG91bGQgYmUgcmVmYWN0b3JlZCB0byBhdm9pZCB0aGVcbiAqIG5lZWQgZm9yIHRoaXMgaW5qZWN0aW9uLlxuICovXG52YXIgUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQgPSB7XG4gIHByb2Nlc3NDaGlsZHJlblVwZGF0ZXM6IFJlYWN0RE9NSURPcGVyYXRpb25zLmRhbmdlcm91c2x5UHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyxcblxuICByZXBsYWNlTm9kZVdpdGhNYXJrdXA6IERPTUNoaWxkcmVuT3BlcmF0aW9ucy5kYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cFxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0Q29tcG9uZW50QnJvd3NlckVudmlyb25tZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxNjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///164\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(/*! ./DOMChildrenOperations */ 52);\nvar ReactDOMIDOperations = __webpack_require__(/*! ./ReactDOMIDOperations */ 169);\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQuanM/MTA3MCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBSZWFjdERPTUlET3BlcmF0aW9ucyA9IHJlcXVpcmUoJy4vUmVhY3RET01JRE9wZXJhdGlvbnMnKTtcblxuLyoqXG4gKiBBYnN0cmFjdHMgYXdheSBhbGwgZnVuY3Rpb25hbGl0eSBvZiB0aGUgcmVjb25jaWxlciB0aGF0IHJlcXVpcmVzIGtub3dsZWRnZSBvZlxuICogdGhlIGJyb3dzZXIgY29udGV4dC4gVE9ETzogVGhlc2UgY2FsbGVycyBzaG91bGQgYmUgcmVmYWN0b3JlZCB0byBhdm9pZCB0aGVcbiAqIG5lZWQgZm9yIHRoaXMgaW5qZWN0aW9uLlxuICovXG52YXIgUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQgPSB7XG4gIHByb2Nlc3NDaGlsZHJlblVwZGF0ZXM6IFJlYWN0RE9NSURPcGVyYXRpb25zLmRhbmdlcm91c2x5UHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyxcblxuICByZXBsYWNlTm9kZVdpdGhNYXJrdXA6IERPTUNoaWxkcmVuT3BlcmF0aW9ucy5kYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cFxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0Q29tcG9uZW50QnJvd3NlckVudmlyb25tZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxNjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///164\n"); /***/ }), /* 165 */ @@ -2095,7 +2095,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {\n\n/**\n * Copyright (c) 2 /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(/*! ./DOMChildrenOperations */ 51);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01JRE9wZXJhdGlvbnMuanM/MmNkMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xuXG4vKipcbiAqIE9wZXJhdGlvbnMgdXNlZCB0byBwcm9jZXNzIHVwZGF0ZXMgdG8gRE9NIG5vZGVzLlxuICovXG52YXIgUmVhY3RET01JRE9wZXJhdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBVcGRhdGVzIGEgY29tcG9uZW50J3MgY2hpbGRyZW4gYnkgcHJvY2Vzc2luZyBhIHNlcmllcyBvZiB1cGRhdGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IHVwZGF0ZXMgTGlzdCBvZiB1cGRhdGUgY29uZmlndXJhdGlvbnMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGFuZ2Vyb3VzbHlQcm9jZXNzQ2hpbGRyZW5VcGRhdGVzOiBmdW5jdGlvbiAocGFyZW50SW5zdCwgdXBkYXRlcykge1xuICAgIHZhciBub2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UocGFyZW50SW5zdCk7XG4gICAgRE9NQ2hpbGRyZW5PcGVyYXRpb25zLnByb2Nlc3NVcGRhdGVzKG5vZGUsIHVwZGF0ZXMpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RE9NSURPcGVyYXRpb25zO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01JRE9wZXJhdGlvbnMuanNcbi8vIG1vZHVsZSBpZCA9IDE2OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///169\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(/*! ./DOMChildrenOperations */ 52);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTY5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01JRE9wZXJhdGlvbnMuanM/MmNkMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xuXG4vKipcbiAqIE9wZXJhdGlvbnMgdXNlZCB0byBwcm9jZXNzIHVwZGF0ZXMgdG8gRE9NIG5vZGVzLlxuICovXG52YXIgUmVhY3RET01JRE9wZXJhdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBVcGRhdGVzIGEgY29tcG9uZW50J3MgY2hpbGRyZW4gYnkgcHJvY2Vzc2luZyBhIHNlcmllcyBvZiB1cGRhdGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IHVwZGF0ZXMgTGlzdCBvZiB1cGRhdGUgY29uZmlndXJhdGlvbnMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGFuZ2Vyb3VzbHlQcm9jZXNzQ2hpbGRyZW5VcGRhdGVzOiBmdW5jdGlvbiAocGFyZW50SW5zdCwgdXBkYXRlcykge1xuICAgIHZhciBub2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UocGFyZW50SW5zdCk7XG4gICAgRE9NQ2hpbGRyZW5PcGVyYXRpb25zLnByb2Nlc3NVcGRhdGVzKG5vZGUsIHVwZGF0ZXMpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RE9NSURPcGVyYXRpb25zO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01JRE9wZXJhdGlvbnMuanNcbi8vIG1vZHVsZSBpZCA9IDE2OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///169\n"); /***/ }), /* 170 */ @@ -2107,7 +2107,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* global hasOwnProperty:true */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar AutoFocusUtils = __webpack_require__(/*! ./AutoFocusUtils */ 171);\nvar CSSPropertyOperations = __webpack_require__(/*! ./CSSPropertyOperations */ 172);\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar DOMNamespaces = __webpack_require__(/*! ./DOMNamespaces */ 52);\nvar DOMProperty = __webpack_require__(/*! ./DOMProperty */ 15);\nvar DOMPropertyOperations = __webpack_require__(/*! ./DOMPropertyOperations */ 91);\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ 36);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactDOMComponentFlags = __webpack_require__(/*! ./ReactDOMComponentFlags */ 79);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactDOMInput = __webpack_require__(/*! ./ReactDOMInput */ 182);\nvar ReactDOMOption = __webpack_require__(/*! ./ReactDOMOption */ 186);\nvar ReactDOMSelect = __webpack_require__(/*! ./ReactDOMSelect */ 94);\nvar ReactDOMTextarea = __webpack_require__(/*! ./ReactDOMTextarea */ 187);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactMultiChild = __webpack_require__(/*! ./ReactMultiChild */ 188);\nvar ReactServerRenderingTransaction = __webpack_require__(/*! ./ReactServerRenderingTransaction */ 197);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar escapeTextContentForBrowser = __webpack_require__(/*! ./escapeTextContentForBrowser */ 40);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar isEventSupported = __webpack_require__(/*! ./isEventSupported */ 49);\nvar shallowEqual = __webpack_require__(/*! fbjs/lib/shallowEqual */ 56);\nvar inputValueTracking = __webpack_require__(/*! ./inputValueTracking */ 85);\nvar validateDOMNesting = __webpack_require__(/*! ./validateDOMNesting */ 60);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { string: true, number: true };\n\nvar STYLE = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n if (internalInstance) {\n var owner = internalInstance._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' This DOM node was rendered by `' + name + '`.';\n }\n }\n }\n return '';\n}\n\nfunction friendlyStringify(obj) {\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return '[' + obj.map(friendlyStringify).join(', ') + ']';\n } else {\n var pairs = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n }\n }\n return '{' + pairs.join(', ') + '}';\n }\n } else if (typeof obj === 'string') {\n return JSON.stringify(obj);\n } else if (typeof obj === 'function') {\n return '[function object]';\n }\n // Differs from JSON.stringify in that undefined because undefined and that\n // inf and nan don't become null\n return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n if (style1 == null || style2 == null) {\n return;\n }\n if (shallowEqual(style1, style2)) {\n return;\n }\n\n var componentName = component._tag;\n var owner = component._currentElement._owner;\n var ownerName;\n if (owner) {\n ownerName = owner.getName();\n }\n\n var hash = ownerName + '|' + componentName;\n\n if (styleMutationWarning.hasOwnProperty(hash)) {\n return;\n }\n\n styleMutationWarning[hash] = true;\n\n process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), \"This browser doesn't support the `onScroll` event\") : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trackInputValue() {\n inputValueTracking.track(this);\n}\n\nfunction trapBubbledEventsLocal() {\n var inst = this;\n // If a component renders to null or if another component fatals and causes\n // the state of the tree to be corrupted, `node` here can be null.\n !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'video':\n case 'audio':\n inst._wrapperState.listeners = [];\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\n}\n\nfunction postUpdateSelectWrapper() {\n ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\nvar newlineEatingTags = {\n listing: true,\n pre: true,\n textarea: true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trackInputValue, this);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trackInputValue, this);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\n } else {\n var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n var tagContent = this._createContentMarkup(transaction, props, context);\n if (!tagContent && omittedCloseTags[this._tag]) {\n mountImage = tagOpen + '/>';\n } else {\n mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n }\n }\n\n switch (this._tag) {\n case 'input':\n transaction.getReactMountReady().enqueue(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\n break;\n }\n\n return mountImage;\n },\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n var ret = '<' + this._currentElement.type;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n if (propValue) {\n enqueuePutListener(this, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (process.env.NODE_ENV !== 'production') {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret;\n }\n\n if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @param {object} context\n * @return {string} Content markup.\n */\n _createContentMarkup: function (transaction, props, context) {\n var ret = '';\n\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n ret = innerHTML.__html;\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n ret = escapeTextContentForBrowser(contentToUse);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n ret = mountImages.join('');\n }\n }\n if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n return '\\n' + ret;\n } else {\n return ret;\n }\n },\n\n _createInitialChildren: function (transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, mountImages[i]);\n }\n }\n }\n },\n\n /**\n * Receives a next element and updates the component.\n *\n * @internal\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n */\n receiveComponent: function (nextElement, transaction, context) {\n var prevElement = this._currentElement;\n this._currentElement = nextElement;\n this.updateComponent(transaction, prevElement, nextElement, context);\n },\n\n /**\n * Updates a DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @param {ReactElement} nextElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\n }\n },\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = this._previousStyleCopy;\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n this._previousStyleCopy = null;\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (lastProps[propKey]) {\n // Only call deleteListener if there was a listener previously or\n // else willDeleteListener gets called when there wasn't actually a\n // listener (e.g., onClick={null})\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (process.env.NODE_ENV !== 'production') {\n checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n this._previousStyle = nextProp;\n }\n nextProp = this._previousStyleCopy = _assign({}, nextProp);\n } else {\n this._previousStyleCopy = null;\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp) {\n enqueuePutListener(this, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (nextProp != null) {\n DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n }\n if (styleUpdates) {\n CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n */\n _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction, context);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n var listeners = this._wrapperState.listeners;\n if (listeners) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n }\n break;\n case 'input':\n case 'textarea':\n inputValueTracking.stopTracking(this);\n break;\n case 'html':\n case 'head':\n case 'body':\n /**\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n */\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01Db21wb25lbnQuanM/OTIyYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuLyogZ2xvYmFsIGhhc093blByb3BlcnR5OnRydWUgKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpLFxuICAgIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBBdXRvRm9jdXNVdGlscyA9IHJlcXVpcmUoJy4vQXV0b0ZvY3VzVXRpbHMnKTtcbnZhciBDU1NQcm9wZXJ0eU9wZXJhdGlvbnMgPSByZXF1aXJlKCcuL0NTU1Byb3BlcnR5T3BlcmF0aW9ucycpO1xudmFyIERPTUxhenlUcmVlID0gcmVxdWlyZSgnLi9ET01MYXp5VHJlZScpO1xudmFyIERPTU5hbWVzcGFjZXMgPSByZXF1aXJlKCcuL0RPTU5hbWVzcGFjZXMnKTtcbnZhciBET01Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHknKTtcbnZhciBET01Qcm9wZXJ0eU9wZXJhdGlvbnMgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5T3BlcmF0aW9ucycpO1xudmFyIEV2ZW50UGx1Z2luSHViID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpbkh1YicpO1xudmFyIEV2ZW50UGx1Z2luUmVnaXN0cnkgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luUmVnaXN0cnknKTtcbnZhciBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCcuL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlcicpO1xudmFyIFJlYWN0RE9NQ29tcG9uZW50RmxhZ3MgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50RmxhZ3MnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0RE9NSW5wdXQgPSByZXF1aXJlKCcuL1JlYWN0RE9NSW5wdXQnKTtcbnZhciBSZWFjdERPTU9wdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RET01PcHRpb24nKTtcbnZhciBSZWFjdERPTVNlbGVjdCA9IHJlcXVpcmUoJy4vUmVhY3RET01TZWxlY3QnKTtcbnZhciBSZWFjdERPTVRleHRhcmVhID0gcmVxdWlyZSgnLi9SZWFjdERPTVRleHRhcmVhJyk7XG52YXIgUmVhY3RJbnN0cnVtZW50YXRpb24gPSByZXF1aXJlKCcuL1JlYWN0SW5zdHJ1bWVudGF0aW9uJyk7XG52YXIgUmVhY3RNdWx0aUNoaWxkID0gcmVxdWlyZSgnLi9SZWFjdE11bHRpQ2hpbGQnKTtcbnZhciBSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uID0gcmVxdWlyZSgnLi9SZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uJyk7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xudmFyIGVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlciA9IHJlcXVpcmUoJy4vZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgaXNFdmVudFN1cHBvcnRlZCA9IHJlcXVpcmUoJy4vaXNFdmVudFN1cHBvcnRlZCcpO1xudmFyIHNoYWxsb3dFcXVhbCA9IHJlcXVpcmUoJ2ZianMvbGliL3NoYWxsb3dFcXVhbCcpO1xudmFyIGlucHV0VmFsdWVUcmFja2luZyA9IHJlcXVpcmUoJy4vaW5wdXRWYWx1ZVRyYWNraW5nJyk7XG52YXIgdmFsaWRhdGVET01OZXN0aW5nID0gcmVxdWlyZSgnLi92YWxpZGF0ZURPTU5lc3RpbmcnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgRmxhZ3MgPSBSZWFjdERPTUNvbXBvbmVudEZsYWdzO1xudmFyIGRlbGV0ZUxpc3RlbmVyID0gRXZlbnRQbHVnaW5IdWIuZGVsZXRlTGlzdGVuZXI7XG52YXIgZ2V0Tm9kZSA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlO1xudmFyIGxpc3RlblRvID0gUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLmxpc3RlblRvO1xudmFyIHJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzID0gRXZlbnRQbHVnaW5SZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlcztcblxuLy8gRm9yIHF1aWNrbHkgbWF0Y2hpbmcgY2hpbGRyZW4gdHlwZSwgdG8gdGVzdCBpZiBjYW4gYmUgdHJlYXRlZCBhcyBjb250ZW50LlxudmFyIENPTlRFTlRfVFlQRVMgPSB7IHN0cmluZzogdHJ1ZSwgbnVtYmVyOiB0cnVlIH07XG5cbnZhciBTVFlMRSA9ICdzdHlsZSc7XG52YXIgSFRNTCA9ICdfX2h0bWwnO1xudmFyIFJFU0VSVkVEX1BST1BTID0ge1xuICBjaGlsZHJlbjogbnVsbCxcbiAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IG51bGwsXG4gIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZzogbnVsbFxufTtcblxuLy8gTm9kZSB0eXBlIGZvciBkb2N1bWVudCBmcmFnbWVudHMgKE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSkuXG52YXIgRE9DX0ZSQUdNRU5UX1RZUEUgPSAxMTtcblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKGludGVybmFsSW5zdGFuY2UpIHtcbiAgaWYgKGludGVybmFsSW5zdGFuY2UpIHtcbiAgICB2YXIgb3duZXIgPSBpbnRlcm5hbEluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5fb3duZXIgfHwgbnVsbDtcbiAgICBpZiAob3duZXIpIHtcbiAgICAgIHZhciBuYW1lID0gb3duZXIuZ2V0TmFtZSgpO1xuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICcgVGhpcyBET00gbm9kZSB3YXMgcmVuZGVyZWQgYnkgYCcgKyBuYW1lICsgJ2AuJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBmcmllbmRseVN0cmluZ2lmeShvYmopIHtcbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgcmV0dXJuICdbJyArIG9iai5tYXAoZnJpZW5kbHlTdHJpbmdpZnkpLmpvaW4oJywgJykgKyAnXSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBwYWlycyA9IFtdO1xuICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgIHZhciBrZXlFc2NhcGVkID0gL15bYS16JF9dW1xcdyRfXSokL2kudGVzdChrZXkpID8ga2V5IDogSlNPTi5zdHJpbmdpZnkoa2V5KTtcbiAgICAgICAgICBwYWlycy5wdXNoKGtleUVzY2FwZWQgKyAnOiAnICsgZnJpZW5kbHlTdHJpbmdpZnkob2JqW2tleV0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuICd7JyArIHBhaXJzLmpvaW4oJywgJykgKyAnfSc7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaik7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiAnW2Z1bmN0aW9uIG9iamVjdF0nO1xuICB9XG4gIC8vIERpZmZlcnMgZnJvbSBKU09OLnN0cmluZ2lmeSBpbiB0aGF0IHVuZGVmaW5lZCBiZWNhdXNlIHVuZGVmaW5lZCBhbmQgdGhhdFxuICAvLyBpbmYgYW5kIG5hbiBkb24ndCBiZWNvbWUgbnVsbFxuICByZXR1cm4gU3RyaW5nKG9iaik7XG59XG5cbnZhciBzdHlsZU11dGF0aW9uV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBjaGVja0FuZFdhcm5Gb3JNdXRhdGVkU3R5bGUoc3R5bGUxLCBzdHlsZTIsIGNvbXBvbmVudCkge1xuICBpZiAoc3R5bGUxID09IG51bGwgfHwgc3R5bGUyID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHNoYWxsb3dFcXVhbChzdHlsZTEsIHN0eWxlMikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudC5fdGFnO1xuICB2YXIgb3duZXIgPSBjb21wb25lbnQuX2N1cnJlbnRFbGVtZW50Ll9vd25lcjtcbiAgdmFyIG93bmVyTmFtZTtcbiAgaWYgKG93bmVyKSB7XG4gICAgb3duZXJOYW1lID0gb3duZXIuZ2V0TmFtZSgpO1xuICB9XG5cbiAgdmFyIGhhc2ggPSBvd25lck5hbWUgKyAnfCcgKyBjb21wb25lbnROYW1lO1xuXG4gIGlmIChzdHlsZU11dGF0aW9uV2FybmluZy5oYXNPd25Qcm9wZXJ0eShoYXNoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN0eWxlTXV0YXRpb25XYXJuaW5nW2hhc2hdID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2Alc2Agd2FzIHBhc3NlZCBhIHN0eWxlIG9iamVjdCB0aGF0IGhhcyBwcmV2aW91c2x5IGJlZW4gbXV0YXRlZC4gJyArICdNdXRhdGluZyBgc3R5bGVgIGlzIGRlcHJlY2F0ZWQuIENvbnNpZGVyIGNsb25pbmcgaXQgYmVmb3JlaGFuZC4gQ2hlY2sgJyArICd0aGUgYHJlbmRlcmAgJXMuIFByZXZpb3VzIHN0eWxlOiAlcy4gTXV0YXRlZCBzdHlsZTogJXMuJywgY29tcG9uZW50TmFtZSwgb3duZXIgPyAnb2YgYCcgKyBvd25lck5hbWUgKyAnYCcgOiAndXNpbmcgPCcgKyBjb21wb25lbnROYW1lICsgJz4nLCBmcmllbmRseVN0cmluZ2lmeShzdHlsZTEpLCBmcmllbmRseVN0cmluZ2lmeShzdHlsZTIpKSA6IHZvaWQgMDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gY29tcG9uZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IHByb3BzXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFZhbGlkUHJvcHMoY29tcG9uZW50LCBwcm9wcykge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIE5vdGUgdGhlIHVzZSBvZiBgPT1gIHdoaWNoIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWQuXG4gIGlmICh2b2lkRWxlbWVudFRhZ3NbY29tcG9uZW50Ll90YWddKSB7XG4gICAgIShwcm9wcy5jaGlsZHJlbiA9PSBudWxsICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID09IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzIGlzIGEgdm9pZCBlbGVtZW50IHRhZyBhbmQgbXVzdCBuZWl0aGVyIGhhdmUgYGNoaWxkcmVuYCBub3IgdXNlIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJXMnLCBjb21wb25lbnQuX3RhZywgY29tcG9uZW50Ll9jdXJyZW50RWxlbWVudC5fb3duZXIgPyAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICcgKyBjb21wb25lbnQuX2N1cnJlbnRFbGVtZW50Ll9vd25lci5nZXROYW1lKCkgKyAnLicgOiAnJykgOiBfcHJvZEludmFyaWFudCgnMTM3JywgY29tcG9uZW50Ll90YWcsIGNvbXBvbmVudC5fY3VycmVudEVsZW1lbnQuX293bmVyID8gJyBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiAnICsgY29tcG9uZW50Ll9jdXJyZW50RWxlbWVudC5fb3duZXIuZ2V0TmFtZSgpICsgJy4nIDogJycpIDogdm9pZCAwO1xuICB9XG4gIGlmIChwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAhPSBudWxsKSB7XG4gICAgIShwcm9wcy5jaGlsZHJlbiA9PSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdDYW4gb25seSBzZXQgb25lIG9mIGBjaGlsZHJlbmAgb3IgYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKSA6IF9wcm9kSW52YXJpYW50KCc2MCcpIDogdm9pZCAwO1xuICAgICEodHlwZW9mIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID09PSAnb2JqZWN0JyAmJiBIVE1MIGluIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIG11c3QgYmUgaW4gdGhlIGZvcm0gYHtfX2h0bWw6IC4uLn1gLiBQbGVhc2UgdmlzaXQgaHR0cHM6Ly9mYi5tZS9yZWFjdC1pbnZhcmlhbnQtZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uJykgOiBfcHJvZEludmFyaWFudCgnNjEnKSA6IHZvaWQgMDtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHByb3BzLmlubmVySFRNTCA9PSBudWxsLCAnRGlyZWN0bHkgc2V0dGluZyBwcm9wZXJ0eSBgaW5uZXJIVE1MYCBpcyBub3QgcGVybWl0dGVkLiAnICsgJ0ZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rdXAgZG9jdW1lbnRhdGlvbiBvbiBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLicpIDogdm9pZCAwO1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHByb3BzLnN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyB8fCAhcHJvcHMuY29udGVudEVkaXRhYmxlIHx8IHByb3BzLmNoaWxkcmVuID09IG51bGwsICdBIGNvbXBvbmVudCBpcyBgY29udGVudEVkaXRhYmxlYCBhbmQgY29udGFpbnMgYGNoaWxkcmVuYCBtYW5hZ2VkIGJ5ICcgKyAnUmVhY3QuIEl0IGlzIG5vdyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIGd1YXJhbnRlZSB0aGF0IG5vbmUgb2YgJyArICd0aG9zZSBub2RlcyBhcmUgdW5leHBlY3RlZGx5IG1vZGlmaWVkIG9yIGR1cGxpY2F0ZWQuIFRoaXMgaXMgJyArICdwcm9iYWJseSBub3QgaW50ZW50aW9uYWwuJykgOiB2b2lkIDA7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcocHJvcHMub25Gb2N1c0luID09IG51bGwgJiYgcHJvcHMub25Gb2N1c091dCA9PSBudWxsLCAnUmVhY3QgdXNlcyBvbkZvY3VzIGFuZCBvbkJsdXIgaW5zdGVhZCBvZiBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQuICcgKyAnQWxsIFJlYWN0IGV2ZW50cyBhcmUgbm9ybWFsaXplZCB0byBidWJibGUsIHNvIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dCAnICsgJ2FyZSBub3QgbmVlZGVkL3N1cHBvcnRlZCBieSBSZWFjdC4nKSA6IHZvaWQgMDtcbiAgfVxuICAhKHByb3BzLnN0eWxlID09IG51bGwgfHwgdHlwZW9mIHByb3BzLnN0eWxlID09PSAnb2JqZWN0JykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnVGhlIGBzdHlsZWAgcHJvcCBleHBlY3RzIGEgbWFwcGluZyBmcm9tIHN0eWxlIHByb3BlcnRpZXMgdG8gdmFsdWVzLCBub3QgYSBzdHJpbmcuIEZvciBleGFtcGxlLCBzdHlsZT17e21hcmdpblJpZ2h0OiBzcGFjaW5nICsgXFwnZW1cXCd9fSB3aGVuIHVzaW5nIEpTWC4lcycsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpKSA6IF9wcm9kSW52YXJpYW50KCc2MicsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpKSA6IHZvaWQgMDtcbn1cblxuZnVuY3Rpb24gZW5xdWV1ZVB1dExpc3RlbmVyKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyLCB0cmFuc2FjdGlvbikge1xuICBpZiAodHJhbnNhY3Rpb24gaW5zdGFuY2VvZiBSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gSUU4IGhhcyBubyBBUEkgZm9yIGV2ZW50IGNhcHR1cmluZyBhbmQgdGhlIGBvblNjcm9sbGAgZXZlbnQgZG9lc24ndFxuICAgIC8vIGJ1YmJsZS5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhyZWdpc3RyYXRpb25OYW1lICE9PSAnb25TY3JvbGwnIHx8IGlzRXZlbnRTdXBwb3J0ZWQoJ3Njcm9sbCcsIHRydWUpLCBcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgdGhlIGBvblNjcm9sbGAgZXZlbnRcIikgOiB2b2lkIDA7XG4gIH1cbiAgdmFyIGNvbnRhaW5lckluZm8gPSBpbnN0Ll9ob3N0Q29udGFpbmVySW5mbztcbiAgdmFyIGlzRG9jdW1lbnRGcmFnbWVudCA9IGNvbnRhaW5lckluZm8uX25vZGUgJiYgY29udGFpbmVySW5mby5fbm9kZS5ub2RlVHlwZSA9PT0gRE9DX0ZSQUdNRU5UX1RZUEU7XG4gIHZhciBkb2MgPSBpc0RvY3VtZW50RnJhZ21lbnQgPyBjb250YWluZXJJbmZvLl9ub2RlIDogY29udGFpbmVySW5mby5fb3duZXJEb2N1bWVudDtcbiAgbGlzdGVuVG8ocmVnaXN0cmF0aW9uTmFtZSwgZG9jKTtcbiAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShwdXRMaXN0ZW5lciwge1xuICAgIGluc3Q6IGluc3QsXG4gICAgcmVnaXN0cmF0aW9uTmFtZTogcmVnaXN0cmF0aW9uTmFtZSxcbiAgICBsaXN0ZW5lcjogbGlzdGVuZXJcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHB1dExpc3RlbmVyKCkge1xuICB2YXIgbGlzdGVuZXJUb1B1dCA9IHRoaXM7XG4gIEV2ZW50UGx1Z2luSHViLnB1dExpc3RlbmVyKGxpc3RlbmVyVG9QdXQuaW5zdCwgbGlzdGVuZXJUb1B1dC5yZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lclRvUHV0Lmxpc3RlbmVyKTtcbn1cblxuZnVuY3Rpb24gaW5wdXRQb3N0TW91bnQoKSB7XG4gIHZhciBpbnN0ID0gdGhpcztcbiAgUmVhY3RET01JbnB1dC5wb3N0TW91bnRXcmFwcGVyKGluc3QpO1xufVxuXG5mdW5jdGlvbiB0ZXh0YXJlYVBvc3RNb3VudCgpIHtcbiAgdmFyIGluc3QgPSB0aGlzO1xuICBSZWFjdERPTVRleHRhcmVhLnBvc3RNb3VudFdyYXBwZXIoaW5zdCk7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblBvc3RNb3VudCgpIHtcbiAgdmFyIGluc3QgPSB0aGlzO1xuICBSZWFjdERPTU9wdGlvbi5wb3N0TW91bnRXcmFwcGVyKGluc3QpO1xufVxuXG52YXIgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYgPSBlbXB0eUZ1bmN0aW9uO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYgPSBmdW5jdGlvbiAoY29udGVudCkge1xuICAgIHZhciBoYXNFeGlzdGluZ0NvbnRlbnQgPSB0aGlzLl9jb250ZW50RGVidWdJRCAhPSBudWxsO1xuICAgIHZhciBkZWJ1Z0lEID0gdGhpcy5fZGVidWdJRDtcbiAgICAvLyBUaGlzIElEIHJlcHJlc2VudHMgdGhlIGlubGluZWQgY2hpbGQgdGhhdCBoYXMgbm8gYmFja2luZyBpbnN0YW5jZTpcbiAgICB2YXIgY29udGVudERlYnVnSUQgPSAtZGVidWdJRDtcblxuICAgIGlmIChjb250ZW50ID09IG51bGwpIHtcbiAgICAgIGlmIChoYXNFeGlzdGluZ0NvbnRlbnQpIHtcbiAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uVW5tb3VudENvbXBvbmVudCh0aGlzLl9jb250ZW50RGVidWdJRCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9jb250ZW50RGVidWdJRCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFsaWRhdGVET01OZXN0aW5nKG51bGwsIFN0cmluZyhjb250ZW50KSwgdGhpcywgdGhpcy5fYW5jZXN0b3JJbmZvKTtcbiAgICB0aGlzLl9jb250ZW50RGVidWdJRCA9IGNvbnRlbnREZWJ1Z0lEO1xuICAgIGlmIChoYXNFeGlzdGluZ0NvbnRlbnQpIHtcbiAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkJlZm9yZVVwZGF0ZUNvbXBvbmVudChjb250ZW50RGVidWdJRCwgY29udGVudCk7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25VcGRhdGVDb21wb25lbnQoY29udGVudERlYnVnSUQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25CZWZvcmVNb3VudENvbXBvbmVudChjb250ZW50RGVidWdJRCwgY29udGVudCwgZGVidWdJRCk7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Nb3VudENvbXBvbmVudChjb250ZW50RGVidWdJRCk7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbihkZWJ1Z0lELCBbY29udGVudERlYnVnSURdKTtcbiAgICB9XG4gIH07XG59XG5cbi8vIFRoZXJlIGFyZSBzbyBtYW55IG1lZGlhIGV2ZW50cywgaXQgbWFrZXMgc2Vuc2UgdG8ganVzdFxuLy8gbWFpbnRhaW4gYSBsaXN0IHJhdGhlciB0aGFuIGNyZWF0ZSBhIGB0cmFwQnViYmxlZEV2ZW50YCBmb3IgZWFjaFxudmFyIG1lZGlhRXZlbnRzID0ge1xuICB0b3BBYm9ydDogJ2Fib3J0JyxcbiAgdG9wQ2FuUGxheTogJ2NhbnBsYXknLFxuICB0b3BDYW5QbGF5VGhyb3VnaDogJ2NhbnBsYXl0aHJvdWdoJyxcbiAgdG9wRHVyYXRpb25DaGFuZ2U6ICdkdXJhdGlvbmNoYW5nZScsXG4gIHRvcEVtcHRpZWQ6ICdlbXB0aWVkJyxcbiAgdG9wRW5jcnlwdGVkOiAnZW5jcnlwdGVkJyxcbiAgdG9wRW5kZWQ6ICdlbmRlZCcsXG4gIHRvcEVycm9yOiAnZXJyb3InLFxuICB0b3BMb2FkZWREYXRhOiAnbG9hZGVkZGF0YScsXG4gIHRvcExvYWRlZE1ldGFkYXRhOiAnbG9hZGVkbWV0YWRhdGEnLFxuICB0b3BMb2FkU3RhcnQ6ICdsb2Fkc3RhcnQnLFxuICB0b3BQYXVzZTogJ3BhdXNlJyxcbiAgdG9wUGxheTogJ3BsYXknLFxuICB0b3BQbGF5aW5nOiAncGxheWluZycsXG4gIHRvcFByb2dyZXNzOiAncHJvZ3Jlc3MnLFxuICB0b3BSYXRlQ2hhbmdlOiAncmF0ZWNoYW5nZScsXG4gIHRvcFNlZWtlZDogJ3NlZWtlZCcsXG4gIHRvcFNlZWtpbmc6ICdzZWVraW5nJyxcbiAgdG9wU3RhbGxlZDogJ3N0YWxsZWQnLFxuICB0b3BTdXNwZW5kOiAnc3VzcGVuZCcsXG4gIHRvcFRpbWVVcGRhdGU6ICd0aW1ldXBkYXRlJyxcbiAgdG9wVm9sdW1lQ2hhbmdlOiAndm9sdW1lY2hhbmdlJyxcbiAgdG9wV2FpdGluZzogJ3dhaXRpbmcnXG59O1xuXG5mdW5jdGlvbiB0cmFja0lucHV0VmFsdWUoKSB7XG4gIGlucHV0VmFsdWVUcmFja2luZy50cmFjayh0aGlzKTtcbn1cblxuZnVuY3Rpb24gdHJhcEJ1YmJsZWRFdmVudHNMb2NhbCgpIHtcbiAgdmFyIGluc3QgPSB0aGlzO1xuICAvLyBJZiBhIGNvbXBvbmVudCByZW5kZXJzIHRvIG51bGwgb3IgaWYgYW5vdGhlciBjb21wb25lbnQgZmF0YWxzIGFuZCBjYXVzZXNcbiAgLy8gdGhlIHN0YXRlIG9mIHRoZSB0cmVlIHRvIGJlIGNvcnJ1cHRlZCwgYG5vZGVgIGhlcmUgY2FuIGJlIG51bGwuXG4gICFpbnN0Ll9yb290Tm9kZUlEID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ011c3QgYmUgbW91bnRlZCB0byB0cmFwIGV2ZW50cycpIDogX3Byb2RJbnZhcmlhbnQoJzYzJykgOiB2b2lkIDA7XG4gIHZhciBub2RlID0gZ2V0Tm9kZShpbnN0KTtcbiAgIW5vZGUgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAndHJhcEJ1YmJsZWRFdmVudCguLi4pOiBSZXF1aXJlcyBub2RlIHRvIGJlIHJlbmRlcmVkLicpIDogX3Byb2RJbnZhcmlhbnQoJzY0JykgOiB2b2lkIDA7XG5cbiAgc3dpdGNoIChpbnN0Ll90YWcpIHtcbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpbnN0Ll93cmFwcGVyU3RhdGUubGlzdGVuZXJzID0gW1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KCd0b3BMb2FkJywgJ2xvYWQnLCBub2RlKV07XG4gICAgICBicmVhaztcbiAgICBjYXNlICd2aWRlbyc6XG4gICAgY2FzZSAnYXVkaW8nOlxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtdO1xuICAgICAgLy8gQ3JlYXRlIGxpc3RlbmVyIGZvciBlYWNoIG1lZGlhIGV2ZW50XG4gICAgICBmb3IgKHZhciBldmVudCBpbiBtZWRpYUV2ZW50cykge1xuICAgICAgICBpZiAobWVkaWFFdmVudHMuaGFzT3duUHJvcGVydHkoZXZlbnQpKSB7XG4gICAgICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycy5wdXNoKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KGV2ZW50LCBtZWRpYUV2ZW50c1tldmVudF0sIG5vZGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc291cmNlJzpcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnMgPSBbUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcEVycm9yJywgJ2Vycm9yJywgbm9kZSldO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaW1nJzpcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnMgPSBbUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcEVycm9yJywgJ2Vycm9yJywgbm9kZSksIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KCd0b3BMb2FkJywgJ2xvYWQnLCBub2RlKV07XG4gICAgICBicmVhaztcbiAgICBjYXNlICdmb3JtJzpcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnMgPSBbUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcFJlc2V0JywgJ3Jlc2V0Jywgbm9kZSksIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KCd0b3BTdWJtaXQnLCAnc3VibWl0Jywgbm9kZSldO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wSW52YWxpZCcsICdpbnZhbGlkJywgbm9kZSldO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9zdFVwZGF0ZVNlbGVjdFdyYXBwZXIoKSB7XG4gIFJlYWN0RE9NU2VsZWN0LnBvc3RVcGRhdGVXcmFwcGVyKHRoaXMpO1xufVxuXG4vLyBGb3IgSFRNTCwgY2VydGFpbiB0YWdzIHNob3VsZCBvbWl0IHRoZWlyIGNsb3NlIHRhZy4gV2Uga2VlcCBhIHdoaXRlbGlzdCBmb3Jcbi8vIHRob3NlIHNwZWNpYWwtY2FzZSB0YWdzLlxuXG52YXIgb21pdHRlZENsb3NlVGFncyA9IHtcbiAgYXJlYTogdHJ1ZSxcbiAgYmFzZTogdHJ1ZSxcbiAgYnI6IHRydWUsXG4gIGNvbDogdHJ1ZSxcbiAgZW1iZWQ6IHRydWUsXG4gIGhyOiB0cnVlLFxuICBpbWc6IHRydWUsXG4gIGlucHV0OiB0cnVlLFxuICBrZXlnZW46IHRydWUsXG4gIGxpbms6IHRydWUsXG4gIG1ldGE6IHRydWUsXG4gIHBhcmFtOiB0cnVlLFxuICBzb3VyY2U6IHRydWUsXG4gIHRyYWNrOiB0cnVlLFxuICB3YnI6IHRydWVcbiAgLy8gTk9URTogbWVudWl0ZW0ncyBjbG9zZSB0YWcgc2hvdWxkIGJlIG9taXR0ZWQsIGJ1dCB0aGF0IGNhdXNlcyBwcm9ibGVtcy5cbn07XG5cbnZhciBuZXdsaW5lRWF0aW5nVGFncyA9IHtcbiAgbGlzdGluZzogdHJ1ZSxcbiAgcHJlOiB0cnVlLFxuICB0ZXh0YXJlYTogdHJ1ZVxufTtcblxuLy8gRm9yIEhUTUwsIGNlcnRhaW4gdGFncyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4gVGhpcyBoYXMgdGhlIHNhbWUgcHVycG9zZSBhc1xuLy8gYG9taXR0ZWRDbG9zZVRhZ3NgIGV4Y2VwdCB0aGF0IGBtZW51aXRlbWAgc2hvdWxkIHN0aWxsIGhhdmUgaXRzIGNsb3NpbmcgdGFnLlxuXG52YXIgdm9pZEVsZW1lbnRUYWdzID0gX2Fzc2lnbih7XG4gIG1lbnVpdGVtOiB0cnVlXG59LCBvbWl0dGVkQ2xvc2VUYWdzKTtcblxuLy8gV2UgYWNjZXB0IGFueSB0YWcgdG8gYmUgcmVuZGVyZWQgYnV0IHNpbmNlIHRoaXMgZ2V0cyBpbmplY3RlZCBpbnRvIGFyYml0cmFyeVxuLy8gSFRNTCwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhhdCBpdCdzIGEgc2FmZSB0YWcuXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLyNOVC1OYW1lXG5cbnZhciBWQUxJRF9UQUdfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWjpfXFwuXFwtXFxkXSokLzsgLy8gU2ltcGxpZmllZCBzdWJzZXRcbnZhciB2YWxpZGF0ZWRUYWdDYWNoZSA9IHt9O1xudmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRGFuZ2Vyb3VzVGFnKHRhZykge1xuICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwodmFsaWRhdGVkVGFnQ2FjaGUsIHRhZykpIHtcbiAgICAhVkFMSURfVEFHX1JFR0VYLnRlc3QodGFnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdJbnZhbGlkIHRhZzogJXMnLCB0YWcpIDogX3Byb2RJbnZhcmlhbnQoJzY1JywgdGFnKSA6IHZvaWQgMDtcbiAgICB2YWxpZGF0ZWRUYWdDYWNoZVt0YWddID0gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUNvbXBvbmVudCh0YWdOYW1lLCBwcm9wcykge1xuICByZXR1cm4gdGFnTmFtZS5pbmRleE9mKCctJykgPj0gMCB8fCBwcm9wcy5pcyAhPSBudWxsO1xufVxuXG52YXIgZ2xvYmFsSWRDb3VudGVyID0gMTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFJlYWN0IGNsYXNzIHRoYXQgaXMgaWRlbXBvdGVudCBhbmQgY2FwYWJsZSBvZiBjb250YWluaW5nIG90aGVyXG4gKiBSZWFjdCBjb21wb25lbnRzLiBJdCBhY2NlcHRzIGV2ZW50IGxpc3RlbmVycyBhbmQgRE9NIHByb3BlcnRpZXMgdGhhdCBhcmVcbiAqIHZhbGlkIGFjY29yZGluZyB0byBgRE9NUHJvcGVydHlgLlxuICpcbiAqICAtIEV2ZW50IGxpc3RlbmVyczogYG9uQ2xpY2tgLCBgb25Nb3VzZURvd25gLCBldGMuXG4gKiAgLSBET00gcHJvcGVydGllczogYGNsYXNzTmFtZWAsIGBuYW1lYCwgYHRpdGxlYCwgZXRjLlxuICpcbiAqIFRoZSBgc3R5bGVgIHByb3BlcnR5IGZ1bmN0aW9ucyBkaWZmZXJlbnRseSBmcm9tIHRoZSBET00gQVBJLiBJdCBhY2NlcHRzIGFuXG4gKiBvYmplY3QgbWFwcGluZyBvZiBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcy5cbiAqXG4gKiBAY29uc3RydWN0b3IgUmVhY3RET01Db21wb25lbnRcbiAqIEBleHRlbmRzIFJlYWN0TXVsdGlDaGlsZFxuICovXG5mdW5jdGlvbiBSZWFjdERPTUNvbXBvbmVudChlbGVtZW50KSB7XG4gIHZhciB0YWcgPSBlbGVtZW50LnR5cGU7XG4gIHZhbGlkYXRlRGFuZ2Vyb3VzVGFnKHRhZyk7XG4gIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gZWxlbWVudDtcbiAgdGhpcy5fdGFnID0gdGFnLnRvTG93ZXJDYXNlKCk7XG4gIHRoaXMuX25hbWVzcGFjZVVSSSA9IG51bGw7XG4gIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBudWxsO1xuICB0aGlzLl9wcmV2aW91c1N0eWxlID0gbnVsbDtcbiAgdGhpcy5fcHJldmlvdXNTdHlsZUNvcHkgPSBudWxsO1xuICB0aGlzLl9ob3N0Tm9kZSA9IG51bGw7XG4gIHRoaXMuX2hvc3RQYXJlbnQgPSBudWxsO1xuICB0aGlzLl9yb290Tm9kZUlEID0gMDtcbiAgdGhpcy5fZG9tSUQgPSAwO1xuICB0aGlzLl9ob3N0Q29udGFpbmVySW5mbyA9IG51bGw7XG4gIHRoaXMuX3dyYXBwZXJTdGF0ZSA9IG51bGw7XG4gIHRoaXMuX3RvcExldmVsV3JhcHBlciA9IG51bGw7XG4gIHRoaXMuX2ZsYWdzID0gMDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB0aGlzLl9hbmNlc3RvckluZm8gPSBudWxsO1xuICAgIHNldEFuZFZhbGlkYXRlQ29udGVudENoaWxkRGV2LmNhbGwodGhpcywgbnVsbCk7XG4gIH1cbn1cblxuUmVhY3RET01Db21wb25lbnQuZGlzcGxheU5hbWUgPSAnUmVhY3RET01Db21wb25lbnQnO1xuXG5SZWFjdERPTUNvbXBvbmVudC5NaXhpbiA9IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlcyByb290IHRhZyBtYXJrdXAgdGhlbiByZWN1cnNlcy4gVGhpcyBtZXRob2QgaGFzIHNpZGUgZWZmZWN0cyBhbmRcbiAgICogaXMgbm90IGlkZW1wb3RlbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb258UmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHs/UmVhY3RET01Db21wb25lbnR9IHRoZSBwYXJlbnQgY29tcG9uZW50IGluc3RhbmNlXG4gICAqIEBwYXJhbSB7P29iamVjdH0gaW5mbyBhYm91dCB0aGUgaG9zdCBjb250YWluZXJcbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHRcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29tcHV0ZWQgbWFya3VwLlxuICAgKi9cbiAgbW91bnRDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQpIHtcbiAgICB0aGlzLl9yb290Tm9kZUlEID0gZ2xvYmFsSWRDb3VudGVyKys7XG4gICAgdGhpcy5fZG9tSUQgPSBob3N0Q29udGFpbmVySW5mby5faWRDb3VudGVyKys7XG4gICAgdGhpcy5faG9zdFBhcmVudCA9IGhvc3RQYXJlbnQ7XG4gICAgdGhpcy5faG9zdENvbnRhaW5lckluZm8gPSBob3N0Q29udGFpbmVySW5mbztcblxuICAgIHZhciBwcm9wcyA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gICAgc3dpdGNoICh0aGlzLl90YWcpIHtcbiAgICAgIGNhc2UgJ2F1ZGlvJzpcbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgY2FzZSAnaWZyYW1lJzpcbiAgICAgIGNhc2UgJ2ltZyc6XG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBjYXNlICdzb3VyY2UnOlxuICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICB0aGlzLl93cmFwcGVyU3RhdGUgPSB7XG4gICAgICAgICAgbGlzdGVuZXJzOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUodHJhcEJ1YmJsZWRFdmVudHNMb2NhbCwgdGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW5wdXQnOlxuICAgICAgICBSZWFjdERPTUlucHV0Lm1vdW50V3JhcHBlcih0aGlzLCBwcm9wcywgaG9zdFBhcmVudCk7XG4gICAgICAgIHByb3BzID0gUmVhY3RET01JbnB1dC5nZXRIb3N0UHJvcHModGhpcywgcHJvcHMpO1xuICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKHRyYWNrSW5wdXRWYWx1ZSwgdGhpcyk7XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUodHJhcEJ1YmJsZWRFdmVudHNMb2NhbCwgdGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgUmVhY3RET01PcHRpb24ubW91bnRXcmFwcGVyKHRoaXMsIHByb3BzLCBob3N0UGFyZW50KTtcbiAgICAgICAgcHJvcHMgPSBSZWFjdERPTU9wdGlvbi5nZXRIb3N0UHJvcHModGhpcywgcHJvcHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIFJlYWN0RE9NU2VsZWN0Lm1vdW50V3JhcHBlcih0aGlzLCBwcm9wcywgaG9zdFBhcmVudCk7XG4gICAgICAgIHByb3BzID0gUmVhY3RET01TZWxlY3QuZ2V0SG9zdFByb3BzKHRoaXMsIHByb3BzKTtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZSh0cmFwQnViYmxlZEV2ZW50c0xvY2FsLCB0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgIFJlYWN0RE9NVGV4dGFyZWEubW91bnRXcmFwcGVyKHRoaXMsIHByb3BzLCBob3N0UGFyZW50KTtcbiAgICAgICAgcHJvcHMgPSBSZWFjdERPTVRleHRhcmVhLmdldEhvc3RQcm9wcyh0aGlzLCBwcm9wcyk7XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUodHJhY2tJbnB1dFZhbHVlLCB0aGlzKTtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZSh0cmFwQnViYmxlZEV2ZW50c0xvY2FsLCB0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgYXNzZXJ0VmFsaWRQcm9wcyh0aGlzLCBwcm9wcyk7XG5cbiAgICAvLyBXZSBjcmVhdGUgdGFncyBpbiB0aGUgbmFtZXNwYWNlIG9mIHRoZWlyIHBhcmVudCBjb250YWluZXIsIGV4Y2VwdCBIVE1MXG4gICAgLy8gdGFncyBnZXQgbm8gbmFtZXNwYWNlLlxuICAgIHZhciBuYW1lc3BhY2VVUkk7XG4gICAgdmFyIHBhcmVudFRhZztcbiAgICBpZiAoaG9zdFBhcmVudCAhPSBudWxsKSB7XG4gICAgICBuYW1lc3BhY2VVUkkgPSBob3N0UGFyZW50Ll9uYW1lc3BhY2VVUkk7XG4gICAgICBwYXJlbnRUYWcgPSBob3N0UGFyZW50Ll90YWc7XG4gICAgfSBlbHNlIGlmIChob3N0Q29udGFpbmVySW5mby5fdGFnKSB7XG4gICAgICBuYW1lc3BhY2VVUkkgPSBob3N0Q29udGFpbmVySW5mby5fbmFtZXNwYWNlVVJJO1xuICAgICAgcGFyZW50VGFnID0gaG9zdENvbnRhaW5lckluZm8uX3RhZztcbiAgICB9XG4gICAgaWYgKG5hbWVzcGFjZVVSSSA9PSBudWxsIHx8IG5hbWVzcGFjZVVSSSA9PT0gRE9NTmFtZXNwYWNlcy5zdmcgJiYgcGFyZW50VGFnID09PSAnZm9yZWlnbm9iamVjdCcpIHtcbiAgICAgIG5hbWVzcGFjZVVSSSA9IERPTU5hbWVzcGFjZXMuaHRtbDtcbiAgICB9XG4gICAgaWYgKG5hbWVzcGFjZVVSSSA9PT0gRE9NTmFtZXNwYWNlcy5odG1sKSB7XG4gICAgICBpZiAodGhpcy5fdGFnID09PSAnc3ZnJykge1xuICAgICAgICBuYW1lc3BhY2VVUkkgPSBET01OYW1lc3BhY2VzLnN2ZztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdGFnID09PSAnbWF0aCcpIHtcbiAgICAgICAgbmFtZXNwYWNlVVJJID0gRE9NTmFtZXNwYWNlcy5tYXRobWw7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX25hbWVzcGFjZVVSSSA9IG5hbWVzcGFjZVVSSTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgcGFyZW50SW5mbztcbiAgICAgIGlmIChob3N0UGFyZW50ICE9IG51bGwpIHtcbiAgICAgICAgcGFyZW50SW5mbyA9IGhvc3RQYXJlbnQuX2FuY2VzdG9ySW5mbztcbiAgICAgIH0gZWxzZSBpZiAoaG9zdENvbnRhaW5lckluZm8uX3RhZykge1xuICAgICAgICBwYXJlbnRJbmZvID0gaG9zdENvbnRhaW5lckluZm8uX2FuY2VzdG9ySW5mbztcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnRJbmZvKSB7XG4gICAgICAgIC8vIHBhcmVudEluZm8gc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGV4Y2VwdCBmb3IgdGhlIHRvcC1sZXZlbFxuICAgICAgICAvLyBjb21wb25lbnQgd2hlbiBzZXJ2ZXIgcmVuZGVyaW5nXG4gICAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyh0aGlzLl90YWcsIG51bGwsIHRoaXMsIHBhcmVudEluZm8pO1xuICAgICAgfVxuICAgICAgdGhpcy5fYW5jZXN0b3JJbmZvID0gdmFsaWRhdGVET01OZXN0aW5nLnVwZGF0ZWRBbmNlc3RvckluZm8ocGFyZW50SW5mbywgdGhpcy5fdGFnLCB0aGlzKTtcbiAgICB9XG5cbiAgICB2YXIgbW91bnRJbWFnZTtcbiAgICBpZiAodHJhbnNhY3Rpb24udXNlQ3JlYXRlRWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBob3N0Q29udGFpbmVySW5mby5fb3duZXJEb2N1bWVudDtcbiAgICAgIHZhciBlbDtcbiAgICAgIGlmIChuYW1lc3BhY2VVUkkgPT09IERPTU5hbWVzcGFjZXMuaHRtbCkge1xuICAgICAgICBpZiAodGhpcy5fdGFnID09PSAnc2NyaXB0Jykge1xuICAgICAgICAgIC8vIENyZWF0ZSB0aGUgc2NyaXB0IHZpYSAuaW5uZXJIVE1MIHNvIGl0cyBcInBhcnNlci1pbnNlcnRlZFwiIGZsYWcgaXNcbiAgICAgICAgICAvLyBzZXQgdG8gdHJ1ZSBhbmQgaXQgZG9lcyBub3QgZXhlY3V0ZVxuICAgICAgICAgIHZhciBkaXYgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgIHZhciB0eXBlID0gdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtcbiAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzwnICsgdHlwZSArICc+PC8nICsgdHlwZSArICc+JztcbiAgICAgICAgICBlbCA9IGRpdi5yZW1vdmVDaGlsZChkaXYuZmlyc3RDaGlsZCk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvcHMuaXMpIHtcbiAgICAgICAgICBlbCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlLCBwcm9wcy5pcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gU2VwYXJhdGUgZWxzZSBicmFuY2ggaW5zdGVhZCBvZiB1c2luZyBgcHJvcHMuaXMgfHwgdW5kZWZpbmVkYCBhYm92ZSBiZWN1YXNlIG9mIGEgRmlyZWZveCBidWcuXG4gICAgICAgICAgLy8gU2VlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvNjg5NlxuICAgICAgICAgIC8vIGFuZCBkaXNjdXNzaW9uIGluIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyNDBcbiAgICAgICAgICBlbCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWwgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2VVUkksIHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGUpO1xuICAgICAgfVxuICAgICAgUmVhY3RET01Db21wb25lbnRUcmVlLnByZWNhY2hlTm9kZSh0aGlzLCBlbCk7XG4gICAgICB0aGlzLl9mbGFncyB8PSBGbGFncy5oYXNDYWNoZWRDaGlsZE5vZGVzO1xuICAgICAgaWYgKCF0aGlzLl9ob3N0UGFyZW50KSB7XG4gICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5zZXRBdHRyaWJ1dGVGb3JSb290KGVsKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3VwZGF0ZURPTVByb3BlcnRpZXMobnVsbCwgcHJvcHMsIHRyYW5zYWN0aW9uKTtcbiAgICAgIHZhciBsYXp5VHJlZSA9IERPTUxhenlUcmVlKGVsKTtcbiAgICAgIHRoaXMuX2NyZWF0ZUluaXRpYWxDaGlsZHJlbih0cmFuc2FjdGlvbiwgcHJvcHMsIGNvbnRleHQsIGxhenlUcmVlKTtcbiAgICAgIG1vdW50SW1hZ2UgPSBsYXp5VHJlZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHRhZ09wZW4gPSB0aGlzLl9jcmVhdGVPcGVuVGFnTWFya3VwQW5kUHV0TGlzdGVuZXJzKHRyYW5zYWN0aW9uLCBwcm9wcyk7XG4gICAgICB2YXIgdGFnQ29udGVudCA9IHRoaXMuX2NyZWF0ZUNvbnRlbnRNYXJrdXAodHJhbnNhY3Rpb24sIHByb3BzLCBjb250ZXh0KTtcbiAgICAgIGlmICghdGFnQ29udGVudCAmJiBvbWl0dGVkQ2xvc2VUYWdzW3RoaXMuX3RhZ10pIHtcbiAgICAgICAgbW91bnRJbWFnZSA9IHRhZ09wZW4gKyAnLz4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW91bnRJbWFnZSA9IHRhZ09wZW4gKyAnPicgKyB0YWdDb250ZW50ICsgJzwvJyArIHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGUgKyAnPic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLl90YWcpIHtcbiAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShpbnB1dFBvc3RNb3VudCwgdGhpcyk7XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZSh0ZXh0YXJlYVBvc3RNb3VudCwgdGhpcyk7XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUob3B0aW9uUG9zdE1vdW50LCB0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vdW50SW1hZ2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbWFya3VwIGZvciB0aGUgb3BlbiB0YWcgYW5kIGFsbCBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBoYXMgc2lkZSBlZmZlY3RzIGJlY2F1c2UgZXZlbnRzIGdldCByZWdpc3RlcmVkLlxuICAgKlxuICAgKiBJdGVyYXRpbmcgb3ZlciBvYmplY3QgcHJvcGVydGllcyBpcyBmYXN0ZXIgdGhhbiBpdGVyYXRpbmcgb3ZlciBhcnJheXMuXG4gICAqIEBzZWUgaHR0cDovL2pzcGVyZi5jb20vb2JqLXZzLWFyci1pdGVyYXRpb25cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9IE1hcmt1cCBvZiBvcGVuaW5nIHRhZy5cbiAgICovXG4gIF9jcmVhdGVPcGVuVGFnTWFya3VwQW5kUHV0TGlzdGVuZXJzOiBmdW5jdGlvbiAodHJhbnNhY3Rpb24sIHByb3BzKSB7XG4gICAgdmFyIHJldCA9ICc8JyArIHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG5cbiAgICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgICBpZiAoIXByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAgIGlmIChwcm9wVmFsdWUpIHtcbiAgICAgICAgICBlbnF1ZXVlUHV0TGlzdGVuZXIodGhpcywgcHJvcEtleSwgcHJvcFZhbHVlLCB0cmFuc2FjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgICAgIGlmIChwcm9wVmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgIC8vIFNlZSBgX3VwZGF0ZURPTVByb3BlcnRpZXNgLiBzdHlsZSBibG9ja1xuICAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c1N0eWxlID0gcHJvcFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJvcFZhbHVlID0gdGhpcy5fcHJldmlvdXNTdHlsZUNvcHkgPSBfYXNzaWduKHt9LCBwcm9wcy5zdHlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByb3BWYWx1ZSA9IENTU1Byb3BlcnR5T3BlcmF0aW9ucy5jcmVhdGVNYXJrdXBGb3JTdHlsZXMocHJvcFZhbHVlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWFya3VwID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuX3RhZyAhPSBudWxsICYmIGlzQ3VzdG9tQ29tcG9uZW50KHRoaXMuX3RhZywgcHJvcHMpKSB7XG4gICAgICAgICAgaWYgKCFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICAgICAgbWFya3VwID0gRE9NUHJvcGVydHlPcGVyYXRpb25zLmNyZWF0ZU1hcmt1cEZvckN1c3RvbUF0dHJpYnV0ZShwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXJrdXAgPSBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuY3JlYXRlTWFya3VwRm9yUHJvcGVydHkocHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWFya3VwKSB7XG4gICAgICAgICAgcmV0ICs9ICcgJyArIG1hcmt1cDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvciBzdGF0aWMgcGFnZXMsIG5vIG5lZWQgdG8gcHV0IFJlYWN0IElEIGFuZCBjaGVja3N1bS4gU2F2ZXMgbG90cyBvZlxuICAgIC8vIGJ5dGVzLlxuICAgIGlmICh0cmFuc2FjdGlvbi5yZW5kZXJUb1N0YXRpY01hcmt1cCkge1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2hvc3RQYXJlbnQpIHtcbiAgICAgIHJldCArPSAnICcgKyBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuY3JlYXRlTWFya3VwRm9yUm9vdCgpO1xuICAgIH1cbiAgICByZXQgKz0gJyAnICsgRE9NUHJvcGVydHlPcGVyYXRpb25zLmNyZWF0ZU1hcmt1cEZvcklEKHRoaXMuX2RvbUlEKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIG1hcmt1cCBmb3IgdGhlIGNvbnRlbnQgYmV0d2VlbiB0aGUgdGFncy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IENvbnRlbnQgbWFya3VwLlxuICAgKi9cbiAgX2NyZWF0ZUNvbnRlbnRNYXJrdXA6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgcHJvcHMsIGNvbnRleHQpIHtcbiAgICB2YXIgcmV0ID0gJyc7XG5cbiAgICAvLyBJbnRlbnRpb25hbCB1c2Ugb2YgIT0gdG8gYXZvaWQgY2F0Y2hpbmcgemVyby9mYWxzZS5cbiAgICB2YXIgaW5uZXJIVE1MID0gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw7XG4gICAgaWYgKGlubmVySFRNTCAhPSBudWxsKSB7XG4gICAgICBpZiAoaW5uZXJIVE1MLl9faHRtbCAhPSBudWxsKSB7XG4gICAgICAgIHJldCA9IGlubmVySFRNTC5fX2h0bWw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjb250ZW50VG9Vc2UgPSBDT05URU5UX1RZUEVTW3R5cGVvZiBwcm9wcy5jaGlsZHJlbl0gPyBwcm9wcy5jaGlsZHJlbiA6IG51bGw7XG4gICAgICB2YXIgY2hpbGRyZW5Ub1VzZSA9IGNvbnRlbnRUb1VzZSAhPSBudWxsID8gbnVsbCA6IHByb3BzLmNoaWxkcmVuO1xuICAgICAgaWYgKGNvbnRlbnRUb1VzZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IFZhbGlkYXRlIHRoYXQgdGV4dCBpcyBhbGxvd2VkIGFzIGEgY2hpbGQgb2YgdGhpcyBub2RlXG4gICAgICAgIHJldCA9IGVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3Nlcihjb250ZW50VG9Vc2UpO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHNldEFuZFZhbGlkYXRlQ29udGVudENoaWxkRGV2LmNhbGwodGhpcywgY29udGVudFRvVXNlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGlsZHJlblRvVXNlICE9IG51bGwpIHtcbiAgICAgICAgdmFyIG1vdW50SW1hZ2VzID0gdGhpcy5tb3VudENoaWxkcmVuKGNoaWxkcmVuVG9Vc2UsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgICAgcmV0ID0gbW91bnRJbWFnZXMuam9pbignJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChuZXdsaW5lRWF0aW5nVGFnc1t0aGlzLl90YWddICYmIHJldC5jaGFyQXQoMCkgPT09ICdcXG4nKSB7XG4gICAgICAvLyB0ZXh0L2h0bWwgaWdub3JlcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZXNlIHRhZ3MgaWYgaXQncyBhIG5ld2xpbmVcbiAgICAgIC8vIFByZWZlciB0byBicmVhayBhcHBsaWNhdGlvbi94bWwgb3ZlciB0ZXh0L2h0bWwgKGZvciBub3cpIGJ5IGFkZGluZ1xuICAgICAgLy8gYSBuZXdsaW5lIHNwZWNpZmljYWxseSB0byBnZXQgZWF0ZW4gYnkgdGhlIHBhcnNlci4gKEFsdGVybmF0ZWx5IGZvclxuICAgICAgLy8gdGV4dGFyZWFzLCByZXBsYWNpbmcgXCJeXFxuXCIgd2l0aCBcIlxcclxcblwiIGRvZXNuJ3QgZ2V0IGVhdGVuLCBhbmQgdGhlIGZpcnN0XG4gICAgICAvLyBcXHIgaXMgbm9ybWFsaXplZCBvdXQgYnkgSFRNTFRleHRBcmVhRWxlbWVudCN2YWx1ZS4pXG4gICAgICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sLXBvbHlnbG90LyNuZXdsaW5lcy1pbi10ZXh0YXJlYS1hbmQtcHJlPlxuICAgICAgLy8gU2VlOiA8aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvc3ludGF4Lmh0bWwjZWxlbWVudC1yZXN0cmljdGlvbnM+XG4gICAgICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNuZXdsaW5lcz5cbiAgICAgIC8vIFNlZTogUGFyc2luZyBvZiBcInRleHRhcmVhXCIgXCJsaXN0aW5nXCIgYW5kIFwicHJlXCIgZWxlbWVudHNcbiAgICAgIC8vICBmcm9tIDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5ib2R5PlxuICAgICAgcmV0dXJuICdcXG4nICsgcmV0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgfSxcblxuICBfY3JlYXRlSW5pdGlhbENoaWxkcmVuOiBmdW5jdGlvbiAodHJhbnNhY3Rpb24sIHByb3BzLCBjb250ZXh0LCBsYXp5VHJlZSkge1xuICAgIC8vIEludGVudGlvbmFsIHVzZSBvZiAhPSB0byBhdm9pZCBjYXRjaGluZyB6ZXJvL2ZhbHNlLlxuICAgIHZhciBpbm5lckhUTUwgPSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTDtcbiAgICBpZiAoaW5uZXJIVE1MICE9IG51bGwpIHtcbiAgICAgIGlmIChpbm5lckhUTUwuX19odG1sICE9IG51bGwpIHtcbiAgICAgICAgRE9NTGF6eVRyZWUucXVldWVIVE1MKGxhenlUcmVlLCBpbm5lckhUTUwuX19odG1sKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGNvbnRlbnRUb1VzZSA9IENPTlRFTlRfVFlQRVNbdHlwZW9mIHByb3BzLmNoaWxkcmVuXSA/IHByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIHZhciBjaGlsZHJlblRvVXNlID0gY29udGVudFRvVXNlICE9IG51bGwgPyBudWxsIDogcHJvcHMuY2hpbGRyZW47XG4gICAgICAvLyBUT0RPOiBWYWxpZGF0ZSB0aGF0IHRleHQgaXMgYWxsb3dlZCBhcyBhIGNoaWxkIG9mIHRoaXMgbm9kZVxuICAgICAgaWYgKGNvbnRlbnRUb1VzZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGV4dENvbnRlbnQgd2hlbiB0aGUgdGV4dCBpcyBlbXB0eS4gSW4gSUUxMSBzZXR0aW5nXG4gICAgICAgIC8vIHRleHRDb250ZW50IG9uIGEgdGV4dCBhcmVhIHdpbGwgY2F1c2UgdGhlIHBsYWNlaG9sZGVyIHRvIG5vdFxuICAgICAgICAvLyBzaG93IHdpdGhpbiB0aGUgdGV4dGFyZWEgdW50aWwgaXQgaGFzIGJlZW4gZm9jdXNlZCBhbmQgYmx1cnJlZCBhZ2Fpbi5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy82NzMxI2lzc3VlY29tbWVudC0yNTQ4NzQ1NTNcbiAgICAgICAgaWYgKGNvbnRlbnRUb1VzZSAhPT0gJycpIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYuY2FsbCh0aGlzLCBjb250ZW50VG9Vc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBET01MYXp5VHJlZS5xdWV1ZVRleHQobGF6eVRyZWUsIGNvbnRlbnRUb1VzZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hpbGRyZW5Ub1VzZSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBtb3VudEltYWdlcyA9IHRoaXMubW91bnRDaGlsZHJlbihjaGlsZHJlblRvVXNlLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW91bnRJbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBET01MYXp5VHJlZS5xdWV1ZUNoaWxkKGxhenlUcmVlLCBtb3VudEltYWdlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY2VpdmVzIGEgbmV4dCBlbGVtZW50IGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnRcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0XG4gICAqL1xuICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAobmV4dEVsZW1lbnQsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgdmFyIHByZXZFbGVtZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQ7XG4gICAgdGhpcy5fY3VycmVudEVsZW1lbnQgPSBuZXh0RWxlbWVudDtcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCh0cmFuc2FjdGlvbiwgcHJldkVsZW1lbnQsIG5leHRFbGVtZW50LCBjb250ZXh0KTtcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyBhIERPTSBjb21wb25lbnQgYWZ0ZXIgaXQgaGFzIGFscmVhZHkgYmVlbiBhbGxvY2F0ZWQgYW5kXG4gICAqIGF0dGFjaGVkIHRvIHRoZSBET00uIFJlY29uY2lsZXMgdGhlIHJvb3QgRE9NIG5vZGUsIHRoZW4gcmVjdXJzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IHByZXZFbGVtZW50XG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBuZXh0RWxlbWVudFxuICAgKiBAaW50ZXJuYWxcbiAgICogQG92ZXJyaWRhYmxlXG4gICAqL1xuICB1cGRhdGVDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgcHJldkVsZW1lbnQsIG5leHRFbGVtZW50LCBjb250ZXh0KSB7XG4gICAgdmFyIGxhc3RQcm9wcyA9IHByZXZFbGVtZW50LnByb3BzO1xuICAgIHZhciBuZXh0UHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcblxuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgIGxhc3RQcm9wcyA9IFJlYWN0RE9NSW5wdXQuZ2V0SG9zdFByb3BzKHRoaXMsIGxhc3RQcm9wcyk7XG4gICAgICAgIG5leHRQcm9wcyA9IFJlYWN0RE9NSW5wdXQuZ2V0SG9zdFByb3BzKHRoaXMsIG5leHRQcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgbGFzdFByb3BzID0gUmVhY3RET01PcHRpb24uZ2V0SG9zdFByb3BzKHRoaXMsIGxhc3RQcm9wcyk7XG4gICAgICAgIG5leHRQcm9wcyA9IFJlYWN0RE9NT3B0aW9uLmdldEhvc3RQcm9wcyh0aGlzLCBuZXh0UHJvcHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGxhc3RQcm9wcyA9IFJlYWN0RE9NU2VsZWN0LmdldEhvc3RQcm9wcyh0aGlzLCBsYXN0UHJvcHMpO1xuICAgICAgICBuZXh0UHJvcHMgPSBSZWFjdERPTVNlbGVjdC5nZXRIb3N0UHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgIGxhc3RQcm9wcyA9IFJlYWN0RE9NVGV4dGFyZWEuZ2V0SG9zdFByb3BzKHRoaXMsIGxhc3RQcm9wcyk7XG4gICAgICAgIG5leHRQcm9wcyA9IFJlYWN0RE9NVGV4dGFyZWEuZ2V0SG9zdFByb3BzKHRoaXMsIG5leHRQcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGFzc2VydFZhbGlkUHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICB0aGlzLl91cGRhdGVET01Qcm9wZXJ0aWVzKGxhc3RQcm9wcywgbmV4dFByb3BzLCB0cmFuc2FjdGlvbik7XG4gICAgdGhpcy5fdXBkYXRlRE9NQ2hpbGRyZW4obGFzdFByb3BzLCBuZXh0UHJvcHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcblxuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgd3JhcHBlciBhcm91bmQgaW5wdXRzICphZnRlciogdXBkYXRpbmcgcHJvcHMuIFRoaXMgaGFzIHRvXG4gICAgICAgIC8vIGhhcHBlbiBhZnRlciBgX3VwZGF0ZURPTVByb3BlcnRpZXNgLiBPdGhlcndpc2UgSFRNTDUgaW5wdXQgdmFsaWRhdGlvbnNcbiAgICAgICAgLy8gcmFpc2Ugd2FybmluZ3MgYW5kIHByZXZlbnQgdGhlIG5ldyB2YWx1ZSBmcm9tIGJlaW5nIGFzc2lnbmVkLlxuICAgICAgICBSZWFjdERPTUlucHV0LnVwZGF0ZVdyYXBwZXIodGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICBSZWFjdERPTVRleHRhcmVhLnVwZGF0ZVdyYXBwZXIodGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgLy8gPHNlbGVjdD4gdmFsdWUgdXBkYXRlIG5lZWRzIHRvIG9jY3VyIGFmdGVyIDxvcHRpb24+IGNoaWxkcmVuXG4gICAgICAgIC8vIHJlY29uY2lsaWF0aW9uXG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUocG9zdFVwZGF0ZVNlbGVjdFdyYXBwZXIsIHRoaXMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY29uY2lsZXMgdGhlIHByb3BlcnRpZXMgYnkgZGV0ZWN0aW5nIGRpZmZlcmVuY2VzIGluIHByb3BlcnR5IHZhbHVlcyBhbmRcbiAgICogdXBkYXRpbmcgdGhlIERPTSBhcyBuZWNlc3NhcnkuIFRoaXMgZnVuY3Rpb24gaXMgcHJvYmFibHkgdGhlIHNpbmdsZSBtb3N0XG4gICAqIGNyaXRpY2FsIHBhdGggZm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi5cbiAgICpcbiAgICogVE9ETzogQmVuY2htYXJrIHdoZXRoZXIgY2hlY2tpbmcgZm9yIGNoYW5nZWQgdmFsdWVzIGluIG1lbW9yeSBhY3R1YWxseVxuICAgKiAgICAgICBpbXByb3ZlcyBwZXJmb3JtYW5jZSAoZXNwZWNpYWxseSBzdGF0aWNhbGx5IHBvc2l0aW9uZWQgZWxlbWVudHMpLlxuICAgKiBUT0RPOiBCZW5jaG1hcmsgdGhlIGVmZmVjdHMgb2YgcHV0dGluZyB0aGlzIGF0IHRoZSB0b3Agc2luY2UgOTklIG9mIHByb3BzXG4gICAqICAgICAgIGRvIG5vdCBjaGFuZ2UgZm9yIGEgZ2l2ZW4gcmVjb25jaWxpYXRpb24uXG4gICAqIFRPRE86IEJlbmNobWFyayBhcmVhcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCB3aXRoIGNhY2hpbmcuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBsYXN0UHJvcHNcbiAgICogQHBhcmFtIHtvYmplY3R9IG5leHRQcm9wc1xuICAgKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlXG4gICAqL1xuICBfdXBkYXRlRE9NUHJvcGVydGllczogZnVuY3Rpb24gKGxhc3RQcm9wcywgbmV4dFByb3BzLCB0cmFuc2FjdGlvbikge1xuICAgIHZhciBwcm9wS2V5O1xuICAgIHZhciBzdHlsZU5hbWU7XG4gICAgdmFyIHN0eWxlVXBkYXRlcztcbiAgICBmb3IgKHByb3BLZXkgaW4gbGFzdFByb3BzKSB7XG4gICAgICBpZiAobmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpIHx8ICFsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbGFzdFByb3BzW3Byb3BLZXldID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcEtleSA9PT0gU1RZTEUpIHtcbiAgICAgICAgdmFyIGxhc3RTdHlsZSA9IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5O1xuICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBsYXN0U3R5bGUpIHtcbiAgICAgICAgICBpZiAobGFzdFN0eWxlLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpIHtcbiAgICAgICAgICAgIHN0eWxlVXBkYXRlcyA9IHN0eWxlVXBkYXRlcyB8fCB7fTtcbiAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAocmVnaXN0cmF0aW9uTmFtZU1vZHVsZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgICAgaWYgKGxhc3RQcm9wc1twcm9wS2V5XSkge1xuICAgICAgICAgIC8vIE9ubHkgY2FsbCBkZWxldGVMaXN0ZW5lciBpZiB0aGVyZSB3YXMgYSBsaXN0ZW5lciBwcmV2aW91c2x5IG9yXG4gICAgICAgICAgLy8gZWxzZSB3aWxsRGVsZXRlTGlzdGVuZXIgZ2V0cyBjYWxsZWQgd2hlbiB0aGVyZSB3YXNuJ3QgYWN0dWFsbHkgYVxuICAgICAgICAgIC8vIGxpc3RlbmVyIChlLmcuLCBvbkNsaWNrPXtudWxsfSlcbiAgICAgICAgICBkZWxldGVMaXN0ZW5lcih0aGlzLCBwcm9wS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0aGlzLl90YWcsIGxhc3RQcm9wcykpIHtcbiAgICAgICAgaWYgKCFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvckF0dHJpYnV0ZShnZXROb2RlKHRoaXMpLCBwcm9wS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChET01Qcm9wZXJ0eS5wcm9wZXJ0aWVzW3Byb3BLZXldIHx8IERPTVByb3BlcnR5LmlzQ3VzdG9tQXR0cmlidXRlKHByb3BLZXkpKSB7XG4gICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvclByb3BlcnR5KGdldE5vZGUodGhpcyksIHByb3BLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHByb3BLZXkgaW4gbmV4dFByb3BzKSB7XG4gICAgICB2YXIgbmV4dFByb3AgPSBuZXh0UHJvcHNbcHJvcEtleV07XG4gICAgICB2YXIgbGFzdFByb3AgPSBwcm9wS2V5ID09PSBTVFlMRSA/IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5IDogbGFzdFByb3BzICE9IG51bGwgPyBsYXN0UHJvcHNbcHJvcEtleV0gOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSB8fCBuZXh0UHJvcCA9PT0gbGFzdFByb3AgfHwgbmV4dFByb3AgPT0gbnVsbCAmJiBsYXN0UHJvcCA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICAgIGlmIChuZXh0UHJvcCkge1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjaGVja0FuZFdhcm5Gb3JNdXRhdGVkU3R5bGUodGhpcy5fcHJldmlvdXNTdHlsZUNvcHksIHRoaXMuX3ByZXZpb3VzU3R5bGUsIHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNTdHlsZSA9IG5leHRQcm9wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuZXh0UHJvcCA9IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gX2Fzc2lnbih7fSwgbmV4dFByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGFzdFByb3ApIHtcbiAgICAgICAgICAvLyBVbnNldCBzdHlsZXMgb24gYGxhc3RQcm9wYCBidXQgbm90IG9uIGBuZXh0UHJvcGAuXG4gICAgICAgICAgZm9yIChzdHlsZU5hbWUgaW4gbGFzdFByb3ApIHtcbiAgICAgICAgICAgIGlmIChsYXN0UHJvcC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmICghbmV4dFByb3AgfHwgIW5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpKSB7XG4gICAgICAgICAgICAgIHN0eWxlVXBkYXRlcyA9IHN0eWxlVXBkYXRlcyB8fCB7fTtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzW3N0eWxlTmFtZV0gPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gVXBkYXRlIHN0eWxlcyB0aGF0IGNoYW5nZWQgc2luY2UgYGxhc3RQcm9wYC5cbiAgICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBuZXh0UHJvcCkge1xuICAgICAgICAgICAgaWYgKG5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiYgbGFzdFByb3Bbc3R5bGVOYW1lXSAhPT0gbmV4dFByb3Bbc3R5bGVOYW1lXSkge1xuICAgICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSBzdHlsZVVwZGF0ZXMgfHwge307XG4gICAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gbmV4dFByb3Bbc3R5bGVOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUmVsaWVzIG9uIGB1cGRhdGVTdHlsZXNCeUlEYCBub3QgbXV0YXRpbmcgYHN0eWxlVXBkYXRlc2AuXG4gICAgICAgICAgc3R5bGVVcGRhdGVzID0gbmV4dFByb3A7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmVnaXN0cmF0aW9uTmFtZU1vZHVsZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgICAgaWYgKG5leHRQcm9wKSB7XG4gICAgICAgICAgZW5xdWV1ZVB1dExpc3RlbmVyKHRoaXMsIHByb3BLZXksIG5leHRQcm9wLCB0cmFuc2FjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAobGFzdFByb3ApIHtcbiAgICAgICAgICBkZWxldGVMaXN0ZW5lcih0aGlzLCBwcm9wS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0aGlzLl90YWcsIG5leHRQcm9wcykpIHtcbiAgICAgICAgaWYgKCFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5zZXRWYWx1ZUZvckF0dHJpYnV0ZShnZXROb2RlKHRoaXMpLCBwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoRE9NUHJvcGVydHkucHJvcGVydGllc1twcm9wS2V5XSB8fCBET01Qcm9wZXJ0eS5pc0N1c3RvbUF0dHJpYnV0ZShwcm9wS2V5KSkge1xuICAgICAgICB2YXIgbm9kZSA9IGdldE5vZGUodGhpcyk7XG4gICAgICAgIC8vIElmIHdlJ3JlIHVwZGF0aW5nIHRvIG51bGwgb3IgdW5kZWZpbmVkLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBwcm9wZXJ0eVxuICAgICAgICAvLyBmcm9tIHRoZSBET00gbm9kZSBpbnN0ZWFkIG9mIGluYWR2ZXJ0ZW50bHkgc2V0dGluZyB0byBhIHN0cmluZy4gVGhpc1xuICAgICAgICAvLyBicmluZ3MgdXMgaW4gbGluZSB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yIHdlIGhhdmUgb24gaW5pdGlhbCByZW5kZXIuXG4gICAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgICAgRE9NUHJvcGVydHlPcGVyYXRpb25zLnNldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgcHJvcEtleSwgbmV4dFByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvclByb3BlcnR5KG5vZGUsIHByb3BLZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdHlsZVVwZGF0ZXMpIHtcbiAgICAgIENTU1Byb3BlcnR5T3BlcmF0aW9ucy5zZXRWYWx1ZUZvclN0eWxlcyhnZXROb2RlKHRoaXMpLCBzdHlsZVVwZGF0ZXMsIHRoaXMpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUmVjb25jaWxlcyB0aGUgY2hpbGRyZW4gd2l0aCB0aGUgdmFyaW91cyBwcm9wZXJ0aWVzIHRoYXQgYWZmZWN0IHRoZVxuICAgKiBjaGlsZHJlbiBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gbGFzdFByb3BzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXh0UHJvcHNcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKi9cbiAgX3VwZGF0ZURPTUNoaWxkcmVuOiBmdW5jdGlvbiAobGFzdFByb3BzLCBuZXh0UHJvcHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgdmFyIGxhc3RDb250ZW50ID0gQ09OVEVOVF9UWVBFU1t0eXBlb2YgbGFzdFByb3BzLmNoaWxkcmVuXSA/IGxhc3RQcm9wcy5jaGlsZHJlbiA6IG51bGw7XG4gICAgdmFyIG5leHRDb250ZW50ID0gQ09OVEVOVF9UWVBFU1t0eXBlb2YgbmV4dFByb3BzLmNoaWxkcmVuXSA/IG5leHRQcm9wcy5jaGlsZHJlbiA6IG51bGw7XG5cbiAgICB2YXIgbGFzdEh0bWwgPSBsYXN0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgbGFzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbDtcbiAgICB2YXIgbmV4dEh0bWwgPSBuZXh0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgbmV4dFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbDtcblxuICAgIC8vIE5vdGUgdGhlIHVzZSBvZiBgIT1gIHdoaWNoIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWQuXG4gICAgdmFyIGxhc3RDaGlsZHJlbiA9IGxhc3RDb250ZW50ICE9IG51bGwgPyBudWxsIDogbGFzdFByb3BzLmNoaWxkcmVuO1xuICAgIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0Q29udGVudCAhPSBudWxsID8gbnVsbCA6IG5leHRQcm9wcy5jaGlsZHJlbjtcblxuICAgIC8vIElmIHdlJ3JlIHN3aXRjaGluZyBmcm9tIGNoaWxkcmVuIHRvIGNvbnRlbnQvaHRtbCBvciB2aWNlIHZlcnNhLCByZW1vdmVcbiAgICAvLyB0aGUgb2xkIGNvbnRlbnRcbiAgICB2YXIgbGFzdEhhc0NvbnRlbnRPckh0bWwgPSBsYXN0Q29udGVudCAhPSBudWxsIHx8IGxhc3RIdG1sICE9IG51bGw7XG4gICAgdmFyIG5leHRIYXNDb250ZW50T3JIdG1sID0gbmV4dENvbnRlbnQgIT0gbnVsbCB8fCBuZXh0SHRtbCAhPSBudWxsO1xuICAgIGlmIChsYXN0Q2hpbGRyZW4gIT0gbnVsbCAmJiBuZXh0Q2hpbGRyZW4gPT0gbnVsbCkge1xuICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbihudWxsLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChsYXN0SGFzQ29udGVudE9ySHRtbCAmJiAhbmV4dEhhc0NvbnRlbnRPckh0bWwpIHtcbiAgICAgIHRoaXMudXBkYXRlVGV4dENvbnRlbnQoJycpO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uU2V0Q2hpbGRyZW4odGhpcy5fZGVidWdJRCwgW10pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZXh0Q29udGVudCAhPSBudWxsKSB7XG4gICAgICBpZiAobGFzdENvbnRlbnQgIT09IG5leHRDb250ZW50KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVGV4dENvbnRlbnQoJycgKyBuZXh0Q29udGVudCk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYuY2FsbCh0aGlzLCBuZXh0Q29udGVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5leHRIdG1sICE9IG51bGwpIHtcbiAgICAgIGlmIChsYXN0SHRtbCAhPT0gbmV4dEh0bWwpIHtcbiAgICAgICAgdGhpcy51cGRhdGVNYXJrdXAoJycgKyBuZXh0SHRtbCk7XG4gICAgICB9XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbih0aGlzLl9kZWJ1Z0lELCBbXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXh0Q2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYuY2FsbCh0aGlzLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbihuZXh0Q2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9XG4gIH0sXG5cbiAgZ2V0SG9zdE5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZSh0aGlzKTtcbiAgfSxcblxuICAvKipcbiAgICogRGVzdHJveXMgYWxsIGV2ZW50IHJlZ2lzdHJhdGlvbnMgZm9yIHRoaXMgaW5zdGFuY2UuIERvZXMgbm90IHJlbW92ZSBmcm9tXG4gICAqIHRoZSBET00uIFRoYXQgbXVzdCBiZSBkb25lIGJ5IHRoZSBwYXJlbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHNhZmVseSkge1xuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdhdWRpbyc6XG4gICAgICBjYXNlICdmb3JtJzpcbiAgICAgIGNhc2UgJ2lmcmFtZSc6XG4gICAgICBjYXNlICdpbWcnOlxuICAgICAgY2FzZSAnbGluayc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgY2FzZSAnc291cmNlJzpcbiAgICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICAgICAgdmFyIGxpc3RlbmVycyA9IHRoaXMuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnM7XG4gICAgICAgIGlmIChsaXN0ZW5lcnMpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGlzdGVuZXJzW2ldLnJlbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgaW5wdXRWYWx1ZVRyYWNraW5nLnN0b3BUcmFja2luZyh0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgY2FzZSAnYm9keSc6XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb21wb25lbnRzIGxpa2UgPGh0bWw+IDxoZWFkPiBhbmQgPGJvZHk+IGNhbid0IGJlIHJlbW92ZWQgb3IgYWRkZWRcbiAgICAgICAgICogZWFzaWx5IGluIGEgY3Jvc3MtYnJvd3NlciB3YXksIGhvd2V2ZXIgaXQncyB2YWx1YWJsZSB0byBiZSBhYmxlIHRvXG4gICAgICAgICAqIHRha2UgYWR2YW50YWdlIG9mIFJlYWN0J3MgcmVjb25jaWxpYXRpb24gZm9yIHN0eWxpbmcgYW5kIDx0aXRsZT5cbiAgICAgICAgICogbWFuYWdlbWVudC4gU28gd2UganVzdCBkb2N1bWVudCBpdCBhbmQgdGhyb3cgaW4gZGFuZ2Vyb3VzIGNhc2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJzwlcz4gdHJpZWQgdG8gdW5tb3VudC4gQmVjYXVzZSBvZiBjcm9zcy1icm93c2VyIHF1aXJrcyBpdCBpcyBpbXBvc3NpYmxlIHRvIHVubW91bnQgc29tZSB0b3AtbGV2ZWwgY29tcG9uZW50cyAoZWcgPGh0bWw+LCA8aGVhZD4sIGFuZCA8Ym9keT4pIHJlbGlhYmx5IGFuZCBlZmZpY2llbnRseS4gVG8gZml4IHRoaXMsIGhhdmUgYSBzaW5nbGUgdG9wLWxldmVsIGNvbXBvbmVudCB0aGF0IG5ldmVyIHVubW91bnRzIHJlbmRlciB0aGVzZSBlbGVtZW50cy4nLCB0aGlzLl90YWcpIDogX3Byb2RJbnZhcmlhbnQoJzY2JywgdGhpcy5fdGFnKSA6IHZvaWQgMDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy51bm1vdW50Q2hpbGRyZW4oc2FmZWx5KTtcbiAgICBSZWFjdERPTUNvbXBvbmVudFRyZWUudW5jYWNoZU5vZGUodGhpcyk7XG4gICAgRXZlbnRQbHVnaW5IdWIuZGVsZXRlQWxsTGlzdGVuZXJzKHRoaXMpO1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSAwO1xuICAgIHRoaXMuX2RvbUlEID0gMDtcbiAgICB0aGlzLl93cmFwcGVyU3RhdGUgPSBudWxsO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHNldEFuZFZhbGlkYXRlQ29udGVudENoaWxkRGV2LmNhbGwodGhpcywgbnVsbCk7XG4gICAgfVxuICB9LFxuXG4gIGdldFB1YmxpY0luc3RhbmNlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGdldE5vZGUodGhpcyk7XG4gIH1cbn07XG5cbl9hc3NpZ24oUmVhY3RET01Db21wb25lbnQucHJvdG90eXBlLCBSZWFjdERPTUNvbXBvbmVudC5NaXhpbiwgUmVhY3RNdWx0aUNoaWxkLk1peGluKTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTUNvbXBvbmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NQ29tcG9uZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxNzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///170\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* global hasOwnProperty:true */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar AutoFocusUtils = __webpack_require__(/*! ./AutoFocusUtils */ 171);\nvar CSSPropertyOperations = __webpack_require__(/*! ./CSSPropertyOperations */ 172);\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar DOMNamespaces = __webpack_require__(/*! ./DOMNamespaces */ 53);\nvar DOMProperty = __webpack_require__(/*! ./DOMProperty */ 15);\nvar DOMPropertyOperations = __webpack_require__(/*! ./DOMPropertyOperations */ 91);\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ 36);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactDOMComponentFlags = __webpack_require__(/*! ./ReactDOMComponentFlags */ 79);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactDOMInput = __webpack_require__(/*! ./ReactDOMInput */ 182);\nvar ReactDOMOption = __webpack_require__(/*! ./ReactDOMOption */ 186);\nvar ReactDOMSelect = __webpack_require__(/*! ./ReactDOMSelect */ 94);\nvar ReactDOMTextarea = __webpack_require__(/*! ./ReactDOMTextarea */ 187);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactMultiChild = __webpack_require__(/*! ./ReactMultiChild */ 188);\nvar ReactServerRenderingTransaction = __webpack_require__(/*! ./ReactServerRenderingTransaction */ 197);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar escapeTextContentForBrowser = __webpack_require__(/*! ./escapeTextContentForBrowser */ 40);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar isEventSupported = __webpack_require__(/*! ./isEventSupported */ 50);\nvar shallowEqual = __webpack_require__(/*! fbjs/lib/shallowEqual */ 57);\nvar inputValueTracking = __webpack_require__(/*! ./inputValueTracking */ 85);\nvar validateDOMNesting = __webpack_require__(/*! ./validateDOMNesting */ 61);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { string: true, number: true };\n\nvar STYLE = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n if (internalInstance) {\n var owner = internalInstance._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' This DOM node was rendered by `' + name + '`.';\n }\n }\n }\n return '';\n}\n\nfunction friendlyStringify(obj) {\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return '[' + obj.map(friendlyStringify).join(', ') + ']';\n } else {\n var pairs = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n }\n }\n return '{' + pairs.join(', ') + '}';\n }\n } else if (typeof obj === 'string') {\n return JSON.stringify(obj);\n } else if (typeof obj === 'function') {\n return '[function object]';\n }\n // Differs from JSON.stringify in that undefined because undefined and that\n // inf and nan don't become null\n return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n if (style1 == null || style2 == null) {\n return;\n }\n if (shallowEqual(style1, style2)) {\n return;\n }\n\n var componentName = component._tag;\n var owner = component._currentElement._owner;\n var ownerName;\n if (owner) {\n ownerName = owner.getName();\n }\n\n var hash = ownerName + '|' + componentName;\n\n if (styleMutationWarning.hasOwnProperty(hash)) {\n return;\n }\n\n styleMutationWarning[hash] = true;\n\n process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), \"This browser doesn't support the `onScroll` event\") : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trackInputValue() {\n inputValueTracking.track(this);\n}\n\nfunction trapBubbledEventsLocal() {\n var inst = this;\n // If a component renders to null or if another component fatals and causes\n // the state of the tree to be corrupted, `node` here can be null.\n !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'video':\n case 'audio':\n inst._wrapperState.listeners = [];\n // Create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\n}\n\nfunction postUpdateSelectWrapper() {\n ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\nvar newlineEatingTags = {\n listing: true,\n pre: true,\n textarea: true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trackInputValue, this);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trackInputValue, this);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\n } else {\n var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n var tagContent = this._createContentMarkup(transaction, props, context);\n if (!tagContent && omittedCloseTags[this._tag]) {\n mountImage = tagOpen + '/>';\n } else {\n mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n }\n }\n\n switch (this._tag) {\n case 'input':\n transaction.getReactMountReady().enqueue(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\n break;\n }\n\n return mountImage;\n },\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n var ret = '<' + this._currentElement.type;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n if (propValue) {\n enqueuePutListener(this, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (process.env.NODE_ENV !== 'production') {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret;\n }\n\n if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @param {object} context\n * @return {string} Content markup.\n */\n _createContentMarkup: function (transaction, props, context) {\n var ret = '';\n\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n ret = innerHTML.__html;\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n ret = escapeTextContentForBrowser(contentToUse);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n ret = mountImages.join('');\n }\n }\n if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n return '\\n' + ret;\n } else {\n return ret;\n }\n },\n\n _createInitialChildren: function (transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);\n }\n } else {\n var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, mountImages[i]);\n }\n }\n }\n },\n\n /**\n * Receives a next element and updates the component.\n *\n * @internal\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n */\n receiveComponent: function (nextElement, transaction, context) {\n var prevElement = this._currentElement;\n this._currentElement = nextElement;\n this.updateComponent(transaction, prevElement, nextElement, context);\n },\n\n /**\n * Updates a DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @param {ReactElement} nextElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\n }\n },\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = this._previousStyleCopy;\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n this._previousStyleCopy = null;\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (lastProps[propKey]) {\n // Only call deleteListener if there was a listener previously or\n // else willDeleteListener gets called when there wasn't actually a\n // listener (e.g., onClick={null})\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (process.env.NODE_ENV !== 'production') {\n checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n this._previousStyle = nextProp;\n }\n nextProp = this._previousStyleCopy = _assign({}, nextProp);\n } else {\n this._previousStyleCopy = null;\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp) {\n enqueuePutListener(this, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (nextProp != null) {\n DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n }\n if (styleUpdates) {\n CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n */\n _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction, context);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n var listeners = this._wrapperState.listeners;\n if (listeners) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n }\n break;\n case 'input':\n case 'textarea':\n inputValueTracking.stopTracking(this);\n break;\n case 'html':\n case 'head':\n case 'body':\n /**\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n */\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01Db21wb25lbnQuanM/OTIyYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuLyogZ2xvYmFsIGhhc093blByb3BlcnR5OnRydWUgKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpLFxuICAgIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBBdXRvRm9jdXNVdGlscyA9IHJlcXVpcmUoJy4vQXV0b0ZvY3VzVXRpbHMnKTtcbnZhciBDU1NQcm9wZXJ0eU9wZXJhdGlvbnMgPSByZXF1aXJlKCcuL0NTU1Byb3BlcnR5T3BlcmF0aW9ucycpO1xudmFyIERPTUxhenlUcmVlID0gcmVxdWlyZSgnLi9ET01MYXp5VHJlZScpO1xudmFyIERPTU5hbWVzcGFjZXMgPSByZXF1aXJlKCcuL0RPTU5hbWVzcGFjZXMnKTtcbnZhciBET01Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHknKTtcbnZhciBET01Qcm9wZXJ0eU9wZXJhdGlvbnMgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5T3BlcmF0aW9ucycpO1xudmFyIEV2ZW50UGx1Z2luSHViID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpbkh1YicpO1xudmFyIEV2ZW50UGx1Z2luUmVnaXN0cnkgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luUmVnaXN0cnknKTtcbnZhciBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCcuL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlcicpO1xudmFyIFJlYWN0RE9NQ29tcG9uZW50RmxhZ3MgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50RmxhZ3MnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0RE9NSW5wdXQgPSByZXF1aXJlKCcuL1JlYWN0RE9NSW5wdXQnKTtcbnZhciBSZWFjdERPTU9wdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RET01PcHRpb24nKTtcbnZhciBSZWFjdERPTVNlbGVjdCA9IHJlcXVpcmUoJy4vUmVhY3RET01TZWxlY3QnKTtcbnZhciBSZWFjdERPTVRleHRhcmVhID0gcmVxdWlyZSgnLi9SZWFjdERPTVRleHRhcmVhJyk7XG52YXIgUmVhY3RJbnN0cnVtZW50YXRpb24gPSByZXF1aXJlKCcuL1JlYWN0SW5zdHJ1bWVudGF0aW9uJyk7XG52YXIgUmVhY3RNdWx0aUNoaWxkID0gcmVxdWlyZSgnLi9SZWFjdE11bHRpQ2hpbGQnKTtcbnZhciBSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uID0gcmVxdWlyZSgnLi9SZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uJyk7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xudmFyIGVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlciA9IHJlcXVpcmUoJy4vZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgaXNFdmVudFN1cHBvcnRlZCA9IHJlcXVpcmUoJy4vaXNFdmVudFN1cHBvcnRlZCcpO1xudmFyIHNoYWxsb3dFcXVhbCA9IHJlcXVpcmUoJ2ZianMvbGliL3NoYWxsb3dFcXVhbCcpO1xudmFyIGlucHV0VmFsdWVUcmFja2luZyA9IHJlcXVpcmUoJy4vaW5wdXRWYWx1ZVRyYWNraW5nJyk7XG52YXIgdmFsaWRhdGVET01OZXN0aW5nID0gcmVxdWlyZSgnLi92YWxpZGF0ZURPTU5lc3RpbmcnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgRmxhZ3MgPSBSZWFjdERPTUNvbXBvbmVudEZsYWdzO1xudmFyIGRlbGV0ZUxpc3RlbmVyID0gRXZlbnRQbHVnaW5IdWIuZGVsZXRlTGlzdGVuZXI7XG52YXIgZ2V0Tm9kZSA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlO1xudmFyIGxpc3RlblRvID0gUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLmxpc3RlblRvO1xudmFyIHJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzID0gRXZlbnRQbHVnaW5SZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlcztcblxuLy8gRm9yIHF1aWNrbHkgbWF0Y2hpbmcgY2hpbGRyZW4gdHlwZSwgdG8gdGVzdCBpZiBjYW4gYmUgdHJlYXRlZCBhcyBjb250ZW50LlxudmFyIENPTlRFTlRfVFlQRVMgPSB7IHN0cmluZzogdHJ1ZSwgbnVtYmVyOiB0cnVlIH07XG5cbnZhciBTVFlMRSA9ICdzdHlsZSc7XG52YXIgSFRNTCA9ICdfX2h0bWwnO1xudmFyIFJFU0VSVkVEX1BST1BTID0ge1xuICBjaGlsZHJlbjogbnVsbCxcbiAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IG51bGwsXG4gIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZzogbnVsbFxufTtcblxuLy8gTm9kZSB0eXBlIGZvciBkb2N1bWVudCBmcmFnbWVudHMgKE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSkuXG52YXIgRE9DX0ZSQUdNRU5UX1RZUEUgPSAxMTtcblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKGludGVybmFsSW5zdGFuY2UpIHtcbiAgaWYgKGludGVybmFsSW5zdGFuY2UpIHtcbiAgICB2YXIgb3duZXIgPSBpbnRlcm5hbEluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5fb3duZXIgfHwgbnVsbDtcbiAgICBpZiAob3duZXIpIHtcbiAgICAgIHZhciBuYW1lID0gb3duZXIuZ2V0TmFtZSgpO1xuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICcgVGhpcyBET00gbm9kZSB3YXMgcmVuZGVyZWQgYnkgYCcgKyBuYW1lICsgJ2AuJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBmcmllbmRseVN0cmluZ2lmeShvYmopIHtcbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgcmV0dXJuICdbJyArIG9iai5tYXAoZnJpZW5kbHlTdHJpbmdpZnkpLmpvaW4oJywgJykgKyAnXSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBwYWlycyA9IFtdO1xuICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgIHZhciBrZXlFc2NhcGVkID0gL15bYS16JF9dW1xcdyRfXSokL2kudGVzdChrZXkpID8ga2V5IDogSlNPTi5zdHJpbmdpZnkoa2V5KTtcbiAgICAgICAgICBwYWlycy5wdXNoKGtleUVzY2FwZWQgKyAnOiAnICsgZnJpZW5kbHlTdHJpbmdpZnkob2JqW2tleV0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuICd7JyArIHBhaXJzLmpvaW4oJywgJykgKyAnfSc7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaik7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiAnW2Z1bmN0aW9uIG9iamVjdF0nO1xuICB9XG4gIC8vIERpZmZlcnMgZnJvbSBKU09OLnN0cmluZ2lmeSBpbiB0aGF0IHVuZGVmaW5lZCBiZWNhdXNlIHVuZGVmaW5lZCBhbmQgdGhhdFxuICAvLyBpbmYgYW5kIG5hbiBkb24ndCBiZWNvbWUgbnVsbFxuICByZXR1cm4gU3RyaW5nKG9iaik7XG59XG5cbnZhciBzdHlsZU11dGF0aW9uV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBjaGVja0FuZFdhcm5Gb3JNdXRhdGVkU3R5bGUoc3R5bGUxLCBzdHlsZTIsIGNvbXBvbmVudCkge1xuICBpZiAoc3R5bGUxID09IG51bGwgfHwgc3R5bGUyID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHNoYWxsb3dFcXVhbChzdHlsZTEsIHN0eWxlMikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudC5fdGFnO1xuICB2YXIgb3duZXIgPSBjb21wb25lbnQuX2N1cnJlbnRFbGVtZW50Ll9vd25lcjtcbiAgdmFyIG93bmVyTmFtZTtcbiAgaWYgKG93bmVyKSB7XG4gICAgb3duZXJOYW1lID0gb3duZXIuZ2V0TmFtZSgpO1xuICB9XG5cbiAgdmFyIGhhc2ggPSBvd25lck5hbWUgKyAnfCcgKyBjb21wb25lbnROYW1lO1xuXG4gIGlmIChzdHlsZU11dGF0aW9uV2FybmluZy5oYXNPd25Qcm9wZXJ0eShoYXNoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN0eWxlTXV0YXRpb25XYXJuaW5nW2hhc2hdID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2Alc2Agd2FzIHBhc3NlZCBhIHN0eWxlIG9iamVjdCB0aGF0IGhhcyBwcmV2aW91c2x5IGJlZW4gbXV0YXRlZC4gJyArICdNdXRhdGluZyBgc3R5bGVgIGlzIGRlcHJlY2F0ZWQuIENvbnNpZGVyIGNsb25pbmcgaXQgYmVmb3JlaGFuZC4gQ2hlY2sgJyArICd0aGUgYHJlbmRlcmAgJXMuIFByZXZpb3VzIHN0eWxlOiAlcy4gTXV0YXRlZCBzdHlsZTogJXMuJywgY29tcG9uZW50TmFtZSwgb3duZXIgPyAnb2YgYCcgKyBvd25lck5hbWUgKyAnYCcgOiAndXNpbmcgPCcgKyBjb21wb25lbnROYW1lICsgJz4nLCBmcmllbmRseVN0cmluZ2lmeShzdHlsZTEpLCBmcmllbmRseVN0cmluZ2lmeShzdHlsZTIpKSA6IHZvaWQgMDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gY29tcG9uZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IHByb3BzXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFZhbGlkUHJvcHMoY29tcG9uZW50LCBwcm9wcykge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIE5vdGUgdGhlIHVzZSBvZiBgPT1gIHdoaWNoIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWQuXG4gIGlmICh2b2lkRWxlbWVudFRhZ3NbY29tcG9uZW50Ll90YWddKSB7XG4gICAgIShwcm9wcy5jaGlsZHJlbiA9PSBudWxsICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID09IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzIGlzIGEgdm9pZCBlbGVtZW50IHRhZyBhbmQgbXVzdCBuZWl0aGVyIGhhdmUgYGNoaWxkcmVuYCBub3IgdXNlIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJXMnLCBjb21wb25lbnQuX3RhZywgY29tcG9uZW50Ll9jdXJyZW50RWxlbWVudC5fb3duZXIgPyAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICcgKyBjb21wb25lbnQuX2N1cnJlbnRFbGVtZW50Ll9vd25lci5nZXROYW1lKCkgKyAnLicgOiAnJykgOiBfcHJvZEludmFyaWFudCgnMTM3JywgY29tcG9uZW50Ll90YWcsIGNvbXBvbmVudC5fY3VycmVudEVsZW1lbnQuX293bmVyID8gJyBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiAnICsgY29tcG9uZW50Ll9jdXJyZW50RWxlbWVudC5fb3duZXIuZ2V0TmFtZSgpICsgJy4nIDogJycpIDogdm9pZCAwO1xuICB9XG4gIGlmIChwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAhPSBudWxsKSB7XG4gICAgIShwcm9wcy5jaGlsZHJlbiA9PSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdDYW4gb25seSBzZXQgb25lIG9mIGBjaGlsZHJlbmAgb3IgYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKSA6IF9wcm9kSW52YXJpYW50KCc2MCcpIDogdm9pZCAwO1xuICAgICEodHlwZW9mIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID09PSAnb2JqZWN0JyAmJiBIVE1MIGluIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIG11c3QgYmUgaW4gdGhlIGZvcm0gYHtfX2h0bWw6IC4uLn1gLiBQbGVhc2UgdmlzaXQgaHR0cHM6Ly9mYi5tZS9yZWFjdC1pbnZhcmlhbnQtZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uJykgOiBfcHJvZEludmFyaWFudCgnNjEnKSA6IHZvaWQgMDtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHByb3BzLmlubmVySFRNTCA9PSBudWxsLCAnRGlyZWN0bHkgc2V0dGluZyBwcm9wZXJ0eSBgaW5uZXJIVE1MYCBpcyBub3QgcGVybWl0dGVkLiAnICsgJ0ZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rdXAgZG9jdW1lbnRhdGlvbiBvbiBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLicpIDogdm9pZCAwO1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHByb3BzLnN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyB8fCAhcHJvcHMuY29udGVudEVkaXRhYmxlIHx8IHByb3BzLmNoaWxkcmVuID09IG51bGwsICdBIGNvbXBvbmVudCBpcyBgY29udGVudEVkaXRhYmxlYCBhbmQgY29udGFpbnMgYGNoaWxkcmVuYCBtYW5hZ2VkIGJ5ICcgKyAnUmVhY3QuIEl0IGlzIG5vdyB5b3VyIHJlc3BvbnNpYmlsaXR5IHRvIGd1YXJhbnRlZSB0aGF0IG5vbmUgb2YgJyArICd0aG9zZSBub2RlcyBhcmUgdW5leHBlY3RlZGx5IG1vZGlmaWVkIG9yIGR1cGxpY2F0ZWQuIFRoaXMgaXMgJyArICdwcm9iYWJseSBub3QgaW50ZW50aW9uYWwuJykgOiB2b2lkIDA7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcocHJvcHMub25Gb2N1c0luID09IG51bGwgJiYgcHJvcHMub25Gb2N1c091dCA9PSBudWxsLCAnUmVhY3QgdXNlcyBvbkZvY3VzIGFuZCBvbkJsdXIgaW5zdGVhZCBvZiBvbkZvY3VzSW4gYW5kIG9uRm9jdXNPdXQuICcgKyAnQWxsIFJlYWN0IGV2ZW50cyBhcmUgbm9ybWFsaXplZCB0byBidWJibGUsIHNvIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dCAnICsgJ2FyZSBub3QgbmVlZGVkL3N1cHBvcnRlZCBieSBSZWFjdC4nKSA6IHZvaWQgMDtcbiAgfVxuICAhKHByb3BzLnN0eWxlID09IG51bGwgfHwgdHlwZW9mIHByb3BzLnN0eWxlID09PSAnb2JqZWN0JykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnVGhlIGBzdHlsZWAgcHJvcCBleHBlY3RzIGEgbWFwcGluZyBmcm9tIHN0eWxlIHByb3BlcnRpZXMgdG8gdmFsdWVzLCBub3QgYSBzdHJpbmcuIEZvciBleGFtcGxlLCBzdHlsZT17e21hcmdpblJpZ2h0OiBzcGFjaW5nICsgXFwnZW1cXCd9fSB3aGVuIHVzaW5nIEpTWC4lcycsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpKSA6IF9wcm9kSW52YXJpYW50KCc2MicsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpKSA6IHZvaWQgMDtcbn1cblxuZnVuY3Rpb24gZW5xdWV1ZVB1dExpc3RlbmVyKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyLCB0cmFuc2FjdGlvbikge1xuICBpZiAodHJhbnNhY3Rpb24gaW5zdGFuY2VvZiBSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gSUU4IGhhcyBubyBBUEkgZm9yIGV2ZW50IGNhcHR1cmluZyBhbmQgdGhlIGBvblNjcm9sbGAgZXZlbnQgZG9lc24ndFxuICAgIC8vIGJ1YmJsZS5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhyZWdpc3RyYXRpb25OYW1lICE9PSAnb25TY3JvbGwnIHx8IGlzRXZlbnRTdXBwb3J0ZWQoJ3Njcm9sbCcsIHRydWUpLCBcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgdGhlIGBvblNjcm9sbGAgZXZlbnRcIikgOiB2b2lkIDA7XG4gIH1cbiAgdmFyIGNvbnRhaW5lckluZm8gPSBpbnN0Ll9ob3N0Q29udGFpbmVySW5mbztcbiAgdmFyIGlzRG9jdW1lbnRGcmFnbWVudCA9IGNvbnRhaW5lckluZm8uX25vZGUgJiYgY29udGFpbmVySW5mby5fbm9kZS5ub2RlVHlwZSA9PT0gRE9DX0ZSQUdNRU5UX1RZUEU7XG4gIHZhciBkb2MgPSBpc0RvY3VtZW50RnJhZ21lbnQgPyBjb250YWluZXJJbmZvLl9ub2RlIDogY29udGFpbmVySW5mby5fb3duZXJEb2N1bWVudDtcbiAgbGlzdGVuVG8ocmVnaXN0cmF0aW9uTmFtZSwgZG9jKTtcbiAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShwdXRMaXN0ZW5lciwge1xuICAgIGluc3Q6IGluc3QsXG4gICAgcmVnaXN0cmF0aW9uTmFtZTogcmVnaXN0cmF0aW9uTmFtZSxcbiAgICBsaXN0ZW5lcjogbGlzdGVuZXJcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHB1dExpc3RlbmVyKCkge1xuICB2YXIgbGlzdGVuZXJUb1B1dCA9IHRoaXM7XG4gIEV2ZW50UGx1Z2luSHViLnB1dExpc3RlbmVyKGxpc3RlbmVyVG9QdXQuaW5zdCwgbGlzdGVuZXJUb1B1dC5yZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lclRvUHV0Lmxpc3RlbmVyKTtcbn1cblxuZnVuY3Rpb24gaW5wdXRQb3N0TW91bnQoKSB7XG4gIHZhciBpbnN0ID0gdGhpcztcbiAgUmVhY3RET01JbnB1dC5wb3N0TW91bnRXcmFwcGVyKGluc3QpO1xufVxuXG5mdW5jdGlvbiB0ZXh0YXJlYVBvc3RNb3VudCgpIHtcbiAgdmFyIGluc3QgPSB0aGlzO1xuICBSZWFjdERPTVRleHRhcmVhLnBvc3RNb3VudFdyYXBwZXIoaW5zdCk7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblBvc3RNb3VudCgpIHtcbiAgdmFyIGluc3QgPSB0aGlzO1xuICBSZWFjdERPTU9wdGlvbi5wb3N0TW91bnRXcmFwcGVyKGluc3QpO1xufVxuXG52YXIgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYgPSBlbXB0eUZ1bmN0aW9uO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYgPSBmdW5jdGlvbiAoY29udGVudCkge1xuICAgIHZhciBoYXNFeGlzdGluZ0NvbnRlbnQgPSB0aGlzLl9jb250ZW50RGVidWdJRCAhPSBudWxsO1xuICAgIHZhciBkZWJ1Z0lEID0gdGhpcy5fZGVidWdJRDtcbiAgICAvLyBUaGlzIElEIHJlcHJlc2VudHMgdGhlIGlubGluZWQgY2hpbGQgdGhhdCBoYXMgbm8gYmFja2luZyBpbnN0YW5jZTpcbiAgICB2YXIgY29udGVudERlYnVnSUQgPSAtZGVidWdJRDtcblxuICAgIGlmIChjb250ZW50ID09IG51bGwpIHtcbiAgICAgIGlmIChoYXNFeGlzdGluZ0NvbnRlbnQpIHtcbiAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uVW5tb3VudENvbXBvbmVudCh0aGlzLl9jb250ZW50RGVidWdJRCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9jb250ZW50RGVidWdJRCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFsaWRhdGVET01OZXN0aW5nKG51bGwsIFN0cmluZyhjb250ZW50KSwgdGhpcywgdGhpcy5fYW5jZXN0b3JJbmZvKTtcbiAgICB0aGlzLl9jb250ZW50RGVidWdJRCA9IGNvbnRlbnREZWJ1Z0lEO1xuICAgIGlmIChoYXNFeGlzdGluZ0NvbnRlbnQpIHtcbiAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkJlZm9yZVVwZGF0ZUNvbXBvbmVudChjb250ZW50RGVidWdJRCwgY29udGVudCk7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25VcGRhdGVDb21wb25lbnQoY29udGVudERlYnVnSUQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25CZWZvcmVNb3VudENvbXBvbmVudChjb250ZW50RGVidWdJRCwgY29udGVudCwgZGVidWdJRCk7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25Nb3VudENvbXBvbmVudChjb250ZW50RGVidWdJRCk7XG4gICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbihkZWJ1Z0lELCBbY29udGVudERlYnVnSURdKTtcbiAgICB9XG4gIH07XG59XG5cbi8vIFRoZXJlIGFyZSBzbyBtYW55IG1lZGlhIGV2ZW50cywgaXQgbWFrZXMgc2Vuc2UgdG8ganVzdFxuLy8gbWFpbnRhaW4gYSBsaXN0IHJhdGhlciB0aGFuIGNyZWF0ZSBhIGB0cmFwQnViYmxlZEV2ZW50YCBmb3IgZWFjaFxudmFyIG1lZGlhRXZlbnRzID0ge1xuICB0b3BBYm9ydDogJ2Fib3J0JyxcbiAgdG9wQ2FuUGxheTogJ2NhbnBsYXknLFxuICB0b3BDYW5QbGF5VGhyb3VnaDogJ2NhbnBsYXl0aHJvdWdoJyxcbiAgdG9wRHVyYXRpb25DaGFuZ2U6ICdkdXJhdGlvbmNoYW5nZScsXG4gIHRvcEVtcHRpZWQ6ICdlbXB0aWVkJyxcbiAgdG9wRW5jcnlwdGVkOiAnZW5jcnlwdGVkJyxcbiAgdG9wRW5kZWQ6ICdlbmRlZCcsXG4gIHRvcEVycm9yOiAnZXJyb3InLFxuICB0b3BMb2FkZWREYXRhOiAnbG9hZGVkZGF0YScsXG4gIHRvcExvYWRlZE1ldGFkYXRhOiAnbG9hZGVkbWV0YWRhdGEnLFxuICB0b3BMb2FkU3RhcnQ6ICdsb2Fkc3RhcnQnLFxuICB0b3BQYXVzZTogJ3BhdXNlJyxcbiAgdG9wUGxheTogJ3BsYXknLFxuICB0b3BQbGF5aW5nOiAncGxheWluZycsXG4gIHRvcFByb2dyZXNzOiAncHJvZ3Jlc3MnLFxuICB0b3BSYXRlQ2hhbmdlOiAncmF0ZWNoYW5nZScsXG4gIHRvcFNlZWtlZDogJ3NlZWtlZCcsXG4gIHRvcFNlZWtpbmc6ICdzZWVraW5nJyxcbiAgdG9wU3RhbGxlZDogJ3N0YWxsZWQnLFxuICB0b3BTdXNwZW5kOiAnc3VzcGVuZCcsXG4gIHRvcFRpbWVVcGRhdGU6ICd0aW1ldXBkYXRlJyxcbiAgdG9wVm9sdW1lQ2hhbmdlOiAndm9sdW1lY2hhbmdlJyxcbiAgdG9wV2FpdGluZzogJ3dhaXRpbmcnXG59O1xuXG5mdW5jdGlvbiB0cmFja0lucHV0VmFsdWUoKSB7XG4gIGlucHV0VmFsdWVUcmFja2luZy50cmFjayh0aGlzKTtcbn1cblxuZnVuY3Rpb24gdHJhcEJ1YmJsZWRFdmVudHNMb2NhbCgpIHtcbiAgdmFyIGluc3QgPSB0aGlzO1xuICAvLyBJZiBhIGNvbXBvbmVudCByZW5kZXJzIHRvIG51bGwgb3IgaWYgYW5vdGhlciBjb21wb25lbnQgZmF0YWxzIGFuZCBjYXVzZXNcbiAgLy8gdGhlIHN0YXRlIG9mIHRoZSB0cmVlIHRvIGJlIGNvcnJ1cHRlZCwgYG5vZGVgIGhlcmUgY2FuIGJlIG51bGwuXG4gICFpbnN0Ll9yb290Tm9kZUlEID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ011c3QgYmUgbW91bnRlZCB0byB0cmFwIGV2ZW50cycpIDogX3Byb2RJbnZhcmlhbnQoJzYzJykgOiB2b2lkIDA7XG4gIHZhciBub2RlID0gZ2V0Tm9kZShpbnN0KTtcbiAgIW5vZGUgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAndHJhcEJ1YmJsZWRFdmVudCguLi4pOiBSZXF1aXJlcyBub2RlIHRvIGJlIHJlbmRlcmVkLicpIDogX3Byb2RJbnZhcmlhbnQoJzY0JykgOiB2b2lkIDA7XG5cbiAgc3dpdGNoIChpbnN0Ll90YWcpIHtcbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpbnN0Ll93cmFwcGVyU3RhdGUubGlzdGVuZXJzID0gW1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KCd0b3BMb2FkJywgJ2xvYWQnLCBub2RlKV07XG4gICAgICBicmVhaztcbiAgICBjYXNlICd2aWRlbyc6XG4gICAgY2FzZSAnYXVkaW8nOlxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtdO1xuICAgICAgLy8gQ3JlYXRlIGxpc3RlbmVyIGZvciBlYWNoIG1lZGlhIGV2ZW50XG4gICAgICBmb3IgKHZhciBldmVudCBpbiBtZWRpYUV2ZW50cykge1xuICAgICAgICBpZiAobWVkaWFFdmVudHMuaGFzT3duUHJvcGVydHkoZXZlbnQpKSB7XG4gICAgICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycy5wdXNoKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KGV2ZW50LCBtZWRpYUV2ZW50c1tldmVudF0sIG5vZGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc291cmNlJzpcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnMgPSBbUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcEVycm9yJywgJ2Vycm9yJywgbm9kZSldO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaW1nJzpcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnMgPSBbUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcEVycm9yJywgJ2Vycm9yJywgbm9kZSksIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KCd0b3BMb2FkJywgJ2xvYWQnLCBub2RlKV07XG4gICAgICBicmVhaztcbiAgICBjYXNlICdmb3JtJzpcbiAgICAgIGluc3QuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnMgPSBbUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoJ3RvcFJlc2V0JywgJ3Jlc2V0Jywgbm9kZSksIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KCd0b3BTdWJtaXQnLCAnc3VibWl0Jywgbm9kZSldO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIudHJhcEJ1YmJsZWRFdmVudCgndG9wSW52YWxpZCcsICdpbnZhbGlkJywgbm9kZSldO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9zdFVwZGF0ZVNlbGVjdFdyYXBwZXIoKSB7XG4gIFJlYWN0RE9NU2VsZWN0LnBvc3RVcGRhdGVXcmFwcGVyKHRoaXMpO1xufVxuXG4vLyBGb3IgSFRNTCwgY2VydGFpbiB0YWdzIHNob3VsZCBvbWl0IHRoZWlyIGNsb3NlIHRhZy4gV2Uga2VlcCBhIHdoaXRlbGlzdCBmb3Jcbi8vIHRob3NlIHNwZWNpYWwtY2FzZSB0YWdzLlxuXG52YXIgb21pdHRlZENsb3NlVGFncyA9IHtcbiAgYXJlYTogdHJ1ZSxcbiAgYmFzZTogdHJ1ZSxcbiAgYnI6IHRydWUsXG4gIGNvbDogdHJ1ZSxcbiAgZW1iZWQ6IHRydWUsXG4gIGhyOiB0cnVlLFxuICBpbWc6IHRydWUsXG4gIGlucHV0OiB0cnVlLFxuICBrZXlnZW46IHRydWUsXG4gIGxpbms6IHRydWUsXG4gIG1ldGE6IHRydWUsXG4gIHBhcmFtOiB0cnVlLFxuICBzb3VyY2U6IHRydWUsXG4gIHRyYWNrOiB0cnVlLFxuICB3YnI6IHRydWVcbiAgLy8gTk9URTogbWVudWl0ZW0ncyBjbG9zZSB0YWcgc2hvdWxkIGJlIG9taXR0ZWQsIGJ1dCB0aGF0IGNhdXNlcyBwcm9ibGVtcy5cbn07XG5cbnZhciBuZXdsaW5lRWF0aW5nVGFncyA9IHtcbiAgbGlzdGluZzogdHJ1ZSxcbiAgcHJlOiB0cnVlLFxuICB0ZXh0YXJlYTogdHJ1ZVxufTtcblxuLy8gRm9yIEhUTUwsIGNlcnRhaW4gdGFncyBjYW5ub3QgaGF2ZSBjaGlsZHJlbi4gVGhpcyBoYXMgdGhlIHNhbWUgcHVycG9zZSBhc1xuLy8gYG9taXR0ZWRDbG9zZVRhZ3NgIGV4Y2VwdCB0aGF0IGBtZW51aXRlbWAgc2hvdWxkIHN0aWxsIGhhdmUgaXRzIGNsb3NpbmcgdGFnLlxuXG52YXIgdm9pZEVsZW1lbnRUYWdzID0gX2Fzc2lnbih7XG4gIG1lbnVpdGVtOiB0cnVlXG59LCBvbWl0dGVkQ2xvc2VUYWdzKTtcblxuLy8gV2UgYWNjZXB0IGFueSB0YWcgdG8gYmUgcmVuZGVyZWQgYnV0IHNpbmNlIHRoaXMgZ2V0cyBpbmplY3RlZCBpbnRvIGFyYml0cmFyeVxuLy8gSFRNTCwgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhhdCBpdCdzIGEgc2FmZSB0YWcuXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMteG1sLyNOVC1OYW1lXG5cbnZhciBWQUxJRF9UQUdfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWjpfXFwuXFwtXFxkXSokLzsgLy8gU2ltcGxpZmllZCBzdWJzZXRcbnZhciB2YWxpZGF0ZWRUYWdDYWNoZSA9IHt9O1xudmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRGFuZ2Vyb3VzVGFnKHRhZykge1xuICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwodmFsaWRhdGVkVGFnQ2FjaGUsIHRhZykpIHtcbiAgICAhVkFMSURfVEFHX1JFR0VYLnRlc3QodGFnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdJbnZhbGlkIHRhZzogJXMnLCB0YWcpIDogX3Byb2RJbnZhcmlhbnQoJzY1JywgdGFnKSA6IHZvaWQgMDtcbiAgICB2YWxpZGF0ZWRUYWdDYWNoZVt0YWddID0gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0N1c3RvbUNvbXBvbmVudCh0YWdOYW1lLCBwcm9wcykge1xuICByZXR1cm4gdGFnTmFtZS5pbmRleE9mKCctJykgPj0gMCB8fCBwcm9wcy5pcyAhPSBudWxsO1xufVxuXG52YXIgZ2xvYmFsSWRDb3VudGVyID0gMTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFJlYWN0IGNsYXNzIHRoYXQgaXMgaWRlbXBvdGVudCBhbmQgY2FwYWJsZSBvZiBjb250YWluaW5nIG90aGVyXG4gKiBSZWFjdCBjb21wb25lbnRzLiBJdCBhY2NlcHRzIGV2ZW50IGxpc3RlbmVycyBhbmQgRE9NIHByb3BlcnRpZXMgdGhhdCBhcmVcbiAqIHZhbGlkIGFjY29yZGluZyB0byBgRE9NUHJvcGVydHlgLlxuICpcbiAqICAtIEV2ZW50IGxpc3RlbmVyczogYG9uQ2xpY2tgLCBgb25Nb3VzZURvd25gLCBldGMuXG4gKiAgLSBET00gcHJvcGVydGllczogYGNsYXNzTmFtZWAsIGBuYW1lYCwgYHRpdGxlYCwgZXRjLlxuICpcbiAqIFRoZSBgc3R5bGVgIHByb3BlcnR5IGZ1bmN0aW9ucyBkaWZmZXJlbnRseSBmcm9tIHRoZSBET00gQVBJLiBJdCBhY2NlcHRzIGFuXG4gKiBvYmplY3QgbWFwcGluZyBvZiBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcy5cbiAqXG4gKiBAY29uc3RydWN0b3IgUmVhY3RET01Db21wb25lbnRcbiAqIEBleHRlbmRzIFJlYWN0TXVsdGlDaGlsZFxuICovXG5mdW5jdGlvbiBSZWFjdERPTUNvbXBvbmVudChlbGVtZW50KSB7XG4gIHZhciB0YWcgPSBlbGVtZW50LnR5cGU7XG4gIHZhbGlkYXRlRGFuZ2Vyb3VzVGFnKHRhZyk7XG4gIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gZWxlbWVudDtcbiAgdGhpcy5fdGFnID0gdGFnLnRvTG93ZXJDYXNlKCk7XG4gIHRoaXMuX25hbWVzcGFjZVVSSSA9IG51bGw7XG4gIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBudWxsO1xuICB0aGlzLl9wcmV2aW91c1N0eWxlID0gbnVsbDtcbiAgdGhpcy5fcHJldmlvdXNTdHlsZUNvcHkgPSBudWxsO1xuICB0aGlzLl9ob3N0Tm9kZSA9IG51bGw7XG4gIHRoaXMuX2hvc3RQYXJlbnQgPSBudWxsO1xuICB0aGlzLl9yb290Tm9kZUlEID0gMDtcbiAgdGhpcy5fZG9tSUQgPSAwO1xuICB0aGlzLl9ob3N0Q29udGFpbmVySW5mbyA9IG51bGw7XG4gIHRoaXMuX3dyYXBwZXJTdGF0ZSA9IG51bGw7XG4gIHRoaXMuX3RvcExldmVsV3JhcHBlciA9IG51bGw7XG4gIHRoaXMuX2ZsYWdzID0gMDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB0aGlzLl9hbmNlc3RvckluZm8gPSBudWxsO1xuICAgIHNldEFuZFZhbGlkYXRlQ29udGVudENoaWxkRGV2LmNhbGwodGhpcywgbnVsbCk7XG4gIH1cbn1cblxuUmVhY3RET01Db21wb25lbnQuZGlzcGxheU5hbWUgPSAnUmVhY3RET01Db21wb25lbnQnO1xuXG5SZWFjdERPTUNvbXBvbmVudC5NaXhpbiA9IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlcyByb290IHRhZyBtYXJrdXAgdGhlbiByZWN1cnNlcy4gVGhpcyBtZXRob2QgaGFzIHNpZGUgZWZmZWN0cyBhbmRcbiAgICogaXMgbm90IGlkZW1wb3RlbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb258UmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHs/UmVhY3RET01Db21wb25lbnR9IHRoZSBwYXJlbnQgY29tcG9uZW50IGluc3RhbmNlXG4gICAqIEBwYXJhbSB7P29iamVjdH0gaW5mbyBhYm91dCB0aGUgaG9zdCBjb250YWluZXJcbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHRcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29tcHV0ZWQgbWFya3VwLlxuICAgKi9cbiAgbW91bnRDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQpIHtcbiAgICB0aGlzLl9yb290Tm9kZUlEID0gZ2xvYmFsSWRDb3VudGVyKys7XG4gICAgdGhpcy5fZG9tSUQgPSBob3N0Q29udGFpbmVySW5mby5faWRDb3VudGVyKys7XG4gICAgdGhpcy5faG9zdFBhcmVudCA9IGhvc3RQYXJlbnQ7XG4gICAgdGhpcy5faG9zdENvbnRhaW5lckluZm8gPSBob3N0Q29udGFpbmVySW5mbztcblxuICAgIHZhciBwcm9wcyA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gICAgc3dpdGNoICh0aGlzLl90YWcpIHtcbiAgICAgIGNhc2UgJ2F1ZGlvJzpcbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgY2FzZSAnaWZyYW1lJzpcbiAgICAgIGNhc2UgJ2ltZyc6XG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBjYXNlICdzb3VyY2UnOlxuICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICB0aGlzLl93cmFwcGVyU3RhdGUgPSB7XG4gICAgICAgICAgbGlzdGVuZXJzOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUodHJhcEJ1YmJsZWRFdmVudHNMb2NhbCwgdGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW5wdXQnOlxuICAgICAgICBSZWFjdERPTUlucHV0Lm1vdW50V3JhcHBlcih0aGlzLCBwcm9wcywgaG9zdFBhcmVudCk7XG4gICAgICAgIHByb3BzID0gUmVhY3RET01JbnB1dC5nZXRIb3N0UHJvcHModGhpcywgcHJvcHMpO1xuICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKHRyYWNrSW5wdXRWYWx1ZSwgdGhpcyk7XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUodHJhcEJ1YmJsZWRFdmVudHNMb2NhbCwgdGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgUmVhY3RET01PcHRpb24ubW91bnRXcmFwcGVyKHRoaXMsIHByb3BzLCBob3N0UGFyZW50KTtcbiAgICAgICAgcHJvcHMgPSBSZWFjdERPTU9wdGlvbi5nZXRIb3N0UHJvcHModGhpcywgcHJvcHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIFJlYWN0RE9NU2VsZWN0Lm1vdW50V3JhcHBlcih0aGlzLCBwcm9wcywgaG9zdFBhcmVudCk7XG4gICAgICAgIHByb3BzID0gUmVhY3RET01TZWxlY3QuZ2V0SG9zdFByb3BzKHRoaXMsIHByb3BzKTtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZSh0cmFwQnViYmxlZEV2ZW50c0xvY2FsLCB0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgIFJlYWN0RE9NVGV4dGFyZWEubW91bnRXcmFwcGVyKHRoaXMsIHByb3BzLCBob3N0UGFyZW50KTtcbiAgICAgICAgcHJvcHMgPSBSZWFjdERPTVRleHRhcmVhLmdldEhvc3RQcm9wcyh0aGlzLCBwcm9wcyk7XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUodHJhY2tJbnB1dFZhbHVlLCB0aGlzKTtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZSh0cmFwQnViYmxlZEV2ZW50c0xvY2FsLCB0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgYXNzZXJ0VmFsaWRQcm9wcyh0aGlzLCBwcm9wcyk7XG5cbiAgICAvLyBXZSBjcmVhdGUgdGFncyBpbiB0aGUgbmFtZXNwYWNlIG9mIHRoZWlyIHBhcmVudCBjb250YWluZXIsIGV4Y2VwdCBIVE1MXG4gICAgLy8gdGFncyBnZXQgbm8gbmFtZXNwYWNlLlxuICAgIHZhciBuYW1lc3BhY2VVUkk7XG4gICAgdmFyIHBhcmVudFRhZztcbiAgICBpZiAoaG9zdFBhcmVudCAhPSBudWxsKSB7XG4gICAgICBuYW1lc3BhY2VVUkkgPSBob3N0UGFyZW50Ll9uYW1lc3BhY2VVUkk7XG4gICAgICBwYXJlbnRUYWcgPSBob3N0UGFyZW50Ll90YWc7XG4gICAgfSBlbHNlIGlmIChob3N0Q29udGFpbmVySW5mby5fdGFnKSB7XG4gICAgICBuYW1lc3BhY2VVUkkgPSBob3N0Q29udGFpbmVySW5mby5fbmFtZXNwYWNlVVJJO1xuICAgICAgcGFyZW50VGFnID0gaG9zdENvbnRhaW5lckluZm8uX3RhZztcbiAgICB9XG4gICAgaWYgKG5hbWVzcGFjZVVSSSA9PSBudWxsIHx8IG5hbWVzcGFjZVVSSSA9PT0gRE9NTmFtZXNwYWNlcy5zdmcgJiYgcGFyZW50VGFnID09PSAnZm9yZWlnbm9iamVjdCcpIHtcbiAgICAgIG5hbWVzcGFjZVVSSSA9IERPTU5hbWVzcGFjZXMuaHRtbDtcbiAgICB9XG4gICAgaWYgKG5hbWVzcGFjZVVSSSA9PT0gRE9NTmFtZXNwYWNlcy5odG1sKSB7XG4gICAgICBpZiAodGhpcy5fdGFnID09PSAnc3ZnJykge1xuICAgICAgICBuYW1lc3BhY2VVUkkgPSBET01OYW1lc3BhY2VzLnN2ZztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdGFnID09PSAnbWF0aCcpIHtcbiAgICAgICAgbmFtZXNwYWNlVVJJID0gRE9NTmFtZXNwYWNlcy5tYXRobWw7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX25hbWVzcGFjZVVSSSA9IG5hbWVzcGFjZVVSSTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgcGFyZW50SW5mbztcbiAgICAgIGlmIChob3N0UGFyZW50ICE9IG51bGwpIHtcbiAgICAgICAgcGFyZW50SW5mbyA9IGhvc3RQYXJlbnQuX2FuY2VzdG9ySW5mbztcbiAgICAgIH0gZWxzZSBpZiAoaG9zdENvbnRhaW5lckluZm8uX3RhZykge1xuICAgICAgICBwYXJlbnRJbmZvID0gaG9zdENvbnRhaW5lckluZm8uX2FuY2VzdG9ySW5mbztcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnRJbmZvKSB7XG4gICAgICAgIC8vIHBhcmVudEluZm8gc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGV4Y2VwdCBmb3IgdGhlIHRvcC1sZXZlbFxuICAgICAgICAvLyBjb21wb25lbnQgd2hlbiBzZXJ2ZXIgcmVuZGVyaW5nXG4gICAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyh0aGlzLl90YWcsIG51bGwsIHRoaXMsIHBhcmVudEluZm8pO1xuICAgICAgfVxuICAgICAgdGhpcy5fYW5jZXN0b3JJbmZvID0gdmFsaWRhdGVET01OZXN0aW5nLnVwZGF0ZWRBbmNlc3RvckluZm8ocGFyZW50SW5mbywgdGhpcy5fdGFnLCB0aGlzKTtcbiAgICB9XG5cbiAgICB2YXIgbW91bnRJbWFnZTtcbiAgICBpZiAodHJhbnNhY3Rpb24udXNlQ3JlYXRlRWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBob3N0Q29udGFpbmVySW5mby5fb3duZXJEb2N1bWVudDtcbiAgICAgIHZhciBlbDtcbiAgICAgIGlmIChuYW1lc3BhY2VVUkkgPT09IERPTU5hbWVzcGFjZXMuaHRtbCkge1xuICAgICAgICBpZiAodGhpcy5fdGFnID09PSAnc2NyaXB0Jykge1xuICAgICAgICAgIC8vIENyZWF0ZSB0aGUgc2NyaXB0IHZpYSAuaW5uZXJIVE1MIHNvIGl0cyBcInBhcnNlci1pbnNlcnRlZFwiIGZsYWcgaXNcbiAgICAgICAgICAvLyBzZXQgdG8gdHJ1ZSBhbmQgaXQgZG9lcyBub3QgZXhlY3V0ZVxuICAgICAgICAgIHZhciBkaXYgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgIHZhciB0eXBlID0gdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtcbiAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzwnICsgdHlwZSArICc+PC8nICsgdHlwZSArICc+JztcbiAgICAgICAgICBlbCA9IGRpdi5yZW1vdmVDaGlsZChkaXYuZmlyc3RDaGlsZCk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvcHMuaXMpIHtcbiAgICAgICAgICBlbCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlLCBwcm9wcy5pcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gU2VwYXJhdGUgZWxzZSBicmFuY2ggaW5zdGVhZCBvZiB1c2luZyBgcHJvcHMuaXMgfHwgdW5kZWZpbmVkYCBhYm92ZSBiZWN1YXNlIG9mIGEgRmlyZWZveCBidWcuXG4gICAgICAgICAgLy8gU2VlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvNjg5NlxuICAgICAgICAgIC8vIGFuZCBkaXNjdXNzaW9uIGluIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyNDBcbiAgICAgICAgICBlbCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWwgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2VVUkksIHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGUpO1xuICAgICAgfVxuICAgICAgUmVhY3RET01Db21wb25lbnRUcmVlLnByZWNhY2hlTm9kZSh0aGlzLCBlbCk7XG4gICAgICB0aGlzLl9mbGFncyB8PSBGbGFncy5oYXNDYWNoZWRDaGlsZE5vZGVzO1xuICAgICAgaWYgKCF0aGlzLl9ob3N0UGFyZW50KSB7XG4gICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5zZXRBdHRyaWJ1dGVGb3JSb290KGVsKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3VwZGF0ZURPTVByb3BlcnRpZXMobnVsbCwgcHJvcHMsIHRyYW5zYWN0aW9uKTtcbiAgICAgIHZhciBsYXp5VHJlZSA9IERPTUxhenlUcmVlKGVsKTtcbiAgICAgIHRoaXMuX2NyZWF0ZUluaXRpYWxDaGlsZHJlbih0cmFuc2FjdGlvbiwgcHJvcHMsIGNvbnRleHQsIGxhenlUcmVlKTtcbiAgICAgIG1vdW50SW1hZ2UgPSBsYXp5VHJlZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHRhZ09wZW4gPSB0aGlzLl9jcmVhdGVPcGVuVGFnTWFya3VwQW5kUHV0TGlzdGVuZXJzKHRyYW5zYWN0aW9uLCBwcm9wcyk7XG4gICAgICB2YXIgdGFnQ29udGVudCA9IHRoaXMuX2NyZWF0ZUNvbnRlbnRNYXJrdXAodHJhbnNhY3Rpb24sIHByb3BzLCBjb250ZXh0KTtcbiAgICAgIGlmICghdGFnQ29udGVudCAmJiBvbWl0dGVkQ2xvc2VUYWdzW3RoaXMuX3RhZ10pIHtcbiAgICAgICAgbW91bnRJbWFnZSA9IHRhZ09wZW4gKyAnLz4nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW91bnRJbWFnZSA9IHRhZ09wZW4gKyAnPicgKyB0YWdDb250ZW50ICsgJzwvJyArIHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGUgKyAnPic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLl90YWcpIHtcbiAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShpbnB1dFBvc3RNb3VudCwgdGhpcyk7XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZSh0ZXh0YXJlYVBvc3RNb3VudCwgdGhpcyk7XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgICAgIGlmIChwcm9wcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKEF1dG9Gb2N1c1V0aWxzLmZvY3VzRE9NQ29tcG9uZW50LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUob3B0aW9uUG9zdE1vdW50LCB0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vdW50SW1hZ2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbWFya3VwIGZvciB0aGUgb3BlbiB0YWcgYW5kIGFsbCBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBoYXMgc2lkZSBlZmZlY3RzIGJlY2F1c2UgZXZlbnRzIGdldCByZWdpc3RlcmVkLlxuICAgKlxuICAgKiBJdGVyYXRpbmcgb3ZlciBvYmplY3QgcHJvcGVydGllcyBpcyBmYXN0ZXIgdGhhbiBpdGVyYXRpbmcgb3ZlciBhcnJheXMuXG4gICAqIEBzZWUgaHR0cDovL2pzcGVyZi5jb20vb2JqLXZzLWFyci1pdGVyYXRpb25cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9IE1hcmt1cCBvZiBvcGVuaW5nIHRhZy5cbiAgICovXG4gIF9jcmVhdGVPcGVuVGFnTWFya3VwQW5kUHV0TGlzdGVuZXJzOiBmdW5jdGlvbiAodHJhbnNhY3Rpb24sIHByb3BzKSB7XG4gICAgdmFyIHJldCA9ICc8JyArIHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG5cbiAgICBmb3IgKHZhciBwcm9wS2V5IGluIHByb3BzKSB7XG4gICAgICBpZiAoIXByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuICAgICAgaWYgKHByb3BWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAgIGlmIChwcm9wVmFsdWUpIHtcbiAgICAgICAgICBlbnF1ZXVlUHV0TGlzdGVuZXIodGhpcywgcHJvcEtleSwgcHJvcFZhbHVlLCB0cmFuc2FjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgICAgIGlmIChwcm9wVmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgIC8vIFNlZSBgX3VwZGF0ZURPTVByb3BlcnRpZXNgLiBzdHlsZSBibG9ja1xuICAgICAgICAgICAgICB0aGlzLl9wcmV2aW91c1N0eWxlID0gcHJvcFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJvcFZhbHVlID0gdGhpcy5fcHJldmlvdXNTdHlsZUNvcHkgPSBfYXNzaWduKHt9LCBwcm9wcy5zdHlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByb3BWYWx1ZSA9IENTU1Byb3BlcnR5T3BlcmF0aW9ucy5jcmVhdGVNYXJrdXBGb3JTdHlsZXMocHJvcFZhbHVlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWFya3VwID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuX3RhZyAhPSBudWxsICYmIGlzQ3VzdG9tQ29tcG9uZW50KHRoaXMuX3RhZywgcHJvcHMpKSB7XG4gICAgICAgICAgaWYgKCFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICAgICAgbWFya3VwID0gRE9NUHJvcGVydHlPcGVyYXRpb25zLmNyZWF0ZU1hcmt1cEZvckN1c3RvbUF0dHJpYnV0ZShwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXJrdXAgPSBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuY3JlYXRlTWFya3VwRm9yUHJvcGVydHkocHJvcEtleSwgcHJvcFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWFya3VwKSB7XG4gICAgICAgICAgcmV0ICs9ICcgJyArIG1hcmt1cDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvciBzdGF0aWMgcGFnZXMsIG5vIG5lZWQgdG8gcHV0IFJlYWN0IElEIGFuZCBjaGVja3N1bS4gU2F2ZXMgbG90cyBvZlxuICAgIC8vIGJ5dGVzLlxuICAgIGlmICh0cmFuc2FjdGlvbi5yZW5kZXJUb1N0YXRpY01hcmt1cCkge1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2hvc3RQYXJlbnQpIHtcbiAgICAgIHJldCArPSAnICcgKyBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuY3JlYXRlTWFya3VwRm9yUm9vdCgpO1xuICAgIH1cbiAgICByZXQgKz0gJyAnICsgRE9NUHJvcGVydHlPcGVyYXRpb25zLmNyZWF0ZU1hcmt1cEZvcklEKHRoaXMuX2RvbUlEKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIG1hcmt1cCBmb3IgdGhlIGNvbnRlbnQgYmV0d2VlbiB0aGUgdGFncy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IENvbnRlbnQgbWFya3VwLlxuICAgKi9cbiAgX2NyZWF0ZUNvbnRlbnRNYXJrdXA6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgcHJvcHMsIGNvbnRleHQpIHtcbiAgICB2YXIgcmV0ID0gJyc7XG5cbiAgICAvLyBJbnRlbnRpb25hbCB1c2Ugb2YgIT0gdG8gYXZvaWQgY2F0Y2hpbmcgemVyby9mYWxzZS5cbiAgICB2YXIgaW5uZXJIVE1MID0gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw7XG4gICAgaWYgKGlubmVySFRNTCAhPSBudWxsKSB7XG4gICAgICBpZiAoaW5uZXJIVE1MLl9faHRtbCAhPSBudWxsKSB7XG4gICAgICAgIHJldCA9IGlubmVySFRNTC5fX2h0bWw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjb250ZW50VG9Vc2UgPSBDT05URU5UX1RZUEVTW3R5cGVvZiBwcm9wcy5jaGlsZHJlbl0gPyBwcm9wcy5jaGlsZHJlbiA6IG51bGw7XG4gICAgICB2YXIgY2hpbGRyZW5Ub1VzZSA9IGNvbnRlbnRUb1VzZSAhPSBudWxsID8gbnVsbCA6IHByb3BzLmNoaWxkcmVuO1xuICAgICAgaWYgKGNvbnRlbnRUb1VzZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IFZhbGlkYXRlIHRoYXQgdGV4dCBpcyBhbGxvd2VkIGFzIGEgY2hpbGQgb2YgdGhpcyBub2RlXG4gICAgICAgIHJldCA9IGVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3Nlcihjb250ZW50VG9Vc2UpO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHNldEFuZFZhbGlkYXRlQ29udGVudENoaWxkRGV2LmNhbGwodGhpcywgY29udGVudFRvVXNlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGlsZHJlblRvVXNlICE9IG51bGwpIHtcbiAgICAgICAgdmFyIG1vdW50SW1hZ2VzID0gdGhpcy5tb3VudENoaWxkcmVuKGNoaWxkcmVuVG9Vc2UsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgICAgcmV0ID0gbW91bnRJbWFnZXMuam9pbignJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChuZXdsaW5lRWF0aW5nVGFnc1t0aGlzLl90YWddICYmIHJldC5jaGFyQXQoMCkgPT09ICdcXG4nKSB7XG4gICAgICAvLyB0ZXh0L2h0bWwgaWdub3JlcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZXNlIHRhZ3MgaWYgaXQncyBhIG5ld2xpbmVcbiAgICAgIC8vIFByZWZlciB0byBicmVhayBhcHBsaWNhdGlvbi94bWwgb3ZlciB0ZXh0L2h0bWwgKGZvciBub3cpIGJ5IGFkZGluZ1xuICAgICAgLy8gYSBuZXdsaW5lIHNwZWNpZmljYWxseSB0byBnZXQgZWF0ZW4gYnkgdGhlIHBhcnNlci4gKEFsdGVybmF0ZWx5IGZvclxuICAgICAgLy8gdGV4dGFyZWFzLCByZXBsYWNpbmcgXCJeXFxuXCIgd2l0aCBcIlxcclxcblwiIGRvZXNuJ3QgZ2V0IGVhdGVuLCBhbmQgdGhlIGZpcnN0XG4gICAgICAvLyBcXHIgaXMgbm9ybWFsaXplZCBvdXQgYnkgSFRNTFRleHRBcmVhRWxlbWVudCN2YWx1ZS4pXG4gICAgICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sLXBvbHlnbG90LyNuZXdsaW5lcy1pbi10ZXh0YXJlYS1hbmQtcHJlPlxuICAgICAgLy8gU2VlOiA8aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvc3ludGF4Lmh0bWwjZWxlbWVudC1yZXN0cmljdGlvbnM+XG4gICAgICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNuZXdsaW5lcz5cbiAgICAgIC8vIFNlZTogUGFyc2luZyBvZiBcInRleHRhcmVhXCIgXCJsaXN0aW5nXCIgYW5kIFwicHJlXCIgZWxlbWVudHNcbiAgICAgIC8vICBmcm9tIDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5ib2R5PlxuICAgICAgcmV0dXJuICdcXG4nICsgcmV0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgfSxcblxuICBfY3JlYXRlSW5pdGlhbENoaWxkcmVuOiBmdW5jdGlvbiAodHJhbnNhY3Rpb24sIHByb3BzLCBjb250ZXh0LCBsYXp5VHJlZSkge1xuICAgIC8vIEludGVudGlvbmFsIHVzZSBvZiAhPSB0byBhdm9pZCBjYXRjaGluZyB6ZXJvL2ZhbHNlLlxuICAgIHZhciBpbm5lckhUTUwgPSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTDtcbiAgICBpZiAoaW5uZXJIVE1MICE9IG51bGwpIHtcbiAgICAgIGlmIChpbm5lckhUTUwuX19odG1sICE9IG51bGwpIHtcbiAgICAgICAgRE9NTGF6eVRyZWUucXVldWVIVE1MKGxhenlUcmVlLCBpbm5lckhUTUwuX19odG1sKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGNvbnRlbnRUb1VzZSA9IENPTlRFTlRfVFlQRVNbdHlwZW9mIHByb3BzLmNoaWxkcmVuXSA/IHByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIHZhciBjaGlsZHJlblRvVXNlID0gY29udGVudFRvVXNlICE9IG51bGwgPyBudWxsIDogcHJvcHMuY2hpbGRyZW47XG4gICAgICAvLyBUT0RPOiBWYWxpZGF0ZSB0aGF0IHRleHQgaXMgYWxsb3dlZCBhcyBhIGNoaWxkIG9mIHRoaXMgbm9kZVxuICAgICAgaWYgKGNvbnRlbnRUb1VzZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIEF2b2lkIHNldHRpbmcgdGV4dENvbnRlbnQgd2hlbiB0aGUgdGV4dCBpcyBlbXB0eS4gSW4gSUUxMSBzZXR0aW5nXG4gICAgICAgIC8vIHRleHRDb250ZW50IG9uIGEgdGV4dCBhcmVhIHdpbGwgY2F1c2UgdGhlIHBsYWNlaG9sZGVyIHRvIG5vdFxuICAgICAgICAvLyBzaG93IHdpdGhpbiB0aGUgdGV4dGFyZWEgdW50aWwgaXQgaGFzIGJlZW4gZm9jdXNlZCBhbmQgYmx1cnJlZCBhZ2Fpbi5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy82NzMxI2lzc3VlY29tbWVudC0yNTQ4NzQ1NTNcbiAgICAgICAgaWYgKGNvbnRlbnRUb1VzZSAhPT0gJycpIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYuY2FsbCh0aGlzLCBjb250ZW50VG9Vc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBET01MYXp5VHJlZS5xdWV1ZVRleHQobGF6eVRyZWUsIGNvbnRlbnRUb1VzZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hpbGRyZW5Ub1VzZSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBtb3VudEltYWdlcyA9IHRoaXMubW91bnRDaGlsZHJlbihjaGlsZHJlblRvVXNlLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW91bnRJbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBET01MYXp5VHJlZS5xdWV1ZUNoaWxkKGxhenlUcmVlLCBtb3VudEltYWdlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY2VpdmVzIGEgbmV4dCBlbGVtZW50IGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnRcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0XG4gICAqL1xuICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAobmV4dEVsZW1lbnQsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgdmFyIHByZXZFbGVtZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQ7XG4gICAgdGhpcy5fY3VycmVudEVsZW1lbnQgPSBuZXh0RWxlbWVudDtcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCh0cmFuc2FjdGlvbiwgcHJldkVsZW1lbnQsIG5leHRFbGVtZW50LCBjb250ZXh0KTtcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyBhIERPTSBjb21wb25lbnQgYWZ0ZXIgaXQgaGFzIGFscmVhZHkgYmVlbiBhbGxvY2F0ZWQgYW5kXG4gICAqIGF0dGFjaGVkIHRvIHRoZSBET00uIFJlY29uY2lsZXMgdGhlIHJvb3QgRE9NIG5vZGUsIHRoZW4gcmVjdXJzZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IHByZXZFbGVtZW50XG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBuZXh0RWxlbWVudFxuICAgKiBAaW50ZXJuYWxcbiAgICogQG92ZXJyaWRhYmxlXG4gICAqL1xuICB1cGRhdGVDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgcHJldkVsZW1lbnQsIG5leHRFbGVtZW50LCBjb250ZXh0KSB7XG4gICAgdmFyIGxhc3RQcm9wcyA9IHByZXZFbGVtZW50LnByb3BzO1xuICAgIHZhciBuZXh0UHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcblxuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgIGxhc3RQcm9wcyA9IFJlYWN0RE9NSW5wdXQuZ2V0SG9zdFByb3BzKHRoaXMsIGxhc3RQcm9wcyk7XG4gICAgICAgIG5leHRQcm9wcyA9IFJlYWN0RE9NSW5wdXQuZ2V0SG9zdFByb3BzKHRoaXMsIG5leHRQcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgbGFzdFByb3BzID0gUmVhY3RET01PcHRpb24uZ2V0SG9zdFByb3BzKHRoaXMsIGxhc3RQcm9wcyk7XG4gICAgICAgIG5leHRQcm9wcyA9IFJlYWN0RE9NT3B0aW9uLmdldEhvc3RQcm9wcyh0aGlzLCBuZXh0UHJvcHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIGxhc3RQcm9wcyA9IFJlYWN0RE9NU2VsZWN0LmdldEhvc3RQcm9wcyh0aGlzLCBsYXN0UHJvcHMpO1xuICAgICAgICBuZXh0UHJvcHMgPSBSZWFjdERPTVNlbGVjdC5nZXRIb3N0UHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgIGxhc3RQcm9wcyA9IFJlYWN0RE9NVGV4dGFyZWEuZ2V0SG9zdFByb3BzKHRoaXMsIGxhc3RQcm9wcyk7XG4gICAgICAgIG5leHRQcm9wcyA9IFJlYWN0RE9NVGV4dGFyZWEuZ2V0SG9zdFByb3BzKHRoaXMsIG5leHRQcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGFzc2VydFZhbGlkUHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICB0aGlzLl91cGRhdGVET01Qcm9wZXJ0aWVzKGxhc3RQcm9wcywgbmV4dFByb3BzLCB0cmFuc2FjdGlvbik7XG4gICAgdGhpcy5fdXBkYXRlRE9NQ2hpbGRyZW4obGFzdFByb3BzLCBuZXh0UHJvcHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcblxuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgd3JhcHBlciBhcm91bmQgaW5wdXRzICphZnRlciogdXBkYXRpbmcgcHJvcHMuIFRoaXMgaGFzIHRvXG4gICAgICAgIC8vIGhhcHBlbiBhZnRlciBgX3VwZGF0ZURPTVByb3BlcnRpZXNgLiBPdGhlcndpc2UgSFRNTDUgaW5wdXQgdmFsaWRhdGlvbnNcbiAgICAgICAgLy8gcmFpc2Ugd2FybmluZ3MgYW5kIHByZXZlbnQgdGhlIG5ldyB2YWx1ZSBmcm9tIGJlaW5nIGFzc2lnbmVkLlxuICAgICAgICBSZWFjdERPTUlucHV0LnVwZGF0ZVdyYXBwZXIodGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICBSZWFjdERPTVRleHRhcmVhLnVwZGF0ZVdyYXBwZXIodGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgLy8gPHNlbGVjdD4gdmFsdWUgdXBkYXRlIG5lZWRzIHRvIG9jY3VyIGFmdGVyIDxvcHRpb24+IGNoaWxkcmVuXG4gICAgICAgIC8vIHJlY29uY2lsaWF0aW9uXG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUocG9zdFVwZGF0ZVNlbGVjdFdyYXBwZXIsIHRoaXMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY29uY2lsZXMgdGhlIHByb3BlcnRpZXMgYnkgZGV0ZWN0aW5nIGRpZmZlcmVuY2VzIGluIHByb3BlcnR5IHZhbHVlcyBhbmRcbiAgICogdXBkYXRpbmcgdGhlIERPTSBhcyBuZWNlc3NhcnkuIFRoaXMgZnVuY3Rpb24gaXMgcHJvYmFibHkgdGhlIHNpbmdsZSBtb3N0XG4gICAqIGNyaXRpY2FsIHBhdGggZm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi5cbiAgICpcbiAgICogVE9ETzogQmVuY2htYXJrIHdoZXRoZXIgY2hlY2tpbmcgZm9yIGNoYW5nZWQgdmFsdWVzIGluIG1lbW9yeSBhY3R1YWxseVxuICAgKiAgICAgICBpbXByb3ZlcyBwZXJmb3JtYW5jZSAoZXNwZWNpYWxseSBzdGF0aWNhbGx5IHBvc2l0aW9uZWQgZWxlbWVudHMpLlxuICAgKiBUT0RPOiBCZW5jaG1hcmsgdGhlIGVmZmVjdHMgb2YgcHV0dGluZyB0aGlzIGF0IHRoZSB0b3Agc2luY2UgOTklIG9mIHByb3BzXG4gICAqICAgICAgIGRvIG5vdCBjaGFuZ2UgZm9yIGEgZ2l2ZW4gcmVjb25jaWxpYXRpb24uXG4gICAqIFRPRE86IEJlbmNobWFyayBhcmVhcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCB3aXRoIGNhY2hpbmcuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBsYXN0UHJvcHNcbiAgICogQHBhcmFtIHtvYmplY3R9IG5leHRQcm9wc1xuICAgKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlXG4gICAqL1xuICBfdXBkYXRlRE9NUHJvcGVydGllczogZnVuY3Rpb24gKGxhc3RQcm9wcywgbmV4dFByb3BzLCB0cmFuc2FjdGlvbikge1xuICAgIHZhciBwcm9wS2V5O1xuICAgIHZhciBzdHlsZU5hbWU7XG4gICAgdmFyIHN0eWxlVXBkYXRlcztcbiAgICBmb3IgKHByb3BLZXkgaW4gbGFzdFByb3BzKSB7XG4gICAgICBpZiAobmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpIHx8ICFsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbGFzdFByb3BzW3Byb3BLZXldID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcEtleSA9PT0gU1RZTEUpIHtcbiAgICAgICAgdmFyIGxhc3RTdHlsZSA9IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5O1xuICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBsYXN0U3R5bGUpIHtcbiAgICAgICAgICBpZiAobGFzdFN0eWxlLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpIHtcbiAgICAgICAgICAgIHN0eWxlVXBkYXRlcyA9IHN0eWxlVXBkYXRlcyB8fCB7fTtcbiAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAocmVnaXN0cmF0aW9uTmFtZU1vZHVsZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgICAgaWYgKGxhc3RQcm9wc1twcm9wS2V5XSkge1xuICAgICAgICAgIC8vIE9ubHkgY2FsbCBkZWxldGVMaXN0ZW5lciBpZiB0aGVyZSB3YXMgYSBsaXN0ZW5lciBwcmV2aW91c2x5IG9yXG4gICAgICAgICAgLy8gZWxzZSB3aWxsRGVsZXRlTGlzdGVuZXIgZ2V0cyBjYWxsZWQgd2hlbiB0aGVyZSB3YXNuJ3QgYWN0dWFsbHkgYVxuICAgICAgICAgIC8vIGxpc3RlbmVyIChlLmcuLCBvbkNsaWNrPXtudWxsfSlcbiAgICAgICAgICBkZWxldGVMaXN0ZW5lcih0aGlzLCBwcm9wS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0aGlzLl90YWcsIGxhc3RQcm9wcykpIHtcbiAgICAgICAgaWYgKCFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvckF0dHJpYnV0ZShnZXROb2RlKHRoaXMpLCBwcm9wS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChET01Qcm9wZXJ0eS5wcm9wZXJ0aWVzW3Byb3BLZXldIHx8IERPTVByb3BlcnR5LmlzQ3VzdG9tQXR0cmlidXRlKHByb3BLZXkpKSB7XG4gICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvclByb3BlcnR5KGdldE5vZGUodGhpcyksIHByb3BLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHByb3BLZXkgaW4gbmV4dFByb3BzKSB7XG4gICAgICB2YXIgbmV4dFByb3AgPSBuZXh0UHJvcHNbcHJvcEtleV07XG4gICAgICB2YXIgbGFzdFByb3AgPSBwcm9wS2V5ID09PSBTVFlMRSA/IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5IDogbGFzdFByb3BzICE9IG51bGwgPyBsYXN0UHJvcHNbcHJvcEtleV0gOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSB8fCBuZXh0UHJvcCA9PT0gbGFzdFByb3AgfHwgbmV4dFByb3AgPT0gbnVsbCAmJiBsYXN0UHJvcCA9PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICAgIGlmIChuZXh0UHJvcCkge1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjaGVja0FuZFdhcm5Gb3JNdXRhdGVkU3R5bGUodGhpcy5fcHJldmlvdXNTdHlsZUNvcHksIHRoaXMuX3ByZXZpb3VzU3R5bGUsIHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNTdHlsZSA9IG5leHRQcm9wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuZXh0UHJvcCA9IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gX2Fzc2lnbih7fSwgbmV4dFByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGFzdFByb3ApIHtcbiAgICAgICAgICAvLyBVbnNldCBzdHlsZXMgb24gYGxhc3RQcm9wYCBidXQgbm90IG9uIGBuZXh0UHJvcGAuXG4gICAgICAgICAgZm9yIChzdHlsZU5hbWUgaW4gbGFzdFByb3ApIHtcbiAgICAgICAgICAgIGlmIChsYXN0UHJvcC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmICghbmV4dFByb3AgfHwgIW5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpKSB7XG4gICAgICAgICAgICAgIHN0eWxlVXBkYXRlcyA9IHN0eWxlVXBkYXRlcyB8fCB7fTtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzW3N0eWxlTmFtZV0gPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gVXBkYXRlIHN0eWxlcyB0aGF0IGNoYW5nZWQgc2luY2UgYGxhc3RQcm9wYC5cbiAgICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBuZXh0UHJvcCkge1xuICAgICAgICAgICAgaWYgKG5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiYgbGFzdFByb3Bbc3R5bGVOYW1lXSAhPT0gbmV4dFByb3Bbc3R5bGVOYW1lXSkge1xuICAgICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSBzdHlsZVVwZGF0ZXMgfHwge307XG4gICAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gbmV4dFByb3Bbc3R5bGVOYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUmVsaWVzIG9uIGB1cGRhdGVTdHlsZXNCeUlEYCBub3QgbXV0YXRpbmcgYHN0eWxlVXBkYXRlc2AuXG4gICAgICAgICAgc3R5bGVVcGRhdGVzID0gbmV4dFByb3A7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmVnaXN0cmF0aW9uTmFtZU1vZHVsZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgICAgaWYgKG5leHRQcm9wKSB7XG4gICAgICAgICAgZW5xdWV1ZVB1dExpc3RlbmVyKHRoaXMsIHByb3BLZXksIG5leHRQcm9wLCB0cmFuc2FjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAobGFzdFByb3ApIHtcbiAgICAgICAgICBkZWxldGVMaXN0ZW5lcih0aGlzLCBwcm9wS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0N1c3RvbUNvbXBvbmVudCh0aGlzLl90YWcsIG5leHRQcm9wcykpIHtcbiAgICAgICAgaWYgKCFSRVNFUlZFRF9QUk9QUy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5zZXRWYWx1ZUZvckF0dHJpYnV0ZShnZXROb2RlKHRoaXMpLCBwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoRE9NUHJvcGVydHkucHJvcGVydGllc1twcm9wS2V5XSB8fCBET01Qcm9wZXJ0eS5pc0N1c3RvbUF0dHJpYnV0ZShwcm9wS2V5KSkge1xuICAgICAgICB2YXIgbm9kZSA9IGdldE5vZGUodGhpcyk7XG4gICAgICAgIC8vIElmIHdlJ3JlIHVwZGF0aW5nIHRvIG51bGwgb3IgdW5kZWZpbmVkLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBwcm9wZXJ0eVxuICAgICAgICAvLyBmcm9tIHRoZSBET00gbm9kZSBpbnN0ZWFkIG9mIGluYWR2ZXJ0ZW50bHkgc2V0dGluZyB0byBhIHN0cmluZy4gVGhpc1xuICAgICAgICAvLyBicmluZ3MgdXMgaW4gbGluZSB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yIHdlIGhhdmUgb24gaW5pdGlhbCByZW5kZXIuXG4gICAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgICAgRE9NUHJvcGVydHlPcGVyYXRpb25zLnNldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgcHJvcEtleSwgbmV4dFByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvclByb3BlcnR5KG5vZGUsIHByb3BLZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdHlsZVVwZGF0ZXMpIHtcbiAgICAgIENTU1Byb3BlcnR5T3BlcmF0aW9ucy5zZXRWYWx1ZUZvclN0eWxlcyhnZXROb2RlKHRoaXMpLCBzdHlsZVVwZGF0ZXMsIHRoaXMpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUmVjb25jaWxlcyB0aGUgY2hpbGRyZW4gd2l0aCB0aGUgdmFyaW91cyBwcm9wZXJ0aWVzIHRoYXQgYWZmZWN0IHRoZVxuICAgKiBjaGlsZHJlbiBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gbGFzdFByb3BzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXh0UHJvcHNcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKi9cbiAgX3VwZGF0ZURPTUNoaWxkcmVuOiBmdW5jdGlvbiAobGFzdFByb3BzLCBuZXh0UHJvcHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgdmFyIGxhc3RDb250ZW50ID0gQ09OVEVOVF9UWVBFU1t0eXBlb2YgbGFzdFByb3BzLmNoaWxkcmVuXSA/IGxhc3RQcm9wcy5jaGlsZHJlbiA6IG51bGw7XG4gICAgdmFyIG5leHRDb250ZW50ID0gQ09OVEVOVF9UWVBFU1t0eXBlb2YgbmV4dFByb3BzLmNoaWxkcmVuXSA/IG5leHRQcm9wcy5jaGlsZHJlbiA6IG51bGw7XG5cbiAgICB2YXIgbGFzdEh0bWwgPSBsYXN0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgbGFzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbDtcbiAgICB2YXIgbmV4dEh0bWwgPSBuZXh0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgbmV4dFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbDtcblxuICAgIC8vIE5vdGUgdGhlIHVzZSBvZiBgIT1gIHdoaWNoIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWQuXG4gICAgdmFyIGxhc3RDaGlsZHJlbiA9IGxhc3RDb250ZW50ICE9IG51bGwgPyBudWxsIDogbGFzdFByb3BzLmNoaWxkcmVuO1xuICAgIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0Q29udGVudCAhPSBudWxsID8gbnVsbCA6IG5leHRQcm9wcy5jaGlsZHJlbjtcblxuICAgIC8vIElmIHdlJ3JlIHN3aXRjaGluZyBmcm9tIGNoaWxkcmVuIHRvIGNvbnRlbnQvaHRtbCBvciB2aWNlIHZlcnNhLCByZW1vdmVcbiAgICAvLyB0aGUgb2xkIGNvbnRlbnRcbiAgICB2YXIgbGFzdEhhc0NvbnRlbnRPckh0bWwgPSBsYXN0Q29udGVudCAhPSBudWxsIHx8IGxhc3RIdG1sICE9IG51bGw7XG4gICAgdmFyIG5leHRIYXNDb250ZW50T3JIdG1sID0gbmV4dENvbnRlbnQgIT0gbnVsbCB8fCBuZXh0SHRtbCAhPSBudWxsO1xuICAgIGlmIChsYXN0Q2hpbGRyZW4gIT0gbnVsbCAmJiBuZXh0Q2hpbGRyZW4gPT0gbnVsbCkge1xuICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbihudWxsLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChsYXN0SGFzQ29udGVudE9ySHRtbCAmJiAhbmV4dEhhc0NvbnRlbnRPckh0bWwpIHtcbiAgICAgIHRoaXMudXBkYXRlVGV4dENvbnRlbnQoJycpO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uU2V0Q2hpbGRyZW4odGhpcy5fZGVidWdJRCwgW10pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZXh0Q29udGVudCAhPSBudWxsKSB7XG4gICAgICBpZiAobGFzdENvbnRlbnQgIT09IG5leHRDb250ZW50KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVGV4dENvbnRlbnQoJycgKyBuZXh0Q29udGVudCk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYuY2FsbCh0aGlzLCBuZXh0Q29udGVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5leHRIdG1sICE9IG51bGwpIHtcbiAgICAgIGlmIChsYXN0SHRtbCAhPT0gbmV4dEh0bWwpIHtcbiAgICAgICAgdGhpcy51cGRhdGVNYXJrdXAoJycgKyBuZXh0SHRtbCk7XG4gICAgICB9XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbih0aGlzLl9kZWJ1Z0lELCBbXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChuZXh0Q2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgc2V0QW5kVmFsaWRhdGVDb250ZW50Q2hpbGREZXYuY2FsbCh0aGlzLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbihuZXh0Q2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9XG4gIH0sXG5cbiAgZ2V0SG9zdE5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZSh0aGlzKTtcbiAgfSxcblxuICAvKipcbiAgICogRGVzdHJveXMgYWxsIGV2ZW50IHJlZ2lzdHJhdGlvbnMgZm9yIHRoaXMgaW5zdGFuY2UuIERvZXMgbm90IHJlbW92ZSBmcm9tXG4gICAqIHRoZSBET00uIFRoYXQgbXVzdCBiZSBkb25lIGJ5IHRoZSBwYXJlbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHNhZmVseSkge1xuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdhdWRpbyc6XG4gICAgICBjYXNlICdmb3JtJzpcbiAgICAgIGNhc2UgJ2lmcmFtZSc6XG4gICAgICBjYXNlICdpbWcnOlxuICAgICAgY2FzZSAnbGluayc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgY2FzZSAnc291cmNlJzpcbiAgICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICAgICAgdmFyIGxpc3RlbmVycyA9IHRoaXMuX3dyYXBwZXJTdGF0ZS5saXN0ZW5lcnM7XG4gICAgICAgIGlmIChsaXN0ZW5lcnMpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGlzdGVuZXJzW2ldLnJlbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgaW5wdXRWYWx1ZVRyYWNraW5nLnN0b3BUcmFja2luZyh0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgY2FzZSAnYm9keSc6XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb21wb25lbnRzIGxpa2UgPGh0bWw+IDxoZWFkPiBhbmQgPGJvZHk+IGNhbid0IGJlIHJlbW92ZWQgb3IgYWRkZWRcbiAgICAgICAgICogZWFzaWx5IGluIGEgY3Jvc3MtYnJvd3NlciB3YXksIGhvd2V2ZXIgaXQncyB2YWx1YWJsZSB0byBiZSBhYmxlIHRvXG4gICAgICAgICAqIHRha2UgYWR2YW50YWdlIG9mIFJlYWN0J3MgcmVjb25jaWxpYXRpb24gZm9yIHN0eWxpbmcgYW5kIDx0aXRsZT5cbiAgICAgICAgICogbWFuYWdlbWVudC4gU28gd2UganVzdCBkb2N1bWVudCBpdCBhbmQgdGhyb3cgaW4gZGFuZ2Vyb3VzIGNhc2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJzwlcz4gdHJpZWQgdG8gdW5tb3VudC4gQmVjYXVzZSBvZiBjcm9zcy1icm93c2VyIHF1aXJrcyBpdCBpcyBpbXBvc3NpYmxlIHRvIHVubW91bnQgc29tZSB0b3AtbGV2ZWwgY29tcG9uZW50cyAoZWcgPGh0bWw+LCA8aGVhZD4sIGFuZCA8Ym9keT4pIHJlbGlhYmx5IGFuZCBlZmZpY2llbnRseS4gVG8gZml4IHRoaXMsIGhhdmUgYSBzaW5nbGUgdG9wLWxldmVsIGNvbXBvbmVudCB0aGF0IG5ldmVyIHVubW91bnRzIHJlbmRlciB0aGVzZSBlbGVtZW50cy4nLCB0aGlzLl90YWcpIDogX3Byb2RJbnZhcmlhbnQoJzY2JywgdGhpcy5fdGFnKSA6IHZvaWQgMDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy51bm1vdW50Q2hpbGRyZW4oc2FmZWx5KTtcbiAgICBSZWFjdERPTUNvbXBvbmVudFRyZWUudW5jYWNoZU5vZGUodGhpcyk7XG4gICAgRXZlbnRQbHVnaW5IdWIuZGVsZXRlQWxsTGlzdGVuZXJzKHRoaXMpO1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSAwO1xuICAgIHRoaXMuX2RvbUlEID0gMDtcbiAgICB0aGlzLl93cmFwcGVyU3RhdGUgPSBudWxsO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHNldEFuZFZhbGlkYXRlQ29udGVudENoaWxkRGV2LmNhbGwodGhpcywgbnVsbCk7XG4gICAgfVxuICB9LFxuXG4gIGdldFB1YmxpY0luc3RhbmNlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGdldE5vZGUodGhpcyk7XG4gIH1cbn07XG5cbl9hc3NpZ24oUmVhY3RET01Db21wb25lbnQucHJvdG90eXBlLCBSZWFjdERPTUNvbXBvbmVudC5NaXhpbiwgUmVhY3RNdWx0aUNoaWxkLk1peGluKTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTUNvbXBvbmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NQ29tcG9uZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxNzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///170\n"); /***/ }), /* 171 */ @@ -2251,7 +2251,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar DOMPropertyOperations = __webpack_require__(/*! ./DOMPropertyOperations */ 91);\nvar LinkedValueUtils = __webpack_require__(/*! ./LinkedValueUtils */ 54);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : inst._wrapperState.initialValue,\n checked: checked != null ? checked : inst._wrapperState.initialChecked,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n if (\n // eslint-disable-next-line\n value != valueAsNumber ||\n // eslint-disable-next-line\n value == valueAsNumber && node.value != value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else if (node.value !== '' + value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTgyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01JbnB1dC5qcz9kNTZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50JyksXG4gICAgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIERPTVByb3BlcnR5T3BlcmF0aW9ucyA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHlPcGVyYXRpb25zJyk7XG52YXIgTGlua2VkVmFsdWVVdGlscyA9IHJlcXVpcmUoJy4vTGlua2VkVmFsdWVVdGlscycpO1xudmFyIFJlYWN0RE9NQ29tcG9uZW50VHJlZSA9IHJlcXVpcmUoJy4vUmVhY3RET01Db21wb25lbnRUcmVlJyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcblxudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBkaWRXYXJuVmFsdWVMaW5rID0gZmFsc2U7XG52YXIgZGlkV2FybkNoZWNrZWRMaW5rID0gZmFsc2U7XG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gZmFsc2U7XG52YXIgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCA9IGZhbHNlO1xudmFyIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSBmYWxzZTtcbnZhciBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGZvcmNlVXBkYXRlSWZNb3VudGVkKCkge1xuICBpZiAodGhpcy5fcm9vdE5vZGVJRCkge1xuICAgIC8vIERPTSBjb21wb25lbnQgaXMgc3RpbGwgbW91bnRlZDsgdXBkYXRlXG4gICAgUmVhY3RET01JbnB1dC51cGRhdGVXcmFwcGVyKHRoaXMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQ29udHJvbGxlZChwcm9wcykge1xuICB2YXIgdXNlc0NoZWNrZWQgPSBwcm9wcy50eXBlID09PSAnY2hlY2tib3gnIHx8IHByb3BzLnR5cGUgPT09ICdyYWRpbyc7XG4gIHJldHVybiB1c2VzQ2hlY2tlZCA/IHByb3BzLmNoZWNrZWQgIT0gbnVsbCA6IHByb3BzLnZhbHVlICE9IG51bGw7XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBhbiA8aW5wdXQ+IGhvc3QgY29tcG9uZW50IHRoYXQgYWxsb3dzIHNldHRpbmcgdGhlc2Ugb3B0aW9uYWxcbiAqIHByb3BzOiBgY2hlY2tlZGAsIGB2YWx1ZWAsIGBkZWZhdWx0Q2hlY2tlZGAsIGFuZCBgZGVmYXVsdFZhbHVlYC5cbiAqXG4gKiBJZiBgY2hlY2tlZGAgb3IgYHZhbHVlYCBhcmUgbm90IHN1cHBsaWVkIChvciBudWxsL3VuZGVmaW5lZCksIHVzZXIgYWN0aW9uc1xuICogdGhhdCBhZmZlY3QgdGhlIGNoZWNrZWQgc3RhdGUgb3IgdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgdGhleSBhcmUgc3VwcGxpZWQgKGFuZCBub3QgbnVsbC91bmRlZmluZWQpLCB0aGUgcmVuZGVyZWQgZWxlbWVudCB3aWxsIG5vdFxuICogdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSBlbGVtZW50LiBJbnN0ZWFkLCB0aGUgcHJvcHMgbXVzdCBjaGFuZ2UgaW4gb3JkZXIgZm9yXG4gKiB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYXMgdW5jaGVja2VkIChvciBgZGVmYXVsdENoZWNrZWRgKVxuICogd2l0aCBhbiBlbXB0eSB2YWx1ZSAob3IgYGRlZmF1bHRWYWx1ZWApLlxuICpcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMi9XRC1odG1sNS0yMDEyMTAyNS90aGUtaW5wdXQtZWxlbWVudC5odG1sXG4gKi9cbnZhciBSZWFjdERPTUlucHV0ID0ge1xuICBnZXRIb3N0UHJvcHM6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcykge1xuICAgIHZhciB2YWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZ2V0VmFsdWUocHJvcHMpO1xuICAgIHZhciBjaGVja2VkID0gTGlua2VkVmFsdWVVdGlscy5nZXRDaGVja2VkKHByb3BzKTtcblxuICAgIHZhciBob3N0UHJvcHMgPSBfYXNzaWduKHtcbiAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBzZXQgLnR5cGUgYmVmb3JlIGFueSBvdGhlciBwcm9wZXJ0aWVzIChzZXR0aW5nIC52YWx1ZVxuICAgICAgLy8gYmVmb3JlIC50eXBlIG1lYW5zIC52YWx1ZSBpcyBsb3N0IGluIElFMTEgYW5kIGJlbG93KVxuICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgLy8gTWFrZSBzdXJlIHdlIHNldCAuc3RlcCBiZWZvcmUgLnZhbHVlIChzZXR0aW5nIC52YWx1ZSBiZWZvcmUgLnN0ZXBcbiAgICAgIC8vIG1lYW5zIC52YWx1ZSBpcyByb3VuZGVkIG9uIG1vdW50LCBiYXNlZCB1cG9uIHN0ZXAgcHJlY2lzaW9uKVxuICAgICAgc3RlcDogdW5kZWZpbmVkLFxuICAgICAgLy8gTWFrZSBzdXJlIHdlIHNldCAubWluICYgLm1heCBiZWZvcmUgLnZhbHVlICh0byBlbnN1cmUgcHJvcGVyIG9yZGVyXG4gICAgICAvLyBpbiBjb3JuZXIgY2FzZXMgc3VjaCBhcyBtaW4gb3IgbWF4IGRlcml2aW5nIGZyb20gdmFsdWUsIGUuZy4gSXNzdWUgIzcxNzApXG4gICAgICBtaW46IHVuZGVmaW5lZCxcbiAgICAgIG1heDogdW5kZWZpbmVkXG4gICAgfSwgcHJvcHMsIHtcbiAgICAgIGRlZmF1bHRDaGVja2VkOiB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIHZhbHVlOiB2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBpbnN0Ll93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlLFxuICAgICAgY2hlY2tlZDogY2hlY2tlZCAhPSBudWxsID8gY2hlY2tlZCA6IGluc3QuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCxcbiAgICAgIG9uQ2hhbmdlOiBpbnN0Ll93cmFwcGVyU3RhdGUub25DaGFuZ2VcbiAgICB9KTtcblxuICAgIHJldHVybiBob3N0UHJvcHM7XG4gIH0sXG5cbiAgbW91bnRXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCwgcHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgTGlua2VkVmFsdWVVdGlscy5jaGVja1Byb3BUeXBlcygnaW5wdXQnLCBwcm9wcywgaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyKTtcblxuICAgICAgdmFyIG93bmVyID0gaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuXG4gICAgICBpZiAocHJvcHMudmFsdWVMaW5rICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZUxpbmspIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdgdmFsdWVMaW5rYCBwcm9wIG9uIGBpbnB1dGAgaXMgZGVwcmVjYXRlZDsgc2V0IGB2YWx1ZWAgYW5kIGBvbkNoYW5nZWAgaW5zdGVhZC4nKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FyblZhbHVlTGluayA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuY2hlY2tlZExpbmsgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FybkNoZWNrZWRMaW5rKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnYGNoZWNrZWRMaW5rYCBwcm9wIG9uIGBpbnB1dGAgaXMgZGVwcmVjYXRlZDsgc2V0IGB2YWx1ZWAgYW5kIGBvbkNoYW5nZWAgaW5zdGVhZC4nKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FybkNoZWNrZWRMaW5rID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5jaGVja2VkICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdENoZWNrZWQgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJyVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIGNoZWNrZWQgYW5kIGRlZmF1bHRDaGVja2VkIHByb3BzLiAnICsgJ0lucHV0IGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkICcgKyAnKHNwZWNpZnkgZWl0aGVyIHRoZSBjaGVja2VkIHByb3AsIG9yIHRoZSBkZWZhdWx0Q2hlY2tlZCBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGFuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86ICcgKyAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1jb250cm9sbGVkLWNvbXBvbmVudHMnLCBvd25lciAmJiBvd25lci5nZXROYW1lKCkgfHwgJ0EgY29tcG9uZW50JywgcHJvcHMudHlwZSkgOiB2b2lkIDA7XG4gICAgICAgIGRpZFdhcm5DaGVja2VkRGVmYXVsdENoZWNrZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJyVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vZmIubWUvcmVhY3QtY29udHJvbGxlZC1jb21wb25lbnRzJywgb3duZXIgJiYgb3duZXIuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpIDogdm9pZCAwO1xuICAgICAgICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gICAgaW5zdC5fd3JhcHBlclN0YXRlID0ge1xuICAgICAgaW5pdGlhbENoZWNrZWQ6IHByb3BzLmNoZWNrZWQgIT0gbnVsbCA/IHByb3BzLmNoZWNrZWQgOiBwcm9wcy5kZWZhdWx0Q2hlY2tlZCxcbiAgICAgIGluaXRpYWxWYWx1ZTogcHJvcHMudmFsdWUgIT0gbnVsbCA/IHByb3BzLnZhbHVlIDogZGVmYXVsdFZhbHVlLFxuICAgICAgbGlzdGVuZXJzOiBudWxsLFxuICAgICAgb25DaGFuZ2U6IF9oYW5kbGVDaGFuZ2UuYmluZChpbnN0KSxcbiAgICAgIGNvbnRyb2xsZWQ6IGlzQ29udHJvbGxlZChwcm9wcylcbiAgICB9O1xuICB9LFxuXG4gIHVwZGF0ZVdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgdmFyIHByb3BzID0gaW5zdC5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIGNvbnRyb2xsZWQgPSBpc0NvbnRyb2xsZWQocHJvcHMpO1xuICAgICAgdmFyIG93bmVyID0gaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuXG4gICAgICBpZiAoIWluc3QuX3dyYXBwZXJTdGF0ZS5jb250cm9sbGVkICYmIGNvbnRyb2xsZWQgJiYgIWRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICclcyBpcyBjaGFuZ2luZyBhbiB1bmNvbnRyb2xsZWQgaW5wdXQgb2YgdHlwZSAlcyB0byBiZSBjb250cm9sbGVkLiAnICsgJ0lucHV0IGVsZW1lbnRzIHNob3VsZCBub3Qgc3dpdGNoIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWQgKG9yIHZpY2UgdmVyc2EpLiAnICsgJ0RlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50cycsIG93bmVyICYmIG93bmVyLmdldE5hbWUoKSB8fCAnQSBjb21wb25lbnQnLCBwcm9wcy50eXBlKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoaW5zdC5fd3JhcHBlclN0YXRlLmNvbnRyb2xsZWQgJiYgIWNvbnRyb2xsZWQgJiYgIWRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICclcyBpcyBjaGFuZ2luZyBhIGNvbnRyb2xsZWQgaW5wdXQgb2YgdHlwZSAlcyB0byBiZSB1bmNvbnRyb2xsZWQuICcgKyAnSW5wdXQgZWxlbWVudHMgc2hvdWxkIG5vdCBzd2l0Y2ggZnJvbSBjb250cm9sbGVkIHRvIHVuY29udHJvbGxlZCAob3IgdmljZSB2ZXJzYSkuICcgKyAnRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCAnICsgJ2VsZW1lbnQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgY29tcG9uZW50LiBNb3JlIGluZm86IGh0dHBzOi8vZmIubWUvcmVhY3QtY29udHJvbGxlZC1jb21wb25lbnRzJywgb3duZXIgJiYgb3duZXIuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpIDogdm9pZCAwO1xuICAgICAgICBkaWRXYXJuQ29udHJvbGxlZFRvVW5jb250cm9sbGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBTaG91bGRuJ3QgdGhpcyBiZSBnZXRDaGVja2VkKHByb3BzKT9cbiAgICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG4gICAgaWYgKGNoZWNrZWQgIT0gbnVsbCkge1xuICAgICAgRE9NUHJvcGVydHlPcGVyYXRpb25zLnNldFZhbHVlRm9yUHJvcGVydHkoUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCksICdjaGVja2VkJywgY2hlY2tlZCB8fCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdmFyIG5vZGUgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KTtcbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKHZhbHVlID09PSAwICYmIG5vZGUudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIG5vZGUudmFsdWUgPSAnMCc7XG4gICAgICAgIC8vIE5vdGU6IElFOSByZXBvcnRzIGEgbnVtYmVyIGlucHV0cyBhcyAndGV4dCcsIHNvIGNoZWNrIHByb3BzIGluc3RlYWQuXG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIC8vIFNpbXVsYXRlIGBpbnB1dC52YWx1ZUFzTnVtYmVyYC4gSUU5IGRvZXMgbm90IHN1cHBvcnQgaXRcbiAgICAgICAgdmFyIHZhbHVlQXNOdW1iZXIgPSBwYXJzZUZsb2F0KG5vZGUudmFsdWUsIDEwKSB8fCAwO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHZhbHVlICE9IHZhbHVlQXNOdW1iZXIgfHxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHZhbHVlID09IHZhbHVlQXNOdW1iZXIgJiYgbm9kZS52YWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgICAgIC8vIENhc3QgYHZhbHVlYCB0byBhIHN0cmluZyB0byBlbnN1cmUgdGhlIHZhbHVlIGlzIHNldCBjb3JyZWN0bHkuIFdoaWxlXG4gICAgICAgICAgLy8gYnJvd3NlcnMgdHlwaWNhbGx5IGRvIHRoaXMgYXMgbmVjZXNzYXJ5LCBqc2RvbSBkb2Vzbid0LlxuICAgICAgICAgIG5vZGUudmFsdWUgPSAnJyArIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5vZGUudmFsdWUgIT09ICcnICsgdmFsdWUpIHtcbiAgICAgICAgLy8gQ2FzdCBgdmFsdWVgIHRvIGEgc3RyaW5nIHRvIGVuc3VyZSB0aGUgdmFsdWUgaXMgc2V0IGNvcnJlY3RseS4gV2hpbGVcbiAgICAgICAgLy8gYnJvd3NlcnMgdHlwaWNhbGx5IGRvIHRoaXMgYXMgbmVjZXNzYXJ5LCBqc2RvbSBkb2Vzbid0LlxuICAgICAgICBub2RlLnZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb3BzLnZhbHVlID09IG51bGwgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgLy8gSW4gQ2hyb21lLCBhc3NpZ25pbmcgZGVmYXVsdFZhbHVlIHRvIGNlcnRhaW4gaW5wdXQgdHlwZXMgdHJpZ2dlcnMgaW5wdXQgdmFsaWRhdGlvbi5cbiAgICAgICAgLy8gRm9yIG51bWJlciBpbnB1dHMsIHRoZSBkaXNwbGF5IHZhbHVlIGxvc2VzIHRyYWlsaW5nIGRlY2ltYWwgcG9pbnRzLiBGb3IgZW1haWwgaW5wdXRzLFxuICAgICAgICAvLyBDaHJvbWUgcmFpc2VzIFwiVGhlIHNwZWNpZmllZCB2YWx1ZSA8eD4gaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzc1wiLlxuICAgICAgICAvL1xuICAgICAgICAvLyBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZiB0aGUgZGVmYXVsdFZhbHVlIGhhcyBhY3R1YWxseSBjaGFuZ2VkLCBhdm9pZGluZyB0aGVzZSBwcm9ibGVtc1xuICAgICAgICAvLyB3aGVuIHRoZSB1c2VyIGlzIGlucHV0dGluZyB0ZXh0XG4gICAgICAgIC8vXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzI1M1xuICAgICAgICBpZiAobm9kZS5kZWZhdWx0VmFsdWUgIT09ICcnICsgcHJvcHMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgbm9kZS5kZWZhdWx0VmFsdWUgPSAnJyArIHByb3BzLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmNoZWNrZWQgPT0gbnVsbCAmJiBwcm9wcy5kZWZhdWx0Q2hlY2tlZCAhPSBudWxsKSB7XG4gICAgICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIXByb3BzLmRlZmF1bHRDaGVja2VkO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBwb3N0TW91bnRXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIHZhciBwcm9wcyA9IGluc3QuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gICAgLy8gVGhpcyBpcyBpbiBwb3N0TW91bnQgYmVjYXVzZSB3ZSBuZWVkIGFjY2VzcyB0byB0aGUgRE9NIG5vZGUsIHdoaWNoIGlzIG5vdFxuICAgIC8vIGF2YWlsYWJsZSB1bnRpbCBhZnRlciB0aGUgY29tcG9uZW50IGhhcyBtb3VudGVkLlxuICAgIHZhciBub2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCk7XG5cbiAgICAvLyBEZXRhY2ggdmFsdWUgZnJvbSBkZWZhdWx0VmFsdWUuIFdlIHdvbid0IGRvIGFueXRoaW5nIGlmIHdlJ3JlIHdvcmtpbmcgb25cbiAgICAvLyBzdWJtaXQgb3IgcmVzZXQgaW5wdXRzIGFzIHRob3NlIHZhbHVlcyAmIGRlZmF1bHRWYWx1ZXMgYXJlIGxpbmtlZC4gVGhleVxuICAgIC8vIGFyZSBub3QgcmVzZXRhYmxlIG5vZGVzIHNvIHRoaXMgb3BlcmF0aW9uIGRvZXNuJ3QgbWF0dGVyIGFuZCBhY3R1YWxseVxuICAgIC8vIHJlbW92ZXMgYnJvd3Nlci1kZWZhdWx0IHZhbHVlcyAoZWcgXCJTdWJtaXQgUXVlcnlcIikgd2hlbiBubyB2YWx1ZSBpc1xuICAgIC8vIHByb3ZpZGVkLlxuXG4gICAgc3dpdGNoIChwcm9wcy50eXBlKSB7XG4gICAgICBjYXNlICdzdWJtaXQnOlxuICAgICAgY2FzZSAncmVzZXQnOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbG9yJzpcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxuICAgICAgY2FzZSAnZGF0ZXRpbWUtbG9jYWwnOlxuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgY2FzZSAndGltZSc6XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgLy8gVGhpcyBmaXhlcyB0aGUgbm8tc2hvdyBpc3N1ZSBvbiBpT1MgU2FmYXJpIGFuZCBBbmRyb2lkIENocm9tZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy83MjMzXG4gICAgICAgIG5vZGUudmFsdWUgPSAnJztcbiAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGUuZGVmYXVsdFZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG5vZGUudmFsdWUgPSBub2RlLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBOb3JtYWxseSwgd2UnZCBqdXN0IGRvIGBub2RlLmNoZWNrZWQgPSBub2RlLmNoZWNrZWRgIHVwb24gaW5pdGlhbCBtb3VudCwgbGVzcyB0aGlzIGJ1Z1xuICAgIC8vIHRoaXMgaXMgbmVlZGVkIHRvIHdvcmsgYXJvdW5kIGEgY2hyb21lIGJ1ZyB3aGVyZSBzZXR0aW5nIGRlZmF1bHRDaGVja2VkXG4gICAgLy8gd2lsbCBzb21ldGltZXMgaW5mbHVlbmNlIHRoZSB2YWx1ZSBvZiBjaGVja2VkIChldmVuIGFmdGVyIGRldGFjaG1lbnQpLlxuICAgIC8vIFJlZmVyZW5jZTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NjA4NDE2XG4gICAgLy8gV2UgbmVlZCB0byB0ZW1wb3JhcmlseSB1bnNldCBuYW1lIHRvIGF2b2lkIGRpc3J1cHRpbmcgcmFkaW8gYnV0dG9uIGdyb3Vwcy5cbiAgICB2YXIgbmFtZSA9IG5vZGUubmFtZTtcbiAgICBpZiAobmFtZSAhPT0gJycpIHtcbiAgICAgIG5vZGUubmFtZSA9ICcnO1xuICAgIH1cbiAgICBub2RlLmRlZmF1bHRDaGVja2VkID0gIW5vZGUuZGVmYXVsdENoZWNrZWQ7XG4gICAgbm9kZS5kZWZhdWx0Q2hlY2tlZCA9ICFub2RlLmRlZmF1bHRDaGVja2VkO1xuICAgIGlmIChuYW1lICE9PSAnJykge1xuICAgICAgbm9kZS5uYW1lID0gbmFtZTtcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIF9oYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgdmFyIHByb3BzID0gdGhpcy5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgdmFyIHJldHVyblZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5leGVjdXRlT25DaGFuZ2UocHJvcHMsIGV2ZW50KTtcblxuICAvLyBIZXJlIHdlIHVzZSBhc2FwIHRvIHdhaXQgdW50aWwgYWxsIHVwZGF0ZXMgaGF2ZSBwcm9wYWdhdGVkLCB3aGljaFxuICAvLyBpcyBpbXBvcnRhbnQgd2hlbiB1c2luZyBjb250cm9sbGVkIGNvbXBvbmVudHMgd2l0aGluIGxheWVyczpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjk4XG4gIFJlYWN0VXBkYXRlcy5hc2FwKGZvcmNlVXBkYXRlSWZNb3VudGVkLCB0aGlzKTtcblxuICB2YXIgbmFtZSA9IHByb3BzLm5hbWU7XG4gIGlmIChwcm9wcy50eXBlID09PSAncmFkaW8nICYmIG5hbWUgIT0gbnVsbCkge1xuICAgIHZhciByb290Tm9kZSA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKHRoaXMpO1xuICAgIHZhciBxdWVyeVJvb3QgPSByb290Tm9kZTtcblxuICAgIHdoaWxlIChxdWVyeVJvb3QucGFyZW50Tm9kZSkge1xuICAgICAgcXVlcnlSb290ID0gcXVlcnlSb290LnBhcmVudE5vZGU7XG4gICAgfVxuXG4gICAgLy8gSWYgYHJvb3ROb2RlLmZvcm1gIHdhcyBub24tbnVsbCwgdGhlbiB3ZSBjb3VsZCB0cnkgYGZvcm0uZWxlbWVudHNgLFxuICAgIC8vIGJ1dCB0aGF0IHNvbWV0aW1lcyBiZWhhdmVzIHN0cmFuZ2VseSBpbiBJRTguIFdlIGNvdWxkIGFsc28gdHJ5IHVzaW5nXG4gICAgLy8gYGZvcm0uZ2V0RWxlbWVudHNCeU5hbWVgLCBidXQgdGhhdCB3aWxsIG9ubHkgcmV0dXJuIGRpcmVjdCBjaGlsZHJlblxuICAgIC8vIGFuZCB3b24ndCBpbmNsdWRlIGlucHV0cyB0aGF0IHVzZSB0aGUgSFRNTDUgYGZvcm09YCBhdHRyaWJ1dGUuIFNpbmNlXG4gICAgLy8gdGhlIGlucHV0IG1pZ2h0IG5vdCBldmVuIGJlIGluIGEgZm9ybSwgbGV0J3MganVzdCB1c2UgdGhlIGdsb2JhbFxuICAgIC8vIGBxdWVyeVNlbGVjdG9yQWxsYCB0byBlbnN1cmUgd2UgZG9uJ3QgbWlzcyBhbnl0aGluZy5cbiAgICB2YXIgZ3JvdXAgPSBxdWVyeVJvb3QucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0nICsgSlNPTi5zdHJpbmdpZnkoJycgKyBuYW1lKSArICddW3R5cGU9XCJyYWRpb1wiXScpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG90aGVyTm9kZSA9IGdyb3VwW2ldO1xuICAgICAgaWYgKG90aGVyTm9kZSA9PT0gcm9vdE5vZGUgfHwgb3RoZXJOb2RlLmZvcm0gIT09IHJvb3ROb2RlLmZvcm0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgaWYgcmFkaW8gYnV0dG9ucyByZW5kZXJlZCBieSBkaWZmZXJlbnQgY29waWVzIG9mIFJlYWN0XG4gICAgICAvLyBhbmQgdGhlIHNhbWUgbmFtZSBhcmUgcmVuZGVyZWQgaW50byB0aGUgc2FtZSBmb3JtIChzYW1lIGFzICMxOTM5KS5cbiAgICAgIC8vIFRoYXQncyBwcm9iYWJseSBva2F5OyB3ZSBkb24ndCBzdXBwb3J0IGl0IGp1c3QgYXMgd2UgZG9uJ3Qgc3VwcG9ydFxuICAgICAgLy8gbWl4aW5nIFJlYWN0IHJhZGlvIGJ1dHRvbnMgd2l0aCBub24tUmVhY3Qgb25lcy5cbiAgICAgIHZhciBvdGhlckluc3RhbmNlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldEluc3RhbmNlRnJvbU5vZGUob3RoZXJOb2RlKTtcbiAgICAgICFvdGhlckluc3RhbmNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0RE9NSW5wdXQ6IE1peGluZyBSZWFjdCBhbmQgbm9uLVJlYWN0IHJhZGlvIGlucHV0cyB3aXRoIHRoZSBzYW1lIGBuYW1lYCBpcyBub3Qgc3VwcG9ydGVkLicpIDogX3Byb2RJbnZhcmlhbnQoJzkwJykgOiB2b2lkIDA7XG4gICAgICAvLyBJZiB0aGlzIGlzIGEgY29udHJvbGxlZCByYWRpbyBidXR0b24gZ3JvdXAsIGZvcmNpbmcgdGhlIGlucHV0IHRoYXRcbiAgICAgIC8vIHdhcyBwcmV2aW91c2x5IGNoZWNrZWQgdG8gdXBkYXRlIHdpbGwgY2F1c2UgaXQgdG8gYmUgY29tZSByZS1jaGVja2VkXG4gICAgICAvLyBhcyBhcHByb3ByaWF0ZS5cbiAgICAgIFJlYWN0VXBkYXRlcy5hc2FwKGZvcmNlVXBkYXRlSWZNb3VudGVkLCBvdGhlckluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01JbnB1dDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NSW5wdXQuanNcbi8vIG1vZHVsZSBpZCA9IDE4MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///182\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar DOMPropertyOperations = __webpack_require__(/*! ./DOMPropertyOperations */ 91);\nvar LinkedValueUtils = __webpack_require__(/*! ./LinkedValueUtils */ 55);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : inst._wrapperState.initialValue,\n checked: checked != null ? checked : inst._wrapperState.initialChecked,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n if (\n // eslint-disable-next-line\n value != valueAsNumber ||\n // eslint-disable-next-line\n value == valueAsNumber && node.value != value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else if (node.value !== '' + value) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTgyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01JbnB1dC5qcz9kNTZiIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50JyksXG4gICAgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIERPTVByb3BlcnR5T3BlcmF0aW9ucyA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHlPcGVyYXRpb25zJyk7XG52YXIgTGlua2VkVmFsdWVVdGlscyA9IHJlcXVpcmUoJy4vTGlua2VkVmFsdWVVdGlscycpO1xudmFyIFJlYWN0RE9NQ29tcG9uZW50VHJlZSA9IHJlcXVpcmUoJy4vUmVhY3RET01Db21wb25lbnRUcmVlJyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcblxudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBkaWRXYXJuVmFsdWVMaW5rID0gZmFsc2U7XG52YXIgZGlkV2FybkNoZWNrZWRMaW5rID0gZmFsc2U7XG52YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gZmFsc2U7XG52YXIgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCA9IGZhbHNlO1xudmFyIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSBmYWxzZTtcbnZhciBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGZvcmNlVXBkYXRlSWZNb3VudGVkKCkge1xuICBpZiAodGhpcy5fcm9vdE5vZGVJRCkge1xuICAgIC8vIERPTSBjb21wb25lbnQgaXMgc3RpbGwgbW91bnRlZDsgdXBkYXRlXG4gICAgUmVhY3RET01JbnB1dC51cGRhdGVXcmFwcGVyKHRoaXMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQ29udHJvbGxlZChwcm9wcykge1xuICB2YXIgdXNlc0NoZWNrZWQgPSBwcm9wcy50eXBlID09PSAnY2hlY2tib3gnIHx8IHByb3BzLnR5cGUgPT09ICdyYWRpbyc7XG4gIHJldHVybiB1c2VzQ2hlY2tlZCA/IHByb3BzLmNoZWNrZWQgIT0gbnVsbCA6IHByb3BzLnZhbHVlICE9IG51bGw7XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBhbiA8aW5wdXQ+IGhvc3QgY29tcG9uZW50IHRoYXQgYWxsb3dzIHNldHRpbmcgdGhlc2Ugb3B0aW9uYWxcbiAqIHByb3BzOiBgY2hlY2tlZGAsIGB2YWx1ZWAsIGBkZWZhdWx0Q2hlY2tlZGAsIGFuZCBgZGVmYXVsdFZhbHVlYC5cbiAqXG4gKiBJZiBgY2hlY2tlZGAgb3IgYHZhbHVlYCBhcmUgbm90IHN1cHBsaWVkIChvciBudWxsL3VuZGVmaW5lZCksIHVzZXIgYWN0aW9uc1xuICogdGhhdCBhZmZlY3QgdGhlIGNoZWNrZWQgc3RhdGUgb3IgdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgdGhleSBhcmUgc3VwcGxpZWQgKGFuZCBub3QgbnVsbC91bmRlZmluZWQpLCB0aGUgcmVuZGVyZWQgZWxlbWVudCB3aWxsIG5vdFxuICogdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSBlbGVtZW50LiBJbnN0ZWFkLCB0aGUgcHJvcHMgbXVzdCBjaGFuZ2UgaW4gb3JkZXIgZm9yXG4gKiB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYXMgdW5jaGVja2VkIChvciBgZGVmYXVsdENoZWNrZWRgKVxuICogd2l0aCBhbiBlbXB0eSB2YWx1ZSAob3IgYGRlZmF1bHRWYWx1ZWApLlxuICpcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMi9XRC1odG1sNS0yMDEyMTAyNS90aGUtaW5wdXQtZWxlbWVudC5odG1sXG4gKi9cbnZhciBSZWFjdERPTUlucHV0ID0ge1xuICBnZXRIb3N0UHJvcHM6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcykge1xuICAgIHZhciB2YWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZ2V0VmFsdWUocHJvcHMpO1xuICAgIHZhciBjaGVja2VkID0gTGlua2VkVmFsdWVVdGlscy5nZXRDaGVja2VkKHByb3BzKTtcblxuICAgIHZhciBob3N0UHJvcHMgPSBfYXNzaWduKHtcbiAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBzZXQgLnR5cGUgYmVmb3JlIGFueSBvdGhlciBwcm9wZXJ0aWVzIChzZXR0aW5nIC52YWx1ZVxuICAgICAgLy8gYmVmb3JlIC50eXBlIG1lYW5zIC52YWx1ZSBpcyBsb3N0IGluIElFMTEgYW5kIGJlbG93KVxuICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgLy8gTWFrZSBzdXJlIHdlIHNldCAuc3RlcCBiZWZvcmUgLnZhbHVlIChzZXR0aW5nIC52YWx1ZSBiZWZvcmUgLnN0ZXBcbiAgICAgIC8vIG1lYW5zIC52YWx1ZSBpcyByb3VuZGVkIG9uIG1vdW50LCBiYXNlZCB1cG9uIHN0ZXAgcHJlY2lzaW9uKVxuICAgICAgc3RlcDogdW5kZWZpbmVkLFxuICAgICAgLy8gTWFrZSBzdXJlIHdlIHNldCAubWluICYgLm1heCBiZWZvcmUgLnZhbHVlICh0byBlbnN1cmUgcHJvcGVyIG9yZGVyXG4gICAgICAvLyBpbiBjb3JuZXIgY2FzZXMgc3VjaCBhcyBtaW4gb3IgbWF4IGRlcml2aW5nIGZyb20gdmFsdWUsIGUuZy4gSXNzdWUgIzcxNzApXG4gICAgICBtaW46IHVuZGVmaW5lZCxcbiAgICAgIG1heDogdW5kZWZpbmVkXG4gICAgfSwgcHJvcHMsIHtcbiAgICAgIGRlZmF1bHRDaGVja2VkOiB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIHZhbHVlOiB2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBpbnN0Ll93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlLFxuICAgICAgY2hlY2tlZDogY2hlY2tlZCAhPSBudWxsID8gY2hlY2tlZCA6IGluc3QuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCxcbiAgICAgIG9uQ2hhbmdlOiBpbnN0Ll93cmFwcGVyU3RhdGUub25DaGFuZ2VcbiAgICB9KTtcblxuICAgIHJldHVybiBob3N0UHJvcHM7XG4gIH0sXG5cbiAgbW91bnRXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCwgcHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgTGlua2VkVmFsdWVVdGlscy5jaGVja1Byb3BUeXBlcygnaW5wdXQnLCBwcm9wcywgaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyKTtcblxuICAgICAgdmFyIG93bmVyID0gaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuXG4gICAgICBpZiAocHJvcHMudmFsdWVMaW5rICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZUxpbmspIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdgdmFsdWVMaW5rYCBwcm9wIG9uIGBpbnB1dGAgaXMgZGVwcmVjYXRlZDsgc2V0IGB2YWx1ZWAgYW5kIGBvbkNoYW5nZWAgaW5zdGVhZC4nKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FyblZhbHVlTGluayA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuY2hlY2tlZExpbmsgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FybkNoZWNrZWRMaW5rKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnYGNoZWNrZWRMaW5rYCBwcm9wIG9uIGBpbnB1dGAgaXMgZGVwcmVjYXRlZDsgc2V0IGB2YWx1ZWAgYW5kIGBvbkNoYW5nZWAgaW5zdGVhZC4nKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FybkNoZWNrZWRMaW5rID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5jaGVja2VkICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdENoZWNrZWQgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJyVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIGNoZWNrZWQgYW5kIGRlZmF1bHRDaGVja2VkIHByb3BzLiAnICsgJ0lucHV0IGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkICcgKyAnKHNwZWNpZnkgZWl0aGVyIHRoZSBjaGVja2VkIHByb3AsIG9yIHRoZSBkZWZhdWx0Q2hlY2tlZCBwcm9wLCBidXQgbm90ICcgKyAnYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGFuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86ICcgKyAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1jb250cm9sbGVkLWNvbXBvbmVudHMnLCBvd25lciAmJiBvd25lci5nZXROYW1lKCkgfHwgJ0EgY29tcG9uZW50JywgcHJvcHMudHlwZSkgOiB2b2lkIDA7XG4gICAgICAgIGRpZFdhcm5DaGVja2VkRGVmYXVsdENoZWNrZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJyVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vZmIubWUvcmVhY3QtY29udHJvbGxlZC1jb21wb25lbnRzJywgb3duZXIgJiYgb3duZXIuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpIDogdm9pZCAwO1xuICAgICAgICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gICAgaW5zdC5fd3JhcHBlclN0YXRlID0ge1xuICAgICAgaW5pdGlhbENoZWNrZWQ6IHByb3BzLmNoZWNrZWQgIT0gbnVsbCA/IHByb3BzLmNoZWNrZWQgOiBwcm9wcy5kZWZhdWx0Q2hlY2tlZCxcbiAgICAgIGluaXRpYWxWYWx1ZTogcHJvcHMudmFsdWUgIT0gbnVsbCA/IHByb3BzLnZhbHVlIDogZGVmYXVsdFZhbHVlLFxuICAgICAgbGlzdGVuZXJzOiBudWxsLFxuICAgICAgb25DaGFuZ2U6IF9oYW5kbGVDaGFuZ2UuYmluZChpbnN0KSxcbiAgICAgIGNvbnRyb2xsZWQ6IGlzQ29udHJvbGxlZChwcm9wcylcbiAgICB9O1xuICB9LFxuXG4gIHVwZGF0ZVdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgdmFyIHByb3BzID0gaW5zdC5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIGNvbnRyb2xsZWQgPSBpc0NvbnRyb2xsZWQocHJvcHMpO1xuICAgICAgdmFyIG93bmVyID0gaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuXG4gICAgICBpZiAoIWluc3QuX3dyYXBwZXJTdGF0ZS5jb250cm9sbGVkICYmIGNvbnRyb2xsZWQgJiYgIWRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICclcyBpcyBjaGFuZ2luZyBhbiB1bmNvbnRyb2xsZWQgaW5wdXQgb2YgdHlwZSAlcyB0byBiZSBjb250cm9sbGVkLiAnICsgJ0lucHV0IGVsZW1lbnRzIHNob3VsZCBub3Qgc3dpdGNoIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWQgKG9yIHZpY2UgdmVyc2EpLiAnICsgJ0RlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50cycsIG93bmVyICYmIG93bmVyLmdldE5hbWUoKSB8fCAnQSBjb21wb25lbnQnLCBwcm9wcy50eXBlKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoaW5zdC5fd3JhcHBlclN0YXRlLmNvbnRyb2xsZWQgJiYgIWNvbnRyb2xsZWQgJiYgIWRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICclcyBpcyBjaGFuZ2luZyBhIGNvbnRyb2xsZWQgaW5wdXQgb2YgdHlwZSAlcyB0byBiZSB1bmNvbnRyb2xsZWQuICcgKyAnSW5wdXQgZWxlbWVudHMgc2hvdWxkIG5vdCBzd2l0Y2ggZnJvbSBjb250cm9sbGVkIHRvIHVuY29udHJvbGxlZCAob3IgdmljZSB2ZXJzYSkuICcgKyAnRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCAnICsgJ2VsZW1lbnQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgY29tcG9uZW50LiBNb3JlIGluZm86IGh0dHBzOi8vZmIubWUvcmVhY3QtY29udHJvbGxlZC1jb21wb25lbnRzJywgb3duZXIgJiYgb3duZXIuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpIDogdm9pZCAwO1xuICAgICAgICBkaWRXYXJuQ29udHJvbGxlZFRvVW5jb250cm9sbGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBTaG91bGRuJ3QgdGhpcyBiZSBnZXRDaGVja2VkKHByb3BzKT9cbiAgICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG4gICAgaWYgKGNoZWNrZWQgIT0gbnVsbCkge1xuICAgICAgRE9NUHJvcGVydHlPcGVyYXRpb25zLnNldFZhbHVlRm9yUHJvcGVydHkoUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCksICdjaGVja2VkJywgY2hlY2tlZCB8fCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdmFyIG5vZGUgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KTtcbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKHZhbHVlID09PSAwICYmIG5vZGUudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIG5vZGUudmFsdWUgPSAnMCc7XG4gICAgICAgIC8vIE5vdGU6IElFOSByZXBvcnRzIGEgbnVtYmVyIGlucHV0cyBhcyAndGV4dCcsIHNvIGNoZWNrIHByb3BzIGluc3RlYWQuXG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIC8vIFNpbXVsYXRlIGBpbnB1dC52YWx1ZUFzTnVtYmVyYC4gSUU5IGRvZXMgbm90IHN1cHBvcnQgaXRcbiAgICAgICAgdmFyIHZhbHVlQXNOdW1iZXIgPSBwYXJzZUZsb2F0KG5vZGUudmFsdWUsIDEwKSB8fCAwO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHZhbHVlICE9IHZhbHVlQXNOdW1iZXIgfHxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHZhbHVlID09IHZhbHVlQXNOdW1iZXIgJiYgbm9kZS52YWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgICAgIC8vIENhc3QgYHZhbHVlYCB0byBhIHN0cmluZyB0byBlbnN1cmUgdGhlIHZhbHVlIGlzIHNldCBjb3JyZWN0bHkuIFdoaWxlXG4gICAgICAgICAgLy8gYnJvd3NlcnMgdHlwaWNhbGx5IGRvIHRoaXMgYXMgbmVjZXNzYXJ5LCBqc2RvbSBkb2Vzbid0LlxuICAgICAgICAgIG5vZGUudmFsdWUgPSAnJyArIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5vZGUudmFsdWUgIT09ICcnICsgdmFsdWUpIHtcbiAgICAgICAgLy8gQ2FzdCBgdmFsdWVgIHRvIGEgc3RyaW5nIHRvIGVuc3VyZSB0aGUgdmFsdWUgaXMgc2V0IGNvcnJlY3RseS4gV2hpbGVcbiAgICAgICAgLy8gYnJvd3NlcnMgdHlwaWNhbGx5IGRvIHRoaXMgYXMgbmVjZXNzYXJ5LCBqc2RvbSBkb2Vzbid0LlxuICAgICAgICBub2RlLnZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb3BzLnZhbHVlID09IG51bGwgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgLy8gSW4gQ2hyb21lLCBhc3NpZ25pbmcgZGVmYXVsdFZhbHVlIHRvIGNlcnRhaW4gaW5wdXQgdHlwZXMgdHJpZ2dlcnMgaW5wdXQgdmFsaWRhdGlvbi5cbiAgICAgICAgLy8gRm9yIG51bWJlciBpbnB1dHMsIHRoZSBkaXNwbGF5IHZhbHVlIGxvc2VzIHRyYWlsaW5nIGRlY2ltYWwgcG9pbnRzLiBGb3IgZW1haWwgaW5wdXRzLFxuICAgICAgICAvLyBDaHJvbWUgcmFpc2VzIFwiVGhlIHNwZWNpZmllZCB2YWx1ZSA8eD4gaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzc1wiLlxuICAgICAgICAvL1xuICAgICAgICAvLyBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZiB0aGUgZGVmYXVsdFZhbHVlIGhhcyBhY3R1YWxseSBjaGFuZ2VkLCBhdm9pZGluZyB0aGVzZSBwcm9ibGVtc1xuICAgICAgICAvLyB3aGVuIHRoZSB1c2VyIGlzIGlucHV0dGluZyB0ZXh0XG4gICAgICAgIC8vXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzI1M1xuICAgICAgICBpZiAobm9kZS5kZWZhdWx0VmFsdWUgIT09ICcnICsgcHJvcHMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgbm9kZS5kZWZhdWx0VmFsdWUgPSAnJyArIHByb3BzLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmNoZWNrZWQgPT0gbnVsbCAmJiBwcm9wcy5kZWZhdWx0Q2hlY2tlZCAhPSBudWxsKSB7XG4gICAgICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIXByb3BzLmRlZmF1bHRDaGVja2VkO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBwb3N0TW91bnRXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIHZhciBwcm9wcyA9IGluc3QuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gICAgLy8gVGhpcyBpcyBpbiBwb3N0TW91bnQgYmVjYXVzZSB3ZSBuZWVkIGFjY2VzcyB0byB0aGUgRE9NIG5vZGUsIHdoaWNoIGlzIG5vdFxuICAgIC8vIGF2YWlsYWJsZSB1bnRpbCBhZnRlciB0aGUgY29tcG9uZW50IGhhcyBtb3VudGVkLlxuICAgIHZhciBub2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCk7XG5cbiAgICAvLyBEZXRhY2ggdmFsdWUgZnJvbSBkZWZhdWx0VmFsdWUuIFdlIHdvbid0IGRvIGFueXRoaW5nIGlmIHdlJ3JlIHdvcmtpbmcgb25cbiAgICAvLyBzdWJtaXQgb3IgcmVzZXQgaW5wdXRzIGFzIHRob3NlIHZhbHVlcyAmIGRlZmF1bHRWYWx1ZXMgYXJlIGxpbmtlZC4gVGhleVxuICAgIC8vIGFyZSBub3QgcmVzZXRhYmxlIG5vZGVzIHNvIHRoaXMgb3BlcmF0aW9uIGRvZXNuJ3QgbWF0dGVyIGFuZCBhY3R1YWxseVxuICAgIC8vIHJlbW92ZXMgYnJvd3Nlci1kZWZhdWx0IHZhbHVlcyAoZWcgXCJTdWJtaXQgUXVlcnlcIikgd2hlbiBubyB2YWx1ZSBpc1xuICAgIC8vIHByb3ZpZGVkLlxuXG4gICAgc3dpdGNoIChwcm9wcy50eXBlKSB7XG4gICAgICBjYXNlICdzdWJtaXQnOlxuICAgICAgY2FzZSAncmVzZXQnOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbG9yJzpcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxuICAgICAgY2FzZSAnZGF0ZXRpbWUtbG9jYWwnOlxuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgY2FzZSAndGltZSc6XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgLy8gVGhpcyBmaXhlcyB0aGUgbm8tc2hvdyBpc3N1ZSBvbiBpT1MgU2FmYXJpIGFuZCBBbmRyb2lkIENocm9tZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy83MjMzXG4gICAgICAgIG5vZGUudmFsdWUgPSAnJztcbiAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGUuZGVmYXVsdFZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG5vZGUudmFsdWUgPSBub2RlLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBOb3JtYWxseSwgd2UnZCBqdXN0IGRvIGBub2RlLmNoZWNrZWQgPSBub2RlLmNoZWNrZWRgIHVwb24gaW5pdGlhbCBtb3VudCwgbGVzcyB0aGlzIGJ1Z1xuICAgIC8vIHRoaXMgaXMgbmVlZGVkIHRvIHdvcmsgYXJvdW5kIGEgY2hyb21lIGJ1ZyB3aGVyZSBzZXR0aW5nIGRlZmF1bHRDaGVja2VkXG4gICAgLy8gd2lsbCBzb21ldGltZXMgaW5mbHVlbmNlIHRoZSB2YWx1ZSBvZiBjaGVja2VkIChldmVuIGFmdGVyIGRldGFjaG1lbnQpLlxuICAgIC8vIFJlZmVyZW5jZTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NjA4NDE2XG4gICAgLy8gV2UgbmVlZCB0byB0ZW1wb3JhcmlseSB1bnNldCBuYW1lIHRvIGF2b2lkIGRpc3J1cHRpbmcgcmFkaW8gYnV0dG9uIGdyb3Vwcy5cbiAgICB2YXIgbmFtZSA9IG5vZGUubmFtZTtcbiAgICBpZiAobmFtZSAhPT0gJycpIHtcbiAgICAgIG5vZGUubmFtZSA9ICcnO1xuICAgIH1cbiAgICBub2RlLmRlZmF1bHRDaGVja2VkID0gIW5vZGUuZGVmYXVsdENoZWNrZWQ7XG4gICAgbm9kZS5kZWZhdWx0Q2hlY2tlZCA9ICFub2RlLmRlZmF1bHRDaGVja2VkO1xuICAgIGlmIChuYW1lICE9PSAnJykge1xuICAgICAgbm9kZS5uYW1lID0gbmFtZTtcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIF9oYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgdmFyIHByb3BzID0gdGhpcy5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgdmFyIHJldHVyblZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5leGVjdXRlT25DaGFuZ2UocHJvcHMsIGV2ZW50KTtcblxuICAvLyBIZXJlIHdlIHVzZSBhc2FwIHRvIHdhaXQgdW50aWwgYWxsIHVwZGF0ZXMgaGF2ZSBwcm9wYWdhdGVkLCB3aGljaFxuICAvLyBpcyBpbXBvcnRhbnQgd2hlbiB1c2luZyBjb250cm9sbGVkIGNvbXBvbmVudHMgd2l0aGluIGxheWVyczpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjk4XG4gIFJlYWN0VXBkYXRlcy5hc2FwKGZvcmNlVXBkYXRlSWZNb3VudGVkLCB0aGlzKTtcblxuICB2YXIgbmFtZSA9IHByb3BzLm5hbWU7XG4gIGlmIChwcm9wcy50eXBlID09PSAncmFkaW8nICYmIG5hbWUgIT0gbnVsbCkge1xuICAgIHZhciByb290Tm9kZSA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKHRoaXMpO1xuICAgIHZhciBxdWVyeVJvb3QgPSByb290Tm9kZTtcblxuICAgIHdoaWxlIChxdWVyeVJvb3QucGFyZW50Tm9kZSkge1xuICAgICAgcXVlcnlSb290ID0gcXVlcnlSb290LnBhcmVudE5vZGU7XG4gICAgfVxuXG4gICAgLy8gSWYgYHJvb3ROb2RlLmZvcm1gIHdhcyBub24tbnVsbCwgdGhlbiB3ZSBjb3VsZCB0cnkgYGZvcm0uZWxlbWVudHNgLFxuICAgIC8vIGJ1dCB0aGF0IHNvbWV0aW1lcyBiZWhhdmVzIHN0cmFuZ2VseSBpbiBJRTguIFdlIGNvdWxkIGFsc28gdHJ5IHVzaW5nXG4gICAgLy8gYGZvcm0uZ2V0RWxlbWVudHNCeU5hbWVgLCBidXQgdGhhdCB3aWxsIG9ubHkgcmV0dXJuIGRpcmVjdCBjaGlsZHJlblxuICAgIC8vIGFuZCB3b24ndCBpbmNsdWRlIGlucHV0cyB0aGF0IHVzZSB0aGUgSFRNTDUgYGZvcm09YCBhdHRyaWJ1dGUuIFNpbmNlXG4gICAgLy8gdGhlIGlucHV0IG1pZ2h0IG5vdCBldmVuIGJlIGluIGEgZm9ybSwgbGV0J3MganVzdCB1c2UgdGhlIGdsb2JhbFxuICAgIC8vIGBxdWVyeVNlbGVjdG9yQWxsYCB0byBlbnN1cmUgd2UgZG9uJ3QgbWlzcyBhbnl0aGluZy5cbiAgICB2YXIgZ3JvdXAgPSBxdWVyeVJvb3QucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0nICsgSlNPTi5zdHJpbmdpZnkoJycgKyBuYW1lKSArICddW3R5cGU9XCJyYWRpb1wiXScpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG90aGVyTm9kZSA9IGdyb3VwW2ldO1xuICAgICAgaWYgKG90aGVyTm9kZSA9PT0gcm9vdE5vZGUgfHwgb3RoZXJOb2RlLmZvcm0gIT09IHJvb3ROb2RlLmZvcm0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgaWYgcmFkaW8gYnV0dG9ucyByZW5kZXJlZCBieSBkaWZmZXJlbnQgY29waWVzIG9mIFJlYWN0XG4gICAgICAvLyBhbmQgdGhlIHNhbWUgbmFtZSBhcmUgcmVuZGVyZWQgaW50byB0aGUgc2FtZSBmb3JtIChzYW1lIGFzICMxOTM5KS5cbiAgICAgIC8vIFRoYXQncyBwcm9iYWJseSBva2F5OyB3ZSBkb24ndCBzdXBwb3J0IGl0IGp1c3QgYXMgd2UgZG9uJ3Qgc3VwcG9ydFxuICAgICAgLy8gbWl4aW5nIFJlYWN0IHJhZGlvIGJ1dHRvbnMgd2l0aCBub24tUmVhY3Qgb25lcy5cbiAgICAgIHZhciBvdGhlckluc3RhbmNlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldEluc3RhbmNlRnJvbU5vZGUob3RoZXJOb2RlKTtcbiAgICAgICFvdGhlckluc3RhbmNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0RE9NSW5wdXQ6IE1peGluZyBSZWFjdCBhbmQgbm9uLVJlYWN0IHJhZGlvIGlucHV0cyB3aXRoIHRoZSBzYW1lIGBuYW1lYCBpcyBub3Qgc3VwcG9ydGVkLicpIDogX3Byb2RJbnZhcmlhbnQoJzkwJykgOiB2b2lkIDA7XG4gICAgICAvLyBJZiB0aGlzIGlzIGEgY29udHJvbGxlZCByYWRpbyBidXR0b24gZ3JvdXAsIGZvcmNpbmcgdGhlIGlucHV0IHRoYXRcbiAgICAgIC8vIHdhcyBwcmV2aW91c2x5IGNoZWNrZWQgdG8gdXBkYXRlIHdpbGwgY2F1c2UgaXQgdG8gYmUgY29tZSByZS1jaGVja2VkXG4gICAgICAvLyBhcyBhcHByb3ByaWF0ZS5cbiAgICAgIFJlYWN0VXBkYXRlcy5hc2FwKGZvcmNlVXBkYXRlSWZNb3VudGVkLCBvdGhlckluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01JbnB1dDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NSW5wdXQuanNcbi8vIG1vZHVsZSBpZCA9IDE4MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///182\n"); /***/ }), /* 183 */ @@ -2311,7 +2311,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar LinkedValueUtils = __webpack_require__(/*! ./LinkedValueUtils */ 54);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMTextarea.updateWrapper(this);\n }\n}\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTg3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01UZXh0YXJlYS5qcz83MzUyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50JyksXG4gICAgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIExpbmtlZFZhbHVlVXRpbHMgPSByZXF1aXJlKCcuL0xpbmtlZFZhbHVlVXRpbHMnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgZGlkV2FyblZhbHVlTGluayA9IGZhbHNlO1xudmFyIGRpZFdhcm5WYWxEZWZhdWx0VmFsID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGZvcmNlVXBkYXRlSWZNb3VudGVkKCkge1xuICBpZiAodGhpcy5fcm9vdE5vZGVJRCkge1xuICAgIC8vIERPTSBjb21wb25lbnQgaXMgc3RpbGwgbW91bnRlZDsgdXBkYXRlXG4gICAgUmVhY3RET01UZXh0YXJlYS51cGRhdGVXcmFwcGVyKHRoaXMpO1xuICB9XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBhIDx0ZXh0YXJlYT4gaG9zdCBjb21wb25lbnQgdGhhdCBhbGxvd3Mgc2V0dGluZyBgdmFsdWVgLCBhbmRcbiAqIGBkZWZhdWx0VmFsdWVgLiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgdHJhZGl0aW9uYWwgRE9NIEFQSSBiZWNhdXNlIHZhbHVlIGlzXG4gKiB1c3VhbGx5IHNldCBhcyBQQ0RBVEEgY2hpbGRyZW4uXG4gKlxuICogSWYgYHZhbHVlYCBpcyBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zIHRoYXQgYWZmZWN0IHRoZVxuICogdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgYHZhbHVlYCBpcyBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGxcbiAqIG5vdCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuIEluc3RlYWQsIHRoZSBgdmFsdWVgIHByb3AgbXVzdCBjaGFuZ2UgaW5cbiAqIG9yZGVyIGZvciB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgd2l0aCBhbiBlbXB0eSB2YWx1ZSwgdGhlIHByb3BcbiAqIGBkZWZhdWx0VmFsdWVgIGlmIHNwZWNpZmllZCwgb3IgdGhlIGNoaWxkcmVuIGNvbnRlbnQgKGRlcHJlY2F0ZWQpLlxuICovXG52YXIgUmVhY3RET01UZXh0YXJlYSA9IHtcbiAgZ2V0SG9zdFByb3BzOiBmdW5jdGlvbiAoaW5zdCwgcHJvcHMpIHtcbiAgICAhKHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID09IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2BkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LicpIDogX3Byb2RJbnZhcmlhbnQoJzkxJykgOiB2b2lkIDA7XG5cbiAgICAvLyBBbHdheXMgc2V0IGNoaWxkcmVuIHRvIHRoZSBzYW1lIHRoaW5nLiBJbiBJRTksIHRoZSBzZWxlY3Rpb24gcmFuZ2Ugd2lsbFxuICAgIC8vIGdldCByZXNldCBpZiBgdGV4dENvbnRlbnRgIGlzIG11dGF0ZWQuICBXZSBjb3VsZCBhZGQgYSBjaGVjayBpbiBzZXRUZXh0Q29udGVudFxuICAgIC8vIHRvIG9ubHkgc2V0IHRoZSB2YWx1ZSBpZi93aGVuIHRoZSB2YWx1ZSBkaWZmZXJzIGZyb20gdGhlIG5vZGUgdmFsdWUgKHdoaWNoIHdvdWxkXG4gICAgLy8gY29tcGxldGVseSBzb2x2ZSB0aGlzIElFOSBidWcpLCBidXQgU2ViYXN0aWFuK0JlbiBzZWVtZWQgdG8gbGlrZSB0aGlzIHNvbHV0aW9uLlxuICAgIC8vIFRoZSB2YWx1ZSBjYW4gYmUgYSBib29sZWFuIG9yIG9iamVjdCBzbyB0aGF0J3Mgd2h5IGl0J3MgZm9yY2VkIHRvIGJlIGEgc3RyaW5nLlxuICAgIHZhciBob3N0UHJvcHMgPSBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgY2hpbGRyZW46ICcnICsgaW5zdC5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSxcbiAgICAgIG9uQ2hhbmdlOiBpbnN0Ll93cmFwcGVyU3RhdGUub25DaGFuZ2VcbiAgICB9KTtcblxuICAgIHJldHVybiBob3N0UHJvcHM7XG4gIH0sXG5cbiAgbW91bnRXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCwgcHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgTGlua2VkVmFsdWVVdGlscy5jaGVja1Byb3BUeXBlcygndGV4dGFyZWEnLCBwcm9wcywgaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyKTtcbiAgICAgIGlmIChwcm9wcy52YWx1ZUxpbmsgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblZhbHVlTGluaykge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2B2YWx1ZUxpbmtgIHByb3Agb24gYHRleHRhcmVhYCBpcyBkZXByZWNhdGVkOyBzZXQgYHZhbHVlYCBhbmQgYG9uQ2hhbmdlYCBpbnN0ZWFkLicpIDogdm9pZCAwO1xuICAgICAgICBkaWRXYXJuVmFsdWVMaW5rID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuVmFsRGVmYXVsdFZhbCkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1RleHRhcmVhIGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkICcgKyAnKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCB0ZXh0YXJlYSAnICsgJ2FuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86ICcgKyAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1jb250cm9sbGVkLWNvbXBvbmVudHMnKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FyblZhbERlZmF1bHRWYWwgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB2YWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZ2V0VmFsdWUocHJvcHMpO1xuICAgIHZhciBpbml0aWFsVmFsdWUgPSB2YWx1ZTtcblxuICAgIC8vIE9ubHkgYm90aGVyIGZldGNoaW5nIGRlZmF1bHQgdmFsdWUgaWYgd2UncmUgZ29pbmcgdG8gdXNlIGl0XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHZhciBkZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gICAgICAvLyBUT0RPICh5dW5nc3RlcnMpOiBSZW1vdmUgc3VwcG9ydCBmb3IgY2hpbGRyZW4gY29udGVudCBpbiA8dGV4dGFyZWE+LlxuICAgICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gICAgICBpZiAoY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnVXNlIHRoZSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIGluc3RlYWQgb2Ygc2V0dGluZyAnICsgJ2NoaWxkcmVuIG9uIDx0ZXh0YXJlYT4uJykgOiB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgIShkZWZhdWx0VmFsdWUgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnSWYgeW91IHN1cHBseSBgZGVmYXVsdFZhbHVlYCBvbiBhIDx0ZXh0YXJlYT4sIGRvIG5vdCBwYXNzIGNoaWxkcmVuLicpIDogX3Byb2RJbnZhcmlhbnQoJzkyJykgOiB2b2lkIDA7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgICAgICEoY2hpbGRyZW4ubGVuZ3RoIDw9IDEpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJzx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC4nKSA6IF9wcm9kSW52YXJpYW50KCc5MycpIDogdm9pZCAwO1xuICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW5bMF07XG4gICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0VmFsdWUgPSAnJyArIGNoaWxkcmVuO1xuICAgICAgfVxuICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgaW5pdGlhbFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIGluc3QuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICAgIGluaXRpYWxWYWx1ZTogJycgKyBpbml0aWFsVmFsdWUsXG4gICAgICBsaXN0ZW5lcnM6IG51bGwsXG4gICAgICBvbkNoYW5nZTogX2hhbmRsZUNoYW5nZS5iaW5kKGluc3QpXG4gICAgfTtcbiAgfSxcblxuICB1cGRhdGVXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIHZhciBwcm9wcyA9IGluc3QuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gICAgdmFyIG5vZGUgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KTtcbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgLy8gQ2FzdCBgdmFsdWVgIHRvIGEgc3RyaW5nIHRvIGVuc3VyZSB0aGUgdmFsdWUgaXMgc2V0IGNvcnJlY3RseS4gV2hpbGVcbiAgICAgIC8vIGJyb3dzZXJzIHR5cGljYWxseSBkbyB0aGlzIGFzIG5lY2Vzc2FyeSwganNkb20gZG9lc24ndC5cbiAgICAgIHZhciBuZXdWYWx1ZSA9ICcnICsgdmFsdWU7XG5cbiAgICAgIC8vIFRvIGF2b2lkIHNpZGUgZWZmZWN0cyAoc3VjaCBhcyBsb3NpbmcgdGV4dCBzZWxlY3Rpb24pLCBvbmx5IHNldCB2YWx1ZSBpZiBjaGFuZ2VkXG4gICAgICBpZiAobmV3VmFsdWUgIT09IG5vZGUudmFsdWUpIHtcbiAgICAgICAgbm9kZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgbm9kZS5kZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gICAgfVxuICB9LFxuXG4gIHBvc3RNb3VudFdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgLy8gVGhpcyBpcyBpbiBwb3N0TW91bnQgYmVjYXVzZSB3ZSBuZWVkIGFjY2VzcyB0byB0aGUgRE9NIG5vZGUsIHdoaWNoIGlzIG5vdFxuICAgIC8vIGF2YWlsYWJsZSB1bnRpbCBhZnRlciB0aGUgY29tcG9uZW50IGhhcyBtb3VudGVkLlxuICAgIHZhciBub2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCk7XG4gICAgdmFyIHRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDtcblxuICAgIC8vIE9ubHkgc2V0IG5vZGUudmFsdWUgaWYgdGV4dENvbnRlbnQgaXMgZXF1YWwgdG8gdGhlIGV4cGVjdGVkXG4gICAgLy8gaW5pdGlhbCB2YWx1ZS4gSW4gSUUxMC9JRTExIHRoZXJlIGlzIGEgYnVnIHdoZXJlIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGVcbiAgICAvLyB3aWxsIHBvcHVsYXRlIHRleHRDb250ZW50IGFzIHdlbGwuXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTAxNTI1L1xuICAgIGlmICh0ZXh0Q29udGVudCA9PT0gaW5zdC5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSkge1xuICAgICAgbm9kZS52YWx1ZSA9IHRleHRDb250ZW50O1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gX2hhbmRsZUNoYW5nZShldmVudCkge1xuICB2YXIgcHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgdmFyIHJldHVyblZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5leGVjdXRlT25DaGFuZ2UocHJvcHMsIGV2ZW50KTtcbiAgUmVhY3RVcGRhdGVzLmFzYXAoZm9yY2VVcGRhdGVJZk1vdW50ZWQsIHRoaXMpO1xuICByZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01UZXh0YXJlYTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NVGV4dGFyZWEuanNcbi8vIG1vZHVsZSBpZCA9IDE4N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///187\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar LinkedValueUtils = __webpack_require__(/*! ./LinkedValueUtils */ 55);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMTextarea.updateWrapper(this);\n }\n}\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTg3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01UZXh0YXJlYS5qcz83MzUyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50JyksXG4gICAgX2Fzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcblxudmFyIExpbmtlZFZhbHVlVXRpbHMgPSByZXF1aXJlKCcuL0xpbmtlZFZhbHVlVXRpbHMnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgZGlkV2FyblZhbHVlTGluayA9IGZhbHNlO1xudmFyIGRpZFdhcm5WYWxEZWZhdWx0VmFsID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGZvcmNlVXBkYXRlSWZNb3VudGVkKCkge1xuICBpZiAodGhpcy5fcm9vdE5vZGVJRCkge1xuICAgIC8vIERPTSBjb21wb25lbnQgaXMgc3RpbGwgbW91bnRlZDsgdXBkYXRlXG4gICAgUmVhY3RET01UZXh0YXJlYS51cGRhdGVXcmFwcGVyKHRoaXMpO1xuICB9XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBhIDx0ZXh0YXJlYT4gaG9zdCBjb21wb25lbnQgdGhhdCBhbGxvd3Mgc2V0dGluZyBgdmFsdWVgLCBhbmRcbiAqIGBkZWZhdWx0VmFsdWVgLiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgdHJhZGl0aW9uYWwgRE9NIEFQSSBiZWNhdXNlIHZhbHVlIGlzXG4gKiB1c3VhbGx5IHNldCBhcyBQQ0RBVEEgY2hpbGRyZW4uXG4gKlxuICogSWYgYHZhbHVlYCBpcyBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zIHRoYXQgYWZmZWN0IHRoZVxuICogdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgYHZhbHVlYCBpcyBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGxcbiAqIG5vdCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuIEluc3RlYWQsIHRoZSBgdmFsdWVgIHByb3AgbXVzdCBjaGFuZ2UgaW5cbiAqIG9yZGVyIGZvciB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgd2l0aCBhbiBlbXB0eSB2YWx1ZSwgdGhlIHByb3BcbiAqIGBkZWZhdWx0VmFsdWVgIGlmIHNwZWNpZmllZCwgb3IgdGhlIGNoaWxkcmVuIGNvbnRlbnQgKGRlcHJlY2F0ZWQpLlxuICovXG52YXIgUmVhY3RET01UZXh0YXJlYSA9IHtcbiAgZ2V0SG9zdFByb3BzOiBmdW5jdGlvbiAoaW5zdCwgcHJvcHMpIHtcbiAgICAhKHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID09IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2BkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LicpIDogX3Byb2RJbnZhcmlhbnQoJzkxJykgOiB2b2lkIDA7XG5cbiAgICAvLyBBbHdheXMgc2V0IGNoaWxkcmVuIHRvIHRoZSBzYW1lIHRoaW5nLiBJbiBJRTksIHRoZSBzZWxlY3Rpb24gcmFuZ2Ugd2lsbFxuICAgIC8vIGdldCByZXNldCBpZiBgdGV4dENvbnRlbnRgIGlzIG11dGF0ZWQuICBXZSBjb3VsZCBhZGQgYSBjaGVjayBpbiBzZXRUZXh0Q29udGVudFxuICAgIC8vIHRvIG9ubHkgc2V0IHRoZSB2YWx1ZSBpZi93aGVuIHRoZSB2YWx1ZSBkaWZmZXJzIGZyb20gdGhlIG5vZGUgdmFsdWUgKHdoaWNoIHdvdWxkXG4gICAgLy8gY29tcGxldGVseSBzb2x2ZSB0aGlzIElFOSBidWcpLCBidXQgU2ViYXN0aWFuK0JlbiBzZWVtZWQgdG8gbGlrZSB0aGlzIHNvbHV0aW9uLlxuICAgIC8vIFRoZSB2YWx1ZSBjYW4gYmUgYSBib29sZWFuIG9yIG9iamVjdCBzbyB0aGF0J3Mgd2h5IGl0J3MgZm9yY2VkIHRvIGJlIGEgc3RyaW5nLlxuICAgIHZhciBob3N0UHJvcHMgPSBfYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgY2hpbGRyZW46ICcnICsgaW5zdC5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSxcbiAgICAgIG9uQ2hhbmdlOiBpbnN0Ll93cmFwcGVyU3RhdGUub25DaGFuZ2VcbiAgICB9KTtcblxuICAgIHJldHVybiBob3N0UHJvcHM7XG4gIH0sXG5cbiAgbW91bnRXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCwgcHJvcHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgTGlua2VkVmFsdWVVdGlscy5jaGVja1Byb3BUeXBlcygndGV4dGFyZWEnLCBwcm9wcywgaW5zdC5fY3VycmVudEVsZW1lbnQuX293bmVyKTtcbiAgICAgIGlmIChwcm9wcy52YWx1ZUxpbmsgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblZhbHVlTGluaykge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2B2YWx1ZUxpbmtgIHByb3Agb24gYHRleHRhcmVhYCBpcyBkZXByZWNhdGVkOyBzZXQgYHZhbHVlYCBhbmQgYG9uQ2hhbmdlYCBpbnN0ZWFkLicpIDogdm9pZCAwO1xuICAgICAgICBkaWRXYXJuVmFsdWVMaW5rID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuVmFsRGVmYXVsdFZhbCkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1RleHRhcmVhIGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkICcgKyAnKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCB0ZXh0YXJlYSAnICsgJ2FuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86ICcgKyAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1jb250cm9sbGVkLWNvbXBvbmVudHMnKSA6IHZvaWQgMDtcbiAgICAgICAgZGlkV2FyblZhbERlZmF1bHRWYWwgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB2YWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZ2V0VmFsdWUocHJvcHMpO1xuICAgIHZhciBpbml0aWFsVmFsdWUgPSB2YWx1ZTtcblxuICAgIC8vIE9ubHkgYm90aGVyIGZldGNoaW5nIGRlZmF1bHQgdmFsdWUgaWYgd2UncmUgZ29pbmcgdG8gdXNlIGl0XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHZhciBkZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gICAgICAvLyBUT0RPICh5dW5nc3RlcnMpOiBSZW1vdmUgc3VwcG9ydCBmb3IgY2hpbGRyZW4gY29udGVudCBpbiA8dGV4dGFyZWE+LlxuICAgICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gICAgICBpZiAoY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnVXNlIHRoZSBgZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIGluc3RlYWQgb2Ygc2V0dGluZyAnICsgJ2NoaWxkcmVuIG9uIDx0ZXh0YXJlYT4uJykgOiB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgIShkZWZhdWx0VmFsdWUgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnSWYgeW91IHN1cHBseSBgZGVmYXVsdFZhbHVlYCBvbiBhIDx0ZXh0YXJlYT4sIGRvIG5vdCBwYXNzIGNoaWxkcmVuLicpIDogX3Byb2RJbnZhcmlhbnQoJzkyJykgOiB2b2lkIDA7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgICAgICEoY2hpbGRyZW4ubGVuZ3RoIDw9IDEpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJzx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC4nKSA6IF9wcm9kSW52YXJpYW50KCc5MycpIDogdm9pZCAwO1xuICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW5bMF07XG4gICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0VmFsdWUgPSAnJyArIGNoaWxkcmVuO1xuICAgICAgfVxuICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgaW5pdGlhbFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIGluc3QuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICAgIGluaXRpYWxWYWx1ZTogJycgKyBpbml0aWFsVmFsdWUsXG4gICAgICBsaXN0ZW5lcnM6IG51bGwsXG4gICAgICBvbkNoYW5nZTogX2hhbmRsZUNoYW5nZS5iaW5kKGluc3QpXG4gICAgfTtcbiAgfSxcblxuICB1cGRhdGVXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIHZhciBwcm9wcyA9IGluc3QuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gICAgdmFyIG5vZGUgPSBSZWFjdERPTUNvbXBvbmVudFRyZWUuZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KTtcbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgLy8gQ2FzdCBgdmFsdWVgIHRvIGEgc3RyaW5nIHRvIGVuc3VyZSB0aGUgdmFsdWUgaXMgc2V0IGNvcnJlY3RseS4gV2hpbGVcbiAgICAgIC8vIGJyb3dzZXJzIHR5cGljYWxseSBkbyB0aGlzIGFzIG5lY2Vzc2FyeSwganNkb20gZG9lc24ndC5cbiAgICAgIHZhciBuZXdWYWx1ZSA9ICcnICsgdmFsdWU7XG5cbiAgICAgIC8vIFRvIGF2b2lkIHNpZGUgZWZmZWN0cyAoc3VjaCBhcyBsb3NpbmcgdGV4dCBzZWxlY3Rpb24pLCBvbmx5IHNldCB2YWx1ZSBpZiBjaGFuZ2VkXG4gICAgICBpZiAobmV3VmFsdWUgIT09IG5vZGUudmFsdWUpIHtcbiAgICAgICAgbm9kZS52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgbm9kZS5kZWZhdWx0VmFsdWUgPSBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gICAgfVxuICB9LFxuXG4gIHBvc3RNb3VudFdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgLy8gVGhpcyBpcyBpbiBwb3N0TW91bnQgYmVjYXVzZSB3ZSBuZWVkIGFjY2VzcyB0byB0aGUgRE9NIG5vZGUsIHdoaWNoIGlzIG5vdFxuICAgIC8vIGF2YWlsYWJsZSB1bnRpbCBhZnRlciB0aGUgY29tcG9uZW50IGhhcyBtb3VudGVkLlxuICAgIHZhciBub2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCk7XG4gICAgdmFyIHRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDtcblxuICAgIC8vIE9ubHkgc2V0IG5vZGUudmFsdWUgaWYgdGV4dENvbnRlbnQgaXMgZXF1YWwgdG8gdGhlIGV4cGVjdGVkXG4gICAgLy8gaW5pdGlhbCB2YWx1ZS4gSW4gSUUxMC9JRTExIHRoZXJlIGlzIGEgYnVnIHdoZXJlIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGVcbiAgICAvLyB3aWxsIHBvcHVsYXRlIHRleHRDb250ZW50IGFzIHdlbGwuXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvMTAxNTI1L1xuICAgIGlmICh0ZXh0Q29udGVudCA9PT0gaW5zdC5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSkge1xuICAgICAgbm9kZS52YWx1ZSA9IHRleHRDb250ZW50O1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gX2hhbmRsZUNoYW5nZShldmVudCkge1xuICB2YXIgcHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgdmFyIHJldHVyblZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5leGVjdXRlT25DaGFuZ2UocHJvcHMsIGV2ZW50KTtcbiAgUmVhY3RVcGRhdGVzLmFzYXAoZm9yY2VVcGRhdGVJZk1vdW50ZWQsIHRoaXMpO1xuICByZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01UZXh0YXJlYTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NVGV4dGFyZWEuanNcbi8vIG1vZHVsZSBpZCA9IDE4N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///187\n"); /***/ }), /* 188 */ @@ -2323,7 +2323,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactComponentEnvironment = __webpack_require__(/*! ./ReactComponentEnvironment */ 55);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\n\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\nvar ReactChildReconciler = __webpack_require__(/*! ./ReactChildReconciler */ 189);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar flattenChildren = __webpack_require__(/*! ./flattenChildren */ 196);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n },\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function (nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\n }\n\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function (nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\n },\n\n /**\n * Replaces any rendered children with a markup string.\n *\n * @param {string} nextMarkup String of markup.\n * @internal\n */\n updateMarkup: function (nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function (nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var nextChild = nextChildren[name];\n if (prevChild === nextChild) {\n updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function (child, afterNode, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n return makeMove(child, afterNode, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function (child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function (child, node) {\n return makeRemove(child, node);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, mountImage);\n },\n\n /**\n * Unmounts a rendered child.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @private\n */\n _unmountChild: function (child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n }\n};\n\nmodule.exports = ReactMultiChild;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTg4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RNdWx0aUNoaWxkLmpzP2UxZjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdEluc3RhbmNlTWFwID0gcmVxdWlyZSgnLi9SZWFjdEluc3RhbmNlTWFwJyk7XG52YXIgUmVhY3RJbnN0cnVtZW50YXRpb24gPSByZXF1aXJlKCcuL1JlYWN0SW5zdHJ1bWVudGF0aW9uJyk7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0UmVjb25jaWxlciA9IHJlcXVpcmUoJy4vUmVhY3RSZWNvbmNpbGVyJyk7XG52YXIgUmVhY3RDaGlsZFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0Q2hpbGRSZWNvbmNpbGVyJyk7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xudmFyIGZsYXR0ZW5DaGlsZHJlbiA9IHJlcXVpcmUoJy4vZmxhdHRlbkNoaWxkcmVuJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbi8qKlxuICogTWFrZSBhbiB1cGRhdGUgZm9yIG1hcmt1cCB0byBiZSByZW5kZXJlZCBhbmQgaW5zZXJ0ZWQgYXQgYSBzdXBwbGllZCBpbmRleC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIE1hcmt1cCB0aGF0IHJlbmRlcnMgaW50byBhbiBlbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IHRvSW5kZXggRGVzdGluYXRpb24gaW5kZXguXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBtYWtlSW5zZXJ0TWFya3VwKG1hcmt1cCwgYWZ0ZXJOb2RlLCB0b0luZGV4KSB7XG4gIC8vIE5PVEU6IE51bGwgdmFsdWVzIHJlZHVjZSBoaWRkZW4gY2xhc3Nlcy5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSU5TRVJUX01BUktVUCcsXG4gICAgY29udGVudDogbWFya3VwLFxuICAgIGZyb21JbmRleDogbnVsbCxcbiAgICBmcm9tTm9kZTogbnVsbCxcbiAgICB0b0luZGV4OiB0b0luZGV4LFxuICAgIGFmdGVyTm9kZTogYWZ0ZXJOb2RlXG4gIH07XG59XG5cbi8qKlxuICogTWFrZSBhbiB1cGRhdGUgZm9yIG1vdmluZyBhbiBleGlzdGluZyBlbGVtZW50IHRvIGFub3RoZXIgaW5kZXguXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBTb3VyY2UgaW5kZXggb2YgdGhlIGV4aXN0aW5nIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gdG9JbmRleCBEZXN0aW5hdGlvbiBpbmRleCBvZiB0aGUgZWxlbWVudC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIG1ha2VNb3ZlKGNoaWxkLCBhZnRlck5vZGUsIHRvSW5kZXgpIHtcbiAgLy8gTk9URTogTnVsbCB2YWx1ZXMgcmVkdWNlIGhpZGRlbiBjbGFzc2VzLlxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNT1ZFX0VYSVNUSU5HJyxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGZyb21JbmRleDogY2hpbGQuX21vdW50SW5kZXgsXG4gICAgZnJvbU5vZGU6IFJlYWN0UmVjb25jaWxlci5nZXRIb3N0Tm9kZShjaGlsZCksXG4gICAgdG9JbmRleDogdG9JbmRleCxcbiAgICBhZnRlck5vZGU6IGFmdGVyTm9kZVxuICB9O1xufVxuXG4vKipcbiAqIE1ha2UgYW4gdXBkYXRlIGZvciByZW1vdmluZyBhbiBlbGVtZW50IGF0IGFuIGluZGV4LlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggSW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gcmVtb3ZlLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbWFrZVJlbW92ZShjaGlsZCwgbm9kZSkge1xuICAvLyBOT1RFOiBOdWxsIHZhbHVlcyByZWR1Y2UgaGlkZGVuIGNsYXNzZXMuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1JFTU9WRV9OT0RFJyxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGZyb21JbmRleDogY2hpbGQuX21vdW50SW5kZXgsXG4gICAgZnJvbU5vZGU6IG5vZGUsXG4gICAgdG9JbmRleDogbnVsbCxcbiAgICBhZnRlck5vZGU6IG51bGxcbiAgfTtcbn1cblxuLyoqXG4gKiBNYWtlIGFuIHVwZGF0ZSBmb3Igc2V0dGluZyB0aGUgbWFya3VwIG9mIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIE1hcmt1cCB0aGF0IHJlbmRlcnMgaW50byBhbiBlbGVtZW50LlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbWFrZVNldE1hcmt1cChtYXJrdXApIHtcbiAgLy8gTk9URTogTnVsbCB2YWx1ZXMgcmVkdWNlIGhpZGRlbiBjbGFzc2VzLlxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdTRVRfTUFSS1VQJyxcbiAgICBjb250ZW50OiBtYXJrdXAsXG4gICAgZnJvbUluZGV4OiBudWxsLFxuICAgIGZyb21Ob2RlOiBudWxsLFxuICAgIHRvSW5kZXg6IG51bGwsXG4gICAgYWZ0ZXJOb2RlOiBudWxsXG4gIH07XG59XG5cbi8qKlxuICogTWFrZSBhbiB1cGRhdGUgZm9yIHNldHRpbmcgdGhlIHRleHQgY29udGVudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dENvbnRlbnQgVGV4dCBjb250ZW50IHRvIHNldC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIG1ha2VUZXh0Q29udGVudCh0ZXh0Q29udGVudCkge1xuICAvLyBOT1RFOiBOdWxsIHZhbHVlcyByZWR1Y2UgaGlkZGVuIGNsYXNzZXMuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RFWFRfQ09OVEVOVCcsXG4gICAgY29udGVudDogdGV4dENvbnRlbnQsXG4gICAgZnJvbUluZGV4OiBudWxsLFxuICAgIGZyb21Ob2RlOiBudWxsLFxuICAgIHRvSW5kZXg6IG51bGwsXG4gICAgYWZ0ZXJOb2RlOiBudWxsXG4gIH07XG59XG5cbi8qKlxuICogUHVzaCBhbiB1cGRhdGUsIGlmIGFueSwgb250byB0aGUgcXVldWUuIENyZWF0ZXMgYSBuZXcgcXVldWUgaWYgbm9uZSBpc1xuICogcGFzc2VkIGFuZCBhbHdheXMgcmV0dXJucyB0aGUgcXVldWUuIE11dGF0aXZlLlxuICovXG5mdW5jdGlvbiBlbnF1ZXVlKHF1ZXVlLCB1cGRhdGUpIHtcbiAgaWYgKHVwZGF0ZSkge1xuICAgIHF1ZXVlID0gcXVldWUgfHwgW107XG4gICAgcXVldWUucHVzaCh1cGRhdGUpO1xuICB9XG4gIHJldHVybiBxdWV1ZTtcbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgYW55IGVucXVldWVkIHVwZGF0ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc1F1ZXVlKGluc3QsIHVwZGF0ZVF1ZXVlKSB7XG4gIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQucHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyhpbnN0LCB1cGRhdGVRdWV1ZSk7XG59XG5cbnZhciBzZXRDaGlsZHJlbkZvckluc3RydW1lbnRhdGlvbiA9IGVtcHR5RnVuY3Rpb247XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgZ2V0RGVidWdJRCA9IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgaWYgKCFpbnN0Ll9kZWJ1Z0lEKSB7XG4gICAgICAvLyBDaGVjayBmb3IgQVJULWxpa2UgaW5zdGFuY2VzLiBUT0RPOiBUaGlzIGlzIHNpbGx5L2dyb3NzLlxuICAgICAgdmFyIGludGVybmFsO1xuICAgICAgaWYgKGludGVybmFsID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQoaW5zdCkpIHtcbiAgICAgICAgaW5zdCA9IGludGVybmFsO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5zdC5fZGVidWdJRDtcbiAgfTtcbiAgc2V0Q2hpbGRyZW5Gb3JJbnN0cnVtZW50YXRpb24gPSBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICB2YXIgZGVidWdJRCA9IGdldERlYnVnSUQodGhpcyk7XG4gICAgLy8gVE9ETzogUmVhY3QgTmF0aXZlIGVtcHR5IGNvbXBvbmVudHMgYXJlIGFsc28gbXVsdGljaGlsZC5cbiAgICAvLyBUaGlzIG1lYW5zIHRoZXkgc3RpbGwgZ2V0IGludG8gdGhpcyBtZXRob2QgYnV0IGRvbid0IGhhdmUgX2RlYnVnSUQuXG4gICAgaWYgKGRlYnVnSUQgIT09IDApIHtcbiAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vblNldENoaWxkcmVuKGRlYnVnSUQsIGNoaWxkcmVuID8gT2JqZWN0LmtleXMoY2hpbGRyZW4pLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbltrZXldLl9kZWJ1Z0lEO1xuICAgICAgfSkgOiBbXSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFJlYWN0TXVsdGlDaGlsZCBhcmUgY2FwYWJsZSBvZiByZWNvbmNpbGluZyBtdWx0aXBsZSBjaGlsZHJlbi5cbiAqXG4gKiBAY2xhc3MgUmVhY3RNdWx0aUNoaWxkXG4gKiBAaW50ZXJuYWxcbiAqL1xudmFyIFJlYWN0TXVsdGlDaGlsZCA9IHtcbiAgLyoqXG4gICAqIFByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGZvciBjb21wb25lbnRzIHRoYXQgbXVzdCByZWNvbmNpbGUgbXVsdGlwbGVcbiAgICogY2hpbGRyZW4uIFRoaXMgaXMgdXNlZCBieSBgUmVhY3RET01Db21wb25lbnRgIHRvIG1vdW50LCB1cGRhdGUsIGFuZFxuICAgKiB1bm1vdW50IGNoaWxkIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIEBsZW5kcyB7UmVhY3RNdWx0aUNoaWxkLnByb3RvdHlwZX1cbiAgICovXG4gIE1peGluOiB7XG4gICAgX3JlY29uY2lsZXJJbnN0YW50aWF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAobmVzdGVkQ2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgc2VsZkRlYnVnSUQgPSBnZXREZWJ1Z0lEKHRoaXMpO1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudEVsZW1lbnQpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50Ll9vd25lcjtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdENoaWxkUmVjb25jaWxlci5pbnN0YW50aWF0ZUNoaWxkcmVuKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCwgc2VsZkRlYnVnSUQpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdENoaWxkUmVjb25jaWxlci5pbnN0YW50aWF0ZUNoaWxkcmVuKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgfSxcblxuICAgIF9yZWNvbmNpbGVyVXBkYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChwcmV2Q2hpbGRyZW4sIG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzLCBtb3VudEltYWdlcywgcmVtb3ZlZE5vZGVzLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgICAgdmFyIG5leHRDaGlsZHJlbjtcbiAgICAgIHZhciBzZWxmRGVidWdJRCA9IDA7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBzZWxmRGVidWdJRCA9IGdldERlYnVnSUQodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50RWxlbWVudCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuICAgICAgICAgICAgbmV4dENoaWxkcmVuID0gZmxhdHRlbkNoaWxkcmVuKG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzLCBzZWxmRGVidWdJRCk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51cGRhdGVDaGlsZHJlbihwcmV2Q2hpbGRyZW4sIG5leHRDaGlsZHJlbiwgbW91bnRJbWFnZXMsIHJlbW92ZWROb2RlcywgdHJhbnNhY3Rpb24sIHRoaXMsIHRoaXMuX2hvc3RDb250YWluZXJJbmZvLCBjb250ZXh0LCBzZWxmRGVidWdJRCk7XG4gICAgICAgICAgcmV0dXJuIG5leHRDaGlsZHJlbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbmV4dENoaWxkcmVuID0gZmxhdHRlbkNoaWxkcmVuKG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzLCBzZWxmRGVidWdJRCk7XG4gICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51cGRhdGVDaGlsZHJlbihwcmV2Q2hpbGRyZW4sIG5leHRDaGlsZHJlbiwgbW91bnRJbWFnZXMsIHJlbW92ZWROb2RlcywgdHJhbnNhY3Rpb24sIHRoaXMsIHRoaXMuX2hvc3RDb250YWluZXJJbmZvLCBjb250ZXh0LCBzZWxmRGVidWdJRCk7XG4gICAgICByZXR1cm4gbmV4dENoaWxkcmVuO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBcIm1vdW50IGltYWdlXCIgZm9yIGVhY2ggb2YgdGhlIHN1cHBsaWVkIGNoaWxkcmVuLiBJbiB0aGUgY2FzZVxuICAgICAqIG9mIGBSZWFjdERPTUNvbXBvbmVudGAsIGEgbW91bnQgaW1hZ2UgaXMgYSBzdHJpbmcgb2YgbWFya3VwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXN0ZWRDaGlsZHJlbiBOZXN0ZWQgY2hpbGQgbWFwcy5cbiAgICAgKiBAcmV0dXJuIHthcnJheX0gQW4gYXJyYXkgb2YgbW91bnRlZCByZXByZXNlbnRhdGlvbnMuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgbW91bnRDaGlsZHJlbjogZnVuY3Rpb24gKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5fcmVjb25jaWxlckluc3RhbnRpYXRlQ2hpbGRyZW4obmVzdGVkQ2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBjaGlsZHJlbjtcblxuICAgICAgdmFyIG1vdW50SW1hZ2VzID0gW107XG4gICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgZm9yICh2YXIgbmFtZSBpbiBjaGlsZHJlbikge1xuICAgICAgICBpZiAoY2hpbGRyZW4uaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltuYW1lXTtcbiAgICAgICAgICB2YXIgc2VsZkRlYnVnSUQgPSAwO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBzZWxmRGVidWdJRCA9IGdldERlYnVnSUQodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBtb3VudEltYWdlID0gUmVhY3RSZWNvbmNpbGVyLm1vdW50Q29tcG9uZW50KGNoaWxkLCB0cmFuc2FjdGlvbiwgdGhpcywgdGhpcy5faG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQsIHNlbGZEZWJ1Z0lEKTtcbiAgICAgICAgICBjaGlsZC5fbW91bnRJbmRleCA9IGluZGV4Kys7XG4gICAgICAgICAgbW91bnRJbWFnZXMucHVzaChtb3VudEltYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBzZXRDaGlsZHJlbkZvckluc3RydW1lbnRhdGlvbi5jYWxsKHRoaXMsIGNoaWxkcmVuKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1vdW50SW1hZ2VzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBSZXBsYWNlcyBhbnkgcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBhIHRleHQgY29udGVudCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV4dENvbnRlbnQgU3RyaW5nIG9mIGNvbnRlbnQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgdXBkYXRlVGV4dENvbnRlbnQ6IGZ1bmN0aW9uIChuZXh0Q29udGVudCkge1xuICAgICAgdmFyIHByZXZDaGlsZHJlbiA9IHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW47XG4gICAgICAvLyBSZW1vdmUgYW55IHJlbmRlcmVkIGNoaWxkcmVuLlxuICAgICAgUmVhY3RDaGlsZFJlY29uY2lsZXIudW5tb3VudENoaWxkcmVuKHByZXZDaGlsZHJlbiwgZmFsc2UpO1xuICAgICAgZm9yICh2YXIgbmFtZSBpbiBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKHByZXZDaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICAgICFmYWxzZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICd1cGRhdGVUZXh0Q29udGVudCBjYWxsZWQgb24gbm9uLWVtcHR5IGNvbXBvbmVudC4nKSA6IF9wcm9kSW52YXJpYW50KCcxMTgnKSA6IHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gU2V0IG5ldyB0ZXh0IGNvbnRlbnQuXG4gICAgICB2YXIgdXBkYXRlcyA9IFttYWtlVGV4dENvbnRlbnQobmV4dENvbnRlbnQpXTtcbiAgICAgIHByb2Nlc3NRdWV1ZSh0aGlzLCB1cGRhdGVzKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYW55IHJlbmRlcmVkIGNoaWxkcmVuIHdpdGggYSBtYXJrdXAgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5leHRNYXJrdXAgU3RyaW5nIG9mIG1hcmt1cC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICB1cGRhdGVNYXJrdXA6IGZ1bmN0aW9uIChuZXh0TWFya3VwKSB7XG4gICAgICB2YXIgcHJldkNoaWxkcmVuID0gdGhpcy5fcmVuZGVyZWRDaGlsZHJlbjtcbiAgICAgIC8vIFJlbW92ZSBhbnkgcmVuZGVyZWQgY2hpbGRyZW4uXG4gICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51bm1vdW50Q2hpbGRyZW4ocHJldkNoaWxkcmVuLCBmYWxzZSk7XG4gICAgICBmb3IgKHZhciBuYW1lIGluIHByZXZDaGlsZHJlbikge1xuICAgICAgICBpZiAocHJldkNoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3VwZGF0ZVRleHRDb250ZW50IGNhbGxlZCBvbiBub24tZW1wdHkgY29tcG9uZW50LicpIDogX3Byb2RJbnZhcmlhbnQoJzExOCcpIDogdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdXBkYXRlcyA9IFttYWtlU2V0TWFya3VwKG5leHRNYXJrdXApXTtcbiAgICAgIHByb2Nlc3NRdWV1ZSh0aGlzLCB1cGRhdGVzKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBuZXcgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzIE5lc3RlZCBjaGlsZCBlbGVtZW50IG1hcHMuXG4gICAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAobmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgICAvLyBIb29rIHVzZWQgYnkgUmVhY3QgQVJUXG4gICAgICB0aGlzLl91cGRhdGVDaGlsZHJlbihuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cywgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzIE5lc3RlZCBjaGlsZCBlbGVtZW50IG1hcHMuXG4gICAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgICAqIEBmaW5hbFxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBfdXBkYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cywgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICAgIHZhciBwcmV2Q2hpbGRyZW4gPSB0aGlzLl9yZW5kZXJlZENoaWxkcmVuO1xuICAgICAgdmFyIHJlbW92ZWROb2RlcyA9IHt9O1xuICAgICAgdmFyIG1vdW50SW1hZ2VzID0gW107XG4gICAgICB2YXIgbmV4dENoaWxkcmVuID0gdGhpcy5fcmVjb25jaWxlclVwZGF0ZUNoaWxkcmVuKHByZXZDaGlsZHJlbiwgbmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMsIG1vdW50SW1hZ2VzLCByZW1vdmVkTm9kZXMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgIGlmICghbmV4dENoaWxkcmVuICYmICFwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIHVwZGF0ZXMgPSBudWxsO1xuICAgICAgdmFyIG5hbWU7XG4gICAgICAvLyBgbmV4dEluZGV4YCB3aWxsIGluY3JlbWVudCBmb3IgZWFjaCBjaGlsZCBpbiBgbmV4dENoaWxkcmVuYCwgYnV0XG4gICAgICAvLyBgbGFzdEluZGV4YCB3aWxsIGJlIHRoZSBsYXN0IGluZGV4IHZpc2l0ZWQgaW4gYHByZXZDaGlsZHJlbmAuXG4gICAgICB2YXIgbmV4dEluZGV4ID0gMDtcbiAgICAgIHZhciBsYXN0SW5kZXggPSAwO1xuICAgICAgLy8gYG5leHRNb3VudEluZGV4YCB3aWxsIGluY3JlbWVudCBmb3IgZWFjaCBuZXdseSBtb3VudGVkIGNoaWxkLlxuICAgICAgdmFyIG5leHRNb3VudEluZGV4ID0gMDtcbiAgICAgIHZhciBsYXN0UGxhY2VkTm9kZSA9IG51bGw7XG4gICAgICBmb3IgKG5hbWUgaW4gbmV4dENoaWxkcmVuKSB7XG4gICAgICAgIGlmICghbmV4dENoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByZXZDaGlsZCA9IHByZXZDaGlsZHJlbiAmJiBwcmV2Q2hpbGRyZW5bbmFtZV07XG4gICAgICAgIHZhciBuZXh0Q2hpbGQgPSBuZXh0Q2hpbGRyZW5bbmFtZV07XG4gICAgICAgIGlmIChwcmV2Q2hpbGQgPT09IG5leHRDaGlsZCkge1xuICAgICAgICAgIHVwZGF0ZXMgPSBlbnF1ZXVlKHVwZGF0ZXMsIHRoaXMubW92ZUNoaWxkKHByZXZDaGlsZCwgbGFzdFBsYWNlZE5vZGUsIG5leHRJbmRleCwgbGFzdEluZGV4KSk7XG4gICAgICAgICAgbGFzdEluZGV4ID0gTWF0aC5tYXgocHJldkNoaWxkLl9tb3VudEluZGV4LCBsYXN0SW5kZXgpO1xuICAgICAgICAgIHByZXZDaGlsZC5fbW91bnRJbmRleCA9IG5leHRJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAocHJldkNoaWxkKSB7XG4gICAgICAgICAgICAvLyBVcGRhdGUgYGxhc3RJbmRleGAgYmVmb3JlIGBfbW91bnRJbmRleGAgZ2V0cyB1bnNldCBieSB1bm1vdW50aW5nLlxuICAgICAgICAgICAgbGFzdEluZGV4ID0gTWF0aC5tYXgocHJldkNoaWxkLl9tb3VudEluZGV4LCBsYXN0SW5kZXgpO1xuICAgICAgICAgICAgLy8gVGhlIGByZW1vdmVkTm9kZXNgIGxvb3AgYmVsb3cgd2lsbCBhY3R1YWxseSByZW1vdmUgdGhlIGNoaWxkLlxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBUaGUgY2hpbGQgbXVzdCBiZSBpbnN0YW50aWF0ZWQgYmVmb3JlIGl0J3MgbW91bnRlZC5cbiAgICAgICAgICB1cGRhdGVzID0gZW5xdWV1ZSh1cGRhdGVzLCB0aGlzLl9tb3VudENoaWxkQXRJbmRleChuZXh0Q2hpbGQsIG1vdW50SW1hZ2VzW25leHRNb3VudEluZGV4XSwgbGFzdFBsYWNlZE5vZGUsIG5leHRJbmRleCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpKTtcbiAgICAgICAgICBuZXh0TW91bnRJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIG5leHRJbmRleCsrO1xuICAgICAgICBsYXN0UGxhY2VkTm9kZSA9IFJlYWN0UmVjb25jaWxlci5nZXRIb3N0Tm9kZShuZXh0Q2hpbGQpO1xuICAgICAgfVxuICAgICAgLy8gUmVtb3ZlIGNoaWxkcmVuIHRoYXQgYXJlIG5vIGxvbmdlciBwcmVzZW50LlxuICAgICAgZm9yIChuYW1lIGluIHJlbW92ZWROb2Rlcykge1xuICAgICAgICBpZiAocmVtb3ZlZE5vZGVzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgdXBkYXRlcyA9IGVucXVldWUodXBkYXRlcywgdGhpcy5fdW5tb3VudENoaWxkKHByZXZDaGlsZHJlbltuYW1lXSwgcmVtb3ZlZE5vZGVzW25hbWVdKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh1cGRhdGVzKSB7XG4gICAgICAgIHByb2Nlc3NRdWV1ZSh0aGlzLCB1cGRhdGVzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBuZXh0Q2hpbGRyZW47XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHNldENoaWxkcmVuRm9ySW5zdHJ1bWVudGF0aW9uLmNhbGwodGhpcywgbmV4dENoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVW5tb3VudHMgYWxsIHJlbmRlcmVkIGNoaWxkcmVuLiBUaGlzIHNob3VsZCBiZSB1c2VkIHRvIGNsZWFuIHVwIGNoaWxkcmVuXG4gICAgICogd2hlbiB0aGlzIGNvbXBvbmVudCBpcyB1bm1vdW50ZWQuIEl0IGRvZXMgbm90IGFjdHVhbGx5IHBlcmZvcm0gYW55XG4gICAgICogYmFja2VuZCBvcGVyYXRpb25zLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgdW5tb3VudENoaWxkcmVuOiBmdW5jdGlvbiAoc2FmZWx5KSB7XG4gICAgICB2YXIgcmVuZGVyZWRDaGlsZHJlbiA9IHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW47XG4gICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51bm1vdW50Q2hpbGRyZW4ocmVuZGVyZWRDaGlsZHJlbiwgc2FmZWx5KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBudWxsO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaWxkIGNvbXBvbmVudCB0byB0aGUgc3VwcGxpZWQgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBjaGlsZCBDb21wb25lbnQgdG8gbW92ZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdG9JbmRleCBEZXN0aW5hdGlvbiBpbmRleCBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGFzdEluZGV4IExhc3QgaW5kZXggdmlzaXRlZCBvZiB0aGUgc2libGluZ3Mgb2YgYGNoaWxkYC5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgbW92ZUNoaWxkOiBmdW5jdGlvbiAoY2hpbGQsIGFmdGVyTm9kZSwgdG9JbmRleCwgbGFzdEluZGV4KSB7XG4gICAgICAvLyBJZiB0aGUgaW5kZXggb2YgYGNoaWxkYCBpcyBsZXNzIHRoYW4gYGxhc3RJbmRleGAsIHRoZW4gaXQgbmVlZHMgdG9cbiAgICAgIC8vIGJlIG1vdmVkLiBPdGhlcndpc2UsIHdlIGRvIG5vdCBuZWVkIHRvIG1vdmUgaXQgYmVjYXVzZSBhIGNoaWxkIHdpbGwgYmVcbiAgICAgIC8vIGluc2VydGVkIG9yIG1vdmVkIGJlZm9yZSBgY2hpbGRgLlxuICAgICAgaWYgKGNoaWxkLl9tb3VudEluZGV4IDwgbGFzdEluZGV4KSB7XG4gICAgICAgIHJldHVybiBtYWtlTW92ZShjaGlsZCwgYWZ0ZXJOb2RlLCB0b0luZGV4KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IGNoaWxkIENvbXBvbmVudCB0byBjcmVhdGUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1vdW50SW1hZ2UgTWFya3VwIHRvIGluc2VydC5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgY3JlYXRlQ2hpbGQ6IGZ1bmN0aW9uIChjaGlsZCwgYWZ0ZXJOb2RlLCBtb3VudEltYWdlKSB7XG4gICAgICByZXR1cm4gbWFrZUluc2VydE1hcmt1cChtb3VudEltYWdlLCBhZnRlck5vZGUsIGNoaWxkLl9tb3VudEluZGV4KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IGNoaWxkIENoaWxkIHRvIHJlbW92ZS5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgcmVtb3ZlQ2hpbGQ6IGZ1bmN0aW9uIChjaGlsZCwgbm9kZSkge1xuICAgICAgcmV0dXJuIG1ha2VSZW1vdmUoY2hpbGQsIG5vZGUpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNb3VudHMgYSBjaGlsZCB3aXRoIHRoZSBzdXBwbGllZCBuYW1lLlxuICAgICAqXG4gICAgICogTk9URTogVGhpcyBpcyBwYXJ0IG9mIGB1cGRhdGVDaGlsZHJlbmAgYW5kIGlzIGhlcmUgZm9yIHJlYWRhYmlsaXR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY2hpbGQgQ29tcG9uZW50IHRvIG1vdW50LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgdGhlIGNoaWxkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGNoaWxkLlxuICAgICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9tb3VudENoaWxkQXRJbmRleDogZnVuY3Rpb24gKGNoaWxkLCBtb3VudEltYWdlLCBhZnRlck5vZGUsIGluZGV4LCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgICAgY2hpbGQuX21vdW50SW5kZXggPSBpbmRleDtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNoaWxkKGNoaWxkLCBhZnRlck5vZGUsIG1vdW50SW1hZ2UpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBVbm1vdW50cyBhIHJlbmRlcmVkIGNoaWxkLlxuICAgICAqXG4gICAgICogTk9URTogVGhpcyBpcyBwYXJ0IG9mIGB1cGRhdGVDaGlsZHJlbmAgYW5kIGlzIGhlcmUgZm9yIHJlYWRhYmlsaXR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY2hpbGQgQ29tcG9uZW50IHRvIHVubW91bnQuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfdW5tb3VudENoaWxkOiBmdW5jdGlvbiAoY2hpbGQsIG5vZGUpIHtcbiAgICAgIHZhciB1cGRhdGUgPSB0aGlzLnJlbW92ZUNoaWxkKGNoaWxkLCBub2RlKTtcbiAgICAgIGNoaWxkLl9tb3VudEluZGV4ID0gbnVsbDtcbiAgICAgIHJldHVybiB1cGRhdGU7XG4gICAgfVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0TXVsdGlDaGlsZDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0TXVsdGlDaGlsZC5qc1xuLy8gbW9kdWxlIGlkID0gMTg4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///188\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar ReactComponentEnvironment = __webpack_require__(/*! ./ReactComponentEnvironment */ 56);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\n\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\nvar ReactChildReconciler = __webpack_require__(/*! ./ReactChildReconciler */ 189);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar flattenChildren = __webpack_require__(/*! ./flattenChildren */ 196);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n },\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function (nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\n }\n\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function (nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\n },\n\n /**\n * Replaces any rendered children with a markup string.\n *\n * @param {string} nextMarkup String of markup.\n * @internal\n */\n updateMarkup: function (nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function (nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var nextChild = nextChildren[name];\n if (prevChild === nextChild) {\n updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function (child, afterNode, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n return makeMove(child, afterNode, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function (child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function (child, node) {\n return makeRemove(child, node);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, mountImage);\n },\n\n /**\n * Unmounts a rendered child.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @private\n */\n _unmountChild: function (child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n }\n};\n\nmodule.exports = ReactMultiChild;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTg4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RNdWx0aUNoaWxkLmpzP2UxZjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKTtcblxudmFyIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdEluc3RhbmNlTWFwID0gcmVxdWlyZSgnLi9SZWFjdEluc3RhbmNlTWFwJyk7XG52YXIgUmVhY3RJbnN0cnVtZW50YXRpb24gPSByZXF1aXJlKCcuL1JlYWN0SW5zdHJ1bWVudGF0aW9uJyk7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0UmVjb25jaWxlciA9IHJlcXVpcmUoJy4vUmVhY3RSZWNvbmNpbGVyJyk7XG52YXIgUmVhY3RDaGlsZFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0Q2hpbGRSZWNvbmNpbGVyJyk7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xudmFyIGZsYXR0ZW5DaGlsZHJlbiA9IHJlcXVpcmUoJy4vZmxhdHRlbkNoaWxkcmVuJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbi8qKlxuICogTWFrZSBhbiB1cGRhdGUgZm9yIG1hcmt1cCB0byBiZSByZW5kZXJlZCBhbmQgaW5zZXJ0ZWQgYXQgYSBzdXBwbGllZCBpbmRleC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIE1hcmt1cCB0aGF0IHJlbmRlcnMgaW50byBhbiBlbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IHRvSW5kZXggRGVzdGluYXRpb24gaW5kZXguXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBtYWtlSW5zZXJ0TWFya3VwKG1hcmt1cCwgYWZ0ZXJOb2RlLCB0b0luZGV4KSB7XG4gIC8vIE5PVEU6IE51bGwgdmFsdWVzIHJlZHVjZSBoaWRkZW4gY2xhc3Nlcy5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSU5TRVJUX01BUktVUCcsXG4gICAgY29udGVudDogbWFya3VwLFxuICAgIGZyb21JbmRleDogbnVsbCxcbiAgICBmcm9tTm9kZTogbnVsbCxcbiAgICB0b0luZGV4OiB0b0luZGV4LFxuICAgIGFmdGVyTm9kZTogYWZ0ZXJOb2RlXG4gIH07XG59XG5cbi8qKlxuICogTWFrZSBhbiB1cGRhdGUgZm9yIG1vdmluZyBhbiBleGlzdGluZyBlbGVtZW50IHRvIGFub3RoZXIgaW5kZXguXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBTb3VyY2UgaW5kZXggb2YgdGhlIGV4aXN0aW5nIGVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gdG9JbmRleCBEZXN0aW5hdGlvbiBpbmRleCBvZiB0aGUgZWxlbWVudC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIG1ha2VNb3ZlKGNoaWxkLCBhZnRlck5vZGUsIHRvSW5kZXgpIHtcbiAgLy8gTk9URTogTnVsbCB2YWx1ZXMgcmVkdWNlIGhpZGRlbiBjbGFzc2VzLlxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNT1ZFX0VYSVNUSU5HJyxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGZyb21JbmRleDogY2hpbGQuX21vdW50SW5kZXgsXG4gICAgZnJvbU5vZGU6IFJlYWN0UmVjb25jaWxlci5nZXRIb3N0Tm9kZShjaGlsZCksXG4gICAgdG9JbmRleDogdG9JbmRleCxcbiAgICBhZnRlck5vZGU6IGFmdGVyTm9kZVxuICB9O1xufVxuXG4vKipcbiAqIE1ha2UgYW4gdXBkYXRlIGZvciByZW1vdmluZyBhbiBlbGVtZW50IGF0IGFuIGluZGV4LlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggSW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gcmVtb3ZlLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbWFrZVJlbW92ZShjaGlsZCwgbm9kZSkge1xuICAvLyBOT1RFOiBOdWxsIHZhbHVlcyByZWR1Y2UgaGlkZGVuIGNsYXNzZXMuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1JFTU9WRV9OT0RFJyxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGZyb21JbmRleDogY2hpbGQuX21vdW50SW5kZXgsXG4gICAgZnJvbU5vZGU6IG5vZGUsXG4gICAgdG9JbmRleDogbnVsbCxcbiAgICBhZnRlck5vZGU6IG51bGxcbiAgfTtcbn1cblxuLyoqXG4gKiBNYWtlIGFuIHVwZGF0ZSBmb3Igc2V0dGluZyB0aGUgbWFya3VwIG9mIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIE1hcmt1cCB0aGF0IHJlbmRlcnMgaW50byBhbiBlbGVtZW50LlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbWFrZVNldE1hcmt1cChtYXJrdXApIHtcbiAgLy8gTk9URTogTnVsbCB2YWx1ZXMgcmVkdWNlIGhpZGRlbiBjbGFzc2VzLlxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdTRVRfTUFSS1VQJyxcbiAgICBjb250ZW50OiBtYXJrdXAsXG4gICAgZnJvbUluZGV4OiBudWxsLFxuICAgIGZyb21Ob2RlOiBudWxsLFxuICAgIHRvSW5kZXg6IG51bGwsXG4gICAgYWZ0ZXJOb2RlOiBudWxsXG4gIH07XG59XG5cbi8qKlxuICogTWFrZSBhbiB1cGRhdGUgZm9yIHNldHRpbmcgdGhlIHRleHQgY29udGVudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dENvbnRlbnQgVGV4dCBjb250ZW50IHRvIHNldC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIG1ha2VUZXh0Q29udGVudCh0ZXh0Q29udGVudCkge1xuICAvLyBOT1RFOiBOdWxsIHZhbHVlcyByZWR1Y2UgaGlkZGVuIGNsYXNzZXMuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RFWFRfQ09OVEVOVCcsXG4gICAgY29udGVudDogdGV4dENvbnRlbnQsXG4gICAgZnJvbUluZGV4OiBudWxsLFxuICAgIGZyb21Ob2RlOiBudWxsLFxuICAgIHRvSW5kZXg6IG51bGwsXG4gICAgYWZ0ZXJOb2RlOiBudWxsXG4gIH07XG59XG5cbi8qKlxuICogUHVzaCBhbiB1cGRhdGUsIGlmIGFueSwgb250byB0aGUgcXVldWUuIENyZWF0ZXMgYSBuZXcgcXVldWUgaWYgbm9uZSBpc1xuICogcGFzc2VkIGFuZCBhbHdheXMgcmV0dXJucyB0aGUgcXVldWUuIE11dGF0aXZlLlxuICovXG5mdW5jdGlvbiBlbnF1ZXVlKHF1ZXVlLCB1cGRhdGUpIHtcbiAgaWYgKHVwZGF0ZSkge1xuICAgIHF1ZXVlID0gcXVldWUgfHwgW107XG4gICAgcXVldWUucHVzaCh1cGRhdGUpO1xuICB9XG4gIHJldHVybiBxdWV1ZTtcbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgYW55IGVucXVldWVkIHVwZGF0ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc1F1ZXVlKGluc3QsIHVwZGF0ZVF1ZXVlKSB7XG4gIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQucHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyhpbnN0LCB1cGRhdGVRdWV1ZSk7XG59XG5cbnZhciBzZXRDaGlsZHJlbkZvckluc3RydW1lbnRhdGlvbiA9IGVtcHR5RnVuY3Rpb247XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgZ2V0RGVidWdJRCA9IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgaWYgKCFpbnN0Ll9kZWJ1Z0lEKSB7XG4gICAgICAvLyBDaGVjayBmb3IgQVJULWxpa2UgaW5zdGFuY2VzLiBUT0RPOiBUaGlzIGlzIHNpbGx5L2dyb3NzLlxuICAgICAgdmFyIGludGVybmFsO1xuICAgICAgaWYgKGludGVybmFsID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQoaW5zdCkpIHtcbiAgICAgICAgaW5zdCA9IGludGVybmFsO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5zdC5fZGVidWdJRDtcbiAgfTtcbiAgc2V0Q2hpbGRyZW5Gb3JJbnN0cnVtZW50YXRpb24gPSBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICB2YXIgZGVidWdJRCA9IGdldERlYnVnSUQodGhpcyk7XG4gICAgLy8gVE9ETzogUmVhY3QgTmF0aXZlIGVtcHR5IGNvbXBvbmVudHMgYXJlIGFsc28gbXVsdGljaGlsZC5cbiAgICAvLyBUaGlzIG1lYW5zIHRoZXkgc3RpbGwgZ2V0IGludG8gdGhpcyBtZXRob2QgYnV0IGRvbid0IGhhdmUgX2RlYnVnSUQuXG4gICAgaWYgKGRlYnVnSUQgIT09IDApIHtcbiAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vblNldENoaWxkcmVuKGRlYnVnSUQsIGNoaWxkcmVuID8gT2JqZWN0LmtleXMoY2hpbGRyZW4pLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbltrZXldLl9kZWJ1Z0lEO1xuICAgICAgfSkgOiBbXSk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFJlYWN0TXVsdGlDaGlsZCBhcmUgY2FwYWJsZSBvZiByZWNvbmNpbGluZyBtdWx0aXBsZSBjaGlsZHJlbi5cbiAqXG4gKiBAY2xhc3MgUmVhY3RNdWx0aUNoaWxkXG4gKiBAaW50ZXJuYWxcbiAqL1xudmFyIFJlYWN0TXVsdGlDaGlsZCA9IHtcbiAgLyoqXG4gICAqIFByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGZvciBjb21wb25lbnRzIHRoYXQgbXVzdCByZWNvbmNpbGUgbXVsdGlwbGVcbiAgICogY2hpbGRyZW4uIFRoaXMgaXMgdXNlZCBieSBgUmVhY3RET01Db21wb25lbnRgIHRvIG1vdW50LCB1cGRhdGUsIGFuZFxuICAgKiB1bm1vdW50IGNoaWxkIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIEBsZW5kcyB7UmVhY3RNdWx0aUNoaWxkLnByb3RvdHlwZX1cbiAgICovXG4gIE1peGluOiB7XG4gICAgX3JlY29uY2lsZXJJbnN0YW50aWF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAobmVzdGVkQ2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIgc2VsZkRlYnVnSUQgPSBnZXREZWJ1Z0lEKHRoaXMpO1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudEVsZW1lbnQpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50Ll9vd25lcjtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdENoaWxkUmVjb25jaWxlci5pbnN0YW50aWF0ZUNoaWxkcmVuKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCwgc2VsZkRlYnVnSUQpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWFjdENoaWxkUmVjb25jaWxlci5pbnN0YW50aWF0ZUNoaWxkcmVuKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgfSxcblxuICAgIF9yZWNvbmNpbGVyVXBkYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChwcmV2Q2hpbGRyZW4sIG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzLCBtb3VudEltYWdlcywgcmVtb3ZlZE5vZGVzLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgICAgdmFyIG5leHRDaGlsZHJlbjtcbiAgICAgIHZhciBzZWxmRGVidWdJRCA9IDA7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBzZWxmRGVidWdJRCA9IGdldERlYnVnSUQodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50RWxlbWVudCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQuX293bmVyO1xuICAgICAgICAgICAgbmV4dENoaWxkcmVuID0gZmxhdHRlbkNoaWxkcmVuKG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzLCBzZWxmRGVidWdJRCk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51cGRhdGVDaGlsZHJlbihwcmV2Q2hpbGRyZW4sIG5leHRDaGlsZHJlbiwgbW91bnRJbWFnZXMsIHJlbW92ZWROb2RlcywgdHJhbnNhY3Rpb24sIHRoaXMsIHRoaXMuX2hvc3RDb250YWluZXJJbmZvLCBjb250ZXh0LCBzZWxmRGVidWdJRCk7XG4gICAgICAgICAgcmV0dXJuIG5leHRDaGlsZHJlbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbmV4dENoaWxkcmVuID0gZmxhdHRlbkNoaWxkcmVuKG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzLCBzZWxmRGVidWdJRCk7XG4gICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51cGRhdGVDaGlsZHJlbihwcmV2Q2hpbGRyZW4sIG5leHRDaGlsZHJlbiwgbW91bnRJbWFnZXMsIHJlbW92ZWROb2RlcywgdHJhbnNhY3Rpb24sIHRoaXMsIHRoaXMuX2hvc3RDb250YWluZXJJbmZvLCBjb250ZXh0LCBzZWxmRGVidWdJRCk7XG4gICAgICByZXR1cm4gbmV4dENoaWxkcmVuO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBcIm1vdW50IGltYWdlXCIgZm9yIGVhY2ggb2YgdGhlIHN1cHBsaWVkIGNoaWxkcmVuLiBJbiB0aGUgY2FzZVxuICAgICAqIG9mIGBSZWFjdERPTUNvbXBvbmVudGAsIGEgbW91bnQgaW1hZ2UgaXMgYSBzdHJpbmcgb2YgbWFya3VwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXN0ZWRDaGlsZHJlbiBOZXN0ZWQgY2hpbGQgbWFwcy5cbiAgICAgKiBAcmV0dXJuIHthcnJheX0gQW4gYXJyYXkgb2YgbW91bnRlZCByZXByZXNlbnRhdGlvbnMuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgbW91bnRDaGlsZHJlbjogZnVuY3Rpb24gKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5fcmVjb25jaWxlckluc3RhbnRpYXRlQ2hpbGRyZW4obmVzdGVkQ2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBjaGlsZHJlbjtcblxuICAgICAgdmFyIG1vdW50SW1hZ2VzID0gW107XG4gICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgZm9yICh2YXIgbmFtZSBpbiBjaGlsZHJlbikge1xuICAgICAgICBpZiAoY2hpbGRyZW4uaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltuYW1lXTtcbiAgICAgICAgICB2YXIgc2VsZkRlYnVnSUQgPSAwO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBzZWxmRGVidWdJRCA9IGdldERlYnVnSUQodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBtb3VudEltYWdlID0gUmVhY3RSZWNvbmNpbGVyLm1vdW50Q29tcG9uZW50KGNoaWxkLCB0cmFuc2FjdGlvbiwgdGhpcywgdGhpcy5faG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQsIHNlbGZEZWJ1Z0lEKTtcbiAgICAgICAgICBjaGlsZC5fbW91bnRJbmRleCA9IGluZGV4Kys7XG4gICAgICAgICAgbW91bnRJbWFnZXMucHVzaChtb3VudEltYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBzZXRDaGlsZHJlbkZvckluc3RydW1lbnRhdGlvbi5jYWxsKHRoaXMsIGNoaWxkcmVuKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1vdW50SW1hZ2VzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBSZXBsYWNlcyBhbnkgcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBhIHRleHQgY29udGVudCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV4dENvbnRlbnQgU3RyaW5nIG9mIGNvbnRlbnQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgdXBkYXRlVGV4dENvbnRlbnQ6IGZ1bmN0aW9uIChuZXh0Q29udGVudCkge1xuICAgICAgdmFyIHByZXZDaGlsZHJlbiA9IHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW47XG4gICAgICAvLyBSZW1vdmUgYW55IHJlbmRlcmVkIGNoaWxkcmVuLlxuICAgICAgUmVhY3RDaGlsZFJlY29uY2lsZXIudW5tb3VudENoaWxkcmVuKHByZXZDaGlsZHJlbiwgZmFsc2UpO1xuICAgICAgZm9yICh2YXIgbmFtZSBpbiBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKHByZXZDaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICAgICFmYWxzZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICd1cGRhdGVUZXh0Q29udGVudCBjYWxsZWQgb24gbm9uLWVtcHR5IGNvbXBvbmVudC4nKSA6IF9wcm9kSW52YXJpYW50KCcxMTgnKSA6IHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gU2V0IG5ldyB0ZXh0IGNvbnRlbnQuXG4gICAgICB2YXIgdXBkYXRlcyA9IFttYWtlVGV4dENvbnRlbnQobmV4dENvbnRlbnQpXTtcbiAgICAgIHByb2Nlc3NRdWV1ZSh0aGlzLCB1cGRhdGVzKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYW55IHJlbmRlcmVkIGNoaWxkcmVuIHdpdGggYSBtYXJrdXAgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5leHRNYXJrdXAgU3RyaW5nIG9mIG1hcmt1cC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICB1cGRhdGVNYXJrdXA6IGZ1bmN0aW9uIChuZXh0TWFya3VwKSB7XG4gICAgICB2YXIgcHJldkNoaWxkcmVuID0gdGhpcy5fcmVuZGVyZWRDaGlsZHJlbjtcbiAgICAgIC8vIFJlbW92ZSBhbnkgcmVuZGVyZWQgY2hpbGRyZW4uXG4gICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51bm1vdW50Q2hpbGRyZW4ocHJldkNoaWxkcmVuLCBmYWxzZSk7XG4gICAgICBmb3IgKHZhciBuYW1lIGluIHByZXZDaGlsZHJlbikge1xuICAgICAgICBpZiAocHJldkNoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3VwZGF0ZVRleHRDb250ZW50IGNhbGxlZCBvbiBub24tZW1wdHkgY29tcG9uZW50LicpIDogX3Byb2RJbnZhcmlhbnQoJzExOCcpIDogdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdXBkYXRlcyA9IFttYWtlU2V0TWFya3VwKG5leHRNYXJrdXApXTtcbiAgICAgIHByb2Nlc3NRdWV1ZSh0aGlzLCB1cGRhdGVzKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBuZXcgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzIE5lc3RlZCBjaGlsZCBlbGVtZW50IG1hcHMuXG4gICAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAobmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgICAvLyBIb29rIHVzZWQgYnkgUmVhY3QgQVJUXG4gICAgICB0aGlzLl91cGRhdGVDaGlsZHJlbihuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cywgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHROZXN0ZWRDaGlsZHJlbkVsZW1lbnRzIE5lc3RlZCBjaGlsZCBlbGVtZW50IG1hcHMuXG4gICAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgICAqIEBmaW5hbFxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBfdXBkYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cywgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICAgIHZhciBwcmV2Q2hpbGRyZW4gPSB0aGlzLl9yZW5kZXJlZENoaWxkcmVuO1xuICAgICAgdmFyIHJlbW92ZWROb2RlcyA9IHt9O1xuICAgICAgdmFyIG1vdW50SW1hZ2VzID0gW107XG4gICAgICB2YXIgbmV4dENoaWxkcmVuID0gdGhpcy5fcmVjb25jaWxlclVwZGF0ZUNoaWxkcmVuKHByZXZDaGlsZHJlbiwgbmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMsIG1vdW50SW1hZ2VzLCByZW1vdmVkTm9kZXMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgIGlmICghbmV4dENoaWxkcmVuICYmICFwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIHVwZGF0ZXMgPSBudWxsO1xuICAgICAgdmFyIG5hbWU7XG4gICAgICAvLyBgbmV4dEluZGV4YCB3aWxsIGluY3JlbWVudCBmb3IgZWFjaCBjaGlsZCBpbiBgbmV4dENoaWxkcmVuYCwgYnV0XG4gICAgICAvLyBgbGFzdEluZGV4YCB3aWxsIGJlIHRoZSBsYXN0IGluZGV4IHZpc2l0ZWQgaW4gYHByZXZDaGlsZHJlbmAuXG4gICAgICB2YXIgbmV4dEluZGV4ID0gMDtcbiAgICAgIHZhciBsYXN0SW5kZXggPSAwO1xuICAgICAgLy8gYG5leHRNb3VudEluZGV4YCB3aWxsIGluY3JlbWVudCBmb3IgZWFjaCBuZXdseSBtb3VudGVkIGNoaWxkLlxuICAgICAgdmFyIG5leHRNb3VudEluZGV4ID0gMDtcbiAgICAgIHZhciBsYXN0UGxhY2VkTm9kZSA9IG51bGw7XG4gICAgICBmb3IgKG5hbWUgaW4gbmV4dENoaWxkcmVuKSB7XG4gICAgICAgIGlmICghbmV4dENoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByZXZDaGlsZCA9IHByZXZDaGlsZHJlbiAmJiBwcmV2Q2hpbGRyZW5bbmFtZV07XG4gICAgICAgIHZhciBuZXh0Q2hpbGQgPSBuZXh0Q2hpbGRyZW5bbmFtZV07XG4gICAgICAgIGlmIChwcmV2Q2hpbGQgPT09IG5leHRDaGlsZCkge1xuICAgICAgICAgIHVwZGF0ZXMgPSBlbnF1ZXVlKHVwZGF0ZXMsIHRoaXMubW92ZUNoaWxkKHByZXZDaGlsZCwgbGFzdFBsYWNlZE5vZGUsIG5leHRJbmRleCwgbGFzdEluZGV4KSk7XG4gICAgICAgICAgbGFzdEluZGV4ID0gTWF0aC5tYXgocHJldkNoaWxkLl9tb3VudEluZGV4LCBsYXN0SW5kZXgpO1xuICAgICAgICAgIHByZXZDaGlsZC5fbW91bnRJbmRleCA9IG5leHRJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAocHJldkNoaWxkKSB7XG4gICAgICAgICAgICAvLyBVcGRhdGUgYGxhc3RJbmRleGAgYmVmb3JlIGBfbW91bnRJbmRleGAgZ2V0cyB1bnNldCBieSB1bm1vdW50aW5nLlxuICAgICAgICAgICAgbGFzdEluZGV4ID0gTWF0aC5tYXgocHJldkNoaWxkLl9tb3VudEluZGV4LCBsYXN0SW5kZXgpO1xuICAgICAgICAgICAgLy8gVGhlIGByZW1vdmVkTm9kZXNgIGxvb3AgYmVsb3cgd2lsbCBhY3R1YWxseSByZW1vdmUgdGhlIGNoaWxkLlxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBUaGUgY2hpbGQgbXVzdCBiZSBpbnN0YW50aWF0ZWQgYmVmb3JlIGl0J3MgbW91bnRlZC5cbiAgICAgICAgICB1cGRhdGVzID0gZW5xdWV1ZSh1cGRhdGVzLCB0aGlzLl9tb3VudENoaWxkQXRJbmRleChuZXh0Q2hpbGQsIG1vdW50SW1hZ2VzW25leHRNb3VudEluZGV4XSwgbGFzdFBsYWNlZE5vZGUsIG5leHRJbmRleCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpKTtcbiAgICAgICAgICBuZXh0TW91bnRJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIG5leHRJbmRleCsrO1xuICAgICAgICBsYXN0UGxhY2VkTm9kZSA9IFJlYWN0UmVjb25jaWxlci5nZXRIb3N0Tm9kZShuZXh0Q2hpbGQpO1xuICAgICAgfVxuICAgICAgLy8gUmVtb3ZlIGNoaWxkcmVuIHRoYXQgYXJlIG5vIGxvbmdlciBwcmVzZW50LlxuICAgICAgZm9yIChuYW1lIGluIHJlbW92ZWROb2Rlcykge1xuICAgICAgICBpZiAocmVtb3ZlZE5vZGVzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgdXBkYXRlcyA9IGVucXVldWUodXBkYXRlcywgdGhpcy5fdW5tb3VudENoaWxkKHByZXZDaGlsZHJlbltuYW1lXSwgcmVtb3ZlZE5vZGVzW25hbWVdKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh1cGRhdGVzKSB7XG4gICAgICAgIHByb2Nlc3NRdWV1ZSh0aGlzLCB1cGRhdGVzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBuZXh0Q2hpbGRyZW47XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHNldENoaWxkcmVuRm9ySW5zdHJ1bWVudGF0aW9uLmNhbGwodGhpcywgbmV4dENoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVW5tb3VudHMgYWxsIHJlbmRlcmVkIGNoaWxkcmVuLiBUaGlzIHNob3VsZCBiZSB1c2VkIHRvIGNsZWFuIHVwIGNoaWxkcmVuXG4gICAgICogd2hlbiB0aGlzIGNvbXBvbmVudCBpcyB1bm1vdW50ZWQuIEl0IGRvZXMgbm90IGFjdHVhbGx5IHBlcmZvcm0gYW55XG4gICAgICogYmFja2VuZCBvcGVyYXRpb25zLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgdW5tb3VudENoaWxkcmVuOiBmdW5jdGlvbiAoc2FmZWx5KSB7XG4gICAgICB2YXIgcmVuZGVyZWRDaGlsZHJlbiA9IHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW47XG4gICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51bm1vdW50Q2hpbGRyZW4ocmVuZGVyZWRDaGlsZHJlbiwgc2FmZWx5KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBudWxsO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaWxkIGNvbXBvbmVudCB0byB0aGUgc3VwcGxpZWQgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBjaGlsZCBDb21wb25lbnQgdG8gbW92ZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdG9JbmRleCBEZXN0aW5hdGlvbiBpbmRleCBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGFzdEluZGV4IExhc3QgaW5kZXggdmlzaXRlZCBvZiB0aGUgc2libGluZ3Mgb2YgYGNoaWxkYC5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgbW92ZUNoaWxkOiBmdW5jdGlvbiAoY2hpbGQsIGFmdGVyTm9kZSwgdG9JbmRleCwgbGFzdEluZGV4KSB7XG4gICAgICAvLyBJZiB0aGUgaW5kZXggb2YgYGNoaWxkYCBpcyBsZXNzIHRoYW4gYGxhc3RJbmRleGAsIHRoZW4gaXQgbmVlZHMgdG9cbiAgICAgIC8vIGJlIG1vdmVkLiBPdGhlcndpc2UsIHdlIGRvIG5vdCBuZWVkIHRvIG1vdmUgaXQgYmVjYXVzZSBhIGNoaWxkIHdpbGwgYmVcbiAgICAgIC8vIGluc2VydGVkIG9yIG1vdmVkIGJlZm9yZSBgY2hpbGRgLlxuICAgICAgaWYgKGNoaWxkLl9tb3VudEluZGV4IDwgbGFzdEluZGV4KSB7XG4gICAgICAgIHJldHVybiBtYWtlTW92ZShjaGlsZCwgYWZ0ZXJOb2RlLCB0b0luZGV4KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IGNoaWxkIENvbXBvbmVudCB0byBjcmVhdGUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1vdW50SW1hZ2UgTWFya3VwIHRvIGluc2VydC5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgY3JlYXRlQ2hpbGQ6IGZ1bmN0aW9uIChjaGlsZCwgYWZ0ZXJOb2RlLCBtb3VudEltYWdlKSB7XG4gICAgICByZXR1cm4gbWFrZUluc2VydE1hcmt1cChtb3VudEltYWdlLCBhZnRlck5vZGUsIGNoaWxkLl9tb3VudEluZGV4KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IGNoaWxkIENoaWxkIHRvIHJlbW92ZS5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgcmVtb3ZlQ2hpbGQ6IGZ1bmN0aW9uIChjaGlsZCwgbm9kZSkge1xuICAgICAgcmV0dXJuIG1ha2VSZW1vdmUoY2hpbGQsIG5vZGUpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNb3VudHMgYSBjaGlsZCB3aXRoIHRoZSBzdXBwbGllZCBuYW1lLlxuICAgICAqXG4gICAgICogTk9URTogVGhpcyBpcyBwYXJ0IG9mIGB1cGRhdGVDaGlsZHJlbmAgYW5kIGlzIGhlcmUgZm9yIHJlYWRhYmlsaXR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY2hpbGQgQ29tcG9uZW50IHRvIG1vdW50LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgdGhlIGNoaWxkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGNoaWxkLlxuICAgICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9tb3VudENoaWxkQXRJbmRleDogZnVuY3Rpb24gKGNoaWxkLCBtb3VudEltYWdlLCBhZnRlck5vZGUsIGluZGV4LCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgICAgY2hpbGQuX21vdW50SW5kZXggPSBpbmRleDtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNoaWxkKGNoaWxkLCBhZnRlck5vZGUsIG1vdW50SW1hZ2UpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBVbm1vdW50cyBhIHJlbmRlcmVkIGNoaWxkLlxuICAgICAqXG4gICAgICogTk9URTogVGhpcyBpcyBwYXJ0IG9mIGB1cGRhdGVDaGlsZHJlbmAgYW5kIGlzIGhlcmUgZm9yIHJlYWRhYmlsaXR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY2hpbGQgQ29tcG9uZW50IHRvIHVubW91bnQuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfdW5tb3VudENoaWxkOiBmdW5jdGlvbiAoY2hpbGQsIG5vZGUpIHtcbiAgICAgIHZhciB1cGRhdGUgPSB0aGlzLnJlbW92ZUNoaWxkKGNoaWxkLCBub2RlKTtcbiAgICAgIGNoaWxkLl9tb3VudEluZGV4ID0gbnVsbDtcbiAgICAgIHJldHVybiB1cGRhdGU7XG4gICAgfVxuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0TXVsdGlDaGlsZDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0TXVsdGlDaGlsZC5qc1xuLy8gbW9kdWxlIGlkID0gMTg4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///188\n"); /***/ }), /* 189 */ @@ -2335,7 +2335,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\n\nvar instantiateReactComponent = __webpack_require__(/*! ./instantiateReactComponent */ 95);\nvar KeyEscapeUtils = __webpack_require__(/*! ./KeyEscapeUtils */ 58);\nvar shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ 57);\nvar traverseAllChildren = __webpack_require__(/*! ./traverseAllChildren */ 100);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\n }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildNodes Nested child maps.\n * @return {?object} A set of child instances.\n * @internal\n */\n instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID) // 0 in production and for roots\n {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\n return childInstances;\n },\n\n /**\n * Updates the rendered children and returns a new set of children.\n *\n * @param {?object} prevChildren Previously initialized set of children.\n * @param {?object} nextChildren Flat child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @return {?object} A new set of child instances.\n * @internal\n */\n updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID) // 0 in production and for roots\n {\n // We currently don't have a way to track moves here but if we use iterators\n // instead of for..in we can zip the iterators and check if an item has\n // moved.\n // TODO: If nothing has changed, return the prevChildren object so that we\n // can quickly bailout if nothing has changed.\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n nextChildren[name] = prevChild;\n } else {\n if (prevChild) {\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\n }\n }\n // Unmount children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n};\n\nmodule.exports = ReactChildReconciler;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTg5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RDaGlsZFJlY29uY2lsZXIuanM/Yzg2YSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RSZWNvbmNpbGVyID0gcmVxdWlyZSgnLi9SZWFjdFJlY29uY2lsZXInKTtcblxudmFyIGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQgPSByZXF1aXJlKCcuL2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQnKTtcbnZhciBLZXlFc2NhcGVVdGlscyA9IHJlcXVpcmUoJy4vS2V5RXNjYXBlVXRpbHMnKTtcbnZhciBzaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCA9IHJlcXVpcmUoJy4vc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQnKTtcbnZhciB0cmF2ZXJzZUFsbENoaWxkcmVuID0gcmVxdWlyZSgnLi90cmF2ZXJzZUFsbENoaWxkcmVuJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIFJlYWN0Q29tcG9uZW50VHJlZUhvb2s7XG5cbmlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICd0ZXN0Jykge1xuICAvLyBUZW1wb3JhcnkgaGFjay5cbiAgLy8gSW5saW5lIHJlcXVpcmVzIGRvbid0IHdvcmsgd2VsbCB3aXRoIEplc3Q6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzI0MFxuICAvLyBSZW1vdmUgdGhlIGlubGluZSByZXF1aXJlcyB3aGVuIHdlIGRvbid0IG5lZWQgdGhlbSBhbnltb3JlOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MTc4XG4gIFJlYWN0Q29tcG9uZW50VHJlZUhvb2sgPSByZXF1aXJlKCdyZWFjdC9saWIvUmVhY3RDb21wb25lbnRUcmVlSG9vaycpO1xufVxuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZUNoaWxkKGNoaWxkSW5zdGFuY2VzLCBjaGlsZCwgbmFtZSwgc2VsZkRlYnVnSUQpIHtcbiAgLy8gV2UgZm91bmQgYSBjb21wb25lbnQgaW5zdGFuY2UuXG4gIHZhciBrZXlVbmlxdWUgPSBjaGlsZEluc3RhbmNlc1tuYW1lXSA9PT0gdW5kZWZpbmVkO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmICghUmVhY3RDb21wb25lbnRUcmVlSG9vaykge1xuICAgICAgUmVhY3RDb21wb25lbnRUcmVlSG9vayA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdENvbXBvbmVudFRyZWVIb29rJyk7XG4gICAgfVxuICAgIGlmICgha2V5VW5pcXVlKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2ZsYXR0ZW5DaGlsZHJlbiguLi4pOiBFbmNvdW50ZXJlZCB0d28gY2hpbGRyZW4gd2l0aCB0aGUgc2FtZSBrZXksICcgKyAnYCVzYC4gQ2hpbGQga2V5cyBtdXN0IGJlIHVuaXF1ZTsgd2hlbiB0d28gY2hpbGRyZW4gc2hhcmUgYSBrZXksIG9ubHkgJyArICd0aGUgZmlyc3QgY2hpbGQgd2lsbCBiZSB1c2VkLiVzJywgS2V5RXNjYXBlVXRpbHMudW5lc2NhcGUobmFtZSksIFJlYWN0Q29tcG9uZW50VHJlZUhvb2suZ2V0U3RhY2tBZGRlbmR1bUJ5SUQoc2VsZkRlYnVnSUQpKSA6IHZvaWQgMDtcbiAgICB9XG4gIH1cbiAgaWYgKGNoaWxkICE9IG51bGwgJiYga2V5VW5pcXVlKSB7XG4gICAgY2hpbGRJbnN0YW5jZXNbbmFtZV0gPSBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50KGNoaWxkLCB0cnVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlYWN0Q2hpbGRSZWNvbmNpbGVyIHByb3ZpZGVzIGhlbHBlcnMgZm9yIGluaXRpYWxpemluZyBvciB1cGRhdGluZyBhIHNldCBvZlxuICogY2hpbGRyZW4uIEl0cyBvdXRwdXQgaXMgc3VpdGFibGUgZm9yIHBhc3NpbmcgaXQgb250byBSZWFjdE11bHRpQ2hpbGQgd2hpY2hcbiAqIGRvZXMgZGlmZmVkIHJlb3JkZXJpbmcgYW5kIGluc2VydGlvbi5cbiAqL1xudmFyIFJlYWN0Q2hpbGRSZWNvbmNpbGVyID0ge1xuICAvKipcbiAgICogR2VuZXJhdGVzIGEgXCJtb3VudCBpbWFnZVwiIGZvciBlYWNoIG9mIHRoZSBzdXBwbGllZCBjaGlsZHJlbi4gSW4gdGhlIGNhc2VcbiAgICogb2YgYFJlYWN0RE9NQ29tcG9uZW50YCwgYSBtb3VudCBpbWFnZSBpcyBhIHN0cmluZyBvZiBtYXJrdXAuXG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbmVzdGVkQ2hpbGROb2RlcyBOZXN0ZWQgY2hpbGQgbWFwcy5cbiAgICogQHJldHVybiB7P29iamVjdH0gQSBzZXQgb2YgY2hpbGQgaW5zdGFuY2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGluc3RhbnRpYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChuZXN0ZWRDaGlsZE5vZGVzLCB0cmFuc2FjdGlvbiwgY29udGV4dCwgc2VsZkRlYnVnSUQpIC8vIDAgaW4gcHJvZHVjdGlvbiBhbmQgZm9yIHJvb3RzXG4gIHtcbiAgICBpZiAobmVzdGVkQ2hpbGROb2RlcyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIGNoaWxkSW5zdGFuY2VzID0ge307XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdHJhdmVyc2VBbGxDaGlsZHJlbihuZXN0ZWRDaGlsZE5vZGVzLCBmdW5jdGlvbiAoY2hpbGRJbnN0cywgY2hpbGQsIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbnRpYXRlQ2hpbGQoY2hpbGRJbnN0cywgY2hpbGQsIG5hbWUsIHNlbGZEZWJ1Z0lEKTtcbiAgICAgIH0sIGNoaWxkSW5zdGFuY2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhdmVyc2VBbGxDaGlsZHJlbihuZXN0ZWRDaGlsZE5vZGVzLCBpbnN0YW50aWF0ZUNoaWxkLCBjaGlsZEluc3RhbmNlcyk7XG4gICAgfVxuICAgIHJldHVybiBjaGlsZEluc3RhbmNlcztcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcmVuZGVyZWQgY2hpbGRyZW4gYW5kIHJldHVybnMgYSBuZXcgc2V0IG9mIGNoaWxkcmVuLlxuICAgKlxuICAgKiBAcGFyYW0gez9vYmplY3R9IHByZXZDaGlsZHJlbiBQcmV2aW91c2x5IGluaXRpYWxpemVkIHNldCBvZiBjaGlsZHJlbi5cbiAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXh0Q2hpbGRyZW4gRmxhdCBjaGlsZCBlbGVtZW50IG1hcHMuXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHRcbiAgICogQHJldHVybiB7P29iamVjdH0gQSBuZXcgc2V0IG9mIGNoaWxkIGluc3RhbmNlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1cGRhdGVDaGlsZHJlbjogZnVuY3Rpb24gKHByZXZDaGlsZHJlbiwgbmV4dENoaWxkcmVuLCBtb3VudEltYWdlcywgcmVtb3ZlZE5vZGVzLCB0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQsIHNlbGZEZWJ1Z0lEKSAvLyAwIGluIHByb2R1Y3Rpb24gYW5kIGZvciByb290c1xuICB7XG4gICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGhhdmUgYSB3YXkgdG8gdHJhY2sgbW92ZXMgaGVyZSBidXQgaWYgd2UgdXNlIGl0ZXJhdG9yc1xuICAgIC8vIGluc3RlYWQgb2YgZm9yLi5pbiB3ZSBjYW4gemlwIHRoZSBpdGVyYXRvcnMgYW5kIGNoZWNrIGlmIGFuIGl0ZW0gaGFzXG4gICAgLy8gbW92ZWQuXG4gICAgLy8gVE9ETzogSWYgbm90aGluZyBoYXMgY2hhbmdlZCwgcmV0dXJuIHRoZSBwcmV2Q2hpbGRyZW4gb2JqZWN0IHNvIHRoYXQgd2VcbiAgICAvLyBjYW4gcXVpY2tseSBiYWlsb3V0IGlmIG5vdGhpbmcgaGFzIGNoYW5nZWQuXG4gICAgaWYgKCFuZXh0Q2hpbGRyZW4gJiYgIXByZXZDaGlsZHJlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgbmFtZTtcbiAgICB2YXIgcHJldkNoaWxkO1xuICAgIGZvciAobmFtZSBpbiBuZXh0Q2hpbGRyZW4pIHtcbiAgICAgIGlmICghbmV4dENoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcHJldkNoaWxkID0gcHJldkNoaWxkcmVuICYmIHByZXZDaGlsZHJlbltuYW1lXTtcbiAgICAgIHZhciBwcmV2RWxlbWVudCA9IHByZXZDaGlsZCAmJiBwcmV2Q2hpbGQuX2N1cnJlbnRFbGVtZW50O1xuICAgICAgdmFyIG5leHRFbGVtZW50ID0gbmV4dENoaWxkcmVuW25hbWVdO1xuICAgICAgaWYgKHByZXZDaGlsZCAhPSBudWxsICYmIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50KHByZXZFbGVtZW50LCBuZXh0RWxlbWVudCkpIHtcbiAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnJlY2VpdmVDb21wb25lbnQocHJldkNoaWxkLCBuZXh0RWxlbWVudCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgICAgICBuZXh0Q2hpbGRyZW5bbmFtZV0gPSBwcmV2Q2hpbGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJldkNoaWxkKSB7XG4gICAgICAgICAgcmVtb3ZlZE5vZGVzW25hbWVdID0gUmVhY3RSZWNvbmNpbGVyLmdldEhvc3ROb2RlKHByZXZDaGlsZCk7XG4gICAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocHJldkNoaWxkLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlIGNoaWxkIG11c3QgYmUgaW5zdGFudGlhdGVkIGJlZm9yZSBpdCdzIG1vdW50ZWQuXG4gICAgICAgIHZhciBuZXh0Q2hpbGRJbnN0YW5jZSA9IGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQobmV4dEVsZW1lbnQsIHRydWUpO1xuICAgICAgICBuZXh0Q2hpbGRyZW5bbmFtZV0gPSBuZXh0Q2hpbGRJbnN0YW5jZTtcbiAgICAgICAgLy8gQ3JlYXRpbmcgbW91bnQgaW1hZ2Ugbm93IGVuc3VyZXMgcmVmcyBhcmUgcmVzb2x2ZWQgaW4gcmlnaHQgb3JkZXJcbiAgICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MTAxIGZvciBleHBsYW5hdGlvbikuXG4gICAgICAgIHZhciBuZXh0Q2hpbGRNb3VudEltYWdlID0gUmVhY3RSZWNvbmNpbGVyLm1vdW50Q29tcG9uZW50KG5leHRDaGlsZEluc3RhbmNlLCB0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQsIHNlbGZEZWJ1Z0lEKTtcbiAgICAgICAgbW91bnRJbWFnZXMucHVzaChuZXh0Q2hpbGRNb3VudEltYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gVW5tb3VudCBjaGlsZHJlbiB0aGF0IGFyZSBubyBsb25nZXIgcHJlc2VudC5cbiAgICBmb3IgKG5hbWUgaW4gcHJldkNoaWxkcmVuKSB7XG4gICAgICBpZiAocHJldkNoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpICYmICEobmV4dENoaWxkcmVuICYmIG5leHRDaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkpIHtcbiAgICAgICAgcHJldkNoaWxkID0gcHJldkNoaWxkcmVuW25hbWVdO1xuICAgICAgICByZW1vdmVkTm9kZXNbbmFtZV0gPSBSZWFjdFJlY29uY2lsZXIuZ2V0SG9zdE5vZGUocHJldkNoaWxkKTtcbiAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocHJldkNoaWxkLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBVbm1vdW50cyBhbGwgcmVuZGVyZWQgY2hpbGRyZW4uIFRoaXMgc2hvdWxkIGJlIHVzZWQgdG8gY2xlYW4gdXAgY2hpbGRyZW5cbiAgICogd2hlbiB0aGlzIGNvbXBvbmVudCBpcyB1bm1vdW50ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gcmVuZGVyZWRDaGlsZHJlbiBQcmV2aW91c2x5IGluaXRpYWxpemVkIHNldCBvZiBjaGlsZHJlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bm1vdW50Q2hpbGRyZW46IGZ1bmN0aW9uIChyZW5kZXJlZENoaWxkcmVuLCBzYWZlbHkpIHtcbiAgICBmb3IgKHZhciBuYW1lIGluIHJlbmRlcmVkQ2hpbGRyZW4pIHtcbiAgICAgIGlmIChyZW5kZXJlZENoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgIHZhciByZW5kZXJlZENoaWxkID0gcmVuZGVyZWRDaGlsZHJlbltuYW1lXTtcbiAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocmVuZGVyZWRDaGlsZCwgc2FmZWx5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RDaGlsZFJlY29uY2lsZXI7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdENoaWxkUmVjb25jaWxlci5qc1xuLy8gbW9kdWxlIGlkID0gMTg5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///189\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\n\nvar instantiateReactComponent = __webpack_require__(/*! ./instantiateReactComponent */ 95);\nvar KeyEscapeUtils = __webpack_require__(/*! ./KeyEscapeUtils */ 59);\nvar shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ 58);\nvar traverseAllChildren = __webpack_require__(/*! ./traverseAllChildren */ 100);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\n }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildNodes Nested child maps.\n * @return {?object} A set of child instances.\n * @internal\n */\n instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID) // 0 in production and for roots\n {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\n return childInstances;\n },\n\n /**\n * Updates the rendered children and returns a new set of children.\n *\n * @param {?object} prevChildren Previously initialized set of children.\n * @param {?object} nextChildren Flat child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @return {?object} A new set of child instances.\n * @internal\n */\n updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID) // 0 in production and for roots\n {\n // We currently don't have a way to track moves here but if we use iterators\n // instead of for..in we can zip the iterators and check if an item has\n // moved.\n // TODO: If nothing has changed, return the prevChildren object so that we\n // can quickly bailout if nothing has changed.\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n nextChildren[name] = prevChild;\n } else {\n if (prevChild) {\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\n }\n }\n // Unmount children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n};\n\nmodule.exports = ReactChildReconciler;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTg5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RDaGlsZFJlY29uY2lsZXIuanM/Yzg2YSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RSZWNvbmNpbGVyID0gcmVxdWlyZSgnLi9SZWFjdFJlY29uY2lsZXInKTtcblxudmFyIGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQgPSByZXF1aXJlKCcuL2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQnKTtcbnZhciBLZXlFc2NhcGVVdGlscyA9IHJlcXVpcmUoJy4vS2V5RXNjYXBlVXRpbHMnKTtcbnZhciBzaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCA9IHJlcXVpcmUoJy4vc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQnKTtcbnZhciB0cmF2ZXJzZUFsbENoaWxkcmVuID0gcmVxdWlyZSgnLi90cmF2ZXJzZUFsbENoaWxkcmVuJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIFJlYWN0Q29tcG9uZW50VHJlZUhvb2s7XG5cbmlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICd0ZXN0Jykge1xuICAvLyBUZW1wb3JhcnkgaGFjay5cbiAgLy8gSW5saW5lIHJlcXVpcmVzIGRvbid0IHdvcmsgd2VsbCB3aXRoIEplc3Q6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzI0MFxuICAvLyBSZW1vdmUgdGhlIGlubGluZSByZXF1aXJlcyB3aGVuIHdlIGRvbid0IG5lZWQgdGhlbSBhbnltb3JlOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MTc4XG4gIFJlYWN0Q29tcG9uZW50VHJlZUhvb2sgPSByZXF1aXJlKCdyZWFjdC9saWIvUmVhY3RDb21wb25lbnRUcmVlSG9vaycpO1xufVxuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZUNoaWxkKGNoaWxkSW5zdGFuY2VzLCBjaGlsZCwgbmFtZSwgc2VsZkRlYnVnSUQpIHtcbiAgLy8gV2UgZm91bmQgYSBjb21wb25lbnQgaW5zdGFuY2UuXG4gIHZhciBrZXlVbmlxdWUgPSBjaGlsZEluc3RhbmNlc1tuYW1lXSA9PT0gdW5kZWZpbmVkO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmICghUmVhY3RDb21wb25lbnRUcmVlSG9vaykge1xuICAgICAgUmVhY3RDb21wb25lbnRUcmVlSG9vayA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdENvbXBvbmVudFRyZWVIb29rJyk7XG4gICAgfVxuICAgIGlmICgha2V5VW5pcXVlKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2ZsYXR0ZW5DaGlsZHJlbiguLi4pOiBFbmNvdW50ZXJlZCB0d28gY2hpbGRyZW4gd2l0aCB0aGUgc2FtZSBrZXksICcgKyAnYCVzYC4gQ2hpbGQga2V5cyBtdXN0IGJlIHVuaXF1ZTsgd2hlbiB0d28gY2hpbGRyZW4gc2hhcmUgYSBrZXksIG9ubHkgJyArICd0aGUgZmlyc3QgY2hpbGQgd2lsbCBiZSB1c2VkLiVzJywgS2V5RXNjYXBlVXRpbHMudW5lc2NhcGUobmFtZSksIFJlYWN0Q29tcG9uZW50VHJlZUhvb2suZ2V0U3RhY2tBZGRlbmR1bUJ5SUQoc2VsZkRlYnVnSUQpKSA6IHZvaWQgMDtcbiAgICB9XG4gIH1cbiAgaWYgKGNoaWxkICE9IG51bGwgJiYga2V5VW5pcXVlKSB7XG4gICAgY2hpbGRJbnN0YW5jZXNbbmFtZV0gPSBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50KGNoaWxkLCB0cnVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlYWN0Q2hpbGRSZWNvbmNpbGVyIHByb3ZpZGVzIGhlbHBlcnMgZm9yIGluaXRpYWxpemluZyBvciB1cGRhdGluZyBhIHNldCBvZlxuICogY2hpbGRyZW4uIEl0cyBvdXRwdXQgaXMgc3VpdGFibGUgZm9yIHBhc3NpbmcgaXQgb250byBSZWFjdE11bHRpQ2hpbGQgd2hpY2hcbiAqIGRvZXMgZGlmZmVkIHJlb3JkZXJpbmcgYW5kIGluc2VydGlvbi5cbiAqL1xudmFyIFJlYWN0Q2hpbGRSZWNvbmNpbGVyID0ge1xuICAvKipcbiAgICogR2VuZXJhdGVzIGEgXCJtb3VudCBpbWFnZVwiIGZvciBlYWNoIG9mIHRoZSBzdXBwbGllZCBjaGlsZHJlbi4gSW4gdGhlIGNhc2VcbiAgICogb2YgYFJlYWN0RE9NQ29tcG9uZW50YCwgYSBtb3VudCBpbWFnZSBpcyBhIHN0cmluZyBvZiBtYXJrdXAuXG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbmVzdGVkQ2hpbGROb2RlcyBOZXN0ZWQgY2hpbGQgbWFwcy5cbiAgICogQHJldHVybiB7P29iamVjdH0gQSBzZXQgb2YgY2hpbGQgaW5zdGFuY2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGluc3RhbnRpYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChuZXN0ZWRDaGlsZE5vZGVzLCB0cmFuc2FjdGlvbiwgY29udGV4dCwgc2VsZkRlYnVnSUQpIC8vIDAgaW4gcHJvZHVjdGlvbiBhbmQgZm9yIHJvb3RzXG4gIHtcbiAgICBpZiAobmVzdGVkQ2hpbGROb2RlcyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIGNoaWxkSW5zdGFuY2VzID0ge307XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdHJhdmVyc2VBbGxDaGlsZHJlbihuZXN0ZWRDaGlsZE5vZGVzLCBmdW5jdGlvbiAoY2hpbGRJbnN0cywgY2hpbGQsIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbnRpYXRlQ2hpbGQoY2hpbGRJbnN0cywgY2hpbGQsIG5hbWUsIHNlbGZEZWJ1Z0lEKTtcbiAgICAgIH0sIGNoaWxkSW5zdGFuY2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhdmVyc2VBbGxDaGlsZHJlbihuZXN0ZWRDaGlsZE5vZGVzLCBpbnN0YW50aWF0ZUNoaWxkLCBjaGlsZEluc3RhbmNlcyk7XG4gICAgfVxuICAgIHJldHVybiBjaGlsZEluc3RhbmNlcztcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcmVuZGVyZWQgY2hpbGRyZW4gYW5kIHJldHVybnMgYSBuZXcgc2V0IG9mIGNoaWxkcmVuLlxuICAgKlxuICAgKiBAcGFyYW0gez9vYmplY3R9IHByZXZDaGlsZHJlbiBQcmV2aW91c2x5IGluaXRpYWxpemVkIHNldCBvZiBjaGlsZHJlbi5cbiAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXh0Q2hpbGRyZW4gRmxhdCBjaGlsZCBlbGVtZW50IG1hcHMuXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHRcbiAgICogQHJldHVybiB7P29iamVjdH0gQSBuZXcgc2V0IG9mIGNoaWxkIGluc3RhbmNlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1cGRhdGVDaGlsZHJlbjogZnVuY3Rpb24gKHByZXZDaGlsZHJlbiwgbmV4dENoaWxkcmVuLCBtb3VudEltYWdlcywgcmVtb3ZlZE5vZGVzLCB0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQsIHNlbGZEZWJ1Z0lEKSAvLyAwIGluIHByb2R1Y3Rpb24gYW5kIGZvciByb290c1xuICB7XG4gICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGhhdmUgYSB3YXkgdG8gdHJhY2sgbW92ZXMgaGVyZSBidXQgaWYgd2UgdXNlIGl0ZXJhdG9yc1xuICAgIC8vIGluc3RlYWQgb2YgZm9yLi5pbiB3ZSBjYW4gemlwIHRoZSBpdGVyYXRvcnMgYW5kIGNoZWNrIGlmIGFuIGl0ZW0gaGFzXG4gICAgLy8gbW92ZWQuXG4gICAgLy8gVE9ETzogSWYgbm90aGluZyBoYXMgY2hhbmdlZCwgcmV0dXJuIHRoZSBwcmV2Q2hpbGRyZW4gb2JqZWN0IHNvIHRoYXQgd2VcbiAgICAvLyBjYW4gcXVpY2tseSBiYWlsb3V0IGlmIG5vdGhpbmcgaGFzIGNoYW5nZWQuXG4gICAgaWYgKCFuZXh0Q2hpbGRyZW4gJiYgIXByZXZDaGlsZHJlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgbmFtZTtcbiAgICB2YXIgcHJldkNoaWxkO1xuICAgIGZvciAobmFtZSBpbiBuZXh0Q2hpbGRyZW4pIHtcbiAgICAgIGlmICghbmV4dENoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcHJldkNoaWxkID0gcHJldkNoaWxkcmVuICYmIHByZXZDaGlsZHJlbltuYW1lXTtcbiAgICAgIHZhciBwcmV2RWxlbWVudCA9IHByZXZDaGlsZCAmJiBwcmV2Q2hpbGQuX2N1cnJlbnRFbGVtZW50O1xuICAgICAgdmFyIG5leHRFbGVtZW50ID0gbmV4dENoaWxkcmVuW25hbWVdO1xuICAgICAgaWYgKHByZXZDaGlsZCAhPSBudWxsICYmIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50KHByZXZFbGVtZW50LCBuZXh0RWxlbWVudCkpIHtcbiAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnJlY2VpdmVDb21wb25lbnQocHJldkNoaWxkLCBuZXh0RWxlbWVudCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgICAgICBuZXh0Q2hpbGRyZW5bbmFtZV0gPSBwcmV2Q2hpbGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJldkNoaWxkKSB7XG4gICAgICAgICAgcmVtb3ZlZE5vZGVzW25hbWVdID0gUmVhY3RSZWNvbmNpbGVyLmdldEhvc3ROb2RlKHByZXZDaGlsZCk7XG4gICAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocHJldkNoaWxkLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlIGNoaWxkIG11c3QgYmUgaW5zdGFudGlhdGVkIGJlZm9yZSBpdCdzIG1vdW50ZWQuXG4gICAgICAgIHZhciBuZXh0Q2hpbGRJbnN0YW5jZSA9IGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQobmV4dEVsZW1lbnQsIHRydWUpO1xuICAgICAgICBuZXh0Q2hpbGRyZW5bbmFtZV0gPSBuZXh0Q2hpbGRJbnN0YW5jZTtcbiAgICAgICAgLy8gQ3JlYXRpbmcgbW91bnQgaW1hZ2Ugbm93IGVuc3VyZXMgcmVmcyBhcmUgcmVzb2x2ZWQgaW4gcmlnaHQgb3JkZXJcbiAgICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MTAxIGZvciBleHBsYW5hdGlvbikuXG4gICAgICAgIHZhciBuZXh0Q2hpbGRNb3VudEltYWdlID0gUmVhY3RSZWNvbmNpbGVyLm1vdW50Q29tcG9uZW50KG5leHRDaGlsZEluc3RhbmNlLCB0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQsIHNlbGZEZWJ1Z0lEKTtcbiAgICAgICAgbW91bnRJbWFnZXMucHVzaChuZXh0Q2hpbGRNb3VudEltYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gVW5tb3VudCBjaGlsZHJlbiB0aGF0IGFyZSBubyBsb25nZXIgcHJlc2VudC5cbiAgICBmb3IgKG5hbWUgaW4gcHJldkNoaWxkcmVuKSB7XG4gICAgICBpZiAocHJldkNoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpICYmICEobmV4dENoaWxkcmVuICYmIG5leHRDaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkpIHtcbiAgICAgICAgcHJldkNoaWxkID0gcHJldkNoaWxkcmVuW25hbWVdO1xuICAgICAgICByZW1vdmVkTm9kZXNbbmFtZV0gPSBSZWFjdFJlY29uY2lsZXIuZ2V0SG9zdE5vZGUocHJldkNoaWxkKTtcbiAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocHJldkNoaWxkLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBVbm1vdW50cyBhbGwgcmVuZGVyZWQgY2hpbGRyZW4uIFRoaXMgc2hvdWxkIGJlIHVzZWQgdG8gY2xlYW4gdXAgY2hpbGRyZW5cbiAgICogd2hlbiB0aGlzIGNvbXBvbmVudCBpcyB1bm1vdW50ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gcmVuZGVyZWRDaGlsZHJlbiBQcmV2aW91c2x5IGluaXRpYWxpemVkIHNldCBvZiBjaGlsZHJlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bm1vdW50Q2hpbGRyZW46IGZ1bmN0aW9uIChyZW5kZXJlZENoaWxkcmVuLCBzYWZlbHkpIHtcbiAgICBmb3IgKHZhciBuYW1lIGluIHJlbmRlcmVkQ2hpbGRyZW4pIHtcbiAgICAgIGlmIChyZW5kZXJlZENoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgIHZhciByZW5kZXJlZENoaWxkID0gcmVuZGVyZWRDaGlsZHJlbltuYW1lXTtcbiAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocmVuZGVyZWRDaGlsZCwgc2FmZWx5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RDaGlsZFJlY29uY2lsZXI7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdENoaWxkUmVjb25jaWxlci5qc1xuLy8gbW9kdWxlIGlkID0gMTg5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///189\n"); /***/ }), /* 190 */ @@ -2347,7 +2347,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar React = __webpack_require__(/*! react/lib/React */ 20);\nvar ReactComponentEnvironment = __webpack_require__(/*! ./ReactComponentEnvironment */ 55);\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ 47);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactNodeTypes = __webpack_require__(/*! ./ReactNodeTypes */ 96);\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\n\nif (process.env.NODE_ENV !== 'production') {\n var checkReactTypeSpec = __webpack_require__(/*! ./checkReactTypeSpec */ 191);\n}\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ 97);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar shallowEqual = __webpack_require__(/*! fbjs/lib/shallowEqual */ 56);\nvar shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ 57);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n * - componentWillMount\n * - render\n * - [children's constructors]\n * - [children's componentWillMount and render]\n * - [children's componentDidMount]\n * - componentDidMount\n *\n * Update Phases:\n * - componentWillReceiveProps (only called if parent updated)\n * - shouldComponentUpdate\n * - componentWillUpdate\n * - render\n * - [children's constructors or receive props phases]\n * - componentDidUpdate\n *\n * - componentWillUnmount\n * - [children's componentWillUnmount]\n * - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponent = {\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function (element) {\n this._currentElement = element;\n this._rootNodeID = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw later in _renderValidatedComponent, but add an early\n // warning now to help debugging\n if (inst.render == null) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", componentName, componentName) : void 0;\n }\n\n // These should be set up in the constructor, but as a convenience for\n // simpler class abstractions, we set them up after the fact.\n inst.props = publicProps;\n inst.context = publicContext;\n inst.refs = emptyObject;\n inst.updater = updateQueue;\n\n this._instance = inst;\n\n // Store a reference from the instance back to the internal representation\n ReactInstanceMap.set(inst, this);\n\n if (process.env.NODE_ENV !== 'production') {\n // Since plain JS classes are defined without any special initialization\n // logic, we can not catch common errors early. Therefore, we have to\n // catch them here, at initialization time, instead.\n process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingStateQueue` without triggering a re-render.\n if (this._pendingStateQueue) {\n inst.state = this._processPendingState(inst.props, inst.context);\n }\n }\n\n // If not a stateless component, we now render\n if (renderedElement === undefined) {\n renderedElement = this._renderValidatedComponent();\n }\n\n var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\n\n // Reset pending fields\n // Even if this component is scheduled for another update in ReactUpdates,\n // it would still be ignored because these fields are reset.\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n this._pendingCallbacks = null;\n this._pendingElement = null;\n\n // These fields do not really need to be reset since this object is no\n // longer accessible.\n this._context = null;\n this._rootNodeID = 0;\n this._topLevelWrapper = null;\n\n // Delete the reference from the instance to this internal representation\n // which allow the internals to be properly cleaned up even if the user\n // leaks a reference to the public instance.\n ReactInstanceMap.remove(inst);\n\n // Some existing components rely on inst.props even after they've been\n // destroyed (in event handlers).\n // TODO: inst.props = null;\n // TODO: inst.state = null;\n // TODO: inst.context = null;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _maskContext: function (context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function (context) {\n var maskedContext = this._maskContext(context);\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function (currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext;\n\n if (inst.getChildContext) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\n if (childContext) {\n !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n if (process.env.NODE_ENV !== 'production') {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n }\n },\n\n receiveComponent: function (nextElement, transaction, nextContext) {\n var prevElement = this._currentElement;\n var prevContext = this._context;\n\n this._pendingElement = null;\n\n this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n },\n\n /**\n * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\n }\n },\n\n /**\n * Perform an update to a mounted component. The componentWillReceiveProps and\n * shouldComponentUpdate methods are called, then (assuming the update isn't\n * skipped) the remaining update lifecycle methods are called and the DOM\n * representation is updated.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevParentElement\n * @param {ReactElement} nextParentElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\n // An update here will schedule an update but immediately set\n // _pendingStateQueue which will ensure that any state updates gets\n // immediately reconciled instead of waiting for the next batch.\n if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state but we shortcut the rest of the update.\n this._currentElement = nextParentElement;\n this._context = nextUnmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n }\n },\n\n _processPendingState: function (props, context) {\n var inst = this._instance;\n var queue = this._pendingStateQueue;\n var replace = this._pendingReplaceState;\n this._pendingReplaceState = false;\n this._pendingStateQueue = null;\n\n if (!queue) {\n return inst.state;\n }\n\n if (replace && queue.length === 1) {\n return queue[0];\n }\n\n var nextState = _assign({}, replace ? queue[0] : inst.state);\n for (var i = replace ? 1 : 0; i < queue.length; i++) {\n var partial = queue[i];\n _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n }\n\n return nextState;\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @param {?object} unmaskedContext\n * @private\n */\n _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\n var inst = this._instance;\n\n var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n var prevProps;\n var prevState;\n var prevContext;\n if (hasComponentDidUpdate) {\n prevProps = inst.props;\n prevState = inst.state;\n prevContext = inst.context;\n }\n\n if (inst.componentWillUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\n }\n\n this._currentElement = nextElement;\n this._context = unmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n\n this._updateRenderedComponent(transaction, unmaskedContext);\n\n if (hasComponentDidUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\n }\n },\n\n /**\n * Call the component's `render` method and update the DOM accordingly.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n _updateRenderedComponent: function (transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n var renderedElement;\n\n if (process.env.NODE_ENV !== 'production') {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedElement;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function (ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (process.env.NODE_ENV !== 'production') {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n }\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n refs[ref] = publicComponentInstance;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function (ref) {\n var refs = this.getPublicInstance().refs;\n delete refs[ref];\n },\n\n /**\n * Get a text description of the component that can be used to identify it\n * in error messages.\n * @return {string} The name or null.\n * @internal\n */\n getName: function () {\n var type = this._currentElement.type;\n var constructor = this._instance && this._instance.constructor;\n return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n },\n\n /**\n * Get the publicly accessible representation of this component - i.e. what\n * is exposed by refs and returned by render. Can be null for stateless\n * components.\n *\n * @return {ReactComponent} the public component instance.\n * @internal\n */\n getPublicInstance: function () {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n};\n\nmodule.exports = ReactCompositeComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RDb21wb3NpdGVDb21wb25lbnQuanM/MDYzZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpLFxuICAgIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdCcpO1xudmFyIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0RXJyb3JVdGlscyA9IHJlcXVpcmUoJy4vUmVhY3RFcnJvclV0aWxzJyk7XG52YXIgUmVhY3RJbnN0YW5jZU1hcCA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZU1hcCcpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFJlYWN0Tm9kZVR5cGVzID0gcmVxdWlyZSgnLi9SZWFjdE5vZGVUeXBlcycpO1xudmFyIFJlYWN0UmVjb25jaWxlciA9IHJlcXVpcmUoJy4vUmVhY3RSZWNvbmNpbGVyJyk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBjaGVja1JlYWN0VHlwZVNwZWMgPSByZXF1aXJlKCcuL2NoZWNrUmVhY3RUeXBlU3BlYycpO1xufVxuXG52YXIgZW1wdHlPYmplY3QgPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eU9iamVjdCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHNoYWxsb3dFcXVhbCA9IHJlcXVpcmUoJ2ZianMvbGliL3NoYWxsb3dFcXVhbCcpO1xudmFyIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBDb21wb3NpdGVUeXBlcyA9IHtcbiAgSW1wdXJlQ2xhc3M6IDAsXG4gIFB1cmVDbGFzczogMSxcbiAgU3RhdGVsZXNzRnVuY3Rpb25hbDogMlxufTtcblxuZnVuY3Rpb24gU3RhdGVsZXNzQ29tcG9uZW50KENvbXBvbmVudCkge31cblN0YXRlbGVzc0NvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgQ29tcG9uZW50ID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQodGhpcykuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG4gIHZhciBlbGVtZW50ID0gQ29tcG9uZW50KHRoaXMucHJvcHMsIHRoaXMuY29udGV4dCwgdGhpcy51cGRhdGVyKTtcbiAgd2FybklmSW52YWxpZEVsZW1lbnQoQ29tcG9uZW50LCBlbGVtZW50KTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59O1xuXG5mdW5jdGlvbiB3YXJuSWZJbnZhbGlkRWxlbWVudChDb21wb25lbnQsIGVsZW1lbnQpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IGZhbHNlIHx8IFJlYWN0LmlzVmFsaWRFbGVtZW50KGVsZW1lbnQpLCAnJXMoLi4uKTogQSB2YWxpZCBSZWFjdCBlbGVtZW50IChvciBudWxsKSBtdXN0IGJlIHJldHVybmVkLiBZb3UgbWF5IGhhdmUgJyArICdyZXR1cm5lZCB1bmRlZmluZWQsIGFuIGFycmF5IG9yIHNvbWUgb3RoZXIgaW52YWxpZCBvYmplY3QuJywgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghQ29tcG9uZW50LmNoaWxkQ29udGV4dFR5cGVzLCAnJXMoLi4uKTogY2hpbGRDb250ZXh0VHlwZXMgY2Fubm90IGJlIGRlZmluZWQgb24gYSBmdW5jdGlvbmFsIGNvbXBvbmVudC4nLCBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCcpIDogdm9pZCAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgcmV0dXJuICEhKENvbXBvbmVudC5wcm90b3R5cGUgJiYgQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNQdXJlQ29tcG9uZW50KENvbXBvbmVudCkge1xuICByZXR1cm4gISEoQ29tcG9uZW50LnByb3RvdHlwZSAmJiBDb21wb25lbnQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50KTtcbn1cblxuLy8gU2VwYXJhdGVkIGludG8gYSBmdW5jdGlvbiB0byBjb250YWluIGRlb3B0aW1pemF0aW9ucyBjYXVzZWQgYnkgdHJ5L2ZpbmFsbHkuXG5mdW5jdGlvbiBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmbiwgZGVidWdJRCwgdGltZXJUeXBlKSB7XG4gIGlmIChkZWJ1Z0lEID09PSAwKSB7XG4gICAgLy8gVG9wLWxldmVsIHdyYXBwZXJzIChzZWUgUmVhY3RNb3VudCkgYW5kIGVtcHR5IGNvbXBvbmVudHMgKHNlZVxuICAgIC8vIFJlYWN0RE9NRW1wdHlDb21wb25lbnQpIGFyZSBpbnZpc2libGUgdG8gaG9va3MgYW5kIGRldnRvb2xzLlxuICAgIC8vIEJvdGggYXJlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgdGhhdCBzaG91bGQgZ28gYXdheSBpbiB0aGUgZnV0dXJlLlxuICAgIHJldHVybiBmbigpO1xuICB9XG5cbiAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uQmVnaW5MaWZlQ3ljbGVUaW1lcihkZWJ1Z0lELCB0aW1lclR5cGUpO1xuICB0cnkge1xuICAgIHJldHVybiBmbigpO1xuICB9IGZpbmFsbHkge1xuICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkVuZExpZmVDeWNsZVRpbWVyKGRlYnVnSUQsIHRpbWVyVHlwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0gVGhlIExpZmUtQ3ljbGUgb2YgYSBDb21wb3NpdGUgQ29tcG9uZW50IC0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIC0gY29uc3RydWN0b3I6IEluaXRpYWxpemF0aW9uIG9mIHN0YXRlLiBUaGUgaW5zdGFuY2UgaXMgbm93IHJldGFpbmVkLlxuICogICAtIGNvbXBvbmVudFdpbGxNb3VudFxuICogICAtIHJlbmRlclxuICogICAtIFtjaGlsZHJlbidzIGNvbnN0cnVjdG9yc11cbiAqICAgICAtIFtjaGlsZHJlbidzIGNvbXBvbmVudFdpbGxNb3VudCBhbmQgcmVuZGVyXVxuICogICAgIC0gW2NoaWxkcmVuJ3MgY29tcG9uZW50RGlkTW91bnRdXG4gKiAgICAgLSBjb21wb25lbnREaWRNb3VudFxuICpcbiAqICAgICAgIFVwZGF0ZSBQaGFzZXM6XG4gKiAgICAgICAtIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgKG9ubHkgY2FsbGVkIGlmIHBhcmVudCB1cGRhdGVkKVxuICogICAgICAgLSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAqICAgICAgICAgLSBjb21wb25lbnRXaWxsVXBkYXRlXG4gKiAgICAgICAgICAgLSByZW5kZXJcbiAqICAgICAgICAgICAtIFtjaGlsZHJlbidzIGNvbnN0cnVjdG9ycyBvciByZWNlaXZlIHByb3BzIHBoYXNlc11cbiAqICAgICAgICAgLSBjb21wb25lbnREaWRVcGRhdGVcbiAqXG4gKiAgICAgLSBjb21wb25lbnRXaWxsVW5tb3VudFxuICogICAgIC0gW2NoaWxkcmVuJ3MgY29tcG9uZW50V2lsbFVubW91bnRdXG4gKiAgIC0gW2NoaWxkcmVuIGRlc3Ryb3llZF1cbiAqIC0gKGRlc3Ryb3llZCk6IFRoZSBpbnN0YW5jZSBpcyBub3cgYmxhbmssIHJlbGVhc2VkIGJ5IFJlYWN0IGFuZCByZWFkeSBmb3IgR0MuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIEFuIGluY3JlbWVudGluZyBJRCBhc3NpZ25lZCB0byBlYWNoIGNvbXBvbmVudCB3aGVuIGl0IGlzIG1vdW50ZWQuIFRoaXMgaXNcbiAqIHVzZWQgdG8gZW5mb3JjZSB0aGUgb3JkZXIgaW4gd2hpY2ggYFJlYWN0VXBkYXRlc2AgdXBkYXRlcyBkaXJ0eSBjb21wb25lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbnZhciBuZXh0TW91bnRJRCA9IDE7XG5cbi8qKlxuICogQGxlbmRzIHtSZWFjdENvbXBvc2l0ZUNvbXBvbmVudC5wcm90b3R5cGV9XG4gKi9cbnZhciBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCA9IHtcbiAgLyoqXG4gICAqIEJhc2UgY29uc3RydWN0b3IgZm9yIGFsbCBjb21wb3NpdGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudFxuICAgKiBAZmluYWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgdGhpcy5fY3VycmVudEVsZW1lbnQgPSBlbGVtZW50O1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSAwO1xuICAgIHRoaXMuX2NvbXBvc2l0ZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuX2luc3RhbmNlID0gbnVsbDtcbiAgICB0aGlzLl9ob3N0UGFyZW50ID0gbnVsbDtcbiAgICB0aGlzLl9ob3N0Q29udGFpbmVySW5mbyA9IG51bGw7XG5cbiAgICAvLyBTZWUgUmVhY3RVcGRhdGVRdWV1ZVxuICAgIHRoaXMuX3VwZGF0ZUJhdGNoTnVtYmVyID0gbnVsbDtcbiAgICB0aGlzLl9wZW5kaW5nRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWUgPSBudWxsO1xuICAgIHRoaXMuX3BlbmRpbmdSZXBsYWNlU3RhdGUgPSBmYWxzZTtcbiAgICB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgPSBmYWxzZTtcblxuICAgIHRoaXMuX3JlbmRlcmVkTm9kZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50ID0gbnVsbDtcbiAgICB0aGlzLl9jb250ZXh0ID0gbnVsbDtcbiAgICB0aGlzLl9tb3VudE9yZGVyID0gMDtcbiAgICB0aGlzLl90b3BMZXZlbFdyYXBwZXIgPSBudWxsO1xuXG4gICAgLy8gU2VlIFJlYWN0VXBkYXRlcyBhbmQgUmVhY3RVcGRhdGVRdWV1ZS5cbiAgICB0aGlzLl9wZW5kaW5nQ2FsbGJhY2tzID0gbnVsbDtcblxuICAgIC8vIENvbXBvbmVudFdpbGxVbm1vdW50IHNoYWxsIG9ubHkgYmUgY2FsbGVkIG9uY2VcbiAgICB0aGlzLl9jYWxsZWRDb21wb25lbnRXaWxsVW5tb3VudCA9IGZhbHNlO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHRoaXMuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyID0gZmFsc2U7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50LCByZW5kZXJzIG1hcmt1cCwgYW5kIHJlZ2lzdGVycyBldmVudCBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbnxSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gez9vYmplY3R9IGhvc3RQYXJlbnRcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBob3N0Q29udGFpbmVySW5mb1xuICAgKiBAcGFyYW0gez9vYmplY3R9IGNvbnRleHRcbiAgICogQHJldHVybiB7P3N0cmluZ30gUmVuZGVyZWQgbWFya3VwIHRvIGJlIGluc2VydGVkIGludG8gdGhlIERPTS5cbiAgICogQGZpbmFsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbW91bnRDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5fbW91bnRPcmRlciA9IG5leHRNb3VudElEKys7XG4gICAgdGhpcy5faG9zdFBhcmVudCA9IGhvc3RQYXJlbnQ7XG4gICAgdGhpcy5faG9zdENvbnRhaW5lckluZm8gPSBob3N0Q29udGFpbmVySW5mbztcblxuICAgIHZhciBwdWJsaWNQcm9wcyA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuICAgIHZhciBwdWJsaWNDb250ZXh0ID0gdGhpcy5fcHJvY2Vzc0NvbnRleHQoY29udGV4dCk7XG5cbiAgICB2YXIgQ29tcG9uZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtcblxuICAgIHZhciB1cGRhdGVRdWV1ZSA9IHRyYW5zYWN0aW9uLmdldFVwZGF0ZVF1ZXVlKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSBwdWJsaWMgY2xhc3NcbiAgICB2YXIgZG9Db25zdHJ1Y3QgPSBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KTtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2NvbnN0cnVjdENvbXBvbmVudChkb0NvbnN0cnVjdCwgcHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKTtcbiAgICB2YXIgcmVuZGVyZWRFbGVtZW50O1xuXG4gICAgLy8gU3VwcG9ydCBmdW5jdGlvbmFsIGNvbXBvbmVudHNcbiAgICBpZiAoIWRvQ29uc3RydWN0ICYmIChpbnN0ID09IG51bGwgfHwgaW5zdC5yZW5kZXIgPT0gbnVsbCkpIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IGluc3Q7XG4gICAgICB3YXJuSWZJbnZhbGlkRWxlbWVudChDb21wb25lbnQsIHJlbmRlcmVkRWxlbWVudCk7XG4gICAgICAhKGluc3QgPT09IG51bGwgfHwgaW5zdCA9PT0gZmFsc2UgfHwgUmVhY3QuaXNWYWxpZEVsZW1lbnQoaW5zdCkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzKC4uLik6IEEgdmFsaWQgUmVhY3QgZWxlbWVudCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gWW91IG1heSBoYXZlIHJldHVybmVkIHVuZGVmaW5lZCwgYW4gYXJyYXkgb3Igc29tZSBvdGhlciBpbnZhbGlkIG9iamVjdC4nLCBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCcpIDogX3Byb2RJbnZhcmlhbnQoJzEwNScsIENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnQ29tcG9uZW50JykgOiB2b2lkIDA7XG4gICAgICBpbnN0ID0gbmV3IFN0YXRlbGVzc0NvbXBvbmVudChDb21wb25lbnQpO1xuICAgICAgdGhpcy5fY29tcG9zaXRlVHlwZSA9IENvbXBvc2l0ZVR5cGVzLlN0YXRlbGVzc0Z1bmN0aW9uYWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpc1B1cmVDb21wb25lbnQoQ29tcG9uZW50KSkge1xuICAgICAgICB0aGlzLl9jb21wb3NpdGVUeXBlID0gQ29tcG9zaXRlVHlwZXMuUHVyZUNsYXNzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fY29tcG9zaXRlVHlwZSA9IENvbXBvc2l0ZVR5cGVzLkltcHVyZUNsYXNzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgbGF0ZXIgaW4gX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCwgYnV0IGFkZCBhbiBlYXJseVxuICAgICAgLy8gd2FybmluZyBub3cgdG8gaGVscCBkZWJ1Z2dpbmdcbiAgICAgIGlmIChpbnN0LnJlbmRlciA9PSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogeW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBkZWZpbmUgYHJlbmRlcmAuJywgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIH1cblxuICAgICAgdmFyIHByb3BzTXV0YXRlZCA9IGluc3QucHJvcHMgIT09IHB1YmxpY1Byb3BzO1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGluc3QucHJvcHMgPT09IHVuZGVmaW5lZCB8fCAhcHJvcHNNdXRhdGVkLCAnJXMoLi4uKTogV2hlbiBjYWxsaW5nIHN1cGVyKCkgaW4gYCVzYCwgbWFrZSBzdXJlIHRvIHBhc3MgJyArIFwidXAgdGhlIHNhbWUgcHJvcHMgdGhhdCB5b3VyIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHdhcyBwYXNzZWQuXCIsIGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudE5hbWUpIDogdm9pZCAwO1xuICAgIH1cblxuICAgIC8vIFRoZXNlIHNob3VsZCBiZSBzZXQgdXAgaW4gdGhlIGNvbnN0cnVjdG9yLCBidXQgYXMgYSBjb252ZW5pZW5jZSBmb3JcbiAgICAvLyBzaW1wbGVyIGNsYXNzIGFic3RyYWN0aW9ucywgd2Ugc2V0IHRoZW0gdXAgYWZ0ZXIgdGhlIGZhY3QuXG4gICAgaW5zdC5wcm9wcyA9IHB1YmxpY1Byb3BzO1xuICAgIGluc3QuY29udGV4dCA9IHB1YmxpY0NvbnRleHQ7XG4gICAgaW5zdC5yZWZzID0gZW1wdHlPYmplY3Q7XG4gICAgaW5zdC51cGRhdGVyID0gdXBkYXRlUXVldWU7XG5cbiAgICB0aGlzLl9pbnN0YW5jZSA9IGluc3Q7XG5cbiAgICAvLyBTdG9yZSBhIHJlZmVyZW5jZSBmcm9tIHRoZSBpbnN0YW5jZSBiYWNrIHRvIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvblxuICAgIFJlYWN0SW5zdGFuY2VNYXAuc2V0KGluc3QsIHRoaXMpO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIFNpbmNlIHBsYWluIEpTIGNsYXNzZXMgYXJlIGRlZmluZWQgd2l0aG91dCBhbnkgc3BlY2lhbCBpbml0aWFsaXphdGlvblxuICAgICAgLy8gbG9naWMsIHdlIGNhbiBub3QgY2F0Y2ggY29tbW9uIGVycm9ycyBlYXJseS4gVGhlcmVmb3JlLCB3ZSBoYXZlIHRvXG4gICAgICAvLyBjYXRjaCB0aGVtIGhlcmUsIGF0IGluaXRpYWxpemF0aW9uIHRpbWUsIGluc3RlYWQuXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghaW5zdC5nZXRJbml0aWFsU3RhdGUgfHwgaW5zdC5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgfHwgaW5zdC5zdGF0ZSwgJ2dldEluaXRpYWxTdGF0ZSB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD8nLCB0aGlzLmdldE5hbWUoKSB8fCAnYSBjb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFpbnN0LmdldERlZmF1bHRQcm9wcyB8fCBpbnN0LmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCwgJ2dldERlZmF1bHRQcm9wcyB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdVc2UgYSBzdGF0aWMgcHJvcGVydHkgdG8gZGVmaW5lIGRlZmF1bHRQcm9wcyBpbnN0ZWFkLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdhIGNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWluc3QucHJvcFR5cGVzLCAncHJvcFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgcHJvcFR5cGVzIGluc3RlYWQuJywgdGhpcy5nZXROYW1lKCkgfHwgJ2EgY29tcG9uZW50JykgOiB2b2lkIDA7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghaW5zdC5jb250ZXh0VHlwZXMsICdjb250ZXh0VHlwZXMgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhICcgKyAnc3RhdGljIHByb3BlcnR5IHRvIGRlZmluZSBjb250ZXh0VHlwZXMgaW5zdGVhZC4nLCB0aGlzLmdldE5hbWUoKSB8fCAnYSBjb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHR5cGVvZiBpbnN0LmNvbXBvbmVudFNob3VsZFVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJywgJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnRTaG91bGRVcGRhdGUoKS4gRGlkIHlvdSBtZWFuIHNob3VsZENvbXBvbmVudFVwZGF0ZSgpPyAnICsgJ1RoZSBuYW1lIGlzIHBocmFzZWQgYXMgYSBxdWVzdGlvbiBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyAnICsgJ2V4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcodHlwZW9mIGluc3QuY29tcG9uZW50RGlkVW5tb3VudCAhPT0gJ2Z1bmN0aW9uJywgJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRVbm1vdW50KCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/JywgdGhpcy5nZXROYW1lKCkgfHwgJ0EgY29tcG9uZW50JykgOiB2b2lkIDA7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyh0eXBlb2YgaW5zdC5jb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzICE9PSAnZnVuY3Rpb24nLCAnJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKT8nLCB0aGlzLmdldE5hbWUoKSB8fCAnQSBjb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICB9XG5cbiAgICB2YXIgaW5pdGlhbFN0YXRlID0gaW5zdC5zdGF0ZTtcbiAgICBpZiAoaW5pdGlhbFN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGluc3Quc3RhdGUgPSBpbml0aWFsU3RhdGUgPSBudWxsO1xuICAgIH1cbiAgICAhKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGluaXRpYWxTdGF0ZSkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzLnN0YXRlOiBtdXN0IGJlIHNldCB0byBhbiBvYmplY3Qgb3IgbnVsbCcsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogX3Byb2RJbnZhcmlhbnQoJzEwNicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogdm9pZCAwO1xuXG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWUgPSBudWxsO1xuICAgIHRoaXMuX3BlbmRpbmdSZXBsYWNlU3RhdGUgPSBmYWxzZTtcbiAgICB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgPSBmYWxzZTtcblxuICAgIHZhciBtYXJrdXA7XG4gICAgaWYgKGluc3QudW5zdGFibGVfaGFuZGxlRXJyb3IpIHtcbiAgICAgIG1hcmt1cCA9IHRoaXMucGVyZm9ybUluaXRpYWxNb3VudFdpdGhFcnJvckhhbmRsaW5nKHJlbmRlcmVkRWxlbWVudCwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWFya3VwID0gdGhpcy5wZXJmb3JtSW5pdGlhbE1vdW50KHJlbmRlcmVkRWxlbWVudCwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdC5jb21wb25lbnREaWRNb3VudCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGluc3QuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgICAgICAgICB9LCBfdGhpcy5fZGVidWdJRCwgJ2NvbXBvbmVudERpZE1vdW50Jyk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShpbnN0LmNvbXBvbmVudERpZE1vdW50LCBpbnN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWFya3VwO1xuICB9LFxuXG4gIF9jb25zdHJ1Y3RDb21wb25lbnQ6IGZ1bmN0aW9uIChkb0NvbnN0cnVjdCwgcHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSB0aGlzO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnN0cnVjdENvbXBvbmVudFdpdGhvdXRPd25lcihkb0NvbnN0cnVjdCwgcHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29uc3RydWN0Q29tcG9uZW50V2l0aG91dE93bmVyKGRvQ29uc3RydWN0LCBwdWJsaWNQcm9wcywgcHVibGljQ29udGV4dCwgdXBkYXRlUXVldWUpO1xuICAgIH1cbiAgfSxcblxuICBfY29uc3RydWN0Q29tcG9uZW50V2l0aG91dE93bmVyOiBmdW5jdGlvbiAoZG9Db25zdHJ1Y3QsIHB1YmxpY1Byb3BzLCBwdWJsaWNDb250ZXh0LCB1cGRhdGVRdWV1ZSkge1xuICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuXG4gICAgaWYgKGRvQ29uc3RydWN0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm4gbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50KHB1YmxpY1Byb3BzLCBwdWJsaWNDb250ZXh0LCB1cGRhdGVRdWV1ZSk7XG4gICAgICAgIH0sIHRoaXMuX2RlYnVnSUQsICdjdG9yJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudChwdWJsaWNQcm9wcywgcHVibGljQ29udGV4dCwgdXBkYXRlUXVldWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgY2FuIHN0aWxsIGJlIGFuIGluc3RhbmNlIGluIGNhc2Ugb2YgZmFjdG9yeSBjb21wb25lbnRzXG4gICAgLy8gYnV0IHdlJ2xsIGNvdW50IHRoaXMgYXMgdGltZSBzcGVudCByZW5kZXJpbmcgYXMgdGhlIG1vcmUgY29tbW9uIGNhc2UuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVybiBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBDb21wb25lbnQocHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKTtcbiAgICAgIH0sIHRoaXMuX2RlYnVnSUQsICdyZW5kZXInKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIENvbXBvbmVudChwdWJsaWNQcm9wcywgcHVibGljQ29udGV4dCwgdXBkYXRlUXVldWUpO1xuICAgIH1cbiAgfSxcblxuICBwZXJmb3JtSW5pdGlhbE1vdW50V2l0aEVycm9ySGFuZGxpbmc6IGZ1bmN0aW9uIChyZW5kZXJlZEVsZW1lbnQsIGhvc3RQYXJlbnQsIGhvc3RDb250YWluZXJJbmZvLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBtYXJrdXA7XG4gICAgdmFyIGNoZWNrcG9pbnQgPSB0cmFuc2FjdGlvbi5jaGVja3BvaW50KCk7XG4gICAgdHJ5IHtcbiAgICAgIG1hcmt1cCA9IHRoaXMucGVyZm9ybUluaXRpYWxNb3VudChyZW5kZXJlZEVsZW1lbnQsIGhvc3RQYXJlbnQsIGhvc3RDb250YWluZXJJbmZvLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gUm9sbCBiYWNrIHRvIGNoZWNrcG9pbnQsIGhhbmRsZSBlcnJvciAod2hpY2ggbWF5IGFkZCBpdGVtcyB0byB0aGUgdHJhbnNhY3Rpb24pLCBhbmQgdGFrZSBhIG5ldyBjaGVja3BvaW50XG4gICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjayhjaGVja3BvaW50KTtcbiAgICAgIHRoaXMuX2luc3RhbmNlLnVuc3RhYmxlX2hhbmRsZUVycm9yKGUpO1xuICAgICAgaWYgKHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlKSB7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlLnN0YXRlID0gdGhpcy5fcHJvY2Vzc1BlbmRpbmdTdGF0ZSh0aGlzLl9pbnN0YW5jZS5wcm9wcywgdGhpcy5faW5zdGFuY2UuY29udGV4dCk7XG4gICAgICB9XG4gICAgICBjaGVja3BvaW50ID0gdHJhbnNhY3Rpb24uY2hlY2twb2ludCgpO1xuXG4gICAgICB0aGlzLl9yZW5kZXJlZENvbXBvbmVudC51bm1vdW50Q29tcG9uZW50KHRydWUpO1xuICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soY2hlY2twb2ludCk7XG5cbiAgICAgIC8vIFRyeSBhZ2FpbiAtIHdlJ3ZlIGluZm9ybWVkIHRoZSBjb21wb25lbnQgYWJvdXQgdGhlIGVycm9yLCBzbyB0aGV5IGNhbiByZW5kZXIgYW4gZXJyb3IgbWVzc2FnZSB0aGlzIHRpbWUuXG4gICAgICAvLyBJZiB0aGlzIHRocm93cyBhZ2FpbiwgdGhlIGVycm9yIHdpbGwgYnViYmxlIHVwIChhbmQgY2FuIGJlIGNhdWdodCBieSBhIGhpZ2hlciBlcnJvciBib3VuZGFyeSkuXG4gICAgICBtYXJrdXAgPSB0aGlzLnBlcmZvcm1Jbml0aWFsTW91bnQocmVuZGVyZWRFbGVtZW50LCBob3N0UGFyZW50LCBob3N0Q29udGFpbmVySW5mbywgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gbWFya3VwO1xuICB9LFxuXG4gIHBlcmZvcm1Jbml0aWFsTW91bnQ6IGZ1bmN0aW9uIChyZW5kZXJlZEVsZW1lbnQsIGhvc3RQYXJlbnQsIGhvc3RDb250YWluZXJJbmZvLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBpbnN0ID0gdGhpcy5faW5zdGFuY2U7XG5cbiAgICB2YXIgZGVidWdJRCA9IDA7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGRlYnVnSUQgPSB0aGlzLl9kZWJ1Z0lEO1xuICAgIH1cblxuICAgIGlmIChpbnN0LmNvbXBvbmVudFdpbGxNb3VudCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBpbnN0LmNvbXBvbmVudFdpbGxNb3VudCgpO1xuICAgICAgICB9LCBkZWJ1Z0lELCAnY29tcG9uZW50V2lsbE1vdW50Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0LmNvbXBvbmVudFdpbGxNb3VudCgpO1xuICAgICAgfVxuICAgICAgLy8gV2hlbiBtb3VudGluZywgY2FsbHMgdG8gYHNldFN0YXRlYCBieSBgY29tcG9uZW50V2lsbE1vdW50YCB3aWxsIHNldFxuICAgICAgLy8gYHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlYCB3aXRob3V0IHRyaWdnZXJpbmcgYSByZS1yZW5kZXIuXG4gICAgICBpZiAodGhpcy5fcGVuZGluZ1N0YXRlUXVldWUpIHtcbiAgICAgICAgaW5zdC5zdGF0ZSA9IHRoaXMuX3Byb2Nlc3NQZW5kaW5nU3RhdGUoaW5zdC5wcm9wcywgaW5zdC5jb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBub3QgYSBzdGF0ZWxlc3MgY29tcG9uZW50LCB3ZSBub3cgcmVuZGVyXG4gICAgaWYgKHJlbmRlcmVkRWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZW5kZXJlZEVsZW1lbnQgPSB0aGlzLl9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQoKTtcbiAgICB9XG5cbiAgICB2YXIgbm9kZVR5cGUgPSBSZWFjdE5vZGVUeXBlcy5nZXRUeXBlKHJlbmRlcmVkRWxlbWVudCk7XG4gICAgdGhpcy5fcmVuZGVyZWROb2RlVHlwZSA9IG5vZGVUeXBlO1xuICAgIHZhciBjaGlsZCA9IHRoaXMuX2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQocmVuZGVyZWRFbGVtZW50LCBub2RlVHlwZSAhPT0gUmVhY3ROb2RlVHlwZXMuRU1QVFkgLyogc2hvdWxkSGF2ZURlYnVnSUQgKi9cbiAgICApO1xuICAgIHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50ID0gY2hpbGQ7XG5cbiAgICB2YXIgbWFya3VwID0gUmVhY3RSZWNvbmNpbGVyLm1vdW50Q29tcG9uZW50KGNoaWxkLCB0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIHRoaXMuX3Byb2Nlc3NDaGlsZENvbnRleHQoY29udGV4dCksIGRlYnVnSUQpO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChkZWJ1Z0lEICE9PSAwKSB7XG4gICAgICAgIHZhciBjaGlsZERlYnVnSURzID0gY2hpbGQuX2RlYnVnSUQgIT09IDAgPyBbY2hpbGQuX2RlYnVnSURdIDogW107XG4gICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vblNldENoaWxkcmVuKGRlYnVnSUQsIGNoaWxkRGVidWdJRHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXJrdXA7XG4gIH0sXG5cbiAgZ2V0SG9zdE5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gUmVhY3RSZWNvbmNpbGVyLmdldEhvc3ROb2RlKHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50KTtcbiAgfSxcblxuICAvKipcbiAgICogUmVsZWFzZXMgYW55IHJlc291cmNlcyBhbGxvY2F0ZWQgYnkgYG1vdW50Q29tcG9uZW50YC5cbiAgICpcbiAgICogQGZpbmFsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHNhZmVseSkge1xuICAgIGlmICghdGhpcy5fcmVuZGVyZWRDb21wb25lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuXG4gICAgaWYgKGluc3QuY29tcG9uZW50V2lsbFVubW91bnQgJiYgIWluc3QuX2NhbGxlZENvbXBvbmVudFdpbGxVbm1vdW50KSB7XG4gICAgICBpbnN0Ll9jYWxsZWRDb21wb25lbnRXaWxsVW5tb3VudCA9IHRydWU7XG5cbiAgICAgIGlmIChzYWZlbHkpIHtcbiAgICAgICAgdmFyIG5hbWUgPSB0aGlzLmdldE5hbWUoKSArICcuY29tcG9uZW50V2lsbFVubW91bnQoKSc7XG4gICAgICAgIFJlYWN0RXJyb3JVdGlscy5pbnZva2VHdWFyZGVkQ2FsbGJhY2sobmFtZSwgaW5zdC5jb21wb25lbnRXaWxsVW5tb3VudC5iaW5kKGluc3QpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGluc3QuY29tcG9uZW50V2lsbFVubW91bnQoKTtcbiAgICAgICAgICB9LCB0aGlzLl9kZWJ1Z0lELCAnY29tcG9uZW50V2lsbFVubW91bnQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbnN0LmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcmVuZGVyZWRDb21wb25lbnQpIHtcbiAgICAgIFJlYWN0UmVjb25jaWxlci51bm1vdW50Q29tcG9uZW50KHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50LCBzYWZlbHkpO1xuICAgICAgdGhpcy5fcmVuZGVyZWROb2RlVHlwZSA9IG51bGw7XG4gICAgICB0aGlzLl9yZW5kZXJlZENvbXBvbmVudCA9IG51bGw7XG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgcGVuZGluZyBmaWVsZHNcbiAgICAvLyBFdmVuIGlmIHRoaXMgY29tcG9uZW50IGlzIHNjaGVkdWxlZCBmb3IgYW5vdGhlciB1cGRhdGUgaW4gUmVhY3RVcGRhdGVzLFxuICAgIC8vIGl0IHdvdWxkIHN0aWxsIGJlIGlnbm9yZWQgYmVjYXVzZSB0aGVzZSBmaWVsZHMgYXJlIHJlc2V0LlxuICAgIHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gbnVsbDtcbiAgICB0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ0ZvcmNlVXBkYXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ0NhbGxiYWNrcyA9IG51bGw7XG4gICAgdGhpcy5fcGVuZGluZ0VsZW1lbnQgPSBudWxsO1xuXG4gICAgLy8gVGhlc2UgZmllbGRzIGRvIG5vdCByZWFsbHkgbmVlZCB0byBiZSByZXNldCBzaW5jZSB0aGlzIG9iamVjdCBpcyBub1xuICAgIC8vIGxvbmdlciBhY2Nlc3NpYmxlLlxuICAgIHRoaXMuX2NvbnRleHQgPSBudWxsO1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSAwO1xuICAgIHRoaXMuX3RvcExldmVsV3JhcHBlciA9IG51bGw7XG5cbiAgICAvLyBEZWxldGUgdGhlIHJlZmVyZW5jZSBmcm9tIHRoZSBpbnN0YW5jZSB0byB0aGlzIGludGVybmFsIHJlcHJlc2VudGF0aW9uXG4gICAgLy8gd2hpY2ggYWxsb3cgdGhlIGludGVybmFscyB0byBiZSBwcm9wZXJseSBjbGVhbmVkIHVwIGV2ZW4gaWYgdGhlIHVzZXJcbiAgICAvLyBsZWFrcyBhIHJlZmVyZW5jZSB0byB0aGUgcHVibGljIGluc3RhbmNlLlxuICAgIFJlYWN0SW5zdGFuY2VNYXAucmVtb3ZlKGluc3QpO1xuXG4gICAgLy8gU29tZSBleGlzdGluZyBjb21wb25lbnRzIHJlbHkgb24gaW5zdC5wcm9wcyBldmVuIGFmdGVyIHRoZXkndmUgYmVlblxuICAgIC8vIGRlc3Ryb3llZCAoaW4gZXZlbnQgaGFuZGxlcnMpLlxuICAgIC8vIFRPRE86IGluc3QucHJvcHMgPSBudWxsO1xuICAgIC8vIFRPRE86IGluc3Quc3RhdGUgPSBudWxsO1xuICAgIC8vIFRPRE86IGluc3QuY29udGV4dCA9IG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgdGhlIGNvbnRleHQgb2JqZWN0IHRvIG9ubHkgY29udGFpbiBrZXlzIHNwZWNpZmllZCBpblxuICAgKiBgY29udGV4dFR5cGVzYFxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHs/b2JqZWN0fVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX21hc2tDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgIHZhciBjb250ZXh0VHlwZXMgPSBDb21wb25lbnQuY29udGV4dFR5cGVzO1xuICAgIGlmICghY29udGV4dFR5cGVzKSB7XG4gICAgICByZXR1cm4gZW1wdHlPYmplY3Q7XG4gICAgfVxuICAgIHZhciBtYXNrZWRDb250ZXh0ID0ge307XG4gICAgZm9yICh2YXIgY29udGV4dE5hbWUgaW4gY29udGV4dFR5cGVzKSB7XG4gICAgICBtYXNrZWRDb250ZXh0W2NvbnRleHROYW1lXSA9IGNvbnRleHRbY29udGV4dE5hbWVdO1xuICAgIH1cbiAgICByZXR1cm4gbWFza2VkQ29udGV4dDtcbiAgfSxcblxuICAvKipcbiAgICogRmlsdGVycyB0aGUgY29udGV4dCBvYmplY3QgdG8gb25seSBjb250YWluIGtleXMgc3BlY2lmaWVkIGluXG4gICAqIGBjb250ZXh0VHlwZXNgLCBhbmQgYXNzZXJ0cyB0aGF0IHRoZXkgYXJlIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHs/b2JqZWN0fVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3Byb2Nlc3NDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBtYXNrZWRDb250ZXh0ID0gdGhpcy5fbWFza0NvbnRleHQoY29udGV4dCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgICAgaWYgKENvbXBvbmVudC5jb250ZXh0VHlwZXMpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tDb250ZXh0VHlwZXMoQ29tcG9uZW50LmNvbnRleHRUeXBlcywgbWFza2VkQ29udGV4dCwgJ2NvbnRleHQnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hc2tlZENvbnRleHQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjdXJyZW50Q29udGV4dFxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcHJvY2Vzc0NoaWxkQ29udGV4dDogZnVuY3Rpb24gKGN1cnJlbnRDb250ZXh0KSB7XG4gICAgdmFyIENvbXBvbmVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcbiAgICB2YXIgY2hpbGRDb250ZXh0O1xuXG4gICAgaWYgKGluc3QuZ2V0Q2hpbGRDb250ZXh0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25CZWdpblByb2Nlc3NpbmdDaGlsZENvbnRleHQoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjaGlsZENvbnRleHQgPSBpbnN0LmdldENoaWxkQ29udGV4dCgpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkVuZFByb2Nlc3NpbmdDaGlsZENvbnRleHQoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRDb250ZXh0ID0gaW5zdC5nZXRDaGlsZENvbnRleHQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hpbGRDb250ZXh0KSB7XG4gICAgICAhKHR5cGVvZiBDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMgPT09ICdvYmplY3QnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcy5nZXRDaGlsZENvbnRleHQoKTogY2hpbGRDb250ZXh0VHlwZXMgbXVzdCBiZSBkZWZpbmVkIGluIG9yZGVyIHRvIHVzZSBnZXRDaGlsZENvbnRleHQoKS4nLCB0aGlzLmdldE5hbWUoKSB8fCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnKSA6IF9wcm9kSW52YXJpYW50KCcxMDcnLCB0aGlzLmdldE5hbWUoKSB8fCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHRoaXMuX2NoZWNrQ29udGV4dFR5cGVzKENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcywgY2hpbGRDb250ZXh0LCAnY2hpbGQgY29udGV4dCcpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgbmFtZSBpbiBjaGlsZENvbnRleHQpIHtcbiAgICAgICAgIShuYW1lIGluIENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnJXMuZ2V0Q2hpbGRDb250ZXh0KCk6IGtleSBcIiVzXCIgaXMgbm90IGRlZmluZWQgaW4gY2hpbGRDb250ZXh0VHlwZXMuJywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JywgbmFtZSkgOiBfcHJvZEludmFyaWFudCgnMTA4JywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JywgbmFtZSkgOiB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gX2Fzc2lnbih7fSwgY3VycmVudENvbnRleHQsIGNoaWxkQ29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50Q29udGV4dDtcbiAgfSxcblxuICAvKipcbiAgICogQXNzZXJ0IHRoYXQgdGhlIGNvbnRleHQgdHlwZXMgYXJlIHZhbGlkXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIGNvbnRleHQgZmllbGQgdG8gYSBSZWFjdFByb3BUeXBlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB2YWx1ZXMgUnVudGltZSB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIHR5cGUtY2hlY2tlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gZS5nLiBcInByb3BcIiwgXCJjb250ZXh0XCIsIFwiY2hpbGQgY29udGV4dFwiXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfY2hlY2tDb250ZXh0VHlwZXM6IGZ1bmN0aW9uICh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24pIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY2hlY2tSZWFjdFR5cGVTcGVjKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgdGhpcy5nZXROYW1lKCksIG51bGwsIHRoaXMuX2RlYnVnSUQpO1xuICAgIH1cbiAgfSxcblxuICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAobmV4dEVsZW1lbnQsIHRyYW5zYWN0aW9uLCBuZXh0Q29udGV4dCkge1xuICAgIHZhciBwcmV2RWxlbWVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50O1xuICAgIHZhciBwcmV2Q29udGV4dCA9IHRoaXMuX2NvbnRleHQ7XG5cbiAgICB0aGlzLl9wZW5kaW5nRWxlbWVudCA9IG51bGw7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCh0cmFuc2FjdGlvbiwgcHJldkVsZW1lbnQsIG5leHRFbGVtZW50LCBwcmV2Q29udGV4dCwgbmV4dENvbnRleHQpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBJZiBhbnkgb2YgYF9wZW5kaW5nRWxlbWVudGAsIGBfcGVuZGluZ1N0YXRlUXVldWVgLCBvciBgX3BlbmRpbmdGb3JjZVVwZGF0ZWBcbiAgICogaXMgc2V0LCB1cGRhdGUgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHBlcmZvcm1VcGRhdGVJZk5lY2Vzc2FyeTogZnVuY3Rpb24gKHRyYW5zYWN0aW9uKSB7XG4gICAgaWYgKHRoaXMuX3BlbmRpbmdFbGVtZW50ICE9IG51bGwpIHtcbiAgICAgIFJlYWN0UmVjb25jaWxlci5yZWNlaXZlQ29tcG9uZW50KHRoaXMsIHRoaXMuX3BlbmRpbmdFbGVtZW50LCB0cmFuc2FjdGlvbiwgdGhpcy5fY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9wZW5kaW5nU3RhdGVRdWV1ZSAhPT0gbnVsbCB8fCB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50KHRyYW5zYWN0aW9uLCB0aGlzLl9jdXJyZW50RWxlbWVudCwgdGhpcy5fY3VycmVudEVsZW1lbnQsIHRoaXMuX2NvbnRleHQsIHRoaXMuX2NvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVCYXRjaE51bWJlciA9IG51bGw7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGFuIHVwZGF0ZSB0byBhIG1vdW50ZWQgY29tcG9uZW50LiBUaGUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyBhbmRcbiAgICogc2hvdWxkQ29tcG9uZW50VXBkYXRlIG1ldGhvZHMgYXJlIGNhbGxlZCwgdGhlbiAoYXNzdW1pbmcgdGhlIHVwZGF0ZSBpc24ndFxuICAgKiBza2lwcGVkKSB0aGUgcmVtYWluaW5nIHVwZGF0ZSBsaWZlY3ljbGUgbWV0aG9kcyBhcmUgY2FsbGVkIGFuZCB0aGUgRE9NXG4gICAqIHJlcHJlc2VudGF0aW9uIGlzIHVwZGF0ZWQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaW1wbGVtZW50cyBSZWFjdCdzIHJlbmRlcmluZyBhbmQgcmVjb25jaWxpYXRpb24gYWxnb3JpdGhtLlxuICAgKiBTb3BoaXN0aWNhdGVkIGNsaWVudHMgbWF5IHdpc2ggdG8gb3ZlcnJpZGUgdGhpcy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gcHJldlBhcmVudEVsZW1lbnRcbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRQYXJlbnRFbGVtZW50XG4gICAqIEBpbnRlcm5hbFxuICAgKiBAb3ZlcnJpZGFibGVcbiAgICovXG4gIHVwZGF0ZUNvbXBvbmVudDogZnVuY3Rpb24gKHRyYW5zYWN0aW9uLCBwcmV2UGFyZW50RWxlbWVudCwgbmV4dFBhcmVudEVsZW1lbnQsIHByZXZVbm1hc2tlZENvbnRleHQsIG5leHRVbm1hc2tlZENvbnRleHQpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuICAgICEoaW5zdCAhPSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdBdHRlbXB0ZWQgdG8gdXBkYXRlIGNvbXBvbmVudCBgJXNgIHRoYXQgaGFzIGFscmVhZHkgYmVlbiB1bm1vdW50ZWQgKG9yIGZhaWxlZCB0byBtb3VudCkuJywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiBfcHJvZEludmFyaWFudCgnMTM2JywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB2b2lkIDA7XG5cbiAgICB2YXIgd2lsbFJlY2VpdmUgPSBmYWxzZTtcbiAgICB2YXIgbmV4dENvbnRleHQ7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhlIGNvbnRleHQgaGFzIGNoYW5nZWQgb3Igbm90XG4gICAgaWYgKHRoaXMuX2NvbnRleHQgPT09IG5leHRVbm1hc2tlZENvbnRleHQpIHtcbiAgICAgIG5leHRDb250ZXh0ID0gaW5zdC5jb250ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0Q29udGV4dCA9IHRoaXMuX3Byb2Nlc3NDb250ZXh0KG5leHRVbm1hc2tlZENvbnRleHQpO1xuICAgICAgd2lsbFJlY2VpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHZhciBwcmV2UHJvcHMgPSBwcmV2UGFyZW50RWxlbWVudC5wcm9wcztcbiAgICB2YXIgbmV4dFByb3BzID0gbmV4dFBhcmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICAvLyBOb3QgYSBzaW1wbGUgc3RhdGUgdXBkYXRlIGJ1dCBhIHByb3BzIHVwZGF0ZVxuICAgIGlmIChwcmV2UGFyZW50RWxlbWVudCAhPT0gbmV4dFBhcmVudEVsZW1lbnQpIHtcbiAgICAgIHdpbGxSZWNlaXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBBbiB1cGRhdGUgaGVyZSB3aWxsIHNjaGVkdWxlIGFuIHVwZGF0ZSBidXQgaW1tZWRpYXRlbHkgc2V0XG4gICAgLy8gX3BlbmRpbmdTdGF0ZVF1ZXVlIHdoaWNoIHdpbGwgZW5zdXJlIHRoYXQgYW55IHN0YXRlIHVwZGF0ZXMgZ2V0c1xuICAgIC8vIGltbWVkaWF0ZWx5IHJlY29uY2lsZWQgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUgbmV4dCBiYXRjaC5cbiAgICBpZiAod2lsbFJlY2VpdmUgJiYgaW5zdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGluc3QuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICAgICAgfSwgdGhpcy5fZGVidWdJRCwgJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluc3QuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbmV4dFN0YXRlID0gdGhpcy5fcHJvY2Vzc1BlbmRpbmdTdGF0ZShuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICB2YXIgc2hvdWxkVXBkYXRlID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy5fcGVuZGluZ0ZvcmNlVXBkYXRlKSB7XG4gICAgICBpZiAoaW5zdC5zaG91bGRDb21wb25lbnRVcGRhdGUpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBzaG91bGRVcGRhdGUgPSBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdC5zaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgICAgICB9LCB0aGlzLl9kZWJ1Z0lELCAnc2hvdWxkQ29tcG9uZW50VXBkYXRlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2hvdWxkVXBkYXRlID0gaW5zdC5zaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvc2l0ZVR5cGUgPT09IENvbXBvc2l0ZVR5cGVzLlB1cmVDbGFzcykge1xuICAgICAgICAgIHNob3VsZFVwZGF0ZSA9ICFzaGFsbG93RXF1YWwocHJldlByb3BzLCBuZXh0UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwoaW5zdC5zdGF0ZSwgbmV4dFN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhzaG91bGRVcGRhdGUgIT09IHVuZGVmaW5lZCwgJyVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgpOiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhICcgKyAnYm9vbGVhbiB2YWx1ZS4gTWFrZSBzdXJlIHRvIHJldHVybiB0cnVlIG9yIGZhbHNlLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUJhdGNoTnVtYmVyID0gbnVsbDtcbiAgICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgICB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgPSBmYWxzZTtcbiAgICAgIC8vIFdpbGwgc2V0IGB0aGlzLnByb3BzYCwgYHRoaXMuc3RhdGVgIGFuZCBgdGhpcy5jb250ZXh0YC5cbiAgICAgIHRoaXMuX3BlcmZvcm1Db21wb25lbnRVcGRhdGUobmV4dFBhcmVudEVsZW1lbnQsIG5leHRQcm9wcywgbmV4dFN0YXRlLCBuZXh0Q29udGV4dCwgdHJhbnNhY3Rpb24sIG5leHRVbm1hc2tlZENvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBpdCdzIGRldGVybWluZWQgdGhhdCBhIGNvbXBvbmVudCBzaG91bGQgbm90IHVwZGF0ZSwgd2Ugc3RpbGwgd2FudFxuICAgICAgLy8gdG8gc2V0IHByb3BzIGFuZCBzdGF0ZSBidXQgd2Ugc2hvcnRjdXQgdGhlIHJlc3Qgb2YgdGhlIHVwZGF0ZS5cbiAgICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gbmV4dFBhcmVudEVsZW1lbnQ7XG4gICAgICB0aGlzLl9jb250ZXh0ID0gbmV4dFVubWFza2VkQ29udGV4dDtcbiAgICAgIGluc3QucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgICBpbnN0LnN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgaW5zdC5jb250ZXh0ID0gbmV4dENvbnRleHQ7XG4gICAgfVxuICB9LFxuXG4gIF9wcm9jZXNzUGVuZGluZ1N0YXRlOiBmdW5jdGlvbiAocHJvcHMsIGNvbnRleHQpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuICAgIHZhciBxdWV1ZSA9IHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlO1xuICAgIHZhciByZXBsYWNlID0gdGhpcy5fcGVuZGluZ1JlcGxhY2VTdGF0ZTtcbiAgICB0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWUgPSBudWxsO1xuXG4gICAgaWYgKCFxdWV1ZSkge1xuICAgICAgcmV0dXJuIGluc3Quc3RhdGU7XG4gICAgfVxuXG4gICAgaWYgKHJlcGxhY2UgJiYgcXVldWUubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gcXVldWVbMF07XG4gICAgfVxuXG4gICAgdmFyIG5leHRTdGF0ZSA9IF9hc3NpZ24oe30sIHJlcGxhY2UgPyBxdWV1ZVswXSA6IGluc3Quc3RhdGUpO1xuICAgIGZvciAodmFyIGkgPSByZXBsYWNlID8gMSA6IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHBhcnRpYWwgPSBxdWV1ZVtpXTtcbiAgICAgIF9hc3NpZ24obmV4dFN0YXRlLCB0eXBlb2YgcGFydGlhbCA9PT0gJ2Z1bmN0aW9uJyA/IHBhcnRpYWwuY2FsbChpbnN0LCBuZXh0U3RhdGUsIHByb3BzLCBjb250ZXh0KSA6IHBhcnRpYWwpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0U3RhdGU7XG4gIH0sXG5cbiAgLyoqXG4gICAqIE1lcmdlcyBuZXcgcHJvcHMgYW5kIHN0YXRlLCBub3RpZmllcyBkZWxlZ2F0ZSBtZXRob2RzIG9mIHVwZGF0ZSBhbmRcbiAgICogcGVyZm9ybXMgdXBkYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnQgTmV4dCBlbGVtZW50XG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXh0UHJvcHMgTmV4dCBwdWJsaWMgb2JqZWN0IHRvIHNldCBhcyBwcm9wZXJ0aWVzLlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHRTdGF0ZSBOZXh0IG9iamVjdCB0byBzZXQgYXMgc3RhdGUuXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbmV4dENvbnRleHQgTmV4dCBwdWJsaWMgb2JqZWN0IHRvIHNldCBhcyBjb250ZXh0LlxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7P29iamVjdH0gdW5tYXNrZWRDb250ZXh0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcGVyZm9ybUNvbXBvbmVudFVwZGF0ZTogZnVuY3Rpb24gKG5leHRFbGVtZW50LCBuZXh0UHJvcHMsIG5leHRTdGF0ZSwgbmV4dENvbnRleHQsIHRyYW5zYWN0aW9uLCB1bm1hc2tlZENvbnRleHQpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIHZhciBpbnN0ID0gdGhpcy5faW5zdGFuY2U7XG5cbiAgICB2YXIgaGFzQ29tcG9uZW50RGlkVXBkYXRlID0gQm9vbGVhbihpbnN0LmNvbXBvbmVudERpZFVwZGF0ZSk7XG4gICAgdmFyIHByZXZQcm9wcztcbiAgICB2YXIgcHJldlN0YXRlO1xuICAgIHZhciBwcmV2Q29udGV4dDtcbiAgICBpZiAoaGFzQ29tcG9uZW50RGlkVXBkYXRlKSB7XG4gICAgICBwcmV2UHJvcHMgPSBpbnN0LnByb3BzO1xuICAgICAgcHJldlN0YXRlID0gaW5zdC5zdGF0ZTtcbiAgICAgIHByZXZDb250ZXh0ID0gaW5zdC5jb250ZXh0O1xuICAgIH1cblxuICAgIGlmIChpbnN0LmNvbXBvbmVudFdpbGxVcGRhdGUpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIG1lYXN1cmVMaWZlQ3ljbGVQZXJmKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gaW5zdC5jb21wb25lbnRXaWxsVXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlLCBuZXh0Q29udGV4dCk7XG4gICAgICAgIH0sIHRoaXMuX2RlYnVnSUQsICdjb21wb25lbnRXaWxsVXBkYXRlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0LmNvbXBvbmVudFdpbGxVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jdXJyZW50RWxlbWVudCA9IG5leHRFbGVtZW50O1xuICAgIHRoaXMuX2NvbnRleHQgPSB1bm1hc2tlZENvbnRleHQ7XG4gICAgaW5zdC5wcm9wcyA9IG5leHRQcm9wcztcbiAgICBpbnN0LnN0YXRlID0gbmV4dFN0YXRlO1xuICAgIGluc3QuY29udGV4dCA9IG5leHRDb250ZXh0O1xuXG4gICAgdGhpcy5fdXBkYXRlUmVuZGVyZWRDb21wb25lbnQodHJhbnNhY3Rpb24sIHVubWFza2VkQ29udGV4dCk7XG5cbiAgICBpZiAoaGFzQ29tcG9uZW50RGlkVXBkYXRlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBtZWFzdXJlTGlmZUN5Y2xlUGVyZihpbnN0LmNvbXBvbmVudERpZFVwZGF0ZS5iaW5kKGluc3QsIHByZXZQcm9wcywgcHJldlN0YXRlLCBwcmV2Q29udGV4dCksIF90aGlzMi5fZGVidWdJRCwgJ2NvbXBvbmVudERpZFVwZGF0ZScpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoaW5zdC5jb21wb25lbnREaWRVcGRhdGUuYmluZChpbnN0LCBwcmV2UHJvcHMsIHByZXZTdGF0ZSwgcHJldkNvbnRleHQpLCBpbnN0KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIENhbGwgdGhlIGNvbXBvbmVudCdzIGByZW5kZXJgIG1ldGhvZCBhbmQgdXBkYXRlIHRoZSBET00gYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBfdXBkYXRlUmVuZGVyZWRDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBwcmV2Q29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLl9yZW5kZXJlZENvbXBvbmVudDtcbiAgICB2YXIgcHJldlJlbmRlcmVkRWxlbWVudCA9IHByZXZDb21wb25lbnRJbnN0YW5jZS5fY3VycmVudEVsZW1lbnQ7XG4gICAgdmFyIG5leHRSZW5kZXJlZEVsZW1lbnQgPSB0aGlzLl9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQoKTtcblxuICAgIHZhciBkZWJ1Z0lEID0gMDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgZGVidWdJRCA9IHRoaXMuX2RlYnVnSUQ7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50KHByZXZSZW5kZXJlZEVsZW1lbnQsIG5leHRSZW5kZXJlZEVsZW1lbnQpKSB7XG4gICAgICBSZWFjdFJlY29uY2lsZXIucmVjZWl2ZUNvbXBvbmVudChwcmV2Q29tcG9uZW50SW5zdGFuY2UsIG5leHRSZW5kZXJlZEVsZW1lbnQsIHRyYW5zYWN0aW9uLCB0aGlzLl9wcm9jZXNzQ2hpbGRDb250ZXh0KGNvbnRleHQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG9sZEhvc3ROb2RlID0gUmVhY3RSZWNvbmNpbGVyLmdldEhvc3ROb2RlKHByZXZDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICBSZWFjdFJlY29uY2lsZXIudW5tb3VudENvbXBvbmVudChwcmV2Q29tcG9uZW50SW5zdGFuY2UsIGZhbHNlKTtcblxuICAgICAgdmFyIG5vZGVUeXBlID0gUmVhY3ROb2RlVHlwZXMuZ2V0VHlwZShuZXh0UmVuZGVyZWRFbGVtZW50KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVkTm9kZVR5cGUgPSBub2RlVHlwZTtcbiAgICAgIHZhciBjaGlsZCA9IHRoaXMuX2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQobmV4dFJlbmRlcmVkRWxlbWVudCwgbm9kZVR5cGUgIT09IFJlYWN0Tm9kZVR5cGVzLkVNUFRZIC8qIHNob3VsZEhhdmVEZWJ1Z0lEICovXG4gICAgICApO1xuICAgICAgdGhpcy5fcmVuZGVyZWRDb21wb25lbnQgPSBjaGlsZDtcblxuICAgICAgdmFyIG5leHRNYXJrdXAgPSBSZWFjdFJlY29uY2lsZXIubW91bnRDb21wb25lbnQoY2hpbGQsIHRyYW5zYWN0aW9uLCB0aGlzLl9ob3N0UGFyZW50LCB0aGlzLl9ob3N0Q29udGFpbmVySW5mbywgdGhpcy5fcHJvY2Vzc0NoaWxkQ29udGV4dChjb250ZXh0KSwgZGVidWdJRCk7XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChkZWJ1Z0lEICE9PSAwKSB7XG4gICAgICAgICAgdmFyIGNoaWxkRGVidWdJRHMgPSBjaGlsZC5fZGVidWdJRCAhPT0gMCA/IFtjaGlsZC5fZGVidWdJRF0gOiBbXTtcbiAgICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbihkZWJ1Z0lELCBjaGlsZERlYnVnSURzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZXBsYWNlTm9kZVdpdGhNYXJrdXAob2xkSG9zdE5vZGUsIG5leHRNYXJrdXAsIHByZXZDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBPdmVycmlkZGVuIGluIHNoYWxsb3cgcmVuZGVyaW5nLlxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBfcmVwbGFjZU5vZGVXaXRoTWFya3VwOiBmdW5jdGlvbiAob2xkSG9zdE5vZGUsIG5leHRNYXJrdXAsIHByZXZJbnN0YW5jZSkge1xuICAgIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQucmVwbGFjZU5vZGVXaXRoTWFya3VwKG9sZEhvc3ROb2RlLCBuZXh0TWFya3VwLCBwcmV2SW5zdGFuY2UpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50V2l0aG91dE93bmVyT3JDb250ZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcbiAgICB2YXIgcmVuZGVyZWRFbGVtZW50O1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IG1lYXN1cmVMaWZlQ3ljbGVQZXJmKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGluc3QucmVuZGVyKCk7XG4gICAgICB9LCB0aGlzLl9kZWJ1Z0lELCAncmVuZGVyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IGluc3QucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIFdlIGFsbG93IGF1dG8tbW9ja3MgdG8gcHJvY2VlZCBhcyBpZiB0aGV5J3JlIHJldHVybmluZyBudWxsLlxuICAgICAgaWYgKHJlbmRlcmVkRWxlbWVudCA9PT0gdW5kZWZpbmVkICYmIGluc3QucmVuZGVyLl9pc01vY2tGdW5jdGlvbikge1xuICAgICAgICAvLyBUaGlzIGlzIHByb2JhYmx5IGJhZCBwcmFjdGljZS4gQ29uc2lkZXIgd2FybmluZyBoZXJlIGFuZFxuICAgICAgICAvLyBkZXByZWNhdGluZyB0aGlzIGNvbnZlbmllbmNlLlxuICAgICAgICByZW5kZXJlZEVsZW1lbnQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZW5kZXJlZEVsZW1lbnQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlbmRlcmVkRWxlbWVudDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyB8fCB0aGlzLl9jb21wb3NpdGVUeXBlICE9PSBDb21wb3NpdGVUeXBlcy5TdGF0ZWxlc3NGdW5jdGlvbmFsKSB7XG4gICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gdGhpcztcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlbmRlcmVkRWxlbWVudCA9IHRoaXMuX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudFdpdGhvdXRPd25lck9yQ29udGV4dCgpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IHRoaXMuX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudFdpdGhvdXRPd25lck9yQ29udGV4dCgpO1xuICAgIH1cbiAgICAhKFxuICAgIC8vIFRPRE86IEFuIGBpc1ZhbGlkTm9kZWAgZnVuY3Rpb24gd291bGQgcHJvYmFibHkgYmUgbW9yZSBhcHByb3ByaWF0ZVxuICAgIHJlbmRlcmVkRWxlbWVudCA9PT0gbnVsbCB8fCByZW5kZXJlZEVsZW1lbnQgPT09IGZhbHNlIHx8IFJlYWN0LmlzVmFsaWRFbGVtZW50KHJlbmRlcmVkRWxlbWVudCkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzLnJlbmRlcigpOiBBIHZhbGlkIFJlYWN0IGVsZW1lbnQgKG9yIG51bGwpIG11c3QgYmUgcmV0dXJuZWQuIFlvdSBtYXkgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQsIGFuIGFycmF5IG9yIHNvbWUgb3RoZXIgaW52YWxpZCBvYmplY3QuJywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiBfcHJvZEludmFyaWFudCgnMTA5JywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB2b2lkIDA7XG5cbiAgICByZXR1cm4gcmVuZGVyZWRFbGVtZW50O1xuICB9LFxuXG4gIC8qKlxuICAgKiBMYXppbHkgYWxsb2NhdGVzIHRoZSByZWZzIG9iamVjdCBhbmQgc3RvcmVzIGBjb21wb25lbnRgIGFzIGByZWZgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmIFJlZmVyZW5jZSBuYW1lLlxuICAgKiBAcGFyYW0ge2NvbXBvbmVudH0gY29tcG9uZW50IENvbXBvbmVudCB0byBzdG9yZSBhcyBgcmVmYC5cbiAgICogQGZpbmFsXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhdHRhY2hSZWY6IGZ1bmN0aW9uIChyZWYsIGNvbXBvbmVudCkge1xuICAgIHZhciBpbnN0ID0gdGhpcy5nZXRQdWJsaWNJbnN0YW5jZSgpO1xuICAgICEoaW5zdCAhPSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdTdGF0ZWxlc3MgZnVuY3Rpb24gY29tcG9uZW50cyBjYW5ub3QgaGF2ZSByZWZzLicpIDogX3Byb2RJbnZhcmlhbnQoJzExMCcpIDogdm9pZCAwO1xuICAgIHZhciBwdWJsaWNDb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudC5nZXRQdWJsaWNJbnN0YW5jZSgpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudCAmJiBjb21wb25lbnQuZ2V0TmFtZSA/IGNvbXBvbmVudC5nZXROYW1lKCkgOiAnYSBjb21wb25lbnQnO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcocHVibGljQ29tcG9uZW50SW5zdGFuY2UgIT0gbnVsbCB8fCBjb21wb25lbnQuX2NvbXBvc2l0ZVR5cGUgIT09IENvbXBvc2l0ZVR5cGVzLlN0YXRlbGVzc0Z1bmN0aW9uYWwsICdTdGF0ZWxlc3MgZnVuY3Rpb24gY29tcG9uZW50cyBjYW5ub3QgYmUgZ2l2ZW4gcmVmcyAnICsgJyhTZWUgcmVmIFwiJXNcIiBpbiAlcyBjcmVhdGVkIGJ5ICVzKS4gJyArICdBdHRlbXB0cyB0byBhY2Nlc3MgdGhpcyByZWYgd2lsbCBmYWlsLicsIHJlZiwgY29tcG9uZW50TmFtZSwgdGhpcy5nZXROYW1lKCkpIDogdm9pZCAwO1xuICAgIH1cbiAgICB2YXIgcmVmcyA9IGluc3QucmVmcyA9PT0gZW1wdHlPYmplY3QgPyBpbnN0LnJlZnMgPSB7fSA6IGluc3QucmVmcztcbiAgICByZWZzW3JlZl0gPSBwdWJsaWNDb21wb25lbnRJbnN0YW5jZTtcbiAgfSxcblxuICAvKipcbiAgICogRGV0YWNoZXMgYSByZWZlcmVuY2UgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlZiBOYW1lIHRvIGRlcmVmZXJlbmNlLlxuICAgKiBAZmluYWxcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGRldGFjaFJlZjogZnVuY3Rpb24gKHJlZikge1xuICAgIHZhciByZWZzID0gdGhpcy5nZXRQdWJsaWNJbnN0YW5jZSgpLnJlZnM7XG4gICAgZGVsZXRlIHJlZnNbcmVmXTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgdGV4dCBkZXNjcmlwdGlvbiBvZiB0aGUgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgaXRcbiAgICogaW4gZXJyb3IgbWVzc2FnZXMuXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIG5hbWUgb3IgbnVsbC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXROYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHR5cGUgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgIHZhciBjb25zdHJ1Y3RvciA9IHRoaXMuX2luc3RhbmNlICYmIHRoaXMuX2luc3RhbmNlLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IGNvbnN0cnVjdG9yICYmIGNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBjb25zdHJ1Y3RvciAmJiBjb25zdHJ1Y3Rvci5uYW1lIHx8IG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHVibGljbHkgYWNjZXNzaWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGNvbXBvbmVudCAtIGkuZS4gd2hhdFxuICAgKiBpcyBleHBvc2VkIGJ5IHJlZnMgYW5kIHJldHVybmVkIGJ5IHJlbmRlci4gQ2FuIGJlIG51bGwgZm9yIHN0YXRlbGVzc1xuICAgKiBjb21wb25lbnRzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtSZWFjdENvbXBvbmVudH0gdGhlIHB1YmxpYyBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0UHVibGljSW5zdGFuY2U6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuICAgIGlmICh0aGlzLl9jb21wb3NpdGVUeXBlID09PSBDb21wb3NpdGVUeXBlcy5TdGF0ZWxlc3NGdW5jdGlvbmFsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGluc3Q7XG4gIH0sXG5cbiAgLy8gU3R1YlxuICBfaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudDogbnVsbFxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxOTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///190\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar React = __webpack_require__(/*! react/lib/React */ 20);\nvar ReactComponentEnvironment = __webpack_require__(/*! ./ReactComponentEnvironment */ 56);\nvar ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ 9);\nvar ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ 48);\nvar ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ 30);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar ReactNodeTypes = __webpack_require__(/*! ./ReactNodeTypes */ 96);\nvar ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ 22);\n\nif (process.env.NODE_ENV !== 'production') {\n var checkReactTypeSpec = __webpack_require__(/*! ./checkReactTypeSpec */ 191);\n}\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ 97);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar shallowEqual = __webpack_require__(/*! fbjs/lib/shallowEqual */ 57);\nvar shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ 58);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\n}\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n * - componentWillMount\n * - render\n * - [children's constructors]\n * - [children's componentWillMount and render]\n * - [children's componentDidMount]\n * - componentDidMount\n *\n * Update Phases:\n * - componentWillReceiveProps (only called if parent updated)\n * - shouldComponentUpdate\n * - componentWillUpdate\n * - render\n * - [children's constructors or receive props phases]\n * - componentDidUpdate\n *\n * - componentWillUnmount\n * - [children's componentWillUnmount]\n * - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponent = {\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function (element) {\n this._currentElement = element;\n this._rootNodeID = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw later in _renderValidatedComponent, but add an early\n // warning now to help debugging\n if (inst.render == null) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", componentName, componentName) : void 0;\n }\n\n // These should be set up in the constructor, but as a convenience for\n // simpler class abstractions, we set them up after the fact.\n inst.props = publicProps;\n inst.context = publicContext;\n inst.refs = emptyObject;\n inst.updater = updateQueue;\n\n this._instance = inst;\n\n // Store a reference from the instance back to the internal representation\n ReactInstanceMap.set(inst, this);\n\n if (process.env.NODE_ENV !== 'production') {\n // Since plain JS classes are defined without any special initialization\n // logic, we can not catch common errors early. Therefore, we have to\n // catch them here, at initialization time, instead.\n process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingStateQueue` without triggering a re-render.\n if (this._pendingStateQueue) {\n inst.state = this._processPendingState(inst.props, inst.context);\n }\n }\n\n // If not a stateless component, we now render\n if (renderedElement === undefined) {\n renderedElement = this._renderValidatedComponent();\n }\n\n var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\n\n // Reset pending fields\n // Even if this component is scheduled for another update in ReactUpdates,\n // it would still be ignored because these fields are reset.\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n this._pendingCallbacks = null;\n this._pendingElement = null;\n\n // These fields do not really need to be reset since this object is no\n // longer accessible.\n this._context = null;\n this._rootNodeID = 0;\n this._topLevelWrapper = null;\n\n // Delete the reference from the instance to this internal representation\n // which allow the internals to be properly cleaned up even if the user\n // leaks a reference to the public instance.\n ReactInstanceMap.remove(inst);\n\n // Some existing components rely on inst.props even after they've been\n // destroyed (in event handlers).\n // TODO: inst.props = null;\n // TODO: inst.state = null;\n // TODO: inst.context = null;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _maskContext: function (context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function (context) {\n var maskedContext = this._maskContext(context);\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function (currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext;\n\n if (inst.getChildContext) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\n if (childContext) {\n !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n if (process.env.NODE_ENV !== 'production') {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n }\n },\n\n receiveComponent: function (nextElement, transaction, nextContext) {\n var prevElement = this._currentElement;\n var prevContext = this._context;\n\n this._pendingElement = null;\n\n this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n },\n\n /**\n * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function (transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\n }\n },\n\n /**\n * Perform an update to a mounted component. The componentWillReceiveProps and\n * shouldComponentUpdate methods are called, then (assuming the update isn't\n * skipped) the remaining update lifecycle methods are called and the DOM\n * representation is updated.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevParentElement\n * @param {ReactElement} nextParentElement\n * @internal\n * @overridable\n */\n updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\n // An update here will schedule an update but immediately set\n // _pendingStateQueue which will ensure that any state updates gets\n // immediately reconciled instead of waiting for the next batch.\n if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state but we shortcut the rest of the update.\n this._currentElement = nextParentElement;\n this._context = nextUnmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n }\n },\n\n _processPendingState: function (props, context) {\n var inst = this._instance;\n var queue = this._pendingStateQueue;\n var replace = this._pendingReplaceState;\n this._pendingReplaceState = false;\n this._pendingStateQueue = null;\n\n if (!queue) {\n return inst.state;\n }\n\n if (replace && queue.length === 1) {\n return queue[0];\n }\n\n var nextState = _assign({}, replace ? queue[0] : inst.state);\n for (var i = replace ? 1 : 0; i < queue.length; i++) {\n var partial = queue[i];\n _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n }\n\n return nextState;\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @param {?object} unmaskedContext\n * @private\n */\n _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\n var inst = this._instance;\n\n var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n var prevProps;\n var prevState;\n var prevContext;\n if (hasComponentDidUpdate) {\n prevProps = inst.props;\n prevState = inst.state;\n prevContext = inst.context;\n }\n\n if (inst.componentWillUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\n }\n\n this._currentElement = nextElement;\n this._context = unmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n\n this._updateRenderedComponent(transaction, unmaskedContext);\n\n if (hasComponentDidUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\n }\n },\n\n /**\n * Call the component's `render` method and update the DOM accordingly.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n _updateRenderedComponent: function (transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n var renderedElement;\n\n if (process.env.NODE_ENV !== 'production') {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedElement;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function (ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (process.env.NODE_ENV !== 'production') {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;\n }\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n refs[ref] = publicComponentInstance;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function (ref) {\n var refs = this.getPublicInstance().refs;\n delete refs[ref];\n },\n\n /**\n * Get a text description of the component that can be used to identify it\n * in error messages.\n * @return {string} The name or null.\n * @internal\n */\n getName: function () {\n var type = this._currentElement.type;\n var constructor = this._instance && this._instance.constructor;\n return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n },\n\n /**\n * Get the publicly accessible representation of this component - i.e. what\n * is exposed by refs and returned by render. Can be null for stateless\n * components.\n *\n * @return {ReactComponent} the public component instance.\n * @internal\n */\n getPublicInstance: function () {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n};\n\nmodule.exports = ReactCompositeComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkwLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RDb21wb3NpdGVDb21wb25lbnQuanM/MDYzZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX3Byb2RJbnZhcmlhbnQgPSByZXF1aXJlKCcuL3JlYWN0UHJvZEludmFyaWFudCcpLFxuICAgIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdCcpO1xudmFyIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0RXJyb3JVdGlscyA9IHJlcXVpcmUoJy4vUmVhY3RFcnJvclV0aWxzJyk7XG52YXIgUmVhY3RJbnN0YW5jZU1hcCA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZU1hcCcpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFJlYWN0Tm9kZVR5cGVzID0gcmVxdWlyZSgnLi9SZWFjdE5vZGVUeXBlcycpO1xudmFyIFJlYWN0UmVjb25jaWxlciA9IHJlcXVpcmUoJy4vUmVhY3RSZWNvbmNpbGVyJyk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBjaGVja1JlYWN0VHlwZVNwZWMgPSByZXF1aXJlKCcuL2NoZWNrUmVhY3RUeXBlU3BlYycpO1xufVxuXG52YXIgZW1wdHlPYmplY3QgPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eU9iamVjdCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHNoYWxsb3dFcXVhbCA9IHJlcXVpcmUoJ2ZianMvbGliL3NoYWxsb3dFcXVhbCcpO1xudmFyIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBDb21wb3NpdGVUeXBlcyA9IHtcbiAgSW1wdXJlQ2xhc3M6IDAsXG4gIFB1cmVDbGFzczogMSxcbiAgU3RhdGVsZXNzRnVuY3Rpb25hbDogMlxufTtcblxuZnVuY3Rpb24gU3RhdGVsZXNzQ29tcG9uZW50KENvbXBvbmVudCkge31cblN0YXRlbGVzc0NvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgQ29tcG9uZW50ID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQodGhpcykuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG4gIHZhciBlbGVtZW50ID0gQ29tcG9uZW50KHRoaXMucHJvcHMsIHRoaXMuY29udGV4dCwgdGhpcy51cGRhdGVyKTtcbiAgd2FybklmSW52YWxpZEVsZW1lbnQoQ29tcG9uZW50LCBlbGVtZW50KTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59O1xuXG5mdW5jdGlvbiB3YXJuSWZJbnZhbGlkRWxlbWVudChDb21wb25lbnQsIGVsZW1lbnQpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IGZhbHNlIHx8IFJlYWN0LmlzVmFsaWRFbGVtZW50KGVsZW1lbnQpLCAnJXMoLi4uKTogQSB2YWxpZCBSZWFjdCBlbGVtZW50IChvciBudWxsKSBtdXN0IGJlIHJldHVybmVkLiBZb3UgbWF5IGhhdmUgJyArICdyZXR1cm5lZCB1bmRlZmluZWQsIGFuIGFycmF5IG9yIHNvbWUgb3RoZXIgaW52YWxpZCBvYmplY3QuJywgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghQ29tcG9uZW50LmNoaWxkQ29udGV4dFR5cGVzLCAnJXMoLi4uKTogY2hpbGRDb250ZXh0VHlwZXMgY2Fubm90IGJlIGRlZmluZWQgb24gYSBmdW5jdGlvbmFsIGNvbXBvbmVudC4nLCBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCcpIDogdm9pZCAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgcmV0dXJuICEhKENvbXBvbmVudC5wcm90b3R5cGUgJiYgQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNQdXJlQ29tcG9uZW50KENvbXBvbmVudCkge1xuICByZXR1cm4gISEoQ29tcG9uZW50LnByb3RvdHlwZSAmJiBDb21wb25lbnQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50KTtcbn1cblxuLy8gU2VwYXJhdGVkIGludG8gYSBmdW5jdGlvbiB0byBjb250YWluIGRlb3B0aW1pemF0aW9ucyBjYXVzZWQgYnkgdHJ5L2ZpbmFsbHkuXG5mdW5jdGlvbiBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmbiwgZGVidWdJRCwgdGltZXJUeXBlKSB7XG4gIGlmIChkZWJ1Z0lEID09PSAwKSB7XG4gICAgLy8gVG9wLWxldmVsIHdyYXBwZXJzIChzZWUgUmVhY3RNb3VudCkgYW5kIGVtcHR5IGNvbXBvbmVudHMgKHNlZVxuICAgIC8vIFJlYWN0RE9NRW1wdHlDb21wb25lbnQpIGFyZSBpbnZpc2libGUgdG8gaG9va3MgYW5kIGRldnRvb2xzLlxuICAgIC8vIEJvdGggYXJlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgdGhhdCBzaG91bGQgZ28gYXdheSBpbiB0aGUgZnV0dXJlLlxuICAgIHJldHVybiBmbigpO1xuICB9XG5cbiAgUmVhY3RJbnN0cnVtZW50YXRpb24uZGVidWdUb29sLm9uQmVnaW5MaWZlQ3ljbGVUaW1lcihkZWJ1Z0lELCB0aW1lclR5cGUpO1xuICB0cnkge1xuICAgIHJldHVybiBmbigpO1xuICB9IGZpbmFsbHkge1xuICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkVuZExpZmVDeWNsZVRpbWVyKGRlYnVnSUQsIHRpbWVyVHlwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0gVGhlIExpZmUtQ3ljbGUgb2YgYSBDb21wb3NpdGUgQ29tcG9uZW50IC0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIC0gY29uc3RydWN0b3I6IEluaXRpYWxpemF0aW9uIG9mIHN0YXRlLiBUaGUgaW5zdGFuY2UgaXMgbm93IHJldGFpbmVkLlxuICogICAtIGNvbXBvbmVudFdpbGxNb3VudFxuICogICAtIHJlbmRlclxuICogICAtIFtjaGlsZHJlbidzIGNvbnN0cnVjdG9yc11cbiAqICAgICAtIFtjaGlsZHJlbidzIGNvbXBvbmVudFdpbGxNb3VudCBhbmQgcmVuZGVyXVxuICogICAgIC0gW2NoaWxkcmVuJ3MgY29tcG9uZW50RGlkTW91bnRdXG4gKiAgICAgLSBjb21wb25lbnREaWRNb3VudFxuICpcbiAqICAgICAgIFVwZGF0ZSBQaGFzZXM6XG4gKiAgICAgICAtIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgKG9ubHkgY2FsbGVkIGlmIHBhcmVudCB1cGRhdGVkKVxuICogICAgICAgLSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAqICAgICAgICAgLSBjb21wb25lbnRXaWxsVXBkYXRlXG4gKiAgICAgICAgICAgLSByZW5kZXJcbiAqICAgICAgICAgICAtIFtjaGlsZHJlbidzIGNvbnN0cnVjdG9ycyBvciByZWNlaXZlIHByb3BzIHBoYXNlc11cbiAqICAgICAgICAgLSBjb21wb25lbnREaWRVcGRhdGVcbiAqXG4gKiAgICAgLSBjb21wb25lbnRXaWxsVW5tb3VudFxuICogICAgIC0gW2NoaWxkcmVuJ3MgY29tcG9uZW50V2lsbFVubW91bnRdXG4gKiAgIC0gW2NoaWxkcmVuIGRlc3Ryb3llZF1cbiAqIC0gKGRlc3Ryb3llZCk6IFRoZSBpbnN0YW5jZSBpcyBub3cgYmxhbmssIHJlbGVhc2VkIGJ5IFJlYWN0IGFuZCByZWFkeSBmb3IgR0MuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIEFuIGluY3JlbWVudGluZyBJRCBhc3NpZ25lZCB0byBlYWNoIGNvbXBvbmVudCB3aGVuIGl0IGlzIG1vdW50ZWQuIFRoaXMgaXNcbiAqIHVzZWQgdG8gZW5mb3JjZSB0aGUgb3JkZXIgaW4gd2hpY2ggYFJlYWN0VXBkYXRlc2AgdXBkYXRlcyBkaXJ0eSBjb21wb25lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbnZhciBuZXh0TW91bnRJRCA9IDE7XG5cbi8qKlxuICogQGxlbmRzIHtSZWFjdENvbXBvc2l0ZUNvbXBvbmVudC5wcm90b3R5cGV9XG4gKi9cbnZhciBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCA9IHtcbiAgLyoqXG4gICAqIEJhc2UgY29uc3RydWN0b3IgZm9yIGFsbCBjb21wb3NpdGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZWxlbWVudFxuICAgKiBAZmluYWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgdGhpcy5fY3VycmVudEVsZW1lbnQgPSBlbGVtZW50O1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSAwO1xuICAgIHRoaXMuX2NvbXBvc2l0ZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuX2luc3RhbmNlID0gbnVsbDtcbiAgICB0aGlzLl9ob3N0UGFyZW50ID0gbnVsbDtcbiAgICB0aGlzLl9ob3N0Q29udGFpbmVySW5mbyA9IG51bGw7XG5cbiAgICAvLyBTZWUgUmVhY3RVcGRhdGVRdWV1ZVxuICAgIHRoaXMuX3VwZGF0ZUJhdGNoTnVtYmVyID0gbnVsbDtcbiAgICB0aGlzLl9wZW5kaW5nRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWUgPSBudWxsO1xuICAgIHRoaXMuX3BlbmRpbmdSZXBsYWNlU3RhdGUgPSBmYWxzZTtcbiAgICB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgPSBmYWxzZTtcblxuICAgIHRoaXMuX3JlbmRlcmVkTm9kZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50ID0gbnVsbDtcbiAgICB0aGlzLl9jb250ZXh0ID0gbnVsbDtcbiAgICB0aGlzLl9tb3VudE9yZGVyID0gMDtcbiAgICB0aGlzLl90b3BMZXZlbFdyYXBwZXIgPSBudWxsO1xuXG4gICAgLy8gU2VlIFJlYWN0VXBkYXRlcyBhbmQgUmVhY3RVcGRhdGVRdWV1ZS5cbiAgICB0aGlzLl9wZW5kaW5nQ2FsbGJhY2tzID0gbnVsbDtcblxuICAgIC8vIENvbXBvbmVudFdpbGxVbm1vdW50IHNoYWxsIG9ubHkgYmUgY2FsbGVkIG9uY2VcbiAgICB0aGlzLl9jYWxsZWRDb21wb25lbnRXaWxsVW5tb3VudCA9IGZhbHNlO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHRoaXMuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyID0gZmFsc2U7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50LCByZW5kZXJzIG1hcmt1cCwgYW5kIHJlZ2lzdGVycyBldmVudCBsaXN0ZW5lcnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbnxSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gez9vYmplY3R9IGhvc3RQYXJlbnRcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBob3N0Q29udGFpbmVySW5mb1xuICAgKiBAcGFyYW0gez9vYmplY3R9IGNvbnRleHRcbiAgICogQHJldHVybiB7P3N0cmluZ30gUmVuZGVyZWQgbWFya3VwIHRvIGJlIGluc2VydGVkIGludG8gdGhlIERPTS5cbiAgICogQGZpbmFsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbW91bnRDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIGNvbnRleHQpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5fbW91bnRPcmRlciA9IG5leHRNb3VudElEKys7XG4gICAgdGhpcy5faG9zdFBhcmVudCA9IGhvc3RQYXJlbnQ7XG4gICAgdGhpcy5faG9zdENvbnRhaW5lckluZm8gPSBob3N0Q29udGFpbmVySW5mbztcblxuICAgIHZhciBwdWJsaWNQcm9wcyA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuICAgIHZhciBwdWJsaWNDb250ZXh0ID0gdGhpcy5fcHJvY2Vzc0NvbnRleHQoY29udGV4dCk7XG5cbiAgICB2YXIgQ29tcG9uZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtcblxuICAgIHZhciB1cGRhdGVRdWV1ZSA9IHRyYW5zYWN0aW9uLmdldFVwZGF0ZVF1ZXVlKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSBwdWJsaWMgY2xhc3NcbiAgICB2YXIgZG9Db25zdHJ1Y3QgPSBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KTtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2NvbnN0cnVjdENvbXBvbmVudChkb0NvbnN0cnVjdCwgcHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKTtcbiAgICB2YXIgcmVuZGVyZWRFbGVtZW50O1xuXG4gICAgLy8gU3VwcG9ydCBmdW5jdGlvbmFsIGNvbXBvbmVudHNcbiAgICBpZiAoIWRvQ29uc3RydWN0ICYmIChpbnN0ID09IG51bGwgfHwgaW5zdC5yZW5kZXIgPT0gbnVsbCkpIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IGluc3Q7XG4gICAgICB3YXJuSWZJbnZhbGlkRWxlbWVudChDb21wb25lbnQsIHJlbmRlcmVkRWxlbWVudCk7XG4gICAgICAhKGluc3QgPT09IG51bGwgfHwgaW5zdCA9PT0gZmFsc2UgfHwgUmVhY3QuaXNWYWxpZEVsZW1lbnQoaW5zdCkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzKC4uLik6IEEgdmFsaWQgUmVhY3QgZWxlbWVudCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gWW91IG1heSBoYXZlIHJldHVybmVkIHVuZGVmaW5lZCwgYW4gYXJyYXkgb3Igc29tZSBvdGhlciBpbnZhbGlkIG9iamVjdC4nLCBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCcpIDogX3Byb2RJbnZhcmlhbnQoJzEwNScsIENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnQ29tcG9uZW50JykgOiB2b2lkIDA7XG4gICAgICBpbnN0ID0gbmV3IFN0YXRlbGVzc0NvbXBvbmVudChDb21wb25lbnQpO1xuICAgICAgdGhpcy5fY29tcG9zaXRlVHlwZSA9IENvbXBvc2l0ZVR5cGVzLlN0YXRlbGVzc0Z1bmN0aW9uYWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpc1B1cmVDb21wb25lbnQoQ29tcG9uZW50KSkge1xuICAgICAgICB0aGlzLl9jb21wb3NpdGVUeXBlID0gQ29tcG9zaXRlVHlwZXMuUHVyZUNsYXNzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fY29tcG9zaXRlVHlwZSA9IENvbXBvc2l0ZVR5cGVzLkltcHVyZUNsYXNzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgbGF0ZXIgaW4gX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCwgYnV0IGFkZCBhbiBlYXJseVxuICAgICAgLy8gd2FybmluZyBub3cgdG8gaGVscCBkZWJ1Z2dpbmdcbiAgICAgIGlmIChpbnN0LnJlbmRlciA9PSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogeW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBkZWZpbmUgYHJlbmRlcmAuJywgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIH1cblxuICAgICAgdmFyIHByb3BzTXV0YXRlZCA9IGluc3QucHJvcHMgIT09IHB1YmxpY1Byb3BzO1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGluc3QucHJvcHMgPT09IHVuZGVmaW5lZCB8fCAhcHJvcHNNdXRhdGVkLCAnJXMoLi4uKTogV2hlbiBjYWxsaW5nIHN1cGVyKCkgaW4gYCVzYCwgbWFrZSBzdXJlIHRvIHBhc3MgJyArIFwidXAgdGhlIHNhbWUgcHJvcHMgdGhhdCB5b3VyIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHdhcyBwYXNzZWQuXCIsIGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudE5hbWUpIDogdm9pZCAwO1xuICAgIH1cblxuICAgIC8vIFRoZXNlIHNob3VsZCBiZSBzZXQgdXAgaW4gdGhlIGNvbnN0cnVjdG9yLCBidXQgYXMgYSBjb252ZW5pZW5jZSBmb3JcbiAgICAvLyBzaW1wbGVyIGNsYXNzIGFic3RyYWN0aW9ucywgd2Ugc2V0IHRoZW0gdXAgYWZ0ZXIgdGhlIGZhY3QuXG4gICAgaW5zdC5wcm9wcyA9IHB1YmxpY1Byb3BzO1xuICAgIGluc3QuY29udGV4dCA9IHB1YmxpY0NvbnRleHQ7XG4gICAgaW5zdC5yZWZzID0gZW1wdHlPYmplY3Q7XG4gICAgaW5zdC51cGRhdGVyID0gdXBkYXRlUXVldWU7XG5cbiAgICB0aGlzLl9pbnN0YW5jZSA9IGluc3Q7XG5cbiAgICAvLyBTdG9yZSBhIHJlZmVyZW5jZSBmcm9tIHRoZSBpbnN0YW5jZSBiYWNrIHRvIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvblxuICAgIFJlYWN0SW5zdGFuY2VNYXAuc2V0KGluc3QsIHRoaXMpO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIFNpbmNlIHBsYWluIEpTIGNsYXNzZXMgYXJlIGRlZmluZWQgd2l0aG91dCBhbnkgc3BlY2lhbCBpbml0aWFsaXphdGlvblxuICAgICAgLy8gbG9naWMsIHdlIGNhbiBub3QgY2F0Y2ggY29tbW9uIGVycm9ycyBlYXJseS4gVGhlcmVmb3JlLCB3ZSBoYXZlIHRvXG4gICAgICAvLyBjYXRjaCB0aGVtIGhlcmUsIGF0IGluaXRpYWxpemF0aW9uIHRpbWUsIGluc3RlYWQuXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghaW5zdC5nZXRJbml0aWFsU3RhdGUgfHwgaW5zdC5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgfHwgaW5zdC5zdGF0ZSwgJ2dldEluaXRpYWxTdGF0ZSB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD8nLCB0aGlzLmdldE5hbWUoKSB8fCAnYSBjb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFpbnN0LmdldERlZmF1bHRQcm9wcyB8fCBpbnN0LmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCwgJ2dldERlZmF1bHRQcm9wcyB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdVc2UgYSBzdGF0aWMgcHJvcGVydHkgdG8gZGVmaW5lIGRlZmF1bHRQcm9wcyBpbnN0ZWFkLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdhIGNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWluc3QucHJvcFR5cGVzLCAncHJvcFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgcHJvcFR5cGVzIGluc3RlYWQuJywgdGhpcy5nZXROYW1lKCkgfHwgJ2EgY29tcG9uZW50JykgOiB2b2lkIDA7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghaW5zdC5jb250ZXh0VHlwZXMsICdjb250ZXh0VHlwZXMgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhICcgKyAnc3RhdGljIHByb3BlcnR5IHRvIGRlZmluZSBjb250ZXh0VHlwZXMgaW5zdGVhZC4nLCB0aGlzLmdldE5hbWUoKSB8fCAnYSBjb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHR5cGVvZiBpbnN0LmNvbXBvbmVudFNob3VsZFVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJywgJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnRTaG91bGRVcGRhdGUoKS4gRGlkIHlvdSBtZWFuIHNob3VsZENvbXBvbmVudFVwZGF0ZSgpPyAnICsgJ1RoZSBuYW1lIGlzIHBocmFzZWQgYXMgYSBxdWVzdGlvbiBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyAnICsgJ2V4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcodHlwZW9mIGluc3QuY29tcG9uZW50RGlkVW5tb3VudCAhPT0gJ2Z1bmN0aW9uJywgJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRVbm1vdW50KCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/JywgdGhpcy5nZXROYW1lKCkgfHwgJ0EgY29tcG9uZW50JykgOiB2b2lkIDA7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyh0eXBlb2YgaW5zdC5jb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzICE9PSAnZnVuY3Rpb24nLCAnJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKT8nLCB0aGlzLmdldE5hbWUoKSB8fCAnQSBjb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICB9XG5cbiAgICB2YXIgaW5pdGlhbFN0YXRlID0gaW5zdC5zdGF0ZTtcbiAgICBpZiAoaW5pdGlhbFN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGluc3Quc3RhdGUgPSBpbml0aWFsU3RhdGUgPSBudWxsO1xuICAgIH1cbiAgICAhKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGluaXRpYWxTdGF0ZSkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzLnN0YXRlOiBtdXN0IGJlIHNldCB0byBhbiBvYmplY3Qgb3IgbnVsbCcsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogX3Byb2RJbnZhcmlhbnQoJzEwNicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogdm9pZCAwO1xuXG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWUgPSBudWxsO1xuICAgIHRoaXMuX3BlbmRpbmdSZXBsYWNlU3RhdGUgPSBmYWxzZTtcbiAgICB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgPSBmYWxzZTtcblxuICAgIHZhciBtYXJrdXA7XG4gICAgaWYgKGluc3QudW5zdGFibGVfaGFuZGxlRXJyb3IpIHtcbiAgICAgIG1hcmt1cCA9IHRoaXMucGVyZm9ybUluaXRpYWxNb3VudFdpdGhFcnJvckhhbmRsaW5nKHJlbmRlcmVkRWxlbWVudCwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWFya3VwID0gdGhpcy5wZXJmb3JtSW5pdGlhbE1vdW50KHJlbmRlcmVkRWxlbWVudCwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdC5jb21wb25lbnREaWRNb3VudCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGluc3QuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgICAgICAgICB9LCBfdGhpcy5fZGVidWdJRCwgJ2NvbXBvbmVudERpZE1vdW50Jyk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShpbnN0LmNvbXBvbmVudERpZE1vdW50LCBpbnN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWFya3VwO1xuICB9LFxuXG4gIF9jb25zdHJ1Y3RDb21wb25lbnQ6IGZ1bmN0aW9uIChkb0NvbnN0cnVjdCwgcHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSB0aGlzO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnN0cnVjdENvbXBvbmVudFdpdGhvdXRPd25lcihkb0NvbnN0cnVjdCwgcHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29uc3RydWN0Q29tcG9uZW50V2l0aG91dE93bmVyKGRvQ29uc3RydWN0LCBwdWJsaWNQcm9wcywgcHVibGljQ29udGV4dCwgdXBkYXRlUXVldWUpO1xuICAgIH1cbiAgfSxcblxuICBfY29uc3RydWN0Q29tcG9uZW50V2l0aG91dE93bmVyOiBmdW5jdGlvbiAoZG9Db25zdHJ1Y3QsIHB1YmxpY1Byb3BzLCBwdWJsaWNDb250ZXh0LCB1cGRhdGVRdWV1ZSkge1xuICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuXG4gICAgaWYgKGRvQ29uc3RydWN0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm4gbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50KHB1YmxpY1Byb3BzLCBwdWJsaWNDb250ZXh0LCB1cGRhdGVRdWV1ZSk7XG4gICAgICAgIH0sIHRoaXMuX2RlYnVnSUQsICdjdG9yJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudChwdWJsaWNQcm9wcywgcHVibGljQ29udGV4dCwgdXBkYXRlUXVldWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgY2FuIHN0aWxsIGJlIGFuIGluc3RhbmNlIGluIGNhc2Ugb2YgZmFjdG9yeSBjb21wb25lbnRzXG4gICAgLy8gYnV0IHdlJ2xsIGNvdW50IHRoaXMgYXMgdGltZSBzcGVudCByZW5kZXJpbmcgYXMgdGhlIG1vcmUgY29tbW9uIGNhc2UuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVybiBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBDb21wb25lbnQocHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIHVwZGF0ZVF1ZXVlKTtcbiAgICAgIH0sIHRoaXMuX2RlYnVnSUQsICdyZW5kZXInKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIENvbXBvbmVudChwdWJsaWNQcm9wcywgcHVibGljQ29udGV4dCwgdXBkYXRlUXVldWUpO1xuICAgIH1cbiAgfSxcblxuICBwZXJmb3JtSW5pdGlhbE1vdW50V2l0aEVycm9ySGFuZGxpbmc6IGZ1bmN0aW9uIChyZW5kZXJlZEVsZW1lbnQsIGhvc3RQYXJlbnQsIGhvc3RDb250YWluZXJJbmZvLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBtYXJrdXA7XG4gICAgdmFyIGNoZWNrcG9pbnQgPSB0cmFuc2FjdGlvbi5jaGVja3BvaW50KCk7XG4gICAgdHJ5IHtcbiAgICAgIG1hcmt1cCA9IHRoaXMucGVyZm9ybUluaXRpYWxNb3VudChyZW5kZXJlZEVsZW1lbnQsIGhvc3RQYXJlbnQsIGhvc3RDb250YWluZXJJbmZvLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gUm9sbCBiYWNrIHRvIGNoZWNrcG9pbnQsIGhhbmRsZSBlcnJvciAod2hpY2ggbWF5IGFkZCBpdGVtcyB0byB0aGUgdHJhbnNhY3Rpb24pLCBhbmQgdGFrZSBhIG5ldyBjaGVja3BvaW50XG4gICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjayhjaGVja3BvaW50KTtcbiAgICAgIHRoaXMuX2luc3RhbmNlLnVuc3RhYmxlX2hhbmRsZUVycm9yKGUpO1xuICAgICAgaWYgKHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlKSB7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlLnN0YXRlID0gdGhpcy5fcHJvY2Vzc1BlbmRpbmdTdGF0ZSh0aGlzLl9pbnN0YW5jZS5wcm9wcywgdGhpcy5faW5zdGFuY2UuY29udGV4dCk7XG4gICAgICB9XG4gICAgICBjaGVja3BvaW50ID0gdHJhbnNhY3Rpb24uY2hlY2twb2ludCgpO1xuXG4gICAgICB0aGlzLl9yZW5kZXJlZENvbXBvbmVudC51bm1vdW50Q29tcG9uZW50KHRydWUpO1xuICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soY2hlY2twb2ludCk7XG5cbiAgICAgIC8vIFRyeSBhZ2FpbiAtIHdlJ3ZlIGluZm9ybWVkIHRoZSBjb21wb25lbnQgYWJvdXQgdGhlIGVycm9yLCBzbyB0aGV5IGNhbiByZW5kZXIgYW4gZXJyb3IgbWVzc2FnZSB0aGlzIHRpbWUuXG4gICAgICAvLyBJZiB0aGlzIHRocm93cyBhZ2FpbiwgdGhlIGVycm9yIHdpbGwgYnViYmxlIHVwIChhbmQgY2FuIGJlIGNhdWdodCBieSBhIGhpZ2hlciBlcnJvciBib3VuZGFyeSkuXG4gICAgICBtYXJrdXAgPSB0aGlzLnBlcmZvcm1Jbml0aWFsTW91bnQocmVuZGVyZWRFbGVtZW50LCBob3N0UGFyZW50LCBob3N0Q29udGFpbmVySW5mbywgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gbWFya3VwO1xuICB9LFxuXG4gIHBlcmZvcm1Jbml0aWFsTW91bnQ6IGZ1bmN0aW9uIChyZW5kZXJlZEVsZW1lbnQsIGhvc3RQYXJlbnQsIGhvc3RDb250YWluZXJJbmZvLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBpbnN0ID0gdGhpcy5faW5zdGFuY2U7XG5cbiAgICB2YXIgZGVidWdJRCA9IDA7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGRlYnVnSUQgPSB0aGlzLl9kZWJ1Z0lEO1xuICAgIH1cblxuICAgIGlmIChpbnN0LmNvbXBvbmVudFdpbGxNb3VudCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBpbnN0LmNvbXBvbmVudFdpbGxNb3VudCgpO1xuICAgICAgICB9LCBkZWJ1Z0lELCAnY29tcG9uZW50V2lsbE1vdW50Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0LmNvbXBvbmVudFdpbGxNb3VudCgpO1xuICAgICAgfVxuICAgICAgLy8gV2hlbiBtb3VudGluZywgY2FsbHMgdG8gYHNldFN0YXRlYCBieSBgY29tcG9uZW50V2lsbE1vdW50YCB3aWxsIHNldFxuICAgICAgLy8gYHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlYCB3aXRob3V0IHRyaWdnZXJpbmcgYSByZS1yZW5kZXIuXG4gICAgICBpZiAodGhpcy5fcGVuZGluZ1N0YXRlUXVldWUpIHtcbiAgICAgICAgaW5zdC5zdGF0ZSA9IHRoaXMuX3Byb2Nlc3NQZW5kaW5nU3RhdGUoaW5zdC5wcm9wcywgaW5zdC5jb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBub3QgYSBzdGF0ZWxlc3MgY29tcG9uZW50LCB3ZSBub3cgcmVuZGVyXG4gICAgaWYgKHJlbmRlcmVkRWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZW5kZXJlZEVsZW1lbnQgPSB0aGlzLl9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQoKTtcbiAgICB9XG5cbiAgICB2YXIgbm9kZVR5cGUgPSBSZWFjdE5vZGVUeXBlcy5nZXRUeXBlKHJlbmRlcmVkRWxlbWVudCk7XG4gICAgdGhpcy5fcmVuZGVyZWROb2RlVHlwZSA9IG5vZGVUeXBlO1xuICAgIHZhciBjaGlsZCA9IHRoaXMuX2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQocmVuZGVyZWRFbGVtZW50LCBub2RlVHlwZSAhPT0gUmVhY3ROb2RlVHlwZXMuRU1QVFkgLyogc2hvdWxkSGF2ZURlYnVnSUQgKi9cbiAgICApO1xuICAgIHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50ID0gY2hpbGQ7XG5cbiAgICB2YXIgbWFya3VwID0gUmVhY3RSZWNvbmNpbGVyLm1vdW50Q29tcG9uZW50KGNoaWxkLCB0cmFuc2FjdGlvbiwgaG9zdFBhcmVudCwgaG9zdENvbnRhaW5lckluZm8sIHRoaXMuX3Byb2Nlc3NDaGlsZENvbnRleHQoY29udGV4dCksIGRlYnVnSUQpO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChkZWJ1Z0lEICE9PSAwKSB7XG4gICAgICAgIHZhciBjaGlsZERlYnVnSURzID0gY2hpbGQuX2RlYnVnSUQgIT09IDAgPyBbY2hpbGQuX2RlYnVnSURdIDogW107XG4gICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vblNldENoaWxkcmVuKGRlYnVnSUQsIGNoaWxkRGVidWdJRHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXJrdXA7XG4gIH0sXG5cbiAgZ2V0SG9zdE5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gUmVhY3RSZWNvbmNpbGVyLmdldEhvc3ROb2RlKHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50KTtcbiAgfSxcblxuICAvKipcbiAgICogUmVsZWFzZXMgYW55IHJlc291cmNlcyBhbGxvY2F0ZWQgYnkgYG1vdW50Q29tcG9uZW50YC5cbiAgICpcbiAgICogQGZpbmFsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHNhZmVseSkge1xuICAgIGlmICghdGhpcy5fcmVuZGVyZWRDb21wb25lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuXG4gICAgaWYgKGluc3QuY29tcG9uZW50V2lsbFVubW91bnQgJiYgIWluc3QuX2NhbGxlZENvbXBvbmVudFdpbGxVbm1vdW50KSB7XG4gICAgICBpbnN0Ll9jYWxsZWRDb21wb25lbnRXaWxsVW5tb3VudCA9IHRydWU7XG5cbiAgICAgIGlmIChzYWZlbHkpIHtcbiAgICAgICAgdmFyIG5hbWUgPSB0aGlzLmdldE5hbWUoKSArICcuY29tcG9uZW50V2lsbFVubW91bnQoKSc7XG4gICAgICAgIFJlYWN0RXJyb3JVdGlscy5pbnZva2VHdWFyZGVkQ2FsbGJhY2sobmFtZSwgaW5zdC5jb21wb25lbnRXaWxsVW5tb3VudC5iaW5kKGluc3QpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgbWVhc3VyZUxpZmVDeWNsZVBlcmYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGluc3QuY29tcG9uZW50V2lsbFVubW91bnQoKTtcbiAgICAgICAgICB9LCB0aGlzLl9kZWJ1Z0lELCAnY29tcG9uZW50V2lsbFVubW91bnQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbnN0LmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcmVuZGVyZWRDb21wb25lbnQpIHtcbiAgICAgIFJlYWN0UmVjb25jaWxlci51bm1vdW50Q29tcG9uZW50KHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50LCBzYWZlbHkpO1xuICAgICAgdGhpcy5fcmVuZGVyZWROb2RlVHlwZSA9IG51bGw7XG4gICAgICB0aGlzLl9yZW5kZXJlZENvbXBvbmVudCA9IG51bGw7XG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgcGVuZGluZyBmaWVsZHNcbiAgICAvLyBFdmVuIGlmIHRoaXMgY29tcG9uZW50IGlzIHNjaGVkdWxlZCBmb3IgYW5vdGhlciB1cGRhdGUgaW4gUmVhY3RVcGRhdGVzLFxuICAgIC8vIGl0IHdvdWxkIHN0aWxsIGJlIGlnbm9yZWQgYmVjYXVzZSB0aGVzZSBmaWVsZHMgYXJlIHJlc2V0LlxuICAgIHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gbnVsbDtcbiAgICB0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ0ZvcmNlVXBkYXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ0NhbGxiYWNrcyA9IG51bGw7XG4gICAgdGhpcy5fcGVuZGluZ0VsZW1lbnQgPSBudWxsO1xuXG4gICAgLy8gVGhlc2UgZmllbGRzIGRvIG5vdCByZWFsbHkgbmVlZCB0byBiZSByZXNldCBzaW5jZSB0aGlzIG9iamVjdCBpcyBub1xuICAgIC8vIGxvbmdlciBhY2Nlc3NpYmxlLlxuICAgIHRoaXMuX2NvbnRleHQgPSBudWxsO1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSAwO1xuICAgIHRoaXMuX3RvcExldmVsV3JhcHBlciA9IG51bGw7XG5cbiAgICAvLyBEZWxldGUgdGhlIHJlZmVyZW5jZSBmcm9tIHRoZSBpbnN0YW5jZSB0byB0aGlzIGludGVybmFsIHJlcHJlc2VudGF0aW9uXG4gICAgLy8gd2hpY2ggYWxsb3cgdGhlIGludGVybmFscyB0byBiZSBwcm9wZXJseSBjbGVhbmVkIHVwIGV2ZW4gaWYgdGhlIHVzZXJcbiAgICAvLyBsZWFrcyBhIHJlZmVyZW5jZSB0byB0aGUgcHVibGljIGluc3RhbmNlLlxuICAgIFJlYWN0SW5zdGFuY2VNYXAucmVtb3ZlKGluc3QpO1xuXG4gICAgLy8gU29tZSBleGlzdGluZyBjb21wb25lbnRzIHJlbHkgb24gaW5zdC5wcm9wcyBldmVuIGFmdGVyIHRoZXkndmUgYmVlblxuICAgIC8vIGRlc3Ryb3llZCAoaW4gZXZlbnQgaGFuZGxlcnMpLlxuICAgIC8vIFRPRE86IGluc3QucHJvcHMgPSBudWxsO1xuICAgIC8vIFRPRE86IGluc3Quc3RhdGUgPSBudWxsO1xuICAgIC8vIFRPRE86IGluc3QuY29udGV4dCA9IG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgdGhlIGNvbnRleHQgb2JqZWN0IHRvIG9ubHkgY29udGFpbiBrZXlzIHNwZWNpZmllZCBpblxuICAgKiBgY29udGV4dFR5cGVzYFxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHs/b2JqZWN0fVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX21hc2tDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgIHZhciBjb250ZXh0VHlwZXMgPSBDb21wb25lbnQuY29udGV4dFR5cGVzO1xuICAgIGlmICghY29udGV4dFR5cGVzKSB7XG4gICAgICByZXR1cm4gZW1wdHlPYmplY3Q7XG4gICAgfVxuICAgIHZhciBtYXNrZWRDb250ZXh0ID0ge307XG4gICAgZm9yICh2YXIgY29udGV4dE5hbWUgaW4gY29udGV4dFR5cGVzKSB7XG4gICAgICBtYXNrZWRDb250ZXh0W2NvbnRleHROYW1lXSA9IGNvbnRleHRbY29udGV4dE5hbWVdO1xuICAgIH1cbiAgICByZXR1cm4gbWFza2VkQ29udGV4dDtcbiAgfSxcblxuICAvKipcbiAgICogRmlsdGVycyB0aGUgY29udGV4dCBvYmplY3QgdG8gb25seSBjb250YWluIGtleXMgc3BlY2lmaWVkIGluXG4gICAqIGBjb250ZXh0VHlwZXNgLCBhbmQgYXNzZXJ0cyB0aGF0IHRoZXkgYXJlIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHs/b2JqZWN0fVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3Byb2Nlc3NDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBtYXNrZWRDb250ZXh0ID0gdGhpcy5fbWFza0NvbnRleHQoY29udGV4dCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgICAgaWYgKENvbXBvbmVudC5jb250ZXh0VHlwZXMpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tDb250ZXh0VHlwZXMoQ29tcG9uZW50LmNvbnRleHRUeXBlcywgbWFza2VkQ29udGV4dCwgJ2NvbnRleHQnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hc2tlZENvbnRleHQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjdXJyZW50Q29udGV4dFxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcHJvY2Vzc0NoaWxkQ29udGV4dDogZnVuY3Rpb24gKGN1cnJlbnRDb250ZXh0KSB7XG4gICAgdmFyIENvbXBvbmVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcbiAgICB2YXIgY2hpbGRDb250ZXh0O1xuXG4gICAgaWYgKGluc3QuZ2V0Q2hpbGRDb250ZXh0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25CZWdpblByb2Nlc3NpbmdDaGlsZENvbnRleHQoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjaGlsZENvbnRleHQgPSBpbnN0LmdldENoaWxkQ29udGV4dCgpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0SW5zdHJ1bWVudGF0aW9uLmRlYnVnVG9vbC5vbkVuZFByb2Nlc3NpbmdDaGlsZENvbnRleHQoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRDb250ZXh0ID0gaW5zdC5nZXRDaGlsZENvbnRleHQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hpbGRDb250ZXh0KSB7XG4gICAgICAhKHR5cGVvZiBDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMgPT09ICdvYmplY3QnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcy5nZXRDaGlsZENvbnRleHQoKTogY2hpbGRDb250ZXh0VHlwZXMgbXVzdCBiZSBkZWZpbmVkIGluIG9yZGVyIHRvIHVzZSBnZXRDaGlsZENvbnRleHQoKS4nLCB0aGlzLmdldE5hbWUoKSB8fCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnKSA6IF9wcm9kSW52YXJpYW50KCcxMDcnLCB0aGlzLmdldE5hbWUoKSB8fCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnKSA6IHZvaWQgMDtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHRoaXMuX2NoZWNrQ29udGV4dFR5cGVzKENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcywgY2hpbGRDb250ZXh0LCAnY2hpbGQgY29udGV4dCcpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgbmFtZSBpbiBjaGlsZENvbnRleHQpIHtcbiAgICAgICAgIShuYW1lIGluIENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnJXMuZ2V0Q2hpbGRDb250ZXh0KCk6IGtleSBcIiVzXCIgaXMgbm90IGRlZmluZWQgaW4gY2hpbGRDb250ZXh0VHlwZXMuJywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JywgbmFtZSkgOiBfcHJvZEludmFyaWFudCgnMTA4JywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JywgbmFtZSkgOiB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gX2Fzc2lnbih7fSwgY3VycmVudENvbnRleHQsIGNoaWxkQ29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50Q29udGV4dDtcbiAgfSxcblxuICAvKipcbiAgICogQXNzZXJ0IHRoYXQgdGhlIGNvbnRleHQgdHlwZXMgYXJlIHZhbGlkXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB0eXBlU3BlY3MgTWFwIG9mIGNvbnRleHQgZmllbGQgdG8gYSBSZWFjdFByb3BUeXBlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB2YWx1ZXMgUnVudGltZSB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIHR5cGUtY2hlY2tlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gZS5nLiBcInByb3BcIiwgXCJjb250ZXh0XCIsIFwiY2hpbGQgY29udGV4dFwiXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfY2hlY2tDb250ZXh0VHlwZXM6IGZ1bmN0aW9uICh0eXBlU3BlY3MsIHZhbHVlcywgbG9jYXRpb24pIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY2hlY2tSZWFjdFR5cGVTcGVjKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgdGhpcy5nZXROYW1lKCksIG51bGwsIHRoaXMuX2RlYnVnSUQpO1xuICAgIH1cbiAgfSxcblxuICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAobmV4dEVsZW1lbnQsIHRyYW5zYWN0aW9uLCBuZXh0Q29udGV4dCkge1xuICAgIHZhciBwcmV2RWxlbWVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50O1xuICAgIHZhciBwcmV2Q29udGV4dCA9IHRoaXMuX2NvbnRleHQ7XG5cbiAgICB0aGlzLl9wZW5kaW5nRWxlbWVudCA9IG51bGw7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCh0cmFuc2FjdGlvbiwgcHJldkVsZW1lbnQsIG5leHRFbGVtZW50LCBwcmV2Q29udGV4dCwgbmV4dENvbnRleHQpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBJZiBhbnkgb2YgYF9wZW5kaW5nRWxlbWVudGAsIGBfcGVuZGluZ1N0YXRlUXVldWVgLCBvciBgX3BlbmRpbmdGb3JjZVVwZGF0ZWBcbiAgICogaXMgc2V0LCB1cGRhdGUgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHBlcmZvcm1VcGRhdGVJZk5lY2Vzc2FyeTogZnVuY3Rpb24gKHRyYW5zYWN0aW9uKSB7XG4gICAgaWYgKHRoaXMuX3BlbmRpbmdFbGVtZW50ICE9IG51bGwpIHtcbiAgICAgIFJlYWN0UmVjb25jaWxlci5yZWNlaXZlQ29tcG9uZW50KHRoaXMsIHRoaXMuX3BlbmRpbmdFbGVtZW50LCB0cmFuc2FjdGlvbiwgdGhpcy5fY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9wZW5kaW5nU3RhdGVRdWV1ZSAhPT0gbnVsbCB8fCB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50KHRyYW5zYWN0aW9uLCB0aGlzLl9jdXJyZW50RWxlbWVudCwgdGhpcy5fY3VycmVudEVsZW1lbnQsIHRoaXMuX2NvbnRleHQsIHRoaXMuX2NvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVCYXRjaE51bWJlciA9IG51bGw7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGFuIHVwZGF0ZSB0byBhIG1vdW50ZWQgY29tcG9uZW50LiBUaGUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyBhbmRcbiAgICogc2hvdWxkQ29tcG9uZW50VXBkYXRlIG1ldGhvZHMgYXJlIGNhbGxlZCwgdGhlbiAoYXNzdW1pbmcgdGhlIHVwZGF0ZSBpc24ndFxuICAgKiBza2lwcGVkKSB0aGUgcmVtYWluaW5nIHVwZGF0ZSBsaWZlY3ljbGUgbWV0aG9kcyBhcmUgY2FsbGVkIGFuZCB0aGUgRE9NXG4gICAqIHJlcHJlc2VudGF0aW9uIGlzIHVwZGF0ZWQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaW1wbGVtZW50cyBSZWFjdCdzIHJlbmRlcmluZyBhbmQgcmVjb25jaWxpYXRpb24gYWxnb3JpdGhtLlxuICAgKiBTb3BoaXN0aWNhdGVkIGNsaWVudHMgbWF5IHdpc2ggdG8gb3ZlcnJpZGUgdGhpcy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gcHJldlBhcmVudEVsZW1lbnRcbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRQYXJlbnRFbGVtZW50XG4gICAqIEBpbnRlcm5hbFxuICAgKiBAb3ZlcnJpZGFibGVcbiAgICovXG4gIHVwZGF0ZUNvbXBvbmVudDogZnVuY3Rpb24gKHRyYW5zYWN0aW9uLCBwcmV2UGFyZW50RWxlbWVudCwgbmV4dFBhcmVudEVsZW1lbnQsIHByZXZVbm1hc2tlZENvbnRleHQsIG5leHRVbm1hc2tlZENvbnRleHQpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuICAgICEoaW5zdCAhPSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdBdHRlbXB0ZWQgdG8gdXBkYXRlIGNvbXBvbmVudCBgJXNgIHRoYXQgaGFzIGFscmVhZHkgYmVlbiB1bm1vdW50ZWQgKG9yIGZhaWxlZCB0byBtb3VudCkuJywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiBfcHJvZEludmFyaWFudCgnMTM2JywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB2b2lkIDA7XG5cbiAgICB2YXIgd2lsbFJlY2VpdmUgPSBmYWxzZTtcbiAgICB2YXIgbmV4dENvbnRleHQ7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhlIGNvbnRleHQgaGFzIGNoYW5nZWQgb3Igbm90XG4gICAgaWYgKHRoaXMuX2NvbnRleHQgPT09IG5leHRVbm1hc2tlZENvbnRleHQpIHtcbiAgICAgIG5leHRDb250ZXh0ID0gaW5zdC5jb250ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0Q29udGV4dCA9IHRoaXMuX3Byb2Nlc3NDb250ZXh0KG5leHRVbm1hc2tlZENvbnRleHQpO1xuICAgICAgd2lsbFJlY2VpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHZhciBwcmV2UHJvcHMgPSBwcmV2UGFyZW50RWxlbWVudC5wcm9wcztcbiAgICB2YXIgbmV4dFByb3BzID0gbmV4dFBhcmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICAvLyBOb3QgYSBzaW1wbGUgc3RhdGUgdXBkYXRlIGJ1dCBhIHByb3BzIHVwZGF0ZVxuICAgIGlmIChwcmV2UGFyZW50RWxlbWVudCAhPT0gbmV4dFBhcmVudEVsZW1lbnQpIHtcbiAgICAgIHdpbGxSZWNlaXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBBbiB1cGRhdGUgaGVyZSB3aWxsIHNjaGVkdWxlIGFuIHVwZGF0ZSBidXQgaW1tZWRpYXRlbHkgc2V0XG4gICAgLy8gX3BlbmRpbmdTdGF0ZVF1ZXVlIHdoaWNoIHdpbGwgZW5zdXJlIHRoYXQgYW55IHN0YXRlIHVwZGF0ZXMgZ2V0c1xuICAgIC8vIGltbWVkaWF0ZWx5IHJlY29uY2lsZWQgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUgbmV4dCBiYXRjaC5cbiAgICBpZiAod2lsbFJlY2VpdmUgJiYgaW5zdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGluc3QuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICAgICAgfSwgdGhpcy5fZGVidWdJRCwgJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluc3QuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbmV4dFN0YXRlID0gdGhpcy5fcHJvY2Vzc1BlbmRpbmdTdGF0ZShuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICB2YXIgc2hvdWxkVXBkYXRlID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy5fcGVuZGluZ0ZvcmNlVXBkYXRlKSB7XG4gICAgICBpZiAoaW5zdC5zaG91bGRDb21wb25lbnRVcGRhdGUpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBzaG91bGRVcGRhdGUgPSBtZWFzdXJlTGlmZUN5Y2xlUGVyZihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdC5zaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgICAgICB9LCB0aGlzLl9kZWJ1Z0lELCAnc2hvdWxkQ29tcG9uZW50VXBkYXRlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2hvdWxkVXBkYXRlID0gaW5zdC5zaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvc2l0ZVR5cGUgPT09IENvbXBvc2l0ZVR5cGVzLlB1cmVDbGFzcykge1xuICAgICAgICAgIHNob3VsZFVwZGF0ZSA9ICFzaGFsbG93RXF1YWwocHJldlByb3BzLCBuZXh0UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwoaW5zdC5zdGF0ZSwgbmV4dFN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhzaG91bGRVcGRhdGUgIT09IHVuZGVmaW5lZCwgJyVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgpOiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhICcgKyAnYm9vbGVhbiB2YWx1ZS4gTWFrZSBzdXJlIHRvIHJldHVybiB0cnVlIG9yIGZhbHNlLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogdm9pZCAwO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUJhdGNoTnVtYmVyID0gbnVsbDtcbiAgICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgICB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgPSBmYWxzZTtcbiAgICAgIC8vIFdpbGwgc2V0IGB0aGlzLnByb3BzYCwgYHRoaXMuc3RhdGVgIGFuZCBgdGhpcy5jb250ZXh0YC5cbiAgICAgIHRoaXMuX3BlcmZvcm1Db21wb25lbnRVcGRhdGUobmV4dFBhcmVudEVsZW1lbnQsIG5leHRQcm9wcywgbmV4dFN0YXRlLCBuZXh0Q29udGV4dCwgdHJhbnNhY3Rpb24sIG5leHRVbm1hc2tlZENvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBpdCdzIGRldGVybWluZWQgdGhhdCBhIGNvbXBvbmVudCBzaG91bGQgbm90IHVwZGF0ZSwgd2Ugc3RpbGwgd2FudFxuICAgICAgLy8gdG8gc2V0IHByb3BzIGFuZCBzdGF0ZSBidXQgd2Ugc2hvcnRjdXQgdGhlIHJlc3Qgb2YgdGhlIHVwZGF0ZS5cbiAgICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gbmV4dFBhcmVudEVsZW1lbnQ7XG4gICAgICB0aGlzLl9jb250ZXh0ID0gbmV4dFVubWFza2VkQ29udGV4dDtcbiAgICAgIGluc3QucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgICBpbnN0LnN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgaW5zdC5jb250ZXh0ID0gbmV4dENvbnRleHQ7XG4gICAgfVxuICB9LFxuXG4gIF9wcm9jZXNzUGVuZGluZ1N0YXRlOiBmdW5jdGlvbiAocHJvcHMsIGNvbnRleHQpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuICAgIHZhciBxdWV1ZSA9IHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlO1xuICAgIHZhciByZXBsYWNlID0gdGhpcy5fcGVuZGluZ1JlcGxhY2VTdGF0ZTtcbiAgICB0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWUgPSBudWxsO1xuXG4gICAgaWYgKCFxdWV1ZSkge1xuICAgICAgcmV0dXJuIGluc3Quc3RhdGU7XG4gICAgfVxuXG4gICAgaWYgKHJlcGxhY2UgJiYgcXVldWUubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gcXVldWVbMF07XG4gICAgfVxuXG4gICAgdmFyIG5leHRTdGF0ZSA9IF9hc3NpZ24oe30sIHJlcGxhY2UgPyBxdWV1ZVswXSA6IGluc3Quc3RhdGUpO1xuICAgIGZvciAodmFyIGkgPSByZXBsYWNlID8gMSA6IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHBhcnRpYWwgPSBxdWV1ZVtpXTtcbiAgICAgIF9hc3NpZ24obmV4dFN0YXRlLCB0eXBlb2YgcGFydGlhbCA9PT0gJ2Z1bmN0aW9uJyA/IHBhcnRpYWwuY2FsbChpbnN0LCBuZXh0U3RhdGUsIHByb3BzLCBjb250ZXh0KSA6IHBhcnRpYWwpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0U3RhdGU7XG4gIH0sXG5cbiAgLyoqXG4gICAqIE1lcmdlcyBuZXcgcHJvcHMgYW5kIHN0YXRlLCBub3RpZmllcyBkZWxlZ2F0ZSBtZXRob2RzIG9mIHVwZGF0ZSBhbmRcbiAgICogcGVyZm9ybXMgdXBkYXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnQgTmV4dCBlbGVtZW50XG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXh0UHJvcHMgTmV4dCBwdWJsaWMgb2JqZWN0IHRvIHNldCBhcyBwcm9wZXJ0aWVzLlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHRTdGF0ZSBOZXh0IG9iamVjdCB0byBzZXQgYXMgc3RhdGUuXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbmV4dENvbnRleHQgTmV4dCBwdWJsaWMgb2JqZWN0IHRvIHNldCBhcyBjb250ZXh0LlxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7P29iamVjdH0gdW5tYXNrZWRDb250ZXh0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcGVyZm9ybUNvbXBvbmVudFVwZGF0ZTogZnVuY3Rpb24gKG5leHRFbGVtZW50LCBuZXh0UHJvcHMsIG5leHRTdGF0ZSwgbmV4dENvbnRleHQsIHRyYW5zYWN0aW9uLCB1bm1hc2tlZENvbnRleHQpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIHZhciBpbnN0ID0gdGhpcy5faW5zdGFuY2U7XG5cbiAgICB2YXIgaGFzQ29tcG9uZW50RGlkVXBkYXRlID0gQm9vbGVhbihpbnN0LmNvbXBvbmVudERpZFVwZGF0ZSk7XG4gICAgdmFyIHByZXZQcm9wcztcbiAgICB2YXIgcHJldlN0YXRlO1xuICAgIHZhciBwcmV2Q29udGV4dDtcbiAgICBpZiAoaGFzQ29tcG9uZW50RGlkVXBkYXRlKSB7XG4gICAgICBwcmV2UHJvcHMgPSBpbnN0LnByb3BzO1xuICAgICAgcHJldlN0YXRlID0gaW5zdC5zdGF0ZTtcbiAgICAgIHByZXZDb250ZXh0ID0gaW5zdC5jb250ZXh0O1xuICAgIH1cblxuICAgIGlmIChpbnN0LmNvbXBvbmVudFdpbGxVcGRhdGUpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIG1lYXN1cmVMaWZlQ3ljbGVQZXJmKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gaW5zdC5jb21wb25lbnRXaWxsVXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlLCBuZXh0Q29udGV4dCk7XG4gICAgICAgIH0sIHRoaXMuX2RlYnVnSUQsICdjb21wb25lbnRXaWxsVXBkYXRlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0LmNvbXBvbmVudFdpbGxVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jdXJyZW50RWxlbWVudCA9IG5leHRFbGVtZW50O1xuICAgIHRoaXMuX2NvbnRleHQgPSB1bm1hc2tlZENvbnRleHQ7XG4gICAgaW5zdC5wcm9wcyA9IG5leHRQcm9wcztcbiAgICBpbnN0LnN0YXRlID0gbmV4dFN0YXRlO1xuICAgIGluc3QuY29udGV4dCA9IG5leHRDb250ZXh0O1xuXG4gICAgdGhpcy5fdXBkYXRlUmVuZGVyZWRDb21wb25lbnQodHJhbnNhY3Rpb24sIHVubWFza2VkQ29udGV4dCk7XG5cbiAgICBpZiAoaGFzQ29tcG9uZW50RGlkVXBkYXRlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBtZWFzdXJlTGlmZUN5Y2xlUGVyZihpbnN0LmNvbXBvbmVudERpZFVwZGF0ZS5iaW5kKGluc3QsIHByZXZQcm9wcywgcHJldlN0YXRlLCBwcmV2Q29udGV4dCksIF90aGlzMi5fZGVidWdJRCwgJ2NvbXBvbmVudERpZFVwZGF0ZScpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoaW5zdC5jb21wb25lbnREaWRVcGRhdGUuYmluZChpbnN0LCBwcmV2UHJvcHMsIHByZXZTdGF0ZSwgcHJldkNvbnRleHQpLCBpbnN0KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIENhbGwgdGhlIGNvbXBvbmVudCdzIGByZW5kZXJgIG1ldGhvZCBhbmQgdXBkYXRlIHRoZSBET00gYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBfdXBkYXRlUmVuZGVyZWRDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBwcmV2Q29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLl9yZW5kZXJlZENvbXBvbmVudDtcbiAgICB2YXIgcHJldlJlbmRlcmVkRWxlbWVudCA9IHByZXZDb21wb25lbnRJbnN0YW5jZS5fY3VycmVudEVsZW1lbnQ7XG4gICAgdmFyIG5leHRSZW5kZXJlZEVsZW1lbnQgPSB0aGlzLl9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQoKTtcblxuICAgIHZhciBkZWJ1Z0lEID0gMDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgZGVidWdJRCA9IHRoaXMuX2RlYnVnSUQ7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50KHByZXZSZW5kZXJlZEVsZW1lbnQsIG5leHRSZW5kZXJlZEVsZW1lbnQpKSB7XG4gICAgICBSZWFjdFJlY29uY2lsZXIucmVjZWl2ZUNvbXBvbmVudChwcmV2Q29tcG9uZW50SW5zdGFuY2UsIG5leHRSZW5kZXJlZEVsZW1lbnQsIHRyYW5zYWN0aW9uLCB0aGlzLl9wcm9jZXNzQ2hpbGRDb250ZXh0KGNvbnRleHQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG9sZEhvc3ROb2RlID0gUmVhY3RSZWNvbmNpbGVyLmdldEhvc3ROb2RlKHByZXZDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICBSZWFjdFJlY29uY2lsZXIudW5tb3VudENvbXBvbmVudChwcmV2Q29tcG9uZW50SW5zdGFuY2UsIGZhbHNlKTtcblxuICAgICAgdmFyIG5vZGVUeXBlID0gUmVhY3ROb2RlVHlwZXMuZ2V0VHlwZShuZXh0UmVuZGVyZWRFbGVtZW50KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVkTm9kZVR5cGUgPSBub2RlVHlwZTtcbiAgICAgIHZhciBjaGlsZCA9IHRoaXMuX2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQobmV4dFJlbmRlcmVkRWxlbWVudCwgbm9kZVR5cGUgIT09IFJlYWN0Tm9kZVR5cGVzLkVNUFRZIC8qIHNob3VsZEhhdmVEZWJ1Z0lEICovXG4gICAgICApO1xuICAgICAgdGhpcy5fcmVuZGVyZWRDb21wb25lbnQgPSBjaGlsZDtcblxuICAgICAgdmFyIG5leHRNYXJrdXAgPSBSZWFjdFJlY29uY2lsZXIubW91bnRDb21wb25lbnQoY2hpbGQsIHRyYW5zYWN0aW9uLCB0aGlzLl9ob3N0UGFyZW50LCB0aGlzLl9ob3N0Q29udGFpbmVySW5mbywgdGhpcy5fcHJvY2Vzc0NoaWxkQ29udGV4dChjb250ZXh0KSwgZGVidWdJRCk7XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChkZWJ1Z0lEICE9PSAwKSB7XG4gICAgICAgICAgdmFyIGNoaWxkRGVidWdJRHMgPSBjaGlsZC5fZGVidWdJRCAhPT0gMCA/IFtjaGlsZC5fZGVidWdJRF0gOiBbXTtcbiAgICAgICAgICBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbihkZWJ1Z0lELCBjaGlsZERlYnVnSURzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZXBsYWNlTm9kZVdpdGhNYXJrdXAob2xkSG9zdE5vZGUsIG5leHRNYXJrdXAsIHByZXZDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBPdmVycmlkZGVuIGluIHNoYWxsb3cgcmVuZGVyaW5nLlxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBfcmVwbGFjZU5vZGVXaXRoTWFya3VwOiBmdW5jdGlvbiAob2xkSG9zdE5vZGUsIG5leHRNYXJrdXAsIHByZXZJbnN0YW5jZSkge1xuICAgIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQucmVwbGFjZU5vZGVXaXRoTWFya3VwKG9sZEhvc3ROb2RlLCBuZXh0TWFya3VwLCBwcmV2SW5zdGFuY2UpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50V2l0aG91dE93bmVyT3JDb250ZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcbiAgICB2YXIgcmVuZGVyZWRFbGVtZW50O1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IG1lYXN1cmVMaWZlQ3ljbGVQZXJmKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGluc3QucmVuZGVyKCk7XG4gICAgICB9LCB0aGlzLl9kZWJ1Z0lELCAncmVuZGVyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IGluc3QucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIFdlIGFsbG93IGF1dG8tbW9ja3MgdG8gcHJvY2VlZCBhcyBpZiB0aGV5J3JlIHJldHVybmluZyBudWxsLlxuICAgICAgaWYgKHJlbmRlcmVkRWxlbWVudCA9PT0gdW5kZWZpbmVkICYmIGluc3QucmVuZGVyLl9pc01vY2tGdW5jdGlvbikge1xuICAgICAgICAvLyBUaGlzIGlzIHByb2JhYmx5IGJhZCBwcmFjdGljZS4gQ29uc2lkZXIgd2FybmluZyBoZXJlIGFuZFxuICAgICAgICAvLyBkZXByZWNhdGluZyB0aGlzIGNvbnZlbmllbmNlLlxuICAgICAgICByZW5kZXJlZEVsZW1lbnQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZW5kZXJlZEVsZW1lbnQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlbmRlcmVkRWxlbWVudDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyB8fCB0aGlzLl9jb21wb3NpdGVUeXBlICE9PSBDb21wb3NpdGVUeXBlcy5TdGF0ZWxlc3NGdW5jdGlvbmFsKSB7XG4gICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gdGhpcztcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlbmRlcmVkRWxlbWVudCA9IHRoaXMuX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudFdpdGhvdXRPd25lck9yQ29udGV4dCgpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IHRoaXMuX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudFdpdGhvdXRPd25lck9yQ29udGV4dCgpO1xuICAgIH1cbiAgICAhKFxuICAgIC8vIFRPRE86IEFuIGBpc1ZhbGlkTm9kZWAgZnVuY3Rpb24gd291bGQgcHJvYmFibHkgYmUgbW9yZSBhcHByb3ByaWF0ZVxuICAgIHJlbmRlcmVkRWxlbWVudCA9PT0gbnVsbCB8fCByZW5kZXJlZEVsZW1lbnQgPT09IGZhbHNlIHx8IFJlYWN0LmlzVmFsaWRFbGVtZW50KHJlbmRlcmVkRWxlbWVudCkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzLnJlbmRlcigpOiBBIHZhbGlkIFJlYWN0IGVsZW1lbnQgKG9yIG51bGwpIG11c3QgYmUgcmV0dXJuZWQuIFlvdSBtYXkgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQsIGFuIGFycmF5IG9yIHNvbWUgb3RoZXIgaW52YWxpZCBvYmplY3QuJywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiBfcHJvZEludmFyaWFudCgnMTA5JywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB2b2lkIDA7XG5cbiAgICByZXR1cm4gcmVuZGVyZWRFbGVtZW50O1xuICB9LFxuXG4gIC8qKlxuICAgKiBMYXppbHkgYWxsb2NhdGVzIHRoZSByZWZzIG9iamVjdCBhbmQgc3RvcmVzIGBjb21wb25lbnRgIGFzIGByZWZgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmIFJlZmVyZW5jZSBuYW1lLlxuICAgKiBAcGFyYW0ge2NvbXBvbmVudH0gY29tcG9uZW50IENvbXBvbmVudCB0byBzdG9yZSBhcyBgcmVmYC5cbiAgICogQGZpbmFsXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhdHRhY2hSZWY6IGZ1bmN0aW9uIChyZWYsIGNvbXBvbmVudCkge1xuICAgIHZhciBpbnN0ID0gdGhpcy5nZXRQdWJsaWNJbnN0YW5jZSgpO1xuICAgICEoaW5zdCAhPSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdTdGF0ZWxlc3MgZnVuY3Rpb24gY29tcG9uZW50cyBjYW5ub3QgaGF2ZSByZWZzLicpIDogX3Byb2RJbnZhcmlhbnQoJzExMCcpIDogdm9pZCAwO1xuICAgIHZhciBwdWJsaWNDb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudC5nZXRQdWJsaWNJbnN0YW5jZSgpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudCAmJiBjb21wb25lbnQuZ2V0TmFtZSA/IGNvbXBvbmVudC5nZXROYW1lKCkgOiAnYSBjb21wb25lbnQnO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcocHVibGljQ29tcG9uZW50SW5zdGFuY2UgIT0gbnVsbCB8fCBjb21wb25lbnQuX2NvbXBvc2l0ZVR5cGUgIT09IENvbXBvc2l0ZVR5cGVzLlN0YXRlbGVzc0Z1bmN0aW9uYWwsICdTdGF0ZWxlc3MgZnVuY3Rpb24gY29tcG9uZW50cyBjYW5ub3QgYmUgZ2l2ZW4gcmVmcyAnICsgJyhTZWUgcmVmIFwiJXNcIiBpbiAlcyBjcmVhdGVkIGJ5ICVzKS4gJyArICdBdHRlbXB0cyB0byBhY2Nlc3MgdGhpcyByZWYgd2lsbCBmYWlsLicsIHJlZiwgY29tcG9uZW50TmFtZSwgdGhpcy5nZXROYW1lKCkpIDogdm9pZCAwO1xuICAgIH1cbiAgICB2YXIgcmVmcyA9IGluc3QucmVmcyA9PT0gZW1wdHlPYmplY3QgPyBpbnN0LnJlZnMgPSB7fSA6IGluc3QucmVmcztcbiAgICByZWZzW3JlZl0gPSBwdWJsaWNDb21wb25lbnRJbnN0YW5jZTtcbiAgfSxcblxuICAvKipcbiAgICogRGV0YWNoZXMgYSByZWZlcmVuY2UgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlZiBOYW1lIHRvIGRlcmVmZXJlbmNlLlxuICAgKiBAZmluYWxcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGRldGFjaFJlZjogZnVuY3Rpb24gKHJlZikge1xuICAgIHZhciByZWZzID0gdGhpcy5nZXRQdWJsaWNJbnN0YW5jZSgpLnJlZnM7XG4gICAgZGVsZXRlIHJlZnNbcmVmXTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgdGV4dCBkZXNjcmlwdGlvbiBvZiB0aGUgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgaXRcbiAgICogaW4gZXJyb3IgbWVzc2FnZXMuXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIG5hbWUgb3IgbnVsbC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXROYW1lOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHR5cGUgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgIHZhciBjb25zdHJ1Y3RvciA9IHRoaXMuX2luc3RhbmNlICYmIHRoaXMuX2luc3RhbmNlLmNvbnN0cnVjdG9yO1xuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IGNvbnN0cnVjdG9yICYmIGNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBjb25zdHJ1Y3RvciAmJiBjb25zdHJ1Y3Rvci5uYW1lIHx8IG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHVibGljbHkgYWNjZXNzaWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGNvbXBvbmVudCAtIGkuZS4gd2hhdFxuICAgKiBpcyBleHBvc2VkIGJ5IHJlZnMgYW5kIHJldHVybmVkIGJ5IHJlbmRlci4gQ2FuIGJlIG51bGwgZm9yIHN0YXRlbGVzc1xuICAgKiBjb21wb25lbnRzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtSZWFjdENvbXBvbmVudH0gdGhlIHB1YmxpYyBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0UHVibGljSW5zdGFuY2U6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuICAgIGlmICh0aGlzLl9jb21wb3NpdGVUeXBlID09PSBDb21wb3NpdGVUeXBlcy5TdGF0ZWxlc3NGdW5jdGlvbmFsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGluc3Q7XG4gIH0sXG5cbiAgLy8gU3R1YlxuICBfaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudDogbnVsbFxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxOTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///190\n"); /***/ }), /* 191 */ @@ -2419,7 +2419,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar KeyEscapeUtils = __webpack_require__(/*! ./KeyEscapeUtils */ 58);\nvar traverseAllChildren = __webpack_require__(/*! ./traverseAllChildren */ 100);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n}\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTk2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZmxhdHRlbkNoaWxkcmVuLmpzPzdmYTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgS2V5RXNjYXBlVXRpbHMgPSByZXF1aXJlKCcuL0tleUVzY2FwZVV0aWxzJyk7XG52YXIgdHJhdmVyc2VBbGxDaGlsZHJlbiA9IHJlcXVpcmUoJy4vdHJhdmVyc2VBbGxDaGlsZHJlbicpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBSZWFjdENvbXBvbmVudFRyZWVIb29rO1xuXG5pZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcbiAgLy8gVGVtcG9yYXJ5IGhhY2suXG4gIC8vIElubGluZSByZXF1aXJlcyBkb24ndCB3b3JrIHdlbGwgd2l0aCBKZXN0OlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzcyNDBcbiAgLy8gUmVtb3ZlIHRoZSBpbmxpbmUgcmVxdWlyZXMgd2hlbiB3ZSBkb24ndCBuZWVkIHRoZW0gYW55bW9yZTpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvNzE3OFxuICBSZWFjdENvbXBvbmVudFRyZWVIb29rID0gcmVxdWlyZSgncmVhY3QvbGliL1JlYWN0Q29tcG9uZW50VHJlZUhvb2snKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSB0cmF2ZXJzZUNvbnRleHQgQ29udGV4dCBwYXNzZWQgdGhyb3VnaCB0cmF2ZXJzYWwuXG4gKiBAcGFyYW0gez9SZWFjdENvbXBvbmVudH0gY2hpbGQgUmVhY3QgY2hpbGQgY29tcG9uZW50LlxuICogQHBhcmFtIHshc3RyaW5nfSBuYW1lIFN0cmluZyBuYW1lIG9mIGtleSBwYXRoIHRvIGNoaWxkLlxuICogQHBhcmFtIHtudW1iZXI9fSBzZWxmRGVidWdJRCBPcHRpb25hbCBkZWJ1Z0lEIG9mIHRoZSBjdXJyZW50IGludGVybmFsIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBmbGF0dGVuU2luZ2xlQ2hpbGRJbnRvQ29udGV4dCh0cmF2ZXJzZUNvbnRleHQsIGNoaWxkLCBuYW1lLCBzZWxmRGVidWdJRCkge1xuICAvLyBXZSBmb3VuZCBhIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgaWYgKHRyYXZlcnNlQ29udGV4dCAmJiB0eXBlb2YgdHJhdmVyc2VDb250ZXh0ID09PSAnb2JqZWN0Jykge1xuICAgIHZhciByZXN1bHQgPSB0cmF2ZXJzZUNvbnRleHQ7XG4gICAgdmFyIGtleVVuaXF1ZSA9IHJlc3VsdFtuYW1lXSA9PT0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoIVJlYWN0Q29tcG9uZW50VHJlZUhvb2spIHtcbiAgICAgICAgUmVhY3RDb21wb25lbnRUcmVlSG9vayA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdENvbXBvbmVudFRyZWVIb29rJyk7XG4gICAgICB9XG4gICAgICBpZiAoIWtleVVuaXF1ZSkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2ZsYXR0ZW5DaGlsZHJlbiguLi4pOiBFbmNvdW50ZXJlZCB0d28gY2hpbGRyZW4gd2l0aCB0aGUgc2FtZSBrZXksICcgKyAnYCVzYC4gQ2hpbGQga2V5cyBtdXN0IGJlIHVuaXF1ZTsgd2hlbiB0d28gY2hpbGRyZW4gc2hhcmUgYSBrZXksIG9ubHkgJyArICd0aGUgZmlyc3QgY2hpbGQgd2lsbCBiZSB1c2VkLiVzJywgS2V5RXNjYXBlVXRpbHMudW5lc2NhcGUobmFtZSksIFJlYWN0Q29tcG9uZW50VHJlZUhvb2suZ2V0U3RhY2tBZGRlbmR1bUJ5SUQoc2VsZkRlYnVnSUQpKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGtleVVuaXF1ZSAmJiBjaGlsZCAhPSBudWxsKSB7XG4gICAgICByZXN1bHRbbmFtZV0gPSBjaGlsZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBGbGF0dGVucyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuIEFueSBudWxsXG4gKiBjaGlsZHJlbiB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIG9iamVjdC5cbiAqIEByZXR1cm4geyFvYmplY3R9IGZsYXR0ZW5lZCBjaGlsZHJlbiBrZXllZCBieSBuYW1lLlxuICovXG5mdW5jdGlvbiBmbGF0dGVuQ2hpbGRyZW4oY2hpbGRyZW4sIHNlbGZEZWJ1Z0lEKSB7XG4gIGlmIChjaGlsZHJlbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHZhciByZXN1bHQgPSB7fTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uICh0cmF2ZXJzZUNvbnRleHQsIGNoaWxkLCBuYW1lKSB7XG4gICAgICByZXR1cm4gZmxhdHRlblNpbmdsZUNoaWxkSW50b0NvbnRleHQodHJhdmVyc2VDb250ZXh0LCBjaGlsZCwgbmFtZSwgc2VsZkRlYnVnSUQpO1xuICAgIH0sIHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgdHJhdmVyc2VBbGxDaGlsZHJlbihjaGlsZHJlbiwgZmxhdHRlblNpbmdsZUNoaWxkSW50b0NvbnRleHQsIHJlc3VsdCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmbGF0dGVuQ2hpbGRyZW47XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9mbGF0dGVuQ2hpbGRyZW4uanNcbi8vIG1vZHVsZSBpZCA9IDE5NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///196\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar KeyEscapeUtils = __webpack_require__(/*! ./KeyEscapeUtils */ 59);\nvar traverseAllChildren = __webpack_require__(/*! ./traverseAllChildren */ 100);\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n}\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ 7);\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTk2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZmxhdHRlbkNoaWxkcmVuLmpzPzdmYTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgS2V5RXNjYXBlVXRpbHMgPSByZXF1aXJlKCcuL0tleUVzY2FwZVV0aWxzJyk7XG52YXIgdHJhdmVyc2VBbGxDaGlsZHJlbiA9IHJlcXVpcmUoJy4vdHJhdmVyc2VBbGxDaGlsZHJlbicpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBSZWFjdENvbXBvbmVudFRyZWVIb29rO1xuXG5pZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcbiAgLy8gVGVtcG9yYXJ5IGhhY2suXG4gIC8vIElubGluZSByZXF1aXJlcyBkb24ndCB3b3JrIHdlbGwgd2l0aCBKZXN0OlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzcyNDBcbiAgLy8gUmVtb3ZlIHRoZSBpbmxpbmUgcmVxdWlyZXMgd2hlbiB3ZSBkb24ndCBuZWVkIHRoZW0gYW55bW9yZTpcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvNzE3OFxuICBSZWFjdENvbXBvbmVudFRyZWVIb29rID0gcmVxdWlyZSgncmVhY3QvbGliL1JlYWN0Q29tcG9uZW50VHJlZUhvb2snKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSB0cmF2ZXJzZUNvbnRleHQgQ29udGV4dCBwYXNzZWQgdGhyb3VnaCB0cmF2ZXJzYWwuXG4gKiBAcGFyYW0gez9SZWFjdENvbXBvbmVudH0gY2hpbGQgUmVhY3QgY2hpbGQgY29tcG9uZW50LlxuICogQHBhcmFtIHshc3RyaW5nfSBuYW1lIFN0cmluZyBuYW1lIG9mIGtleSBwYXRoIHRvIGNoaWxkLlxuICogQHBhcmFtIHtudW1iZXI9fSBzZWxmRGVidWdJRCBPcHRpb25hbCBkZWJ1Z0lEIG9mIHRoZSBjdXJyZW50IGludGVybmFsIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBmbGF0dGVuU2luZ2xlQ2hpbGRJbnRvQ29udGV4dCh0cmF2ZXJzZUNvbnRleHQsIGNoaWxkLCBuYW1lLCBzZWxmRGVidWdJRCkge1xuICAvLyBXZSBmb3VuZCBhIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgaWYgKHRyYXZlcnNlQ29udGV4dCAmJiB0eXBlb2YgdHJhdmVyc2VDb250ZXh0ID09PSAnb2JqZWN0Jykge1xuICAgIHZhciByZXN1bHQgPSB0cmF2ZXJzZUNvbnRleHQ7XG4gICAgdmFyIGtleVVuaXF1ZSA9IHJlc3VsdFtuYW1lXSA9PT0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoIVJlYWN0Q29tcG9uZW50VHJlZUhvb2spIHtcbiAgICAgICAgUmVhY3RDb21wb25lbnRUcmVlSG9vayA9IHJlcXVpcmUoJ3JlYWN0L2xpYi9SZWFjdENvbXBvbmVudFRyZWVIb29rJyk7XG4gICAgICB9XG4gICAgICBpZiAoIWtleVVuaXF1ZSkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2ZsYXR0ZW5DaGlsZHJlbiguLi4pOiBFbmNvdW50ZXJlZCB0d28gY2hpbGRyZW4gd2l0aCB0aGUgc2FtZSBrZXksICcgKyAnYCVzYC4gQ2hpbGQga2V5cyBtdXN0IGJlIHVuaXF1ZTsgd2hlbiB0d28gY2hpbGRyZW4gc2hhcmUgYSBrZXksIG9ubHkgJyArICd0aGUgZmlyc3QgY2hpbGQgd2lsbCBiZSB1c2VkLiVzJywgS2V5RXNjYXBlVXRpbHMudW5lc2NhcGUobmFtZSksIFJlYWN0Q29tcG9uZW50VHJlZUhvb2suZ2V0U3RhY2tBZGRlbmR1bUJ5SUQoc2VsZkRlYnVnSUQpKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGtleVVuaXF1ZSAmJiBjaGlsZCAhPSBudWxsKSB7XG4gICAgICByZXN1bHRbbmFtZV0gPSBjaGlsZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBGbGF0dGVucyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAuIEFueSBudWxsXG4gKiBjaGlsZHJlbiB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIG9iamVjdC5cbiAqIEByZXR1cm4geyFvYmplY3R9IGZsYXR0ZW5lZCBjaGlsZHJlbiBrZXllZCBieSBuYW1lLlxuICovXG5mdW5jdGlvbiBmbGF0dGVuQ2hpbGRyZW4oY2hpbGRyZW4sIHNlbGZEZWJ1Z0lEKSB7XG4gIGlmIChjaGlsZHJlbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHZhciByZXN1bHQgPSB7fTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uICh0cmF2ZXJzZUNvbnRleHQsIGNoaWxkLCBuYW1lKSB7XG4gICAgICByZXR1cm4gZmxhdHRlblNpbmdsZUNoaWxkSW50b0NvbnRleHQodHJhdmVyc2VDb250ZXh0LCBjaGlsZCwgbmFtZSwgc2VsZkRlYnVnSUQpO1xuICAgIH0sIHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgdHJhdmVyc2VBbGxDaGlsZHJlbihjaGlsZHJlbiwgZmxhdHRlblNpbmdsZUNoaWxkSW50b0NvbnRleHQsIHJlc3VsdCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmbGF0dGVuQ2hpbGRyZW47XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9mbGF0dGVuQ2hpbGRyZW4uanNcbi8vIG1vZHVsZSBpZCA9IDE5NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///196\n"); /***/ }), /* 197 */ @@ -2443,7 +2443,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = __webpack_require__(/*! ./ReactUpdateQueue */ 59);\n\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {\n return false;\n };\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\n }\n };\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\n };\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\n };\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTk4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RTZXJ2ZXJVcGRhdGVRdWV1ZS5qcz8zYjVlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIFJlYWN0VXBkYXRlUXVldWUgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlUXVldWUnKTtcblxudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFyIGNvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICclcyguLi4pOiBDYW4gb25seSB1cGRhdGUgYSBtb3VudGluZyBjb21wb25lbnQuICcgKyAnVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSBjYWxsZWQgJXMoKSBvdXRzaWRlIGNvbXBvbmVudFdpbGxNb3VudCgpIG9uIHRoZSBzZXJ2ZXIuICcgKyAnVGhpcyBpcyBhIG5vLW9wLiBQbGVhc2UgY2hlY2sgdGhlIGNvZGUgZm9yIHRoZSAlcyBjb21wb25lbnQuJywgY2FsbGVyTmFtZSwgY2FsbGVyTmFtZSwgY29uc3RydWN0b3IgJiYgKGNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUpIHx8ICdSZWFjdENsYXNzJykgOiB2b2lkIDA7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB1cGRhdGUgcXVldWUgdXNlZCBmb3Igc2VydmVyIHJlbmRlcmluZy5cbiAqIEl0IGRlbGVnYXRlcyB0byBSZWFjdFVwZGF0ZVF1ZXVlIHdoaWxlIHNlcnZlciByZW5kZXJpbmcgaXMgaW4gcHJvZ3Jlc3MgYW5kXG4gKiBzd2l0Y2hlcyB0byBSZWFjdE5vb3BVcGRhdGVRdWV1ZSBhZnRlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNvbXBsZXRlZC5cbiAqIEBjbGFzcyBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICovXG5cbnZhciBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlKHRyYW5zYWN0aW9uKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlYWN0U2VydmVyVXBkYXRlUXVldWUpO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG5cblxuICBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLnByb3RvdHlwZS5pc01vdW50ZWQgPSBmdW5jdGlvbiBpc01vdW50ZWQocHVibGljSW5zdGFuY2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIEVucXVldWUgYSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHRoZSBwZW5kaW5nIHVwZGF0ZXNcbiAgICogaGF2ZSBwcm9jZXNzZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIHVzZSBhcyBgdGhpc2AgY29udGV4dC5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBzdGF0ZSBpcyB1cGRhdGVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cblxuICBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLnByb3RvdHlwZS5lbnF1ZXVlQ2FsbGJhY2sgPSBmdW5jdGlvbiBlbnF1ZXVlQ2FsbGJhY2socHVibGljSW5zdGFuY2UsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaXNJblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZUNhbGxiYWNrKHB1YmxpY0luc3RhbmNlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cblxuICBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLnByb3RvdHlwZS5lbnF1ZXVlRm9yY2VVcGRhdGUgPSBmdW5jdGlvbiBlbnF1ZXVlRm9yY2VVcGRhdGUocHVibGljSW5zdGFuY2UpIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5pc0luVHJhbnNhY3Rpb24oKSkge1xuICAgICAgUmVhY3RVcGRhdGVRdWV1ZS5lbnF1ZXVlRm9yY2VVcGRhdGUocHVibGljSW5zdGFuY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgb3IgYHNldFN0YXRlYCB0byBtdXRhdGUgc3RhdGUuXG4gICAqIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAgICpcbiAgICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYHRoaXMuc3RhdGVgIHdpbGwgYmUgaW1tZWRpYXRlbHkgdXBkYXRlZCwgc29cbiAgICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBjb21wbGV0ZVN0YXRlIE5leHQgc3RhdGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuXG4gIFJlYWN0U2VydmVyVXBkYXRlUXVldWUucHJvdG90eXBlLmVucXVldWVSZXBsYWNlU3RhdGUgPSBmdW5jdGlvbiBlbnF1ZXVlUmVwbGFjZVN0YXRlKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlKSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaXNJblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZVJlcGxhY2VTdGF0ZShwdWJsaWNJbnN0YW5jZSwgY29tcGxldGVTdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gVGhpcyBvbmx5IGV4aXN0cyBiZWNhdXNlIF9wZW5kaW5nU3RhdGUgaXNcbiAgICogaW50ZXJuYWwuIFRoaXMgcHJvdmlkZXMgYSBtZXJnaW5nIHN0cmF0ZWd5IHRoYXQgaXMgbm90IGF2YWlsYWJsZSB0byBkZWVwXG4gICAqIHByb3BlcnRpZXMgd2hpY2ggaXMgY29uZnVzaW5nLiBUT0RPOiBFeHBvc2UgcGVuZGluZ1N0YXRlIG9yIGRvbid0IHVzZSBpdFxuICAgKiBkdXJpbmcgdGhlIG1lcmdlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggc3RhdGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuXG4gIFJlYWN0U2VydmVyVXBkYXRlUXVldWUucHJvdG90eXBlLmVucXVldWVTZXRTdGF0ZSA9IGZ1bmN0aW9uIGVucXVldWVTZXRTdGF0ZShwdWJsaWNJbnN0YW5jZSwgcGFydGlhbFN0YXRlKSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaXNJblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZVNldFN0YXRlKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ3NldFN0YXRlJyk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlO1xufSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0U2VydmVyVXBkYXRlUXVldWU7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLmpzXG4vLyBtb2R1bGUgaWQgPSAxOThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///198\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = __webpack_require__(/*! ./ReactUpdateQueue */ 60);\n\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ 2);\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {\n return false;\n };\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\n }\n };\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\n };\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\n };\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTk4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RTZXJ2ZXJVcGRhdGVRdWV1ZS5qcz8zYjVlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIFJlYWN0VXBkYXRlUXVldWUgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlUXVldWUnKTtcblxudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbmZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFyIGNvbnN0cnVjdG9yID0gcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3I7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICclcyguLi4pOiBDYW4gb25seSB1cGRhdGUgYSBtb3VudGluZyBjb21wb25lbnQuICcgKyAnVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSBjYWxsZWQgJXMoKSBvdXRzaWRlIGNvbXBvbmVudFdpbGxNb3VudCgpIG9uIHRoZSBzZXJ2ZXIuICcgKyAnVGhpcyBpcyBhIG5vLW9wLiBQbGVhc2UgY2hlY2sgdGhlIGNvZGUgZm9yIHRoZSAlcyBjb21wb25lbnQuJywgY2FsbGVyTmFtZSwgY2FsbGVyTmFtZSwgY29uc3RydWN0b3IgJiYgKGNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUpIHx8ICdSZWFjdENsYXNzJykgOiB2b2lkIDA7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB1cGRhdGUgcXVldWUgdXNlZCBmb3Igc2VydmVyIHJlbmRlcmluZy5cbiAqIEl0IGRlbGVnYXRlcyB0byBSZWFjdFVwZGF0ZVF1ZXVlIHdoaWxlIHNlcnZlciByZW5kZXJpbmcgaXMgaW4gcHJvZ3Jlc3MgYW5kXG4gKiBzd2l0Y2hlcyB0byBSZWFjdE5vb3BVcGRhdGVRdWV1ZSBhZnRlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNvbXBsZXRlZC5cbiAqIEBjbGFzcyBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICovXG5cbnZhciBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlKHRyYW5zYWN0aW9uKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlYWN0U2VydmVyVXBkYXRlUXVldWUpO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG5cblxuICBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLnByb3RvdHlwZS5pc01vdW50ZWQgPSBmdW5jdGlvbiBpc01vdW50ZWQocHVibGljSW5zdGFuY2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIEVucXVldWUgYSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHRoZSBwZW5kaW5nIHVwZGF0ZXNcbiAgICogaGF2ZSBwcm9jZXNzZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIHVzZSBhcyBgdGhpc2AgY29udGV4dC5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBzdGF0ZSBpcyB1cGRhdGVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cblxuICBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLnByb3RvdHlwZS5lbnF1ZXVlQ2FsbGJhY2sgPSBmdW5jdGlvbiBlbnF1ZXVlQ2FsbGJhY2socHVibGljSW5zdGFuY2UsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaXNJblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZUNhbGxiYWNrKHB1YmxpY0luc3RhbmNlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cblxuICBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLnByb3RvdHlwZS5lbnF1ZXVlRm9yY2VVcGRhdGUgPSBmdW5jdGlvbiBlbnF1ZXVlRm9yY2VVcGRhdGUocHVibGljSW5zdGFuY2UpIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5pc0luVHJhbnNhY3Rpb24oKSkge1xuICAgICAgUmVhY3RVcGRhdGVRdWV1ZS5lbnF1ZXVlRm9yY2VVcGRhdGUocHVibGljSW5zdGFuY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgb3IgYHNldFN0YXRlYCB0byBtdXRhdGUgc3RhdGUuXG4gICAqIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAgICpcbiAgICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYHRoaXMuc3RhdGVgIHdpbGwgYmUgaW1tZWRpYXRlbHkgdXBkYXRlZCwgc29cbiAgICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBjb21wbGV0ZVN0YXRlIE5leHQgc3RhdGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuXG4gIFJlYWN0U2VydmVyVXBkYXRlUXVldWUucHJvdG90eXBlLmVucXVldWVSZXBsYWNlU3RhdGUgPSBmdW5jdGlvbiBlbnF1ZXVlUmVwbGFjZVN0YXRlKHB1YmxpY0luc3RhbmNlLCBjb21wbGV0ZVN0YXRlKSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaXNJblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZVJlcGxhY2VTdGF0ZShwdWJsaWNJbnN0YW5jZSwgY29tcGxldGVTdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gVGhpcyBvbmx5IGV4aXN0cyBiZWNhdXNlIF9wZW5kaW5nU3RhdGUgaXNcbiAgICogaW50ZXJuYWwuIFRoaXMgcHJvdmlkZXMgYSBtZXJnaW5nIHN0cmF0ZWd5IHRoYXQgaXMgbm90IGF2YWlsYWJsZSB0byBkZWVwXG4gICAqIHByb3BlcnRpZXMgd2hpY2ggaXMgY29uZnVzaW5nLiBUT0RPOiBFeHBvc2UgcGVuZGluZ1N0YXRlIG9yIGRvbid0IHVzZSBpdFxuICAgKiBkdXJpbmcgdGhlIG1lcmdlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb259IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggc3RhdGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuXG4gIFJlYWN0U2VydmVyVXBkYXRlUXVldWUucHJvdG90eXBlLmVucXVldWVTZXRTdGF0ZSA9IGZ1bmN0aW9uIGVucXVldWVTZXRTdGF0ZShwdWJsaWNJbnN0YW5jZSwgcGFydGlhbFN0YXRlKSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaXNJblRyYW5zYWN0aW9uKCkpIHtcbiAgICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZVNldFN0YXRlKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsU3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ3NldFN0YXRlJyk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBSZWFjdFNlcnZlclVwZGF0ZVF1ZXVlO1xufSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0U2VydmVyVXBkYXRlUXVldWU7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFNlcnZlclVwZGF0ZVF1ZXVlLmpzXG4vLyBtb2R1bGUgaWQgPSAxOThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///198\n"); /***/ }), /* 199 */ @@ -2479,7 +2479,7 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015-pres /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar DOMChildrenOperations = __webpack_require__(/*! ./DOMChildrenOperations */ 51);\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\n\nvar escapeTextContentForBrowser = __webpack_require__(/*! ./escapeTextContentForBrowser */ 40);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar validateDOMNesting = __webpack_require__(/*! ./validateDOMNesting */ 60);\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings between comment nodes so that they\n * can undergo the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\n }\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {ReactText} nextText The next text content\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function (nextText, transaction) {\n if (nextText !== this._currentElement) {\n this._currentElement = nextText;\n var nextStringText = '' + nextText;\n if (nextStringText !== this._stringText) {\n // TODO: Save this as pending props and use performUpdateIfNecessary\n // and/or updateComponent to do the actual update for consistency with\n // other component types?\n this._stringText = nextStringText;\n var commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMTextComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAxLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01UZXh0Q29tcG9uZW50LmpzPzJkMWYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKSxcbiAgICBfYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBET01MYXp5VHJlZSA9IHJlcXVpcmUoJy4vRE9NTGF6eVRyZWUnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xuXG52YXIgZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyID0gcmVxdWlyZSgnLi9lc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXInKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB2YWxpZGF0ZURPTU5lc3RpbmcgPSByZXF1aXJlKCcuL3ZhbGlkYXRlRE9NTmVzdGluZycpO1xuXG4vKipcbiAqIFRleHQgbm9kZXMgdmlvbGF0ZSBhIGNvdXBsZSBhc3N1bXB0aW9ucyB0aGF0IFJlYWN0IG1ha2VzIGFib3V0IGNvbXBvbmVudHM6XG4gKlxuICogIC0gV2hlbiBtb3VudGluZyB0ZXh0IGludG8gdGhlIERPTSwgYWRqYWNlbnQgdGV4dCBub2RlcyBhcmUgbWVyZ2VkLlxuICogIC0gVGV4dCBub2RlcyBjYW5ub3QgYmUgYXNzaWduZWQgYSBSZWFjdCByb290IElELlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gd3JhcCBzdHJpbmdzIGJldHdlZW4gY29tbWVudCBub2RlcyBzbyB0aGF0IHRoZXlcbiAqIGNhbiB1bmRlcmdvIHRoZSBzYW1lIHJlY29uY2lsaWF0aW9uIHRoYXQgaXMgYXBwbGllZCB0byBlbGVtZW50cy5cbiAqXG4gKiBUT0RPOiBJbnZlc3RpZ2F0ZSByZXByZXNlbnRpbmcgUmVhY3QgY29tcG9uZW50cyBpbiB0aGUgRE9NIHdpdGggdGV4dCBub2Rlcy5cbiAqXG4gKiBAY2xhc3MgUmVhY3RET01UZXh0Q29tcG9uZW50XG4gKiBAZXh0ZW5kcyBSZWFjdENvbXBvbmVudFxuICogQGludGVybmFsXG4gKi9cbnZhciBSZWFjdERPTVRleHRDb21wb25lbnQgPSBmdW5jdGlvbiAodGV4dCkge1xuICAvLyBUT0RPOiBUaGlzIGlzIHJlYWxseSBhIFJlYWN0VGV4dCAoUmVhY3ROb2RlKSwgbm90IGEgUmVhY3RFbGVtZW50XG4gIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gdGV4dDtcbiAgdGhpcy5fc3RyaW5nVGV4dCA9ICcnICsgdGV4dDtcbiAgLy8gUmVhY3RET01Db21wb25lbnRUcmVlIHVzZXMgdGhlc2U6XG4gIHRoaXMuX2hvc3ROb2RlID0gbnVsbDtcbiAgdGhpcy5faG9zdFBhcmVudCA9IG51bGw7XG5cbiAgLy8gUHJvcGVydGllc1xuICB0aGlzLl9kb21JRCA9IDA7XG4gIHRoaXMuX21vdW50SW5kZXggPSAwO1xuICB0aGlzLl9jbG9zaW5nQ29tbWVudCA9IG51bGw7XG4gIHRoaXMuX2NvbW1lbnROb2RlcyA9IG51bGw7XG59O1xuXG5fYXNzaWduKFJlYWN0RE9NVGV4dENvbXBvbmVudC5wcm90b3R5cGUsIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIG1hcmt1cCBmb3IgdGhpcyB0ZXh0IG5vZGUuIFRoaXMgbm9kZSBpcyBub3QgaW50ZW5kZWQgdG8gaGF2ZVxuICAgKiBhbnkgZmVhdHVyZXMgYmVzaWRlcyBjb250YWluaW5nIHRleHQgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge3N0cmluZ30gTWFya3VwIGZvciB0aGlzIHRleHQgbm9kZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBtb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHRyYW5zYWN0aW9uLCBob3N0UGFyZW50LCBob3N0Q29udGFpbmVySW5mbywgY29udGV4dCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgcGFyZW50SW5mbztcbiAgICAgIGlmIChob3N0UGFyZW50ICE9IG51bGwpIHtcbiAgICAgICAgcGFyZW50SW5mbyA9IGhvc3RQYXJlbnQuX2FuY2VzdG9ySW5mbztcbiAgICAgIH0gZWxzZSBpZiAoaG9zdENvbnRhaW5lckluZm8gIT0gbnVsbCkge1xuICAgICAgICBwYXJlbnRJbmZvID0gaG9zdENvbnRhaW5lckluZm8uX2FuY2VzdG9ySW5mbztcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnRJbmZvKSB7XG4gICAgICAgIC8vIHBhcmVudEluZm8gc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGV4Y2VwdCBmb3IgdGhlIHRvcC1sZXZlbFxuICAgICAgICAvLyBjb21wb25lbnQgd2hlbiBzZXJ2ZXIgcmVuZGVyaW5nXG4gICAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCB0aGlzLl9zdHJpbmdUZXh0LCB0aGlzLCBwYXJlbnRJbmZvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZG9tSUQgPSBob3N0Q29udGFpbmVySW5mby5faWRDb3VudGVyKys7XG4gICAgdmFyIG9wZW5pbmdWYWx1ZSA9ICcgcmVhY3QtdGV4dDogJyArIGRvbUlEICsgJyAnO1xuICAgIHZhciBjbG9zaW5nVmFsdWUgPSAnIC9yZWFjdC10ZXh0ICc7XG4gICAgdGhpcy5fZG9tSUQgPSBkb21JRDtcbiAgICB0aGlzLl9ob3N0UGFyZW50ID0gaG9zdFBhcmVudDtcbiAgICBpZiAodHJhbnNhY3Rpb24udXNlQ3JlYXRlRWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBob3N0Q29udGFpbmVySW5mby5fb3duZXJEb2N1bWVudDtcbiAgICAgIHZhciBvcGVuaW5nQ29tbWVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlQ29tbWVudChvcGVuaW5nVmFsdWUpO1xuICAgICAgdmFyIGNsb3NpbmdDb21tZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVDb21tZW50KGNsb3NpbmdWYWx1ZSk7XG4gICAgICB2YXIgbGF6eVRyZWUgPSBET01MYXp5VHJlZShvd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7XG4gICAgICBET01MYXp5VHJlZS5xdWV1ZUNoaWxkKGxhenlUcmVlLCBET01MYXp5VHJlZShvcGVuaW5nQ29tbWVudCkpO1xuICAgICAgaWYgKHRoaXMuX3N0cmluZ1RleHQpIHtcbiAgICAgICAgRE9NTGF6eVRyZWUucXVldWVDaGlsZChsYXp5VHJlZSwgRE9NTGF6eVRyZWUob3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLl9zdHJpbmdUZXh0KSkpO1xuICAgICAgfVxuICAgICAgRE9NTGF6eVRyZWUucXVldWVDaGlsZChsYXp5VHJlZSwgRE9NTGF6eVRyZWUoY2xvc2luZ0NvbW1lbnQpKTtcbiAgICAgIFJlYWN0RE9NQ29tcG9uZW50VHJlZS5wcmVjYWNoZU5vZGUodGhpcywgb3BlbmluZ0NvbW1lbnQpO1xuICAgICAgdGhpcy5fY2xvc2luZ0NvbW1lbnQgPSBjbG9zaW5nQ29tbWVudDtcbiAgICAgIHJldHVybiBsYXp5VHJlZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVzY2FwZWRUZXh0ID0gZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyKHRoaXMuX3N0cmluZ1RleHQpO1xuXG4gICAgICBpZiAodHJhbnNhY3Rpb24ucmVuZGVyVG9TdGF0aWNNYXJrdXApIHtcbiAgICAgICAgLy8gTm9ybWFsbHkgd2UnZCB3cmFwIHRoaXMgYmV0d2VlbiBjb21tZW50IG5vZGVzIGZvciB0aGUgcmVhc29ucyBzdGF0ZWRcbiAgICAgICAgLy8gYWJvdmUsIGJ1dCBzaW5jZSB0aGlzIGlzIGEgc2l0dWF0aW9uIHdoZXJlIFJlYWN0IHdvbid0IHRha2Ugb3ZlclxuICAgICAgICAvLyAoc3RhdGljIHBhZ2VzKSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHRleHQgYXMgaXQgaXMuXG4gICAgICAgIHJldHVybiBlc2NhcGVkVGV4dDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICc8IS0tJyArIG9wZW5pbmdWYWx1ZSArICctLT4nICsgZXNjYXBlZFRleHQgKyAnPCEtLScgKyBjbG9zaW5nVmFsdWUgKyAnLS0+JztcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhpcyBjb21wb25lbnQgYnkgdXBkYXRpbmcgdGhlIHRleHQgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFRleHR9IG5leHRUZXh0IFRoZSBuZXh0IHRleHQgY29udGVudFxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVjZWl2ZUNvbXBvbmVudDogZnVuY3Rpb24gKG5leHRUZXh0LCB0cmFuc2FjdGlvbikge1xuICAgIGlmIChuZXh0VGV4dCAhPT0gdGhpcy5fY3VycmVudEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gbmV4dFRleHQ7XG4gICAgICB2YXIgbmV4dFN0cmluZ1RleHQgPSAnJyArIG5leHRUZXh0O1xuICAgICAgaWYgKG5leHRTdHJpbmdUZXh0ICE9PSB0aGlzLl9zdHJpbmdUZXh0KSB7XG4gICAgICAgIC8vIFRPRE86IFNhdmUgdGhpcyBhcyBwZW5kaW5nIHByb3BzIGFuZCB1c2UgcGVyZm9ybVVwZGF0ZUlmTmVjZXNzYXJ5XG4gICAgICAgIC8vIGFuZC9vciB1cGRhdGVDb21wb25lbnQgdG8gZG8gdGhlIGFjdHVhbCB1cGRhdGUgZm9yIGNvbnNpc3RlbmN5IHdpdGhcbiAgICAgICAgLy8gb3RoZXIgY29tcG9uZW50IHR5cGVzP1xuICAgICAgICB0aGlzLl9zdHJpbmdUZXh0ID0gbmV4dFN0cmluZ1RleHQ7XG4gICAgICAgIHZhciBjb21tZW50Tm9kZXMgPSB0aGlzLmdldEhvc3ROb2RlKCk7XG4gICAgICAgIERPTUNoaWxkcmVuT3BlcmF0aW9ucy5yZXBsYWNlRGVsaW1pdGVkVGV4dChjb21tZW50Tm9kZXNbMF0sIGNvbW1lbnROb2Rlc1sxXSwgbmV4dFN0cmluZ1RleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBnZXRIb3N0Tm9kZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciBob3N0Tm9kZSA9IHRoaXMuX2NvbW1lbnROb2RlcztcbiAgICBpZiAoaG9zdE5vZGUpIHtcbiAgICAgIHJldHVybiBob3N0Tm9kZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9jbG9zaW5nQ29tbWVudCkge1xuICAgICAgdmFyIG9wZW5pbmdDb21tZW50ID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UodGhpcyk7XG4gICAgICB2YXIgbm9kZSA9IG9wZW5pbmdDb21tZW50Lm5leHRTaWJsaW5nO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgIShub2RlICE9IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ01pc3NpbmcgY2xvc2luZyBjb21tZW50IGZvciB0ZXh0IGNvbXBvbmVudCAlcycsIHRoaXMuX2RvbUlEKSA6IF9wcm9kSW52YXJpYW50KCc2NycsIHRoaXMuX2RvbUlEKSA6IHZvaWQgMDtcbiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IDggJiYgbm9kZS5ub2RlVmFsdWUgPT09ICcgL3JlYWN0LXRleHQgJykge1xuICAgICAgICAgIHRoaXMuX2Nsb3NpbmdDb21tZW50ID0gbm9kZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgIH1cbiAgICB9XG4gICAgaG9zdE5vZGUgPSBbdGhpcy5faG9zdE5vZGUsIHRoaXMuX2Nsb3NpbmdDb21tZW50XTtcbiAgICB0aGlzLl9jb21tZW50Tm9kZXMgPSBob3N0Tm9kZTtcbiAgICByZXR1cm4gaG9zdE5vZGU7XG4gIH0sXG5cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuX2Nsb3NpbmdDb21tZW50ID0gbnVsbDtcbiAgICB0aGlzLl9jb21tZW50Tm9kZXMgPSBudWxsO1xuICAgIFJlYWN0RE9NQ29tcG9uZW50VHJlZS51bmNhY2hlTm9kZSh0aGlzKTtcbiAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01UZXh0Q29tcG9uZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01UZXh0Q29tcG9uZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAyMDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///201\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3),\n _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar DOMChildrenOperations = __webpack_require__(/*! ./DOMChildrenOperations */ 52);\nvar DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ 23);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\n\nvar escapeTextContentForBrowser = __webpack_require__(/*! ./escapeTextContentForBrowser */ 40);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\nvar validateDOMNesting = __webpack_require__(/*! ./validateDOMNesting */ 61);\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings between comment nodes so that they\n * can undergo the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\n }\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {ReactText} nextText The next text content\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function (nextText, transaction) {\n if (nextText !== this._currentElement) {\n this._currentElement = nextText;\n var nextStringText = '' + nextText;\n if (nextStringText !== this._stringText) {\n // TODO: Save this as pending props and use performUpdateIfNecessary\n // and/or updateComponent to do the actual update for consistency with\n // other component types?\n this._stringText = nextStringText;\n var commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMTextComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAxLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01UZXh0Q29tcG9uZW50LmpzPzJkMWYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9wcm9kSW52YXJpYW50ID0gcmVxdWlyZSgnLi9yZWFjdFByb2RJbnZhcmlhbnQnKSxcbiAgICBfYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBET01MYXp5VHJlZSA9IHJlcXVpcmUoJy4vRE9NTGF6eVRyZWUnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xuXG52YXIgZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyID0gcmVxdWlyZSgnLi9lc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXInKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB2YWxpZGF0ZURPTU5lc3RpbmcgPSByZXF1aXJlKCcuL3ZhbGlkYXRlRE9NTmVzdGluZycpO1xuXG4vKipcbiAqIFRleHQgbm9kZXMgdmlvbGF0ZSBhIGNvdXBsZSBhc3N1bXB0aW9ucyB0aGF0IFJlYWN0IG1ha2VzIGFib3V0IGNvbXBvbmVudHM6XG4gKlxuICogIC0gV2hlbiBtb3VudGluZyB0ZXh0IGludG8gdGhlIERPTSwgYWRqYWNlbnQgdGV4dCBub2RlcyBhcmUgbWVyZ2VkLlxuICogIC0gVGV4dCBub2RlcyBjYW5ub3QgYmUgYXNzaWduZWQgYSBSZWFjdCByb290IElELlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gd3JhcCBzdHJpbmdzIGJldHdlZW4gY29tbWVudCBub2RlcyBzbyB0aGF0IHRoZXlcbiAqIGNhbiB1bmRlcmdvIHRoZSBzYW1lIHJlY29uY2lsaWF0aW9uIHRoYXQgaXMgYXBwbGllZCB0byBlbGVtZW50cy5cbiAqXG4gKiBUT0RPOiBJbnZlc3RpZ2F0ZSByZXByZXNlbnRpbmcgUmVhY3QgY29tcG9uZW50cyBpbiB0aGUgRE9NIHdpdGggdGV4dCBub2Rlcy5cbiAqXG4gKiBAY2xhc3MgUmVhY3RET01UZXh0Q29tcG9uZW50XG4gKiBAZXh0ZW5kcyBSZWFjdENvbXBvbmVudFxuICogQGludGVybmFsXG4gKi9cbnZhciBSZWFjdERPTVRleHRDb21wb25lbnQgPSBmdW5jdGlvbiAodGV4dCkge1xuICAvLyBUT0RPOiBUaGlzIGlzIHJlYWxseSBhIFJlYWN0VGV4dCAoUmVhY3ROb2RlKSwgbm90IGEgUmVhY3RFbGVtZW50XG4gIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gdGV4dDtcbiAgdGhpcy5fc3RyaW5nVGV4dCA9ICcnICsgdGV4dDtcbiAgLy8gUmVhY3RET01Db21wb25lbnRUcmVlIHVzZXMgdGhlc2U6XG4gIHRoaXMuX2hvc3ROb2RlID0gbnVsbDtcbiAgdGhpcy5faG9zdFBhcmVudCA9IG51bGw7XG5cbiAgLy8gUHJvcGVydGllc1xuICB0aGlzLl9kb21JRCA9IDA7XG4gIHRoaXMuX21vdW50SW5kZXggPSAwO1xuICB0aGlzLl9jbG9zaW5nQ29tbWVudCA9IG51bGw7XG4gIHRoaXMuX2NvbW1lbnROb2RlcyA9IG51bGw7XG59O1xuXG5fYXNzaWduKFJlYWN0RE9NVGV4dENvbXBvbmVudC5wcm90b3R5cGUsIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIG1hcmt1cCBmb3IgdGhpcyB0ZXh0IG5vZGUuIFRoaXMgbm9kZSBpcyBub3QgaW50ZW5kZWQgdG8gaGF2ZVxuICAgKiBhbnkgZmVhdHVyZXMgYmVzaWRlcyBjb250YWluaW5nIHRleHQgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4ge3N0cmluZ30gTWFya3VwIGZvciB0aGlzIHRleHQgbm9kZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBtb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHRyYW5zYWN0aW9uLCBob3N0UGFyZW50LCBob3N0Q29udGFpbmVySW5mbywgY29udGV4dCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgcGFyZW50SW5mbztcbiAgICAgIGlmIChob3N0UGFyZW50ICE9IG51bGwpIHtcbiAgICAgICAgcGFyZW50SW5mbyA9IGhvc3RQYXJlbnQuX2FuY2VzdG9ySW5mbztcbiAgICAgIH0gZWxzZSBpZiAoaG9zdENvbnRhaW5lckluZm8gIT0gbnVsbCkge1xuICAgICAgICBwYXJlbnRJbmZvID0gaG9zdENvbnRhaW5lckluZm8uX2FuY2VzdG9ySW5mbztcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnRJbmZvKSB7XG4gICAgICAgIC8vIHBhcmVudEluZm8gc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGV4Y2VwdCBmb3IgdGhlIHRvcC1sZXZlbFxuICAgICAgICAvLyBjb21wb25lbnQgd2hlbiBzZXJ2ZXIgcmVuZGVyaW5nXG4gICAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCB0aGlzLl9zdHJpbmdUZXh0LCB0aGlzLCBwYXJlbnRJbmZvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZG9tSUQgPSBob3N0Q29udGFpbmVySW5mby5faWRDb3VudGVyKys7XG4gICAgdmFyIG9wZW5pbmdWYWx1ZSA9ICcgcmVhY3QtdGV4dDogJyArIGRvbUlEICsgJyAnO1xuICAgIHZhciBjbG9zaW5nVmFsdWUgPSAnIC9yZWFjdC10ZXh0ICc7XG4gICAgdGhpcy5fZG9tSUQgPSBkb21JRDtcbiAgICB0aGlzLl9ob3N0UGFyZW50ID0gaG9zdFBhcmVudDtcbiAgICBpZiAodHJhbnNhY3Rpb24udXNlQ3JlYXRlRWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBob3N0Q29udGFpbmVySW5mby5fb3duZXJEb2N1bWVudDtcbiAgICAgIHZhciBvcGVuaW5nQ29tbWVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlQ29tbWVudChvcGVuaW5nVmFsdWUpO1xuICAgICAgdmFyIGNsb3NpbmdDb21tZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVDb21tZW50KGNsb3NpbmdWYWx1ZSk7XG4gICAgICB2YXIgbGF6eVRyZWUgPSBET01MYXp5VHJlZShvd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7XG4gICAgICBET01MYXp5VHJlZS5xdWV1ZUNoaWxkKGxhenlUcmVlLCBET01MYXp5VHJlZShvcGVuaW5nQ29tbWVudCkpO1xuICAgICAgaWYgKHRoaXMuX3N0cmluZ1RleHQpIHtcbiAgICAgICAgRE9NTGF6eVRyZWUucXVldWVDaGlsZChsYXp5VHJlZSwgRE9NTGF6eVRyZWUob3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLl9zdHJpbmdUZXh0KSkpO1xuICAgICAgfVxuICAgICAgRE9NTGF6eVRyZWUucXVldWVDaGlsZChsYXp5VHJlZSwgRE9NTGF6eVRyZWUoY2xvc2luZ0NvbW1lbnQpKTtcbiAgICAgIFJlYWN0RE9NQ29tcG9uZW50VHJlZS5wcmVjYWNoZU5vZGUodGhpcywgb3BlbmluZ0NvbW1lbnQpO1xuICAgICAgdGhpcy5fY2xvc2luZ0NvbW1lbnQgPSBjbG9zaW5nQ29tbWVudDtcbiAgICAgIHJldHVybiBsYXp5VHJlZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVzY2FwZWRUZXh0ID0gZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyKHRoaXMuX3N0cmluZ1RleHQpO1xuXG4gICAgICBpZiAodHJhbnNhY3Rpb24ucmVuZGVyVG9TdGF0aWNNYXJrdXApIHtcbiAgICAgICAgLy8gTm9ybWFsbHkgd2UnZCB3cmFwIHRoaXMgYmV0d2VlbiBjb21tZW50IG5vZGVzIGZvciB0aGUgcmVhc29ucyBzdGF0ZWRcbiAgICAgICAgLy8gYWJvdmUsIGJ1dCBzaW5jZSB0aGlzIGlzIGEgc2l0dWF0aW9uIHdoZXJlIFJlYWN0IHdvbid0IHRha2Ugb3ZlclxuICAgICAgICAvLyAoc3RhdGljIHBhZ2VzKSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHRleHQgYXMgaXQgaXMuXG4gICAgICAgIHJldHVybiBlc2NhcGVkVGV4dDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICc8IS0tJyArIG9wZW5pbmdWYWx1ZSArICctLT4nICsgZXNjYXBlZFRleHQgKyAnPCEtLScgKyBjbG9zaW5nVmFsdWUgKyAnLS0+JztcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhpcyBjb21wb25lbnQgYnkgdXBkYXRpbmcgdGhlIHRleHQgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFRleHR9IG5leHRUZXh0IFRoZSBuZXh0IHRleHQgY29udGVudFxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVjZWl2ZUNvbXBvbmVudDogZnVuY3Rpb24gKG5leHRUZXh0LCB0cmFuc2FjdGlvbikge1xuICAgIGlmIChuZXh0VGV4dCAhPT0gdGhpcy5fY3VycmVudEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gbmV4dFRleHQ7XG4gICAgICB2YXIgbmV4dFN0cmluZ1RleHQgPSAnJyArIG5leHRUZXh0O1xuICAgICAgaWYgKG5leHRTdHJpbmdUZXh0ICE9PSB0aGlzLl9zdHJpbmdUZXh0KSB7XG4gICAgICAgIC8vIFRPRE86IFNhdmUgdGhpcyBhcyBwZW5kaW5nIHByb3BzIGFuZCB1c2UgcGVyZm9ybVVwZGF0ZUlmTmVjZXNzYXJ5XG4gICAgICAgIC8vIGFuZC9vciB1cGRhdGVDb21wb25lbnQgdG8gZG8gdGhlIGFjdHVhbCB1cGRhdGUgZm9yIGNvbnNpc3RlbmN5IHdpdGhcbiAgICAgICAgLy8gb3RoZXIgY29tcG9uZW50IHR5cGVzP1xuICAgICAgICB0aGlzLl9zdHJpbmdUZXh0ID0gbmV4dFN0cmluZ1RleHQ7XG4gICAgICAgIHZhciBjb21tZW50Tm9kZXMgPSB0aGlzLmdldEhvc3ROb2RlKCk7XG4gICAgICAgIERPTUNoaWxkcmVuT3BlcmF0aW9ucy5yZXBsYWNlRGVsaW1pdGVkVGV4dChjb21tZW50Tm9kZXNbMF0sIGNvbW1lbnROb2Rlc1sxXSwgbmV4dFN0cmluZ1RleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBnZXRIb3N0Tm9kZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciBob3N0Tm9kZSA9IHRoaXMuX2NvbW1lbnROb2RlcztcbiAgICBpZiAoaG9zdE5vZGUpIHtcbiAgICAgIHJldHVybiBob3N0Tm9kZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9jbG9zaW5nQ29tbWVudCkge1xuICAgICAgdmFyIG9wZW5pbmdDb21tZW50ID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UodGhpcyk7XG4gICAgICB2YXIgbm9kZSA9IG9wZW5pbmdDb21tZW50Lm5leHRTaWJsaW5nO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgIShub2RlICE9IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ01pc3NpbmcgY2xvc2luZyBjb21tZW50IGZvciB0ZXh0IGNvbXBvbmVudCAlcycsIHRoaXMuX2RvbUlEKSA6IF9wcm9kSW52YXJpYW50KCc2NycsIHRoaXMuX2RvbUlEKSA6IHZvaWQgMDtcbiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IDggJiYgbm9kZS5ub2RlVmFsdWUgPT09ICcgL3JlYWN0LXRleHQgJykge1xuICAgICAgICAgIHRoaXMuX2Nsb3NpbmdDb21tZW50ID0gbm9kZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgIH1cbiAgICB9XG4gICAgaG9zdE5vZGUgPSBbdGhpcy5faG9zdE5vZGUsIHRoaXMuX2Nsb3NpbmdDb21tZW50XTtcbiAgICB0aGlzLl9jb21tZW50Tm9kZXMgPSBob3N0Tm9kZTtcbiAgICByZXR1cm4gaG9zdE5vZGU7XG4gIH0sXG5cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuX2Nsb3NpbmdDb21tZW50ID0gbnVsbDtcbiAgICB0aGlzLl9jb21tZW50Tm9kZXMgPSBudWxsO1xuICAgIFJlYWN0RE9NQ29tcG9uZW50VHJlZS51bmNhY2hlTm9kZSh0aGlzKTtcbiAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01UZXh0Q29tcG9uZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01UZXh0Q29tcG9uZW50LmpzXG4vLyBtb2R1bGUgaWQgPSAyMDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///201\n"); /***/ }), /* 202 */ @@ -2503,7 +2503,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar EventListener = __webpack_require__(/*! fbjs/lib/EventListener */ 101);\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar PooledClass = __webpack_require__(/*! ./PooledClass */ 19);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar getEventTarget = __webpack_require__(/*! ./getEventTarget */ 48);\nvar getUnboundedScrollPosition = __webpack_require__(/*! fbjs/lib/getUnboundedScrollPosition */ 204);\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function () {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function (handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function (enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function () {\n return ReactEventListener._enabled;\n },\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function (refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function (topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RFdmVudExpc3RlbmVyLmpzP2U0YWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBFdmVudExpc3RlbmVyID0gcmVxdWlyZSgnZmJqcy9saWIvRXZlbnRMaXN0ZW5lcicpO1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBQb29sZWRDbGFzcyA9IHJlcXVpcmUoJy4vUG9vbGVkQ2xhc3MnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBnZXRFdmVudFRhcmdldCA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRUYXJnZXQnKTtcbnZhciBnZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVpcmUoJ2ZianMvbGliL2dldFVuYm91bmRlZFNjcm9sbFBvc2l0aW9uJyk7XG5cbi8qKlxuICogRmluZCB0aGUgZGVlcGVzdCBSZWFjdCBjb21wb25lbnQgY29tcGxldGVseSBjb250YWluaW5nIHRoZSByb290IG9mIHRoZVxuICogcGFzc2VkLWluIGluc3RhbmNlIChmb3IgdXNlIHdoZW4gZW50aXJlIFJlYWN0IHRyZWVzIGFyZSBuZXN0ZWQgd2l0aGluIGVhY2hcbiAqIG90aGVyKS4gSWYgUmVhY3QgdHJlZXMgYXJlIG5vdCBuZXN0ZWQsIHJldHVybnMgbnVsbC5cbiAqL1xuZnVuY3Rpb24gZmluZFBhcmVudChpbnN0KSB7XG4gIC8vIFRPRE86IEl0IG1heSBiZSBhIGdvb2QgaWRlYSB0byBjYWNoZSB0aGlzIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgRE9NXG4gIC8vIHRyYXZlcnNhbCwgYnV0IGNhY2hpbmcgaXMgZGlmZmljdWx0IHRvIGRvIGNvcnJlY3RseSB3aXRob3V0IHVzaW5nIGFcbiAgLy8gbXV0YXRpb24gb2JzZXJ2ZXIgdG8gbGlzdGVuIGZvciBhbGwgRE9NIGNoYW5nZXMuXG4gIHdoaWxlIChpbnN0Ll9ob3N0UGFyZW50KSB7XG4gICAgaW5zdCA9IGluc3QuX2hvc3RQYXJlbnQ7XG4gIH1cbiAgdmFyIHJvb3ROb2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCk7XG4gIHZhciBjb250YWluZXIgPSByb290Tm9kZS5wYXJlbnROb2RlO1xuICByZXR1cm4gUmVhY3RET01Db21wb25lbnRUcmVlLmdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKGNvbnRhaW5lcik7XG59XG5cbi8vIFVzZWQgdG8gc3RvcmUgYW5jZXN0b3IgaGllcmFyY2h5IGluIHRvcCBsZXZlbCBjYWxsYmFja1xuZnVuY3Rpb24gVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpIHtcbiAgdGhpcy50b3BMZXZlbFR5cGUgPSB0b3BMZXZlbFR5cGU7XG4gIHRoaXMubmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgdGhpcy5hbmNlc3RvcnMgPSBbXTtcbn1cbl9hc3NpZ24oVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLnByb3RvdHlwZSwge1xuICBkZXN0cnVjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy50b3BMZXZlbFR5cGUgPSBudWxsO1xuICAgIHRoaXMubmF0aXZlRXZlbnQgPSBudWxsO1xuICAgIHRoaXMuYW5jZXN0b3JzLmxlbmd0aCA9IDA7XG4gIH1cbn0pO1xuUG9vbGVkQ2xhc3MuYWRkUG9vbGluZ1RvKFRvcExldmVsQ2FsbGJhY2tCb29rS2VlcGluZywgUG9vbGVkQ2xhc3MudHdvQXJndW1lbnRQb29sZXIpO1xuXG5mdW5jdGlvbiBoYW5kbGVUb3BMZXZlbEltcGwoYm9va0tlZXBpbmcpIHtcbiAgdmFyIG5hdGl2ZUV2ZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoYm9va0tlZXBpbmcubmF0aXZlRXZlbnQpO1xuICB2YXIgdGFyZ2V0SW5zdCA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShuYXRpdmVFdmVudFRhcmdldCk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBoaWVyYXJjaHksIGluIGNhc2UgdGhlcmUncyBhbnkgbmVzdGVkIGNvbXBvbmVudHMuXG4gIC8vIEl0J3MgaW1wb3J0YW50IHRoYXQgd2UgYnVpbGQgdGhlIGFycmF5IG9mIGFuY2VzdG9ycyBiZWZvcmUgY2FsbGluZyBhbnlcbiAgLy8gZXZlbnQgaGFuZGxlcnMsIGJlY2F1c2UgZXZlbnQgaGFuZGxlcnMgY2FuIG1vZGlmeSB0aGUgRE9NLCBsZWFkaW5nIHRvXG4gIC8vIGluY29uc2lzdGVuY2llcyB3aXRoIFJlYWN0TW91bnQncyBub2RlIGNhY2hlLiBTZWUgIzExMDUuXG4gIHZhciBhbmNlc3RvciA9IHRhcmdldEluc3Q7XG4gIGRvIHtcbiAgICBib29rS2VlcGluZy5hbmNlc3RvcnMucHVzaChhbmNlc3Rvcik7XG4gICAgYW5jZXN0b3IgPSBhbmNlc3RvciAmJiBmaW5kUGFyZW50KGFuY2VzdG9yKTtcbiAgfSB3aGlsZSAoYW5jZXN0b3IpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYm9va0tlZXBpbmcuYW5jZXN0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgdGFyZ2V0SW5zdCA9IGJvb2tLZWVwaW5nLmFuY2VzdG9yc1tpXTtcbiAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2hhbmRsZVRvcExldmVsKGJvb2tLZWVwaW5nLnRvcExldmVsVHlwZSwgdGFyZ2V0SW5zdCwgYm9va0tlZXBpbmcubmF0aXZlRXZlbnQsIGdldEV2ZW50VGFyZ2V0KGJvb2tLZWVwaW5nLm5hdGl2ZUV2ZW50KSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2Nyb2xsVmFsdWVNb25pdG9yKGNiKSB7XG4gIHZhciBzY3JvbGxQb3NpdGlvbiA9IGdldFVuYm91bmRlZFNjcm9sbFBvc2l0aW9uKHdpbmRvdyk7XG4gIGNiKHNjcm9sbFBvc2l0aW9uKTtcbn1cblxudmFyIFJlYWN0RXZlbnRMaXN0ZW5lciA9IHtcbiAgX2VuYWJsZWQ6IHRydWUsXG4gIF9oYW5kbGVUb3BMZXZlbDogbnVsbCxcblxuICBXSU5ET1dfSEFORExFOiBFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gPyB3aW5kb3cgOiBudWxsLFxuXG4gIHNldEhhbmRsZVRvcExldmVsOiBmdW5jdGlvbiAoaGFuZGxlVG9wTGV2ZWwpIHtcbiAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2hhbmRsZVRvcExldmVsID0gaGFuZGxlVG9wTGV2ZWw7XG4gIH0sXG5cbiAgc2V0RW5hYmxlZDogZnVuY3Rpb24gKGVuYWJsZWQpIHtcbiAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2VuYWJsZWQgPSAhIWVuYWJsZWQ7XG4gIH0sXG5cbiAgaXNFbmFibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFJlYWN0RXZlbnRMaXN0ZW5lci5fZW5hYmxlZDtcbiAgfSxcblxuICAvKipcbiAgICogVHJhcHMgdG9wLWxldmVsIGV2ZW50cyBieSB1c2luZyBldmVudCBidWJibGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVHlwZSBSZWNvcmQgZnJvbSBgRXZlbnRDb25zdGFudHNgLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGFuZGxlckJhc2VOYW1lIEV2ZW50IG5hbWUgKGUuZy4gXCJjbGlja1wiKS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnQgRWxlbWVudCBvbiB3aGljaCB0byBhdHRhY2ggbGlzdGVuZXIuXG4gICAqIEByZXR1cm4gez9vYmplY3R9IEFuIG9iamVjdCB3aXRoIGEgcmVtb3ZlIGZ1bmN0aW9uIHdoaWNoIHdpbGwgZm9yY2VmdWxseVxuICAgKiAgICAgICAgICAgICAgICAgIHJlbW92ZSB0aGUgbGlzdGVuZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdHJhcEJ1YmJsZWRFdmVudDogZnVuY3Rpb24gKHRvcExldmVsVHlwZSwgaGFuZGxlckJhc2VOYW1lLCBlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIEV2ZW50TGlzdGVuZXIubGlzdGVuKGVsZW1lbnQsIGhhbmRsZXJCYXNlTmFtZSwgUmVhY3RFdmVudExpc3RlbmVyLmRpc3BhdGNoRXZlbnQuYmluZChudWxsLCB0b3BMZXZlbFR5cGUpKTtcbiAgfSxcblxuICAvKipcbiAgICogVHJhcHMgYSB0b3AtbGV2ZWwgZXZlbnQgYnkgdXNpbmcgZXZlbnQgY2FwdHVyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBoYW5kbGVyQmFzZU5hbWUgRXZlbnQgbmFtZSAoZS5nLiBcImNsaWNrXCIpLlxuICAgKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudCBFbGVtZW50IG9uIHdoaWNoIHRvIGF0dGFjaCBsaXN0ZW5lci5cbiAgICogQHJldHVybiB7P29iamVjdH0gQW4gb2JqZWN0IHdpdGggYSByZW1vdmUgZnVuY3Rpb24gd2hpY2ggd2lsbCBmb3JjZWZ1bGx5XG4gICAqICAgICAgICAgICAgICAgICAgcmVtb3ZlIHRoZSBsaXN0ZW5lci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB0cmFwQ2FwdHVyZWRFdmVudDogZnVuY3Rpb24gKHRvcExldmVsVHlwZSwgaGFuZGxlckJhc2VOYW1lLCBlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIEV2ZW50TGlzdGVuZXIuY2FwdHVyZShlbGVtZW50LCBoYW5kbGVyQmFzZU5hbWUsIFJlYWN0RXZlbnRMaXN0ZW5lci5kaXNwYXRjaEV2ZW50LmJpbmQobnVsbCwgdG9wTGV2ZWxUeXBlKSk7XG4gIH0sXG5cbiAgbW9uaXRvclNjcm9sbFZhbHVlOiBmdW5jdGlvbiAocmVmcmVzaCkge1xuICAgIHZhciBjYWxsYmFjayA9IHNjcm9sbFZhbHVlTW9uaXRvci5iaW5kKG51bGwsIHJlZnJlc2gpO1xuICAgIEV2ZW50TGlzdGVuZXIubGlzdGVuKHdpbmRvdywgJ3Njcm9sbCcsIGNhbGxiYWNrKTtcbiAgfSxcblxuICBkaXNwYXRjaEV2ZW50OiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCkge1xuICAgIGlmICghUmVhY3RFdmVudExpc3RlbmVyLl9lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGJvb2tLZWVwaW5nID0gVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLmdldFBvb2xlZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KTtcbiAgICB0cnkge1xuICAgICAgLy8gRXZlbnQgcXVldWUgYmVpbmcgcHJvY2Vzc2VkIGluIHRoZSBzYW1lIGN5Y2xlIGFsbG93c1xuICAgICAgLy8gYHByZXZlbnREZWZhdWx0YC5cbiAgICAgIFJlYWN0VXBkYXRlcy5iYXRjaGVkVXBkYXRlcyhoYW5kbGVUb3BMZXZlbEltcGwsIGJvb2tLZWVwaW5nKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLnJlbGVhc2UoYm9va0tlZXBpbmcpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdEV2ZW50TGlzdGVuZXI7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdEV2ZW50TGlzdGVuZXIuanNcbi8vIG1vZHVsZSBpZCA9IDIwM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///203\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar EventListener = __webpack_require__(/*! fbjs/lib/EventListener */ 101);\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar PooledClass = __webpack_require__(/*! ./PooledClass */ 19);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar getEventTarget = __webpack_require__(/*! ./getEventTarget */ 49);\nvar getUnboundedScrollPosition = __webpack_require__(/*! fbjs/lib/getUnboundedScrollPosition */ 204);\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function () {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function (handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function (enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function () {\n return ReactEventListener._enabled;\n },\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function (topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function (refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function (topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RFdmVudExpc3RlbmVyLmpzP2U0YWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9hc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cbnZhciBFdmVudExpc3RlbmVyID0gcmVxdWlyZSgnZmJqcy9saWIvRXZlbnRMaXN0ZW5lcicpO1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBQb29sZWRDbGFzcyA9IHJlcXVpcmUoJy4vUG9vbGVkQ2xhc3MnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBnZXRFdmVudFRhcmdldCA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRUYXJnZXQnKTtcbnZhciBnZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVpcmUoJ2ZianMvbGliL2dldFVuYm91bmRlZFNjcm9sbFBvc2l0aW9uJyk7XG5cbi8qKlxuICogRmluZCB0aGUgZGVlcGVzdCBSZWFjdCBjb21wb25lbnQgY29tcGxldGVseSBjb250YWluaW5nIHRoZSByb290IG9mIHRoZVxuICogcGFzc2VkLWluIGluc3RhbmNlIChmb3IgdXNlIHdoZW4gZW50aXJlIFJlYWN0IHRyZWVzIGFyZSBuZXN0ZWQgd2l0aGluIGVhY2hcbiAqIG90aGVyKS4gSWYgUmVhY3QgdHJlZXMgYXJlIG5vdCBuZXN0ZWQsIHJldHVybnMgbnVsbC5cbiAqL1xuZnVuY3Rpb24gZmluZFBhcmVudChpbnN0KSB7XG4gIC8vIFRPRE86IEl0IG1heSBiZSBhIGdvb2QgaWRlYSB0byBjYWNoZSB0aGlzIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgRE9NXG4gIC8vIHRyYXZlcnNhbCwgYnV0IGNhY2hpbmcgaXMgZGlmZmljdWx0IHRvIGRvIGNvcnJlY3RseSB3aXRob3V0IHVzaW5nIGFcbiAgLy8gbXV0YXRpb24gb2JzZXJ2ZXIgdG8gbGlzdGVuIGZvciBhbGwgRE9NIGNoYW5nZXMuXG4gIHdoaWxlIChpbnN0Ll9ob3N0UGFyZW50KSB7XG4gICAgaW5zdCA9IGluc3QuX2hvc3RQYXJlbnQ7XG4gIH1cbiAgdmFyIHJvb3ROb2RlID0gUmVhY3RET01Db21wb25lbnRUcmVlLmdldE5vZGVGcm9tSW5zdGFuY2UoaW5zdCk7XG4gIHZhciBjb250YWluZXIgPSByb290Tm9kZS5wYXJlbnROb2RlO1xuICByZXR1cm4gUmVhY3RET01Db21wb25lbnRUcmVlLmdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKGNvbnRhaW5lcik7XG59XG5cbi8vIFVzZWQgdG8gc3RvcmUgYW5jZXN0b3IgaGllcmFyY2h5IGluIHRvcCBsZXZlbCBjYWxsYmFja1xuZnVuY3Rpb24gVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpIHtcbiAgdGhpcy50b3BMZXZlbFR5cGUgPSB0b3BMZXZlbFR5cGU7XG4gIHRoaXMubmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgdGhpcy5hbmNlc3RvcnMgPSBbXTtcbn1cbl9hc3NpZ24oVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLnByb3RvdHlwZSwge1xuICBkZXN0cnVjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy50b3BMZXZlbFR5cGUgPSBudWxsO1xuICAgIHRoaXMubmF0aXZlRXZlbnQgPSBudWxsO1xuICAgIHRoaXMuYW5jZXN0b3JzLmxlbmd0aCA9IDA7XG4gIH1cbn0pO1xuUG9vbGVkQ2xhc3MuYWRkUG9vbGluZ1RvKFRvcExldmVsQ2FsbGJhY2tCb29rS2VlcGluZywgUG9vbGVkQ2xhc3MudHdvQXJndW1lbnRQb29sZXIpO1xuXG5mdW5jdGlvbiBoYW5kbGVUb3BMZXZlbEltcGwoYm9va0tlZXBpbmcpIHtcbiAgdmFyIG5hdGl2ZUV2ZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQoYm9va0tlZXBpbmcubmF0aXZlRXZlbnQpO1xuICB2YXIgdGFyZ2V0SW5zdCA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShuYXRpdmVFdmVudFRhcmdldCk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBoaWVyYXJjaHksIGluIGNhc2UgdGhlcmUncyBhbnkgbmVzdGVkIGNvbXBvbmVudHMuXG4gIC8vIEl0J3MgaW1wb3J0YW50IHRoYXQgd2UgYnVpbGQgdGhlIGFycmF5IG9mIGFuY2VzdG9ycyBiZWZvcmUgY2FsbGluZyBhbnlcbiAgLy8gZXZlbnQgaGFuZGxlcnMsIGJlY2F1c2UgZXZlbnQgaGFuZGxlcnMgY2FuIG1vZGlmeSB0aGUgRE9NLCBsZWFkaW5nIHRvXG4gIC8vIGluY29uc2lzdGVuY2llcyB3aXRoIFJlYWN0TW91bnQncyBub2RlIGNhY2hlLiBTZWUgIzExMDUuXG4gIHZhciBhbmNlc3RvciA9IHRhcmdldEluc3Q7XG4gIGRvIHtcbiAgICBib29rS2VlcGluZy5hbmNlc3RvcnMucHVzaChhbmNlc3Rvcik7XG4gICAgYW5jZXN0b3IgPSBhbmNlc3RvciAmJiBmaW5kUGFyZW50KGFuY2VzdG9yKTtcbiAgfSB3aGlsZSAoYW5jZXN0b3IpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYm9va0tlZXBpbmcuYW5jZXN0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgdGFyZ2V0SW5zdCA9IGJvb2tLZWVwaW5nLmFuY2VzdG9yc1tpXTtcbiAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2hhbmRsZVRvcExldmVsKGJvb2tLZWVwaW5nLnRvcExldmVsVHlwZSwgdGFyZ2V0SW5zdCwgYm9va0tlZXBpbmcubmF0aXZlRXZlbnQsIGdldEV2ZW50VGFyZ2V0KGJvb2tLZWVwaW5nLm5hdGl2ZUV2ZW50KSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2Nyb2xsVmFsdWVNb25pdG9yKGNiKSB7XG4gIHZhciBzY3JvbGxQb3NpdGlvbiA9IGdldFVuYm91bmRlZFNjcm9sbFBvc2l0aW9uKHdpbmRvdyk7XG4gIGNiKHNjcm9sbFBvc2l0aW9uKTtcbn1cblxudmFyIFJlYWN0RXZlbnRMaXN0ZW5lciA9IHtcbiAgX2VuYWJsZWQ6IHRydWUsXG4gIF9oYW5kbGVUb3BMZXZlbDogbnVsbCxcblxuICBXSU5ET1dfSEFORExFOiBFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gPyB3aW5kb3cgOiBudWxsLFxuXG4gIHNldEhhbmRsZVRvcExldmVsOiBmdW5jdGlvbiAoaGFuZGxlVG9wTGV2ZWwpIHtcbiAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2hhbmRsZVRvcExldmVsID0gaGFuZGxlVG9wTGV2ZWw7XG4gIH0sXG5cbiAgc2V0RW5hYmxlZDogZnVuY3Rpb24gKGVuYWJsZWQpIHtcbiAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2VuYWJsZWQgPSAhIWVuYWJsZWQ7XG4gIH0sXG5cbiAgaXNFbmFibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFJlYWN0RXZlbnRMaXN0ZW5lci5fZW5hYmxlZDtcbiAgfSxcblxuICAvKipcbiAgICogVHJhcHMgdG9wLWxldmVsIGV2ZW50cyBieSB1c2luZyBldmVudCBidWJibGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVHlwZSBSZWNvcmQgZnJvbSBgRXZlbnRDb25zdGFudHNgLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGFuZGxlckJhc2VOYW1lIEV2ZW50IG5hbWUgKGUuZy4gXCJjbGlja1wiKS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnQgRWxlbWVudCBvbiB3aGljaCB0byBhdHRhY2ggbGlzdGVuZXIuXG4gICAqIEByZXR1cm4gez9vYmplY3R9IEFuIG9iamVjdCB3aXRoIGEgcmVtb3ZlIGZ1bmN0aW9uIHdoaWNoIHdpbGwgZm9yY2VmdWxseVxuICAgKiAgICAgICAgICAgICAgICAgIHJlbW92ZSB0aGUgbGlzdGVuZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdHJhcEJ1YmJsZWRFdmVudDogZnVuY3Rpb24gKHRvcExldmVsVHlwZSwgaGFuZGxlckJhc2VOYW1lLCBlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIEV2ZW50TGlzdGVuZXIubGlzdGVuKGVsZW1lbnQsIGhhbmRsZXJCYXNlTmFtZSwgUmVhY3RFdmVudExpc3RlbmVyLmRpc3BhdGNoRXZlbnQuYmluZChudWxsLCB0b3BMZXZlbFR5cGUpKTtcbiAgfSxcblxuICAvKipcbiAgICogVHJhcHMgYSB0b3AtbGV2ZWwgZXZlbnQgYnkgdXNpbmcgZXZlbnQgY2FwdHVyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBoYW5kbGVyQmFzZU5hbWUgRXZlbnQgbmFtZSAoZS5nLiBcImNsaWNrXCIpLlxuICAgKiBAcGFyYW0ge29iamVjdH0gZWxlbWVudCBFbGVtZW50IG9uIHdoaWNoIHRvIGF0dGFjaCBsaXN0ZW5lci5cbiAgICogQHJldHVybiB7P29iamVjdH0gQW4gb2JqZWN0IHdpdGggYSByZW1vdmUgZnVuY3Rpb24gd2hpY2ggd2lsbCBmb3JjZWZ1bGx5XG4gICAqICAgICAgICAgICAgICAgICAgcmVtb3ZlIHRoZSBsaXN0ZW5lci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB0cmFwQ2FwdHVyZWRFdmVudDogZnVuY3Rpb24gKHRvcExldmVsVHlwZSwgaGFuZGxlckJhc2VOYW1lLCBlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIEV2ZW50TGlzdGVuZXIuY2FwdHVyZShlbGVtZW50LCBoYW5kbGVyQmFzZU5hbWUsIFJlYWN0RXZlbnRMaXN0ZW5lci5kaXNwYXRjaEV2ZW50LmJpbmQobnVsbCwgdG9wTGV2ZWxUeXBlKSk7XG4gIH0sXG5cbiAgbW9uaXRvclNjcm9sbFZhbHVlOiBmdW5jdGlvbiAocmVmcmVzaCkge1xuICAgIHZhciBjYWxsYmFjayA9IHNjcm9sbFZhbHVlTW9uaXRvci5iaW5kKG51bGwsIHJlZnJlc2gpO1xuICAgIEV2ZW50TGlzdGVuZXIubGlzdGVuKHdpbmRvdywgJ3Njcm9sbCcsIGNhbGxiYWNrKTtcbiAgfSxcblxuICBkaXNwYXRjaEV2ZW50OiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCkge1xuICAgIGlmICghUmVhY3RFdmVudExpc3RlbmVyLl9lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGJvb2tLZWVwaW5nID0gVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLmdldFBvb2xlZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KTtcbiAgICB0cnkge1xuICAgICAgLy8gRXZlbnQgcXVldWUgYmVpbmcgcHJvY2Vzc2VkIGluIHRoZSBzYW1lIGN5Y2xlIGFsbG93c1xuICAgICAgLy8gYHByZXZlbnREZWZhdWx0YC5cbiAgICAgIFJlYWN0VXBkYXRlcy5iYXRjaGVkVXBkYXRlcyhoYW5kbGVUb3BMZXZlbEltcGwsIGJvb2tLZWVwaW5nKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLnJlbGVhc2UoYm9va0tlZXBpbmcpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdEV2ZW50TGlzdGVuZXI7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdEV2ZW50TGlzdGVuZXIuanNcbi8vIG1vZHVsZSBpZCA9IDIwM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///203\n"); /***/ }), /* 204 */ @@ -2527,7 +2527,7 @@ eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(/*! ./DOMProperty */ 15);\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ 46);\nvar ReactComponentEnvironment = __webpack_require__(/*! ./ReactComponentEnvironment */ 55);\nvar ReactEmptyComponent = __webpack_require__(/*! ./ReactEmptyComponent */ 98);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactHostComponent = __webpack_require__(/*! ./ReactHostComponent */ 99);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjA1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RJbmplY3Rpb24uanM/MWNhOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NUHJvcGVydHkgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5Jyk7XG52YXIgRXZlbnRQbHVnaW5IdWIgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luSHViJyk7XG52YXIgRXZlbnRQbHVnaW5VdGlscyA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5VdGlscycpO1xudmFyIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdEVtcHR5Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVtcHR5Q29tcG9uZW50Jyk7XG52YXIgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnLi9SZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXInKTtcbnZhciBSZWFjdEhvc3RDb21wb25lbnQgPSByZXF1aXJlKCcuL1JlYWN0SG9zdENvbXBvbmVudCcpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBSZWFjdEluamVjdGlvbiA9IHtcbiAgQ29tcG9uZW50OiBSZWFjdENvbXBvbmVudEVudmlyb25tZW50LmluamVjdGlvbixcbiAgRE9NUHJvcGVydHk6IERPTVByb3BlcnR5LmluamVjdGlvbixcbiAgRW1wdHlDb21wb25lbnQ6IFJlYWN0RW1wdHlDb21wb25lbnQuaW5qZWN0aW9uLFxuICBFdmVudFBsdWdpbkh1YjogRXZlbnRQbHVnaW5IdWIuaW5qZWN0aW9uLFxuICBFdmVudFBsdWdpblV0aWxzOiBFdmVudFBsdWdpblV0aWxzLmluamVjdGlvbixcbiAgRXZlbnRFbWl0dGVyOiBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuaW5qZWN0aW9uLFxuICBIb3N0Q29tcG9uZW50OiBSZWFjdEhvc3RDb21wb25lbnQuaW5qZWN0aW9uLFxuICBVcGRhdGVzOiBSZWFjdFVwZGF0ZXMuaW5qZWN0aW9uXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0SW5qZWN0aW9uO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RJbmplY3Rpb24uanNcbi8vIG1vZHVsZSBpZCA9IDIwNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///205\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(/*! ./DOMProperty */ 15);\nvar EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ 28);\nvar EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ 47);\nvar ReactComponentEnvironment = __webpack_require__(/*! ./ReactComponentEnvironment */ 56);\nvar ReactEmptyComponent = __webpack_require__(/*! ./ReactEmptyComponent */ 98);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactHostComponent = __webpack_require__(/*! ./ReactHostComponent */ 99);\nvar ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ 11);\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjA1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RJbmplY3Rpb24uanM/MWNhOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NUHJvcGVydHkgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5Jyk7XG52YXIgRXZlbnRQbHVnaW5IdWIgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luSHViJyk7XG52YXIgRXZlbnRQbHVnaW5VdGlscyA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5VdGlscycpO1xudmFyIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdEVtcHR5Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVtcHR5Q29tcG9uZW50Jyk7XG52YXIgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnLi9SZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXInKTtcbnZhciBSZWFjdEhvc3RDb21wb25lbnQgPSByZXF1aXJlKCcuL1JlYWN0SG9zdENvbXBvbmVudCcpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBSZWFjdEluamVjdGlvbiA9IHtcbiAgQ29tcG9uZW50OiBSZWFjdENvbXBvbmVudEVudmlyb25tZW50LmluamVjdGlvbixcbiAgRE9NUHJvcGVydHk6IERPTVByb3BlcnR5LmluamVjdGlvbixcbiAgRW1wdHlDb21wb25lbnQ6IFJlYWN0RW1wdHlDb21wb25lbnQuaW5qZWN0aW9uLFxuICBFdmVudFBsdWdpbkh1YjogRXZlbnRQbHVnaW5IdWIuaW5qZWN0aW9uLFxuICBFdmVudFBsdWdpblV0aWxzOiBFdmVudFBsdWdpblV0aWxzLmluamVjdGlvbixcbiAgRXZlbnRFbWl0dGVyOiBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuaW5qZWN0aW9uLFxuICBIb3N0Q29tcG9uZW50OiBSZWFjdEhvc3RDb21wb25lbnQuaW5qZWN0aW9uLFxuICBVcGRhdGVzOiBSZWFjdFVwZGF0ZXMuaW5qZWN0aW9uXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0SW5qZWN0aW9uO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RJbmplY3Rpb24uanNcbi8vIG1vZHVsZSBpZCA9IDIwNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///205\n"); /***/ }), /* 206 */ @@ -2539,7 +2539,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar CallbackQueue = __webpack_require__(/*! ./CallbackQueue */ 83);\nvar PooledClass = __webpack_require__(/*! ./PooledClass */ 19);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactInputSelection = __webpack_require__(/*! ./ReactInputSelection */ 102);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar Transaction = __webpack_require__(/*! ./Transaction */ 37);\nvar ReactUpdateQueue = __webpack_require__(/*! ./ReactUpdateQueue */ 59);\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function () {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n * restores the previous value.\n */\n close: function (previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function () {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function () {\n this.reactMountReady.notifyAll();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap procedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjA2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5qcz8yZDM2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgQ2FsbGJhY2tRdWV1ZSA9IHJlcXVpcmUoJy4vQ2FsbGJhY2tRdWV1ZScpO1xudmFyIFBvb2xlZENsYXNzID0gcmVxdWlyZSgnLi9Qb29sZWRDbGFzcycpO1xudmFyIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJy4vUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyJyk7XG52YXIgUmVhY3RJbnB1dFNlbGVjdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RJbnB1dFNlbGVjdGlvbicpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFRyYW5zYWN0aW9uID0gcmVxdWlyZSgnLi9UcmFuc2FjdGlvbicpO1xudmFyIFJlYWN0VXBkYXRlUXVldWUgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlUXVldWUnKTtcblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQsIHdoZW4gcG9zc2libGUsIHRoZSBzZWxlY3Rpb24gcmFuZ2UgKGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0XG4gKiBpbnB1dCkgaXMgbm90IGRpc3R1cmJlZCBieSBwZXJmb3JtaW5nIHRoZSB0cmFuc2FjdGlvbi5cbiAqL1xudmFyIFNFTEVDVElPTl9SRVNUT1JBVElPTiA9IHtcbiAgLyoqXG4gICAqIEByZXR1cm4ge1NlbGVjdGlvbn0gU2VsZWN0aW9uIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgaW5pdGlhbGl6ZTogUmVhY3RJbnB1dFNlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvcm1hdGlvbixcbiAgLyoqXG4gICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWwgU2VsZWN0aW9uIGluZm9ybWF0aW9uIHJldHVybmVkIGZyb20gYGluaXRpYWxpemVgLlxuICAgKi9cbiAgY2xvc2U6IFJlYWN0SW5wdXRTZWxlY3Rpb24ucmVzdG9yZVNlbGVjdGlvblxufTtcblxuLyoqXG4gKiBTdXBwcmVzc2VzIGV2ZW50cyAoYmx1ci9mb2N1cykgdGhhdCBjb3VsZCBiZSBpbmFkdmVydGVudGx5IGRpc3BhdGNoZWQgZHVlIHRvXG4gKiBoaWdoIGxldmVsIERPTSBtYW5pcHVsYXRpb25zIChsaWtlIHRlbXBvcmFyaWx5IHJlbW92aW5nIGEgdGV4dCBpbnB1dCBmcm9tIHRoZVxuICogRE9NKS5cbiAqL1xudmFyIEVWRU5UX1NVUFBSRVNTSU9OID0ge1xuICAvKipcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVGhlIGVuYWJsZWQgc3RhdHVzIG9mIGBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXJgIGJlZm9yZVxuICAgKiB0aGUgcmVjb25jaWxpYXRpb24uXG4gICAqL1xuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGN1cnJlbnRseUVuYWJsZWQgPSBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuaXNFbmFibGVkKCk7XG4gICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnNldEVuYWJsZWQoZmFsc2UpO1xuICAgIHJldHVybiBjdXJyZW50bHlFbmFibGVkO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHByZXZpb3VzbHlFbmFibGVkIEVuYWJsZWQgc3RhdHVzIG9mXG4gICAqICAgYFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlcmAgYmVmb3JlIHRoZSByZWNvbmNpbGlhdGlvbiBvY2N1cnJlZC4gYGNsb3NlYFxuICAgKiAgIHJlc3RvcmVzIHRoZSBwcmV2aW91cyB2YWx1ZS5cbiAgICovXG4gIGNsb3NlOiBmdW5jdGlvbiAocHJldmlvdXNseUVuYWJsZWQpIHtcbiAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuc2V0RW5hYmxlZChwcmV2aW91c2x5RW5hYmxlZCk7XG4gIH1cbn07XG5cbi8qKlxuICogUHJvdmlkZXMgYSBxdWV1ZSBmb3IgY29sbGVjdGluZyBgY29tcG9uZW50RGlkTW91bnRgIGFuZFxuICogYGNvbXBvbmVudERpZFVwZGF0ZWAgY2FsbGJhY2tzIGR1cmluZyB0aGUgdHJhbnNhY3Rpb24uXG4gKi9cbnZhciBPTl9ET01fUkVBRFlfUVVFVUVJTkcgPSB7XG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgaW50ZXJuYWwgYG9uRE9NUmVhZHlgIHF1ZXVlLlxuICAgKi9cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucmVhY3RNb3VudFJlYWR5LnJlc2V0KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFmdGVyIERPTSBpcyBmbHVzaGVkLCBpbnZva2UgYWxsIHJlZ2lzdGVyZWQgYG9uRE9NUmVhZHlgIGNhbGxiYWNrcy5cbiAgICovXG4gIGNsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5yZWFjdE1vdW50UmVhZHkubm90aWZ5QWxsKCk7XG4gIH1cbn07XG5cbi8qKlxuICogRXhlY3V0ZWQgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgYFRyYW5zYWN0aW9uYCBpbnN0YW5jZS4gQ29uc2lkZXIgdGhlc2UgYXNcbiAqIGJlaW5nIG1lbWJlciBtZXRob2RzLCBidXQgd2l0aCBhbiBpbXBsaWVkIG9yZGVyaW5nIHdoaWxlIGJlaW5nIGlzb2xhdGVkIGZyb21cbiAqIGVhY2ggb3RoZXIuXG4gKi9cbnZhciBUUkFOU0FDVElPTl9XUkFQUEVSUyA9IFtTRUxFQ1RJT05fUkVTVE9SQVRJT04sIEVWRU5UX1NVUFBSRVNTSU9OLCBPTl9ET01fUkVBRFlfUVVFVUVJTkddO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBUUkFOU0FDVElPTl9XUkFQUEVSUy5wdXNoKHtcbiAgICBpbml0aWFsaXplOiBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25CZWdpbkZsdXNoLFxuICAgIGNsb3NlOiBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25FbmRGbHVzaFxuICB9KTtcbn1cblxuLyoqXG4gKiBDdXJyZW50bHk6XG4gKiAtIFRoZSBvcmRlciB0aGF0IHRoZXNlIGFyZSBsaXN0ZWQgaW4gdGhlIHRyYW5zYWN0aW9uIGlzIGNyaXRpY2FsOlxuICogLSBTdXBwcmVzc2VzIGV2ZW50cy5cbiAqIC0gUmVzdG9yZXMgc2VsZWN0aW9uIHJhbmdlLlxuICpcbiAqIEZ1dHVyZTpcbiAqIC0gUmVzdG9yZSBkb2N1bWVudC9vdmVyZmxvdyBzY3JvbGwgcG9zaXRpb25zIHRoYXQgd2VyZSB1bmludGVudGlvbmFsbHlcbiAqICAgbW9kaWZpZWQgdmlhIERPTSBpbnNlcnRpb25zIGFib3ZlIHRoZSB0b3Agdmlld3BvcnQgYm91bmRhcnkuXG4gKiAtIEltcGxlbWVudC9pbnRlZ3JhdGUgd2l0aCBjdXN0b21pemVkIGNvbnN0cmFpbnQgYmFzZWQgbGF5b3V0IHN5c3RlbSBhbmQga2VlcFxuICogICB0cmFjayBvZiB3aGljaCBkaW1lbnNpb25zIG11c3QgYmUgcmVtZWFzdXJlZC5cbiAqXG4gKiBAY2xhc3MgUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvblxuICovXG5mdW5jdGlvbiBSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uKHVzZUNyZWF0ZUVsZW1lbnQpIHtcbiAgdGhpcy5yZWluaXRpYWxpemVUcmFuc2FjdGlvbigpO1xuICAvLyBPbmx5IHNlcnZlci1zaWRlIHJlbmRlcmluZyByZWFsbHkgbmVlZHMgdGhpcyBvcHRpb24gKHNlZVxuICAvLyBgUmVhY3RTZXJ2ZXJSZW5kZXJpbmdgKSwgYnV0IHNlcnZlci1zaWRlIHVzZXNcbiAgLy8gYFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb25gIGluc3RlYWQuIFRoaXMgb3B0aW9uIGlzIGhlcmUgc28gdGhhdCBpdCdzXG4gIC8vIGFjY2Vzc2libGUgYW5kIGRlZmF1bHRzIHRvIGZhbHNlIHdoZW4gYFJlYWN0RE9NQ29tcG9uZW50YCBhbmRcbiAgLy8gYFJlYWN0RE9NVGV4dENvbXBvbmVudGAgY2hlY2tzIGl0IGluIGBtb3VudENvbXBvbmVudGAuYFxuICB0aGlzLnJlbmRlclRvU3RhdGljTWFya3VwID0gZmFsc2U7XG4gIHRoaXMucmVhY3RNb3VudFJlYWR5ID0gQ2FsbGJhY2tRdWV1ZS5nZXRQb29sZWQobnVsbCk7XG4gIHRoaXMudXNlQ3JlYXRlRWxlbWVudCA9IHVzZUNyZWF0ZUVsZW1lbnQ7XG59XG5cbnZhciBNaXhpbiA9IHtcbiAgLyoqXG4gICAqIEBzZWUgVHJhbnNhY3Rpb25cbiAgICogQGFic3RyYWN0XG4gICAqIEBmaW5hbFxuICAgKiBAcmV0dXJuIHthcnJheTxvYmplY3Q+fSBMaXN0IG9mIG9wZXJhdGlvbiB3cmFwIHByb2NlZHVyZXMuXG4gICAqICAgVE9ETzogY29udmVydCB0byBhcnJheTxUcmFuc2FjdGlvbldyYXBwZXI+XG4gICAqL1xuICBnZXRUcmFuc2FjdGlvbldyYXBwZXJzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFRSQU5TQUNUSU9OX1dSQVBQRVJTO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9IFRoZSBxdWV1ZSB0byBjb2xsZWN0IGBvbkRPTVJlYWR5YCBjYWxsYmFja3Mgd2l0aC5cbiAgICovXG4gIGdldFJlYWN0TW91bnRSZWFkeTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnJlYWN0TW91bnRSZWFkeTtcbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiB7b2JqZWN0fSBUaGUgcXVldWUgdG8gY29sbGVjdCBSZWFjdCBhc3luYyBldmVudHMuXG4gICAqL1xuICBnZXRVcGRhdGVRdWV1ZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBSZWFjdFVwZGF0ZVF1ZXVlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTYXZlIGN1cnJlbnQgdHJhbnNhY3Rpb24gc3RhdGUgLS0gaWYgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoaXMgbWV0aG9kIGlzXG4gICAqIHBhc3NlZCB0byBgcm9sbGJhY2tgLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSByZXNldCB0byB0aGF0IHN0YXRlLlxuICAgKi9cbiAgY2hlY2twb2ludDogZnVuY3Rpb24gKCkge1xuICAgIC8vIHJlYWN0TW91bnRSZWFkeSBpcyB0aGUgb3VyIG9ubHkgc3RhdGVmdWwgd3JhcHBlclxuICAgIHJldHVybiB0aGlzLnJlYWN0TW91bnRSZWFkeS5jaGVja3BvaW50KCk7XG4gIH0sXG5cbiAgcm9sbGJhY2s6IGZ1bmN0aW9uIChjaGVja3BvaW50KSB7XG4gICAgdGhpcy5yZWFjdE1vdW50UmVhZHkucm9sbGJhY2soY2hlY2twb2ludCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIGBQb29sZWRDbGFzc2AgbG9va3MgZm9yIHRoaXMsIGFuZCB3aWxsIGludm9rZSB0aGlzIGJlZm9yZSBhbGxvd2luZyB0aGlzXG4gICAqIGluc3RhbmNlIHRvIGJlIHJldXNlZC5cbiAgICovXG4gIGRlc3RydWN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICBDYWxsYmFja1F1ZXVlLnJlbGVhc2UodGhpcy5yZWFjdE1vdW50UmVhZHkpO1xuICAgIHRoaXMucmVhY3RNb3VudFJlYWR5ID0gbnVsbDtcbiAgfVxufTtcblxuX2Fzc2lnbihSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uLnByb3RvdHlwZSwgVHJhbnNhY3Rpb24sIE1peGluKTtcblxuUG9vbGVkQ2xhc3MuYWRkUG9vbGluZ1RvKFJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb247XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///206\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ 5);\n\nvar CallbackQueue = __webpack_require__(/*! ./CallbackQueue */ 83);\nvar PooledClass = __webpack_require__(/*! ./PooledClass */ 19);\nvar ReactBrowserEventEmitter = __webpack_require__(/*! ./ReactBrowserEventEmitter */ 41);\nvar ReactInputSelection = __webpack_require__(/*! ./ReactInputSelection */ 102);\nvar ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ 8);\nvar Transaction = __webpack_require__(/*! ./Transaction */ 37);\nvar ReactUpdateQueue = __webpack_require__(/*! ./ReactUpdateQueue */ 60);\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function () {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n * restores the previous value.\n */\n close: function (previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function () {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function () {\n this.reactMountReady.notifyAll();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(useCreateElement) {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = useCreateElement;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap procedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function () {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function () {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function () {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjA2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5qcz8yZDM2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xuXG52YXIgQ2FsbGJhY2tRdWV1ZSA9IHJlcXVpcmUoJy4vQ2FsbGJhY2tRdWV1ZScpO1xudmFyIFBvb2xlZENsYXNzID0gcmVxdWlyZSgnLi9Qb29sZWRDbGFzcycpO1xudmFyIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJy4vUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyJyk7XG52YXIgUmVhY3RJbnB1dFNlbGVjdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RJbnB1dFNlbGVjdGlvbicpO1xudmFyIFJlYWN0SW5zdHJ1bWVudGF0aW9uID0gcmVxdWlyZSgnLi9SZWFjdEluc3RydW1lbnRhdGlvbicpO1xudmFyIFRyYW5zYWN0aW9uID0gcmVxdWlyZSgnLi9UcmFuc2FjdGlvbicpO1xudmFyIFJlYWN0VXBkYXRlUXVldWUgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlUXVldWUnKTtcblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQsIHdoZW4gcG9zc2libGUsIHRoZSBzZWxlY3Rpb24gcmFuZ2UgKGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0XG4gKiBpbnB1dCkgaXMgbm90IGRpc3R1cmJlZCBieSBwZXJmb3JtaW5nIHRoZSB0cmFuc2FjdGlvbi5cbiAqL1xudmFyIFNFTEVDVElPTl9SRVNUT1JBVElPTiA9IHtcbiAgLyoqXG4gICAqIEByZXR1cm4ge1NlbGVjdGlvbn0gU2VsZWN0aW9uIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgaW5pdGlhbGl6ZTogUmVhY3RJbnB1dFNlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvcm1hdGlvbixcbiAgLyoqXG4gICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWwgU2VsZWN0aW9uIGluZm9ybWF0aW9uIHJldHVybmVkIGZyb20gYGluaXRpYWxpemVgLlxuICAgKi9cbiAgY2xvc2U6IFJlYWN0SW5wdXRTZWxlY3Rpb24ucmVzdG9yZVNlbGVjdGlvblxufTtcblxuLyoqXG4gKiBTdXBwcmVzc2VzIGV2ZW50cyAoYmx1ci9mb2N1cykgdGhhdCBjb3VsZCBiZSBpbmFkdmVydGVudGx5IGRpc3BhdGNoZWQgZHVlIHRvXG4gKiBoaWdoIGxldmVsIERPTSBtYW5pcHVsYXRpb25zIChsaWtlIHRlbXBvcmFyaWx5IHJlbW92aW5nIGEgdGV4dCBpbnB1dCBmcm9tIHRoZVxuICogRE9NKS5cbiAqL1xudmFyIEVWRU5UX1NVUFBSRVNTSU9OID0ge1xuICAvKipcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVGhlIGVuYWJsZWQgc3RhdHVzIG9mIGBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXJgIGJlZm9yZVxuICAgKiB0aGUgcmVjb25jaWxpYXRpb24uXG4gICAqL1xuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGN1cnJlbnRseUVuYWJsZWQgPSBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuaXNFbmFibGVkKCk7XG4gICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnNldEVuYWJsZWQoZmFsc2UpO1xuICAgIHJldHVybiBjdXJyZW50bHlFbmFibGVkO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHByZXZpb3VzbHlFbmFibGVkIEVuYWJsZWQgc3RhdHVzIG9mXG4gICAqICAgYFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlcmAgYmVmb3JlIHRoZSByZWNvbmNpbGlhdGlvbiBvY2N1cnJlZC4gYGNsb3NlYFxuICAgKiAgIHJlc3RvcmVzIHRoZSBwcmV2aW91cyB2YWx1ZS5cbiAgICovXG4gIGNsb3NlOiBmdW5jdGlvbiAocHJldmlvdXNseUVuYWJsZWQpIHtcbiAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuc2V0RW5hYmxlZChwcmV2aW91c2x5RW5hYmxlZCk7XG4gIH1cbn07XG5cbi8qKlxuICogUHJvdmlkZXMgYSBxdWV1ZSBmb3IgY29sbGVjdGluZyBgY29tcG9uZW50RGlkTW91bnRgIGFuZFxuICogYGNvbXBvbmVudERpZFVwZGF0ZWAgY2FsbGJhY2tzIGR1cmluZyB0aGUgdHJhbnNhY3Rpb24uXG4gKi9cbnZhciBPTl9ET01fUkVBRFlfUVVFVUVJTkcgPSB7XG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgaW50ZXJuYWwgYG9uRE9NUmVhZHlgIHF1ZXVlLlxuICAgKi9cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucmVhY3RNb3VudFJlYWR5LnJlc2V0KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFmdGVyIERPTSBpcyBmbHVzaGVkLCBpbnZva2UgYWxsIHJlZ2lzdGVyZWQgYG9uRE9NUmVhZHlgIGNhbGxiYWNrcy5cbiAgICovXG4gIGNsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5yZWFjdE1vdW50UmVhZHkubm90aWZ5QWxsKCk7XG4gIH1cbn07XG5cbi8qKlxuICogRXhlY3V0ZWQgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgYFRyYW5zYWN0aW9uYCBpbnN0YW5jZS4gQ29uc2lkZXIgdGhlc2UgYXNcbiAqIGJlaW5nIG1lbWJlciBtZXRob2RzLCBidXQgd2l0aCBhbiBpbXBsaWVkIG9yZGVyaW5nIHdoaWxlIGJlaW5nIGlzb2xhdGVkIGZyb21cbiAqIGVhY2ggb3RoZXIuXG4gKi9cbnZhciBUUkFOU0FDVElPTl9XUkFQUEVSUyA9IFtTRUxFQ1RJT05fUkVTVE9SQVRJT04sIEVWRU5UX1NVUFBSRVNTSU9OLCBPTl9ET01fUkVBRFlfUVVFVUVJTkddO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBUUkFOU0FDVElPTl9XUkFQUEVSUy5wdXNoKHtcbiAgICBpbml0aWFsaXplOiBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25CZWdpbkZsdXNoLFxuICAgIGNsb3NlOiBSZWFjdEluc3RydW1lbnRhdGlvbi5kZWJ1Z1Rvb2wub25FbmRGbHVzaFxuICB9KTtcbn1cblxuLyoqXG4gKiBDdXJyZW50bHk6XG4gKiAtIFRoZSBvcmRlciB0aGF0IHRoZXNlIGFyZSBsaXN0ZWQgaW4gdGhlIHRyYW5zYWN0aW9uIGlzIGNyaXRpY2FsOlxuICogLSBTdXBwcmVzc2VzIGV2ZW50cy5cbiAqIC0gUmVzdG9yZXMgc2VsZWN0aW9uIHJhbmdlLlxuICpcbiAqIEZ1dHVyZTpcbiAqIC0gUmVzdG9yZSBkb2N1bWVudC9vdmVyZmxvdyBzY3JvbGwgcG9zaXRpb25zIHRoYXQgd2VyZSB1bmludGVudGlvbmFsbHlcbiAqICAgbW9kaWZpZWQgdmlhIERPTSBpbnNlcnRpb25zIGFib3ZlIHRoZSB0b3Agdmlld3BvcnQgYm91bmRhcnkuXG4gKiAtIEltcGxlbWVudC9pbnRlZ3JhdGUgd2l0aCBjdXN0b21pemVkIGNvbnN0cmFpbnQgYmFzZWQgbGF5b3V0IHN5c3RlbSBhbmQga2VlcFxuICogICB0cmFjayBvZiB3aGljaCBkaW1lbnNpb25zIG11c3QgYmUgcmVtZWFzdXJlZC5cbiAqXG4gKiBAY2xhc3MgUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvblxuICovXG5mdW5jdGlvbiBSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uKHVzZUNyZWF0ZUVsZW1lbnQpIHtcbiAgdGhpcy5yZWluaXRpYWxpemVUcmFuc2FjdGlvbigpO1xuICAvLyBPbmx5IHNlcnZlci1zaWRlIHJlbmRlcmluZyByZWFsbHkgbmVlZHMgdGhpcyBvcHRpb24gKHNlZVxuICAvLyBgUmVhY3RTZXJ2ZXJSZW5kZXJpbmdgKSwgYnV0IHNlcnZlci1zaWRlIHVzZXNcbiAgLy8gYFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb25gIGluc3RlYWQuIFRoaXMgb3B0aW9uIGlzIGhlcmUgc28gdGhhdCBpdCdzXG4gIC8vIGFjY2Vzc2libGUgYW5kIGRlZmF1bHRzIHRvIGZhbHNlIHdoZW4gYFJlYWN0RE9NQ29tcG9uZW50YCBhbmRcbiAgLy8gYFJlYWN0RE9NVGV4dENvbXBvbmVudGAgY2hlY2tzIGl0IGluIGBtb3VudENvbXBvbmVudGAuYFxuICB0aGlzLnJlbmRlclRvU3RhdGljTWFya3VwID0gZmFsc2U7XG4gIHRoaXMucmVhY3RNb3VudFJlYWR5ID0gQ2FsbGJhY2tRdWV1ZS5nZXRQb29sZWQobnVsbCk7XG4gIHRoaXMudXNlQ3JlYXRlRWxlbWVudCA9IHVzZUNyZWF0ZUVsZW1lbnQ7XG59XG5cbnZhciBNaXhpbiA9IHtcbiAgLyoqXG4gICAqIEBzZWUgVHJhbnNhY3Rpb25cbiAgICogQGFic3RyYWN0XG4gICAqIEBmaW5hbFxuICAgKiBAcmV0dXJuIHthcnJheTxvYmplY3Q+fSBMaXN0IG9mIG9wZXJhdGlvbiB3cmFwIHByb2NlZHVyZXMuXG4gICAqICAgVE9ETzogY29udmVydCB0byBhcnJheTxUcmFuc2FjdGlvbldyYXBwZXI+XG4gICAqL1xuICBnZXRUcmFuc2FjdGlvbldyYXBwZXJzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFRSQU5TQUNUSU9OX1dSQVBQRVJTO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9IFRoZSBxdWV1ZSB0byBjb2xsZWN0IGBvbkRPTVJlYWR5YCBjYWxsYmFja3Mgd2l0aC5cbiAgICovXG4gIGdldFJlYWN0TW91bnRSZWFkeTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnJlYWN0TW91bnRSZWFkeTtcbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiB7b2JqZWN0fSBUaGUgcXVldWUgdG8gY29sbGVjdCBSZWFjdCBhc3luYyBldmVudHMuXG4gICAqL1xuICBnZXRVcGRhdGVRdWV1ZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBSZWFjdFVwZGF0ZVF1ZXVlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTYXZlIGN1cnJlbnQgdHJhbnNhY3Rpb24gc3RhdGUgLS0gaWYgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoaXMgbWV0aG9kIGlzXG4gICAqIHBhc3NlZCB0byBgcm9sbGJhY2tgLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBiZSByZXNldCB0byB0aGF0IHN0YXRlLlxuICAgKi9cbiAgY2hlY2twb2ludDogZnVuY3Rpb24gKCkge1xuICAgIC8vIHJlYWN0TW91bnRSZWFkeSBpcyB0aGUgb3VyIG9ubHkgc3RhdGVmdWwgd3JhcHBlclxuICAgIHJldHVybiB0aGlzLnJlYWN0TW91bnRSZWFkeS5jaGVja3BvaW50KCk7XG4gIH0sXG5cbiAgcm9sbGJhY2s6IGZ1bmN0aW9uIChjaGVja3BvaW50KSB7XG4gICAgdGhpcy5yZWFjdE1vdW50UmVhZHkucm9sbGJhY2soY2hlY2twb2ludCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIGBQb29sZWRDbGFzc2AgbG9va3MgZm9yIHRoaXMsIGFuZCB3aWxsIGludm9rZSB0aGlzIGJlZm9yZSBhbGxvd2luZyB0aGlzXG4gICAqIGluc3RhbmNlIHRvIGJlIHJldXNlZC5cbiAgICovXG4gIGRlc3RydWN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICBDYWxsYmFja1F1ZXVlLnJlbGVhc2UodGhpcy5yZWFjdE1vdW50UmVhZHkpO1xuICAgIHRoaXMucmVhY3RNb3VudFJlYWR5ID0gbnVsbDtcbiAgfVxufTtcblxuX2Fzc2lnbihSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uLnByb3RvdHlwZSwgVHJhbnNhY3Rpb24sIE1peGluKTtcblxuUG9vbGVkQ2xhc3MuYWRkUG9vbGluZ1RvKFJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb247XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9SZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///206\n"); /***/ }), /* 207 */ @@ -2623,7 +2623,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPropagators = __webpack_require__(/*! ./EventPropagators */ 27);\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactInputSelection = __webpack_require__(/*! ./ReactInputSelection */ 102);\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\n\nvar getActiveElement = __webpack_require__(/*! fbjs/lib/getActiveElement */ 103);\nvar isTextInputElement = __webpack_require__(/*! ./isTextInputElement */ 86);\nvar shallowEqual = __webpack_require__(/*! fbjs/lib/shallowEqual */ 56);\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events. See #3639.\nvar hasListener = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = null;\n lastSelection = null;\n break;\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case 'topMouseUp':\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU2VsZWN0RXZlbnRQbHVnaW4uanM/Y2IyZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHJlcXVpcmUoJy4vRXZlbnRQcm9wYWdhdG9ycycpO1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0SW5wdXRTZWxlY3Rpb24gPSByZXF1aXJlKCcuL1JlYWN0SW5wdXRTZWxlY3Rpb24nKTtcbnZhciBTeW50aGV0aWNFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljRXZlbnQnKTtcblxudmFyIGdldEFjdGl2ZUVsZW1lbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9nZXRBY3RpdmVFbGVtZW50Jyk7XG52YXIgaXNUZXh0SW5wdXRFbGVtZW50ID0gcmVxdWlyZSgnLi9pc1RleHRJbnB1dEVsZW1lbnQnKTtcbnZhciBzaGFsbG93RXF1YWwgPSByZXF1aXJlKCdmYmpzL2xpYi9zaGFsbG93RXF1YWwnKTtcblxudmFyIHNraXBTZWxlY3Rpb25DaGFuZ2VFdmVudCA9IEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSAmJiAnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudE1vZGUgPD0gMTE7XG5cbnZhciBldmVudFR5cGVzID0ge1xuICBzZWxlY3Q6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDogJ29uU2VsZWN0JyxcbiAgICAgIGNhcHR1cmVkOiAnb25TZWxlY3RDYXB0dXJlJ1xuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBbJ3RvcEJsdXInLCAndG9wQ29udGV4dE1lbnUnLCAndG9wRm9jdXMnLCAndG9wS2V5RG93bicsICd0b3BLZXlVcCcsICd0b3BNb3VzZURvd24nLCAndG9wTW91c2VVcCcsICd0b3BTZWxlY3Rpb25DaGFuZ2UnXVxuICB9XG59O1xuXG52YXIgYWN0aXZlRWxlbWVudCA9IG51bGw7XG52YXIgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xudmFyIGxhc3RTZWxlY3Rpb24gPSBudWxsO1xudmFyIG1vdXNlRG93biA9IGZhbHNlO1xuXG4vLyBUcmFjayB3aGV0aGVyIGEgbGlzdGVuZXIgZXhpc3RzIGZvciB0aGlzIHBsdWdpbi4gSWYgbm9uZSBleGlzdCwgd2UgZG9cbi8vIG5vdCBleHRyYWN0IGV2ZW50cy4gU2VlICMzNjM5LlxudmFyIGhhc0xpc3RlbmVyID0gZmFsc2U7XG5cbi8qKlxuICogR2V0IGFuIG9iamVjdCB3aGljaCBpcyBhIHVuaXF1ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSB3aWxsIG5vdCBiZSBjb25zaXN0ZW50IGFjcm9zcyBub2RlcyBvciBicm93c2VycywgYnV0XG4gKiB0d28gaWRlbnRpY2FsIHNlbGVjdGlvbnMgb24gdGhlIHNhbWUgbm9kZSB3aWxsIHJldHVybiBpZGVudGljYWwgb2JqZWN0cy5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZnVuY3Rpb24gZ2V0U2VsZWN0aW9uKG5vZGUpIHtcbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gbm9kZSAmJiBSZWFjdElucHV0U2VsZWN0aW9uLmhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhub2RlKSkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogbm9kZS5zZWxlY3Rpb25TdGFydCxcbiAgICAgIGVuZDogbm9kZS5zZWxlY3Rpb25FbmRcbiAgICB9O1xuICB9IGVsc2UgaWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24pIHtcbiAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIHJldHVybiB7XG4gICAgICBhbmNob3JOb2RlOiBzZWxlY3Rpb24uYW5jaG9yTm9kZSxcbiAgICAgIGFuY2hvck9mZnNldDogc2VsZWN0aW9uLmFuY2hvck9mZnNldCxcbiAgICAgIGZvY3VzTm9kZTogc2VsZWN0aW9uLmZvY3VzTm9kZSxcbiAgICAgIGZvY3VzT2Zmc2V0OiBzZWxlY3Rpb24uZm9jdXNPZmZzZXRcbiAgICB9O1xuICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgIHZhciByYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwYXJlbnRFbGVtZW50OiByYW5nZS5wYXJlbnRFbGVtZW50KCksXG4gICAgICB0ZXh0OiByYW5nZS50ZXh0LFxuICAgICAgdG9wOiByYW5nZS5ib3VuZGluZ1RvcCxcbiAgICAgIGxlZnQ6IHJhbmdlLmJvdW5kaW5nTGVmdFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQb2xsIHNlbGVjdGlvbiB0byBzZWUgd2hldGhlciBpdCdzIGNoYW5nZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50XG4gKiBAcmV0dXJuIHs/U3ludGhldGljRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIGNvbnN0cnVjdFNlbGVjdEV2ZW50KG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAvLyBFbnN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgZWxlbWVudCwgYW5kIHRoYXQgdGhlIHVzZXIgaXMgbm90IGRyYWdnaW5nIGFcbiAgLy8gc2VsZWN0aW9uICh0aGlzIG1hdGNoZXMgbmF0aXZlIGBzZWxlY3RgIGV2ZW50IGJlaGF2aW9yKS4gSW4gSFRNTDUsIHNlbGVjdFxuICAvLyBmaXJlcyBvbmx5IG9uIGlucHV0IGFuZCB0ZXh0YXJlYSB0aHVzIGlmIHRoZXJlJ3Mgbm8gZm9jdXNlZCBlbGVtZW50IHdlXG4gIC8vIHdvbid0IGRpc3BhdGNoLlxuICBpZiAobW91c2VEb3duIHx8IGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50ICE9PSBnZXRBY3RpdmVFbGVtZW50KCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgZmlyZSB3aGVuIHNlbGVjdGlvbiBoYXMgYWN0dWFsbHkgY2hhbmdlZC5cbiAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBnZXRTZWxlY3Rpb24oYWN0aXZlRWxlbWVudCk7XG4gIGlmICghbGFzdFNlbGVjdGlvbiB8fCAhc2hhbGxvd0VxdWFsKGxhc3RTZWxlY3Rpb24sIGN1cnJlbnRTZWxlY3Rpb24pKSB7XG4gICAgbGFzdFNlbGVjdGlvbiA9IGN1cnJlbnRTZWxlY3Rpb247XG5cbiAgICB2YXIgc3ludGhldGljRXZlbnQgPSBTeW50aGV0aWNFdmVudC5nZXRQb29sZWQoZXZlbnRUeXBlcy5zZWxlY3QsIGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuXG4gICAgc3ludGhldGljRXZlbnQudHlwZSA9ICdzZWxlY3QnO1xuICAgIHN5bnRoZXRpY0V2ZW50LnRhcmdldCA9IGFjdGl2ZUVsZW1lbnQ7XG5cbiAgICBFdmVudFByb3BhZ2F0b3JzLmFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoc3ludGhldGljRXZlbnQpO1xuXG4gICAgcmV0dXJuIHN5bnRoZXRpY0V2ZW50O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhpcyBwbHVnaW4gY3JlYXRlcyBhbiBgb25TZWxlY3RgIGV2ZW50IHRoYXQgbm9ybWFsaXplcyBzZWxlY3QgZXZlbnRzXG4gKiBhY3Jvc3MgZm9ybSBlbGVtZW50cy5cbiAqXG4gKiBTdXBwb3J0ZWQgZWxlbWVudHMgYXJlOlxuICogLSBpbnB1dCAoc2VlIGBpc1RleHRJbnB1dEVsZW1lbnRgKVxuICogLSB0ZXh0YXJlYVxuICogLSBjb250ZW50RWRpdGFibGVcbiAqXG4gKiBUaGlzIGRpZmZlcnMgZnJvbSBuYXRpdmUgYnJvd3NlciBpbXBsZW1lbnRhdGlvbnMgaW4gdGhlIGZvbGxvd2luZyB3YXlzOlxuICogLSBGaXJlcyBvbiBjb250ZW50RWRpdGFibGUgZmllbGRzIGFzIHdlbGwgYXMgaW5wdXRzLlxuICogLSBGaXJlcyBmb3IgY29sbGFwc2VkIHNlbGVjdGlvbi5cbiAqIC0gRmlyZXMgYWZ0ZXIgdXNlciBpbnB1dC5cbiAqL1xudmFyIFNlbGVjdEV2ZW50UGx1Z2luID0ge1xuICBldmVudFR5cGVzOiBldmVudFR5cGVzLFxuXG4gIGV4dHJhY3RFdmVudHM6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIGlmICghaGFzTGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXROb2RlID0gdGFyZ2V0SW5zdCA/IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpIDogd2luZG93O1xuXG4gICAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICAgIC8vIFRyYWNrIHRoZSBpbnB1dCBub2RlIHRoYXQgaGFzIGZvY3VzLlxuICAgICAgY2FzZSAndG9wRm9jdXMnOlxuICAgICAgICBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHRhcmdldE5vZGUpIHx8IHRhcmdldE5vZGUuY29udGVudEVkaXRhYmxlID09PSAndHJ1ZScpIHtcbiAgICAgICAgICBhY3RpdmVFbGVtZW50ID0gdGFyZ2V0Tm9kZTtcbiAgICAgICAgICBhY3RpdmVFbGVtZW50SW5zdCA9IHRhcmdldEluc3Q7XG4gICAgICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BCbHVyJzpcbiAgICAgICAgYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcbiAgICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gRG9uJ3QgZmlyZSB0aGUgZXZlbnQgd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcuIFRoaXMgbWF0Y2hlcyB0aGVcbiAgICAgIC8vIHNlbWFudGljcyBvZiB0aGUgbmF0aXZlIHNlbGVjdCBldmVudC5cbiAgICAgIGNhc2UgJ3RvcE1vdXNlRG93bic6XG4gICAgICAgIG1vdXNlRG93biA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wQ29udGV4dE1lbnUnOlxuICAgICAgY2FzZSAndG9wTW91c2VVcCc6XG4gICAgICAgIG1vdXNlRG93biA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gY29uc3RydWN0U2VsZWN0RXZlbnQobmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgIC8vIENocm9tZSBhbmQgSUUgZmlyZSBub24tc3RhbmRhcmQgZXZlbnQgd2hlbiBzZWxlY3Rpb24gaXMgY2hhbmdlZCAoYW5kXG4gICAgICAvLyBzb21ldGltZXMgd2hlbiBpdCBoYXNuJ3QpLiBJRSdzIGV2ZW50IGZpcmVzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3RcbiAgICAgIC8vIHRvIGtleSBhbmQgaW5wdXQgZXZlbnRzIG9uIGRlbGV0aW9uLCBzbyB3ZSBkaXNjYXJkIGl0LlxuICAgICAgLy9cbiAgICAgIC8vIEZpcmVmb3ggZG9lc24ndCBzdXBwb3J0IHNlbGVjdGlvbmNoYW5nZSwgc28gY2hlY2sgc2VsZWN0aW9uIHN0YXR1c1xuICAgICAgLy8gYWZ0ZXIgZWFjaCBrZXkgZW50cnkuIFRoZSBzZWxlY3Rpb24gY2hhbmdlcyBhZnRlciBrZXlkb3duIGFuZCBiZWZvcmVcbiAgICAgIC8vIGtleXVwLCBidXQgd2UgY2hlY2sgb24ga2V5ZG93biBhcyB3ZWxsIGluIHRoZSBjYXNlIG9mIGhvbGRpbmcgZG93biBhXG4gICAgICAvLyBrZXksIHdoZW4gbXVsdGlwbGUga2V5ZG93biBldmVudHMgYXJlIGZpcmVkIGJ1dCBvbmx5IG9uZSBrZXl1cCBpcy5cbiAgICAgIC8vIFRoaXMgaXMgYWxzbyBvdXIgYXBwcm9hY2ggZm9yIElFIGhhbmRsaW5nLCBmb3IgdGhlIHJlYXNvbiBhYm92ZS5cbiAgICAgIGNhc2UgJ3RvcFNlbGVjdGlvbkNoYW5nZSc6XG4gICAgICAgIGlmIChza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSAndG9wS2V5RG93bic6XG4gICAgICBjYXNlICd0b3BLZXlVcCc6XG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3RTZWxlY3RFdmVudChuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9LFxuXG4gIGRpZFB1dExpc3RlbmVyOiBmdW5jdGlvbiAoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSwgbGlzdGVuZXIpIHtcbiAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSA9PT0gJ29uU2VsZWN0Jykge1xuICAgICAgaGFzTGlzdGVuZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZWxlY3RFdmVudFBsdWdpbjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1NlbGVjdEV2ZW50UGx1Z2luLmpzXG4vLyBtb2R1bGUgaWQgPSAyMTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///213\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPropagators = __webpack_require__(/*! ./EventPropagators */ 27);\nvar ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ 6);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar ReactInputSelection = __webpack_require__(/*! ./ReactInputSelection */ 102);\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\n\nvar getActiveElement = __webpack_require__(/*! fbjs/lib/getActiveElement */ 103);\nvar isTextInputElement = __webpack_require__(/*! ./isTextInputElement */ 86);\nvar shallowEqual = __webpack_require__(/*! fbjs/lib/shallowEqual */ 57);\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events. See #3639.\nvar hasListener = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = null;\n lastSelection = null;\n break;\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case 'topMouseUp':\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU2VsZWN0RXZlbnRQbHVnaW4uanM/Y2IyZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHJlcXVpcmUoJy4vRXZlbnRQcm9wYWdhdG9ycycpO1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFJlYWN0SW5wdXRTZWxlY3Rpb24gPSByZXF1aXJlKCcuL1JlYWN0SW5wdXRTZWxlY3Rpb24nKTtcbnZhciBTeW50aGV0aWNFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljRXZlbnQnKTtcblxudmFyIGdldEFjdGl2ZUVsZW1lbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9nZXRBY3RpdmVFbGVtZW50Jyk7XG52YXIgaXNUZXh0SW5wdXRFbGVtZW50ID0gcmVxdWlyZSgnLi9pc1RleHRJbnB1dEVsZW1lbnQnKTtcbnZhciBzaGFsbG93RXF1YWwgPSByZXF1aXJlKCdmYmpzL2xpYi9zaGFsbG93RXF1YWwnKTtcblxudmFyIHNraXBTZWxlY3Rpb25DaGFuZ2VFdmVudCA9IEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSAmJiAnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudE1vZGUgPD0gMTE7XG5cbnZhciBldmVudFR5cGVzID0ge1xuICBzZWxlY3Q6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDogJ29uU2VsZWN0JyxcbiAgICAgIGNhcHR1cmVkOiAnb25TZWxlY3RDYXB0dXJlJ1xuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBbJ3RvcEJsdXInLCAndG9wQ29udGV4dE1lbnUnLCAndG9wRm9jdXMnLCAndG9wS2V5RG93bicsICd0b3BLZXlVcCcsICd0b3BNb3VzZURvd24nLCAndG9wTW91c2VVcCcsICd0b3BTZWxlY3Rpb25DaGFuZ2UnXVxuICB9XG59O1xuXG52YXIgYWN0aXZlRWxlbWVudCA9IG51bGw7XG52YXIgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsO1xudmFyIGxhc3RTZWxlY3Rpb24gPSBudWxsO1xudmFyIG1vdXNlRG93biA9IGZhbHNlO1xuXG4vLyBUcmFjayB3aGV0aGVyIGEgbGlzdGVuZXIgZXhpc3RzIGZvciB0aGlzIHBsdWdpbi4gSWYgbm9uZSBleGlzdCwgd2UgZG9cbi8vIG5vdCBleHRyYWN0IGV2ZW50cy4gU2VlICMzNjM5LlxudmFyIGhhc0xpc3RlbmVyID0gZmFsc2U7XG5cbi8qKlxuICogR2V0IGFuIG9iamVjdCB3aGljaCBpcyBhIHVuaXF1ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSB3aWxsIG5vdCBiZSBjb25zaXN0ZW50IGFjcm9zcyBub2RlcyBvciBicm93c2VycywgYnV0XG4gKiB0d28gaWRlbnRpY2FsIHNlbGVjdGlvbnMgb24gdGhlIHNhbWUgbm9kZSB3aWxsIHJldHVybiBpZGVudGljYWwgb2JqZWN0cy5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZnVuY3Rpb24gZ2V0U2VsZWN0aW9uKG5vZGUpIHtcbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gbm9kZSAmJiBSZWFjdElucHV0U2VsZWN0aW9uLmhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhub2RlKSkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogbm9kZS5zZWxlY3Rpb25TdGFydCxcbiAgICAgIGVuZDogbm9kZS5zZWxlY3Rpb25FbmRcbiAgICB9O1xuICB9IGVsc2UgaWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24pIHtcbiAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIHJldHVybiB7XG4gICAgICBhbmNob3JOb2RlOiBzZWxlY3Rpb24uYW5jaG9yTm9kZSxcbiAgICAgIGFuY2hvck9mZnNldDogc2VsZWN0aW9uLmFuY2hvck9mZnNldCxcbiAgICAgIGZvY3VzTm9kZTogc2VsZWN0aW9uLmZvY3VzTm9kZSxcbiAgICAgIGZvY3VzT2Zmc2V0OiBzZWxlY3Rpb24uZm9jdXNPZmZzZXRcbiAgICB9O1xuICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgIHZhciByYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwYXJlbnRFbGVtZW50OiByYW5nZS5wYXJlbnRFbGVtZW50KCksXG4gICAgICB0ZXh0OiByYW5nZS50ZXh0LFxuICAgICAgdG9wOiByYW5nZS5ib3VuZGluZ1RvcCxcbiAgICAgIGxlZnQ6IHJhbmdlLmJvdW5kaW5nTGVmdFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQb2xsIHNlbGVjdGlvbiB0byBzZWUgd2hldGhlciBpdCdzIGNoYW5nZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50XG4gKiBAcmV0dXJuIHs/U3ludGhldGljRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIGNvbnN0cnVjdFNlbGVjdEV2ZW50KG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAvLyBFbnN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgZWxlbWVudCwgYW5kIHRoYXQgdGhlIHVzZXIgaXMgbm90IGRyYWdnaW5nIGFcbiAgLy8gc2VsZWN0aW9uICh0aGlzIG1hdGNoZXMgbmF0aXZlIGBzZWxlY3RgIGV2ZW50IGJlaGF2aW9yKS4gSW4gSFRNTDUsIHNlbGVjdFxuICAvLyBmaXJlcyBvbmx5IG9uIGlucHV0IGFuZCB0ZXh0YXJlYSB0aHVzIGlmIHRoZXJlJ3Mgbm8gZm9jdXNlZCBlbGVtZW50IHdlXG4gIC8vIHdvbid0IGRpc3BhdGNoLlxuICBpZiAobW91c2VEb3duIHx8IGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50ICE9PSBnZXRBY3RpdmVFbGVtZW50KCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgZmlyZSB3aGVuIHNlbGVjdGlvbiBoYXMgYWN0dWFsbHkgY2hhbmdlZC5cbiAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBnZXRTZWxlY3Rpb24oYWN0aXZlRWxlbWVudCk7XG4gIGlmICghbGFzdFNlbGVjdGlvbiB8fCAhc2hhbGxvd0VxdWFsKGxhc3RTZWxlY3Rpb24sIGN1cnJlbnRTZWxlY3Rpb24pKSB7XG4gICAgbGFzdFNlbGVjdGlvbiA9IGN1cnJlbnRTZWxlY3Rpb247XG5cbiAgICB2YXIgc3ludGhldGljRXZlbnQgPSBTeW50aGV0aWNFdmVudC5nZXRQb29sZWQoZXZlbnRUeXBlcy5zZWxlY3QsIGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuXG4gICAgc3ludGhldGljRXZlbnQudHlwZSA9ICdzZWxlY3QnO1xuICAgIHN5bnRoZXRpY0V2ZW50LnRhcmdldCA9IGFjdGl2ZUVsZW1lbnQ7XG5cbiAgICBFdmVudFByb3BhZ2F0b3JzLmFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoc3ludGhldGljRXZlbnQpO1xuXG4gICAgcmV0dXJuIHN5bnRoZXRpY0V2ZW50O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhpcyBwbHVnaW4gY3JlYXRlcyBhbiBgb25TZWxlY3RgIGV2ZW50IHRoYXQgbm9ybWFsaXplcyBzZWxlY3QgZXZlbnRzXG4gKiBhY3Jvc3MgZm9ybSBlbGVtZW50cy5cbiAqXG4gKiBTdXBwb3J0ZWQgZWxlbWVudHMgYXJlOlxuICogLSBpbnB1dCAoc2VlIGBpc1RleHRJbnB1dEVsZW1lbnRgKVxuICogLSB0ZXh0YXJlYVxuICogLSBjb250ZW50RWRpdGFibGVcbiAqXG4gKiBUaGlzIGRpZmZlcnMgZnJvbSBuYXRpdmUgYnJvd3NlciBpbXBsZW1lbnRhdGlvbnMgaW4gdGhlIGZvbGxvd2luZyB3YXlzOlxuICogLSBGaXJlcyBvbiBjb250ZW50RWRpdGFibGUgZmllbGRzIGFzIHdlbGwgYXMgaW5wdXRzLlxuICogLSBGaXJlcyBmb3IgY29sbGFwc2VkIHNlbGVjdGlvbi5cbiAqIC0gRmlyZXMgYWZ0ZXIgdXNlciBpbnB1dC5cbiAqL1xudmFyIFNlbGVjdEV2ZW50UGx1Z2luID0ge1xuICBldmVudFR5cGVzOiBldmVudFR5cGVzLFxuXG4gIGV4dHJhY3RFdmVudHM6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIGlmICghaGFzTGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXROb2RlID0gdGFyZ2V0SW5zdCA/IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKHRhcmdldEluc3QpIDogd2luZG93O1xuXG4gICAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICAgIC8vIFRyYWNrIHRoZSBpbnB1dCBub2RlIHRoYXQgaGFzIGZvY3VzLlxuICAgICAgY2FzZSAndG9wRm9jdXMnOlxuICAgICAgICBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHRhcmdldE5vZGUpIHx8IHRhcmdldE5vZGUuY29udGVudEVkaXRhYmxlID09PSAndHJ1ZScpIHtcbiAgICAgICAgICBhY3RpdmVFbGVtZW50ID0gdGFyZ2V0Tm9kZTtcbiAgICAgICAgICBhY3RpdmVFbGVtZW50SW5zdCA9IHRhcmdldEluc3Q7XG4gICAgICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BCbHVyJzpcbiAgICAgICAgYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcbiAgICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gRG9uJ3QgZmlyZSB0aGUgZXZlbnQgd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcuIFRoaXMgbWF0Y2hlcyB0aGVcbiAgICAgIC8vIHNlbWFudGljcyBvZiB0aGUgbmF0aXZlIHNlbGVjdCBldmVudC5cbiAgICAgIGNhc2UgJ3RvcE1vdXNlRG93bic6XG4gICAgICAgIG1vdXNlRG93biA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wQ29udGV4dE1lbnUnOlxuICAgICAgY2FzZSAndG9wTW91c2VVcCc6XG4gICAgICAgIG1vdXNlRG93biA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gY29uc3RydWN0U2VsZWN0RXZlbnQobmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgIC8vIENocm9tZSBhbmQgSUUgZmlyZSBub24tc3RhbmRhcmQgZXZlbnQgd2hlbiBzZWxlY3Rpb24gaXMgY2hhbmdlZCAoYW5kXG4gICAgICAvLyBzb21ldGltZXMgd2hlbiBpdCBoYXNuJ3QpLiBJRSdzIGV2ZW50IGZpcmVzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3RcbiAgICAgIC8vIHRvIGtleSBhbmQgaW5wdXQgZXZlbnRzIG9uIGRlbGV0aW9uLCBzbyB3ZSBkaXNjYXJkIGl0LlxuICAgICAgLy9cbiAgICAgIC8vIEZpcmVmb3ggZG9lc24ndCBzdXBwb3J0IHNlbGVjdGlvbmNoYW5nZSwgc28gY2hlY2sgc2VsZWN0aW9uIHN0YXR1c1xuICAgICAgLy8gYWZ0ZXIgZWFjaCBrZXkgZW50cnkuIFRoZSBzZWxlY3Rpb24gY2hhbmdlcyBhZnRlciBrZXlkb3duIGFuZCBiZWZvcmVcbiAgICAgIC8vIGtleXVwLCBidXQgd2UgY2hlY2sgb24ga2V5ZG93biBhcyB3ZWxsIGluIHRoZSBjYXNlIG9mIGhvbGRpbmcgZG93biBhXG4gICAgICAvLyBrZXksIHdoZW4gbXVsdGlwbGUga2V5ZG93biBldmVudHMgYXJlIGZpcmVkIGJ1dCBvbmx5IG9uZSBrZXl1cCBpcy5cbiAgICAgIC8vIFRoaXMgaXMgYWxzbyBvdXIgYXBwcm9hY2ggZm9yIElFIGhhbmRsaW5nLCBmb3IgdGhlIHJlYXNvbiBhYm92ZS5cbiAgICAgIGNhc2UgJ3RvcFNlbGVjdGlvbkNoYW5nZSc6XG4gICAgICAgIGlmIChza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSAndG9wS2V5RG93bic6XG4gICAgICBjYXNlICd0b3BLZXlVcCc6XG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3RTZWxlY3RFdmVudChuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9LFxuXG4gIGRpZFB1dExpc3RlbmVyOiBmdW5jdGlvbiAoaW5zdCwgcmVnaXN0cmF0aW9uTmFtZSwgbGlzdGVuZXIpIHtcbiAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSA9PT0gJ29uU2VsZWN0Jykge1xuICAgICAgaGFzTGlzdGVuZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZWxlY3RFdmVudFBsdWdpbjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1NlbGVjdEV2ZW50UGx1Z2luLmpzXG4vLyBtb2R1bGUgaWQgPSAyMTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///213\n"); /***/ }), /* 214 */ @@ -2635,7 +2635,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar EventListener = __webpack_require__(/*! fbjs/lib/EventListener */ 101);\nvar EventPropagators = __webpack_require__(/*! ./EventPropagators */ 27);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar SyntheticAnimationEvent = __webpack_require__(/*! ./SyntheticAnimationEvent */ 215);\nvar SyntheticClipboardEvent = __webpack_require__(/*! ./SyntheticClipboardEvent */ 216);\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\nvar SyntheticFocusEvent = __webpack_require__(/*! ./SyntheticFocusEvent */ 217);\nvar SyntheticKeyboardEvent = __webpack_require__(/*! ./SyntheticKeyboardEvent */ 218);\nvar SyntheticMouseEvent = __webpack_require__(/*! ./SyntheticMouseEvent */ 38);\nvar SyntheticDragEvent = __webpack_require__(/*! ./SyntheticDragEvent */ 220);\nvar SyntheticTouchEvent = __webpack_require__(/*! ./SyntheticTouchEvent */ 221);\nvar SyntheticTransitionEvent = __webpack_require__(/*! ./SyntheticTransitionEvent */ 222);\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\nvar SyntheticWheelEvent = __webpack_require__(/*! ./SyntheticWheelEvent */ 223);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar getEventCharCode = __webpack_require__(/*! ./getEventCharCode */ 61);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case 'topKeyPress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case 'topClick':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n};\n\nmodule.exports = SimpleEventPlugin;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU2ltcGxlRXZlbnRQbHVnaW4uanM/MzVjZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBFdmVudExpc3RlbmVyID0gcmVxdWlyZSgnZmJqcy9saWIvRXZlbnRMaXN0ZW5lcicpO1xudmFyIEV2ZW50UHJvcGFnYXRvcnMgPSByZXF1aXJlKCcuL0V2ZW50UHJvcGFnYXRvcnMnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFN5bnRoZXRpY0FuaW1hdGlvbkV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNBbmltYXRpb25FdmVudCcpO1xudmFyIFN5bnRoZXRpY0NsaXBib2FyZEV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNDbGlwYm9hcmRFdmVudCcpO1xudmFyIFN5bnRoZXRpY0V2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNFdmVudCcpO1xudmFyIFN5bnRoZXRpY0ZvY3VzRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY0ZvY3VzRXZlbnQnKTtcbnZhciBTeW50aGV0aWNLZXlib2FyZEV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNLZXlib2FyZEV2ZW50Jyk7XG52YXIgU3ludGhldGljTW91c2VFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljTW91c2VFdmVudCcpO1xudmFyIFN5bnRoZXRpY0RyYWdFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljRHJhZ0V2ZW50Jyk7XG52YXIgU3ludGhldGljVG91Y2hFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljVG91Y2hFdmVudCcpO1xudmFyIFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljVHJhbnNpdGlvbkV2ZW50Jyk7XG52YXIgU3ludGhldGljVUlFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljVUlFdmVudCcpO1xudmFyIFN5bnRoZXRpY1doZWVsRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY1doZWVsRXZlbnQnKTtcblxudmFyIGVtcHR5RnVuY3Rpb24gPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eUZ1bmN0aW9uJyk7XG52YXIgZ2V0RXZlbnRDaGFyQ29kZSA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRDaGFyQ29kZScpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIFR1cm5zXG4gKiBbJ2Fib3J0JywgLi4uXVxuICogaW50b1xuICogZXZlbnRUeXBlcyA9IHtcbiAqICAgJ2Fib3J0Jzoge1xuICogICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gKiAgICAgICBidWJibGVkOiAnb25BYm9ydCcsXG4gKiAgICAgICBjYXB0dXJlZDogJ29uQWJvcnRDYXB0dXJlJyxcbiAqICAgICB9LFxuICogICAgIGRlcGVuZGVuY2llczogWyd0b3BBYm9ydCddLFxuICogICB9LFxuICogICAuLi5cbiAqIH07XG4gKiB0b3BMZXZlbEV2ZW50c1RvRGlzcGF0Y2hDb25maWcgPSB7XG4gKiAgICd0b3BBYm9ydCc6IHsgc2FtZUNvbmZpZyB9XG4gKiB9O1xuICovXG52YXIgZXZlbnRUeXBlcyA9IHt9O1xudmFyIHRvcExldmVsRXZlbnRzVG9EaXNwYXRjaENvbmZpZyA9IHt9O1xuWydhYm9ydCcsICdhbmltYXRpb25FbmQnLCAnYW5pbWF0aW9uSXRlcmF0aW9uJywgJ2FuaW1hdGlvblN0YXJ0JywgJ2JsdXInLCAnY2FuUGxheScsICdjYW5QbGF5VGhyb3VnaCcsICdjbGljaycsICdjb250ZXh0TWVudScsICdjb3B5JywgJ2N1dCcsICdkb3VibGVDbGljaycsICdkcmFnJywgJ2RyYWdFbmQnLCAnZHJhZ0VudGVyJywgJ2RyYWdFeGl0JywgJ2RyYWdMZWF2ZScsICdkcmFnT3ZlcicsICdkcmFnU3RhcnQnLCAnZHJvcCcsICdkdXJhdGlvbkNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdmb2N1cycsICdpbnB1dCcsICdpbnZhbGlkJywgJ2tleURvd24nLCAna2V5UHJlc3MnLCAna2V5VXAnLCAnbG9hZCcsICdsb2FkZWREYXRhJywgJ2xvYWRlZE1ldGFkYXRhJywgJ2xvYWRTdGFydCcsICdtb3VzZURvd24nLCAnbW91c2VNb3ZlJywgJ21vdXNlT3V0JywgJ21vdXNlT3ZlcicsICdtb3VzZVVwJywgJ3Bhc3RlJywgJ3BhdXNlJywgJ3BsYXknLCAncGxheWluZycsICdwcm9ncmVzcycsICdyYXRlQ2hhbmdlJywgJ3Jlc2V0JywgJ3Njcm9sbCcsICdzZWVrZWQnLCAnc2Vla2luZycsICdzdGFsbGVkJywgJ3N1Ym1pdCcsICdzdXNwZW5kJywgJ3RpbWVVcGRhdGUnLCAndG91Y2hDYW5jZWwnLCAndG91Y2hFbmQnLCAndG91Y2hNb3ZlJywgJ3RvdWNoU3RhcnQnLCAndHJhbnNpdGlvbkVuZCcsICd2b2x1bWVDaGFuZ2UnLCAnd2FpdGluZycsICd3aGVlbCddLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gIHZhciBjYXBpdGFsaXplZEV2ZW50ID0gZXZlbnRbMF0udG9VcHBlckNhc2UoKSArIGV2ZW50LnNsaWNlKDEpO1xuICB2YXIgb25FdmVudCA9ICdvbicgKyBjYXBpdGFsaXplZEV2ZW50O1xuICB2YXIgdG9wRXZlbnQgPSAndG9wJyArIGNhcGl0YWxpemVkRXZlbnQ7XG5cbiAgdmFyIHR5cGUgPSB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IG9uRXZlbnQsXG4gICAgICBjYXB0dXJlZDogb25FdmVudCArICdDYXB0dXJlJ1xuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBbdG9wRXZlbnRdXG4gIH07XG4gIGV2ZW50VHlwZXNbZXZlbnRdID0gdHlwZTtcbiAgdG9wTGV2ZWxFdmVudHNUb0Rpc3BhdGNoQ29uZmlnW3RvcEV2ZW50XSA9IHR5cGU7XG59KTtcblxudmFyIG9uQ2xpY2tMaXN0ZW5lcnMgPSB7fTtcblxuZnVuY3Rpb24gZ2V0RGljdGlvbmFyeUtleShpbnN0KSB7XG4gIC8vIFByZXZlbnRzIFY4IHBlcmZvcm1hbmNlIGlzc3VlOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MjMyXG4gIHJldHVybiAnLicgKyBpbnN0Ll9yb290Tm9kZUlEO1xufVxuXG5mdW5jdGlvbiBpc0ludGVyYWN0aXZlKHRhZykge1xuICByZXR1cm4gdGFnID09PSAnYnV0dG9uJyB8fCB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JyB8fCB0YWcgPT09ICd0ZXh0YXJlYSc7XG59XG5cbnZhciBTaW1wbGVFdmVudFBsdWdpbiA9IHtcbiAgZXZlbnRUeXBlczogZXZlbnRUeXBlcyxcblxuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgZGlzcGF0Y2hDb25maWcgPSB0b3BMZXZlbEV2ZW50c1RvRGlzcGF0Y2hDb25maWdbdG9wTGV2ZWxUeXBlXTtcbiAgICBpZiAoIWRpc3BhdGNoQ29uZmlnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIEV2ZW50Q29uc3RydWN0b3I7XG4gICAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICAgIGNhc2UgJ3RvcEFib3J0JzpcbiAgICAgIGNhc2UgJ3RvcENhblBsYXknOlxuICAgICAgY2FzZSAndG9wQ2FuUGxheVRocm91Z2gnOlxuICAgICAgY2FzZSAndG9wRHVyYXRpb25DaGFuZ2UnOlxuICAgICAgY2FzZSAndG9wRW1wdGllZCc6XG4gICAgICBjYXNlICd0b3BFbmNyeXB0ZWQnOlxuICAgICAgY2FzZSAndG9wRW5kZWQnOlxuICAgICAgY2FzZSAndG9wRXJyb3InOlxuICAgICAgY2FzZSAndG9wSW5wdXQnOlxuICAgICAgY2FzZSAndG9wSW52YWxpZCc6XG4gICAgICBjYXNlICd0b3BMb2FkJzpcbiAgICAgIGNhc2UgJ3RvcExvYWRlZERhdGEnOlxuICAgICAgY2FzZSAndG9wTG9hZGVkTWV0YWRhdGEnOlxuICAgICAgY2FzZSAndG9wTG9hZFN0YXJ0JzpcbiAgICAgIGNhc2UgJ3RvcFBhdXNlJzpcbiAgICAgIGNhc2UgJ3RvcFBsYXknOlxuICAgICAgY2FzZSAndG9wUGxheWluZyc6XG4gICAgICBjYXNlICd0b3BQcm9ncmVzcyc6XG4gICAgICBjYXNlICd0b3BSYXRlQ2hhbmdlJzpcbiAgICAgIGNhc2UgJ3RvcFJlc2V0JzpcbiAgICAgIGNhc2UgJ3RvcFNlZWtlZCc6XG4gICAgICBjYXNlICd0b3BTZWVraW5nJzpcbiAgICAgIGNhc2UgJ3RvcFN0YWxsZWQnOlxuICAgICAgY2FzZSAndG9wU3VibWl0JzpcbiAgICAgIGNhc2UgJ3RvcFN1c3BlbmQnOlxuICAgICAgY2FzZSAndG9wVGltZVVwZGF0ZSc6XG4gICAgICBjYXNlICd0b3BWb2x1bWVDaGFuZ2UnOlxuICAgICAgY2FzZSAndG9wV2FpdGluZyc6XG4gICAgICAgIC8vIEhUTUwgRXZlbnRzXG4gICAgICAgIC8vIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvaW5kZXguaHRtbCNldmVudHMtMFxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wS2V5UHJlc3MnOlxuICAgICAgICAvLyBGaXJlZm94IGNyZWF0ZXMgYSBrZXlwcmVzcyBldmVudCBmb3IgZnVuY3Rpb24ga2V5cyB0b28uIFRoaXMgcmVtb3Zlc1xuICAgICAgICAvLyB0aGUgdW53YW50ZWQga2V5cHJlc3MgZXZlbnRzLiBFbnRlciBpcyBob3dldmVyIGJvdGggcHJpbnRhYmxlIGFuZFxuICAgICAgICAvLyBub24tcHJpbnRhYmxlLiBPbmUgd291bGQgZXhwZWN0IFRhYiB0byBiZSBhcyB3ZWxsIChidXQgaXQgaXNuJ3QpLlxuICAgICAgICBpZiAoZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCkgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgY2FzZSAndG9wS2V5RG93bic6XG4gICAgICBjYXNlICd0b3BLZXlVcCc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcEJsdXInOlxuICAgICAgY2FzZSAndG9wRm9jdXMnOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljRm9jdXNFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BDbGljayc6XG4gICAgICAgIC8vIEZpcmVmb3ggY3JlYXRlcyBhIGNsaWNrIGV2ZW50IG9uIHJpZ2h0IG1vdXNlIGNsaWNrcy4gVGhpcyByZW1vdmVzIHRoZVxuICAgICAgICAvLyB1bndhbnRlZCBjbGljayBldmVudHMuXG4gICAgICAgIGlmIChuYXRpdmVFdmVudC5idXR0b24gPT09IDIpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgY2FzZSAndG9wRG91YmxlQ2xpY2snOlxuICAgICAgY2FzZSAndG9wTW91c2VEb3duJzpcbiAgICAgIGNhc2UgJ3RvcE1vdXNlTW92ZSc6XG4gICAgICBjYXNlICd0b3BNb3VzZVVwJzpcbiAgICAgIC8vIFRPRE86IERpc2FibGVkIGVsZW1lbnRzIHNob3VsZCBub3QgcmVzcG9uZCB0byBtb3VzZSBldmVudHNcbiAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgIGNhc2UgJ3RvcE1vdXNlT3V0JzpcbiAgICAgIGNhc2UgJ3RvcE1vdXNlT3Zlcic6XG4gICAgICBjYXNlICd0b3BDb250ZXh0TWVudSc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNNb3VzZUV2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcERyYWcnOlxuICAgICAgY2FzZSAndG9wRHJhZ0VuZCc6XG4gICAgICBjYXNlICd0b3BEcmFnRW50ZXInOlxuICAgICAgY2FzZSAndG9wRHJhZ0V4aXQnOlxuICAgICAgY2FzZSAndG9wRHJhZ0xlYXZlJzpcbiAgICAgIGNhc2UgJ3RvcERyYWdPdmVyJzpcbiAgICAgIGNhc2UgJ3RvcERyYWdTdGFydCc6XG4gICAgICBjYXNlICd0b3BEcm9wJzpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY0RyYWdFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BUb3VjaENhbmNlbCc6XG4gICAgICBjYXNlICd0b3BUb3VjaEVuZCc6XG4gICAgICBjYXNlICd0b3BUb3VjaE1vdmUnOlxuICAgICAgY2FzZSAndG9wVG91Y2hTdGFydCc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNUb3VjaEV2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcEFuaW1hdGlvbkVuZCc6XG4gICAgICBjYXNlICd0b3BBbmltYXRpb25JdGVyYXRpb24nOlxuICAgICAgY2FzZSAndG9wQW5pbWF0aW9uU3RhcnQnOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljQW5pbWF0aW9uRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wVHJhbnNpdGlvbkVuZCc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNUcmFuc2l0aW9uRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wU2Nyb2xsJzpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wV2hlZWwnOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljV2hlZWxFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BDb3B5JzpcbiAgICAgIGNhc2UgJ3RvcEN1dCc6XG4gICAgICBjYXNlICd0b3BQYXN0ZSc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNDbGlwYm9hcmRFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgICFFdmVudENvbnN0cnVjdG9yID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1NpbXBsZUV2ZW50UGx1Z2luOiBVbmhhbmRsZWQgZXZlbnQgdHlwZSwgYCVzYC4nLCB0b3BMZXZlbFR5cGUpIDogX3Byb2RJbnZhcmlhbnQoJzg2JywgdG9wTGV2ZWxUeXBlKSA6IHZvaWQgMDtcbiAgICB2YXIgZXZlbnQgPSBFdmVudENvbnN0cnVjdG9yLmdldFBvb2xlZChkaXNwYXRjaENvbmZpZywgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBFdmVudFByb3BhZ2F0b3JzLmFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoZXZlbnQpO1xuICAgIHJldHVybiBldmVudDtcbiAgfSxcblxuICBkaWRQdXRMaXN0ZW5lcjogZnVuY3Rpb24gKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyKSB7XG4gICAgLy8gTW9iaWxlIFNhZmFyaSBkb2VzIG5vdCBmaXJlIHByb3Blcmx5IGJ1YmJsZSBjbGljayBldmVudHMgb25cbiAgICAvLyBub24taW50ZXJhY3RpdmUgZWxlbWVudHMsIHdoaWNoIG1lYW5zIGRlbGVnYXRlZCBjbGljayBsaXN0ZW5lcnMgZG8gbm90XG4gICAgLy8gZmlyZS4gVGhlIHdvcmthcm91bmQgZm9yIHRoaXMgYnVnIGludm9sdmVzIGF0dGFjaGluZyBhbiBlbXB0eSBjbGlja1xuICAgIC8vIGxpc3RlbmVyIG9uIHRoZSB0YXJnZXQgbm9kZS5cbiAgICAvLyBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxMC8wOS9jbGlja19ldmVudF9kZWwuaHRtbFxuICAgIGlmIChyZWdpc3RyYXRpb25OYW1lID09PSAnb25DbGljaycgJiYgIWlzSW50ZXJhY3RpdmUoaW5zdC5fdGFnKSkge1xuICAgICAgdmFyIGtleSA9IGdldERpY3Rpb25hcnlLZXkoaW5zdCk7XG4gICAgICB2YXIgbm9kZSA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKGluc3QpO1xuICAgICAgaWYgKCFvbkNsaWNrTGlzdGVuZXJzW2tleV0pIHtcbiAgICAgICAgb25DbGlja0xpc3RlbmVyc1trZXldID0gRXZlbnRMaXN0ZW5lci5saXN0ZW4obm9kZSwgJ2NsaWNrJywgZW1wdHlGdW5jdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHdpbGxEZWxldGVMaXN0ZW5lcjogZnVuY3Rpb24gKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSA9PT0gJ29uQ2xpY2snICYmICFpc0ludGVyYWN0aXZlKGluc3QuX3RhZykpIHtcbiAgICAgIHZhciBrZXkgPSBnZXREaWN0aW9uYXJ5S2V5KGluc3QpO1xuICAgICAgb25DbGlja0xpc3RlbmVyc1trZXldLnJlbW92ZSgpO1xuICAgICAgZGVsZXRlIG9uQ2xpY2tMaXN0ZW5lcnNba2V5XTtcbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gU2ltcGxlRXZlbnRQbHVnaW47XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9TaW1wbGVFdmVudFBsdWdpbi5qc1xuLy8gbW9kdWxlIGlkID0gMjE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///214\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ 3);\n\nvar EventListener = __webpack_require__(/*! fbjs/lib/EventListener */ 101);\nvar EventPropagators = __webpack_require__(/*! ./EventPropagators */ 27);\nvar ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ 4);\nvar SyntheticAnimationEvent = __webpack_require__(/*! ./SyntheticAnimationEvent */ 215);\nvar SyntheticClipboardEvent = __webpack_require__(/*! ./SyntheticClipboardEvent */ 216);\nvar SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ 14);\nvar SyntheticFocusEvent = __webpack_require__(/*! ./SyntheticFocusEvent */ 217);\nvar SyntheticKeyboardEvent = __webpack_require__(/*! ./SyntheticKeyboardEvent */ 218);\nvar SyntheticMouseEvent = __webpack_require__(/*! ./SyntheticMouseEvent */ 38);\nvar SyntheticDragEvent = __webpack_require__(/*! ./SyntheticDragEvent */ 220);\nvar SyntheticTouchEvent = __webpack_require__(/*! ./SyntheticTouchEvent */ 221);\nvar SyntheticTransitionEvent = __webpack_require__(/*! ./SyntheticTransitionEvent */ 222);\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\nvar SyntheticWheelEvent = __webpack_require__(/*! ./SyntheticWheelEvent */ 223);\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ 10);\nvar getEventCharCode = __webpack_require__(/*! ./getEventCharCode */ 62);\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ 1);\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case 'topKeyPress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case 'topClick':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n};\n\nmodule.exports = SimpleEventPlugin;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU2ltcGxlRXZlbnRQbHVnaW4uanM/MzVjZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfcHJvZEludmFyaWFudCA9IHJlcXVpcmUoJy4vcmVhY3RQcm9kSW52YXJpYW50Jyk7XG5cbnZhciBFdmVudExpc3RlbmVyID0gcmVxdWlyZSgnZmJqcy9saWIvRXZlbnRMaXN0ZW5lcicpO1xudmFyIEV2ZW50UHJvcGFnYXRvcnMgPSByZXF1aXJlKCcuL0V2ZW50UHJvcGFnYXRvcnMnKTtcbnZhciBSZWFjdERPTUNvbXBvbmVudFRyZWUgPSByZXF1aXJlKCcuL1JlYWN0RE9NQ29tcG9uZW50VHJlZScpO1xudmFyIFN5bnRoZXRpY0FuaW1hdGlvbkV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNBbmltYXRpb25FdmVudCcpO1xudmFyIFN5bnRoZXRpY0NsaXBib2FyZEV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNDbGlwYm9hcmRFdmVudCcpO1xudmFyIFN5bnRoZXRpY0V2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNFdmVudCcpO1xudmFyIFN5bnRoZXRpY0ZvY3VzRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY0ZvY3VzRXZlbnQnKTtcbnZhciBTeW50aGV0aWNLZXlib2FyZEV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNLZXlib2FyZEV2ZW50Jyk7XG52YXIgU3ludGhldGljTW91c2VFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljTW91c2VFdmVudCcpO1xudmFyIFN5bnRoZXRpY0RyYWdFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljRHJhZ0V2ZW50Jyk7XG52YXIgU3ludGhldGljVG91Y2hFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljVG91Y2hFdmVudCcpO1xudmFyIFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljVHJhbnNpdGlvbkV2ZW50Jyk7XG52YXIgU3ludGhldGljVUlFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljVUlFdmVudCcpO1xudmFyIFN5bnRoZXRpY1doZWVsRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY1doZWVsRXZlbnQnKTtcblxudmFyIGVtcHR5RnVuY3Rpb24gPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eUZ1bmN0aW9uJyk7XG52YXIgZ2V0RXZlbnRDaGFyQ29kZSA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRDaGFyQ29kZScpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIFR1cm5zXG4gKiBbJ2Fib3J0JywgLi4uXVxuICogaW50b1xuICogZXZlbnRUeXBlcyA9IHtcbiAqICAgJ2Fib3J0Jzoge1xuICogICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gKiAgICAgICBidWJibGVkOiAnb25BYm9ydCcsXG4gKiAgICAgICBjYXB0dXJlZDogJ29uQWJvcnRDYXB0dXJlJyxcbiAqICAgICB9LFxuICogICAgIGRlcGVuZGVuY2llczogWyd0b3BBYm9ydCddLFxuICogICB9LFxuICogICAuLi5cbiAqIH07XG4gKiB0b3BMZXZlbEV2ZW50c1RvRGlzcGF0Y2hDb25maWcgPSB7XG4gKiAgICd0b3BBYm9ydCc6IHsgc2FtZUNvbmZpZyB9XG4gKiB9O1xuICovXG52YXIgZXZlbnRUeXBlcyA9IHt9O1xudmFyIHRvcExldmVsRXZlbnRzVG9EaXNwYXRjaENvbmZpZyA9IHt9O1xuWydhYm9ydCcsICdhbmltYXRpb25FbmQnLCAnYW5pbWF0aW9uSXRlcmF0aW9uJywgJ2FuaW1hdGlvblN0YXJ0JywgJ2JsdXInLCAnY2FuUGxheScsICdjYW5QbGF5VGhyb3VnaCcsICdjbGljaycsICdjb250ZXh0TWVudScsICdjb3B5JywgJ2N1dCcsICdkb3VibGVDbGljaycsICdkcmFnJywgJ2RyYWdFbmQnLCAnZHJhZ0VudGVyJywgJ2RyYWdFeGl0JywgJ2RyYWdMZWF2ZScsICdkcmFnT3ZlcicsICdkcmFnU3RhcnQnLCAnZHJvcCcsICdkdXJhdGlvbkNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdmb2N1cycsICdpbnB1dCcsICdpbnZhbGlkJywgJ2tleURvd24nLCAna2V5UHJlc3MnLCAna2V5VXAnLCAnbG9hZCcsICdsb2FkZWREYXRhJywgJ2xvYWRlZE1ldGFkYXRhJywgJ2xvYWRTdGFydCcsICdtb3VzZURvd24nLCAnbW91c2VNb3ZlJywgJ21vdXNlT3V0JywgJ21vdXNlT3ZlcicsICdtb3VzZVVwJywgJ3Bhc3RlJywgJ3BhdXNlJywgJ3BsYXknLCAncGxheWluZycsICdwcm9ncmVzcycsICdyYXRlQ2hhbmdlJywgJ3Jlc2V0JywgJ3Njcm9sbCcsICdzZWVrZWQnLCAnc2Vla2luZycsICdzdGFsbGVkJywgJ3N1Ym1pdCcsICdzdXNwZW5kJywgJ3RpbWVVcGRhdGUnLCAndG91Y2hDYW5jZWwnLCAndG91Y2hFbmQnLCAndG91Y2hNb3ZlJywgJ3RvdWNoU3RhcnQnLCAndHJhbnNpdGlvbkVuZCcsICd2b2x1bWVDaGFuZ2UnLCAnd2FpdGluZycsICd3aGVlbCddLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gIHZhciBjYXBpdGFsaXplZEV2ZW50ID0gZXZlbnRbMF0udG9VcHBlckNhc2UoKSArIGV2ZW50LnNsaWNlKDEpO1xuICB2YXIgb25FdmVudCA9ICdvbicgKyBjYXBpdGFsaXplZEV2ZW50O1xuICB2YXIgdG9wRXZlbnQgPSAndG9wJyArIGNhcGl0YWxpemVkRXZlbnQ7XG5cbiAgdmFyIHR5cGUgPSB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IG9uRXZlbnQsXG4gICAgICBjYXB0dXJlZDogb25FdmVudCArICdDYXB0dXJlJ1xuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBbdG9wRXZlbnRdXG4gIH07XG4gIGV2ZW50VHlwZXNbZXZlbnRdID0gdHlwZTtcbiAgdG9wTGV2ZWxFdmVudHNUb0Rpc3BhdGNoQ29uZmlnW3RvcEV2ZW50XSA9IHR5cGU7XG59KTtcblxudmFyIG9uQ2xpY2tMaXN0ZW5lcnMgPSB7fTtcblxuZnVuY3Rpb24gZ2V0RGljdGlvbmFyeUtleShpbnN0KSB7XG4gIC8vIFByZXZlbnRzIFY4IHBlcmZvcm1hbmNlIGlzc3VlOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC83MjMyXG4gIHJldHVybiAnLicgKyBpbnN0Ll9yb290Tm9kZUlEO1xufVxuXG5mdW5jdGlvbiBpc0ludGVyYWN0aXZlKHRhZykge1xuICByZXR1cm4gdGFnID09PSAnYnV0dG9uJyB8fCB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JyB8fCB0YWcgPT09ICd0ZXh0YXJlYSc7XG59XG5cbnZhciBTaW1wbGVFdmVudFBsdWdpbiA9IHtcbiAgZXZlbnRUeXBlczogZXZlbnRUeXBlcyxcblxuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgZGlzcGF0Y2hDb25maWcgPSB0b3BMZXZlbEV2ZW50c1RvRGlzcGF0Y2hDb25maWdbdG9wTGV2ZWxUeXBlXTtcbiAgICBpZiAoIWRpc3BhdGNoQ29uZmlnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIEV2ZW50Q29uc3RydWN0b3I7XG4gICAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICAgIGNhc2UgJ3RvcEFib3J0JzpcbiAgICAgIGNhc2UgJ3RvcENhblBsYXknOlxuICAgICAgY2FzZSAndG9wQ2FuUGxheVRocm91Z2gnOlxuICAgICAgY2FzZSAndG9wRHVyYXRpb25DaGFuZ2UnOlxuICAgICAgY2FzZSAndG9wRW1wdGllZCc6XG4gICAgICBjYXNlICd0b3BFbmNyeXB0ZWQnOlxuICAgICAgY2FzZSAndG9wRW5kZWQnOlxuICAgICAgY2FzZSAndG9wRXJyb3InOlxuICAgICAgY2FzZSAndG9wSW5wdXQnOlxuICAgICAgY2FzZSAndG9wSW52YWxpZCc6XG4gICAgICBjYXNlICd0b3BMb2FkJzpcbiAgICAgIGNhc2UgJ3RvcExvYWRlZERhdGEnOlxuICAgICAgY2FzZSAndG9wTG9hZGVkTWV0YWRhdGEnOlxuICAgICAgY2FzZSAndG9wTG9hZFN0YXJ0JzpcbiAgICAgIGNhc2UgJ3RvcFBhdXNlJzpcbiAgICAgIGNhc2UgJ3RvcFBsYXknOlxuICAgICAgY2FzZSAndG9wUGxheWluZyc6XG4gICAgICBjYXNlICd0b3BQcm9ncmVzcyc6XG4gICAgICBjYXNlICd0b3BSYXRlQ2hhbmdlJzpcbiAgICAgIGNhc2UgJ3RvcFJlc2V0JzpcbiAgICAgIGNhc2UgJ3RvcFNlZWtlZCc6XG4gICAgICBjYXNlICd0b3BTZWVraW5nJzpcbiAgICAgIGNhc2UgJ3RvcFN0YWxsZWQnOlxuICAgICAgY2FzZSAndG9wU3VibWl0JzpcbiAgICAgIGNhc2UgJ3RvcFN1c3BlbmQnOlxuICAgICAgY2FzZSAndG9wVGltZVVwZGF0ZSc6XG4gICAgICBjYXNlICd0b3BWb2x1bWVDaGFuZ2UnOlxuICAgICAgY2FzZSAndG9wV2FpdGluZyc6XG4gICAgICAgIC8vIEhUTUwgRXZlbnRzXG4gICAgICAgIC8vIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvaW5kZXguaHRtbCNldmVudHMtMFxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wS2V5UHJlc3MnOlxuICAgICAgICAvLyBGaXJlZm94IGNyZWF0ZXMgYSBrZXlwcmVzcyBldmVudCBmb3IgZnVuY3Rpb24ga2V5cyB0b28uIFRoaXMgcmVtb3Zlc1xuICAgICAgICAvLyB0aGUgdW53YW50ZWQga2V5cHJlc3MgZXZlbnRzLiBFbnRlciBpcyBob3dldmVyIGJvdGggcHJpbnRhYmxlIGFuZFxuICAgICAgICAvLyBub24tcHJpbnRhYmxlLiBPbmUgd291bGQgZXhwZWN0IFRhYiB0byBiZSBhcyB3ZWxsIChidXQgaXQgaXNuJ3QpLlxuICAgICAgICBpZiAoZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCkgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgY2FzZSAndG9wS2V5RG93bic6XG4gICAgICBjYXNlICd0b3BLZXlVcCc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcEJsdXInOlxuICAgICAgY2FzZSAndG9wRm9jdXMnOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljRm9jdXNFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BDbGljayc6XG4gICAgICAgIC8vIEZpcmVmb3ggY3JlYXRlcyBhIGNsaWNrIGV2ZW50IG9uIHJpZ2h0IG1vdXNlIGNsaWNrcy4gVGhpcyByZW1vdmVzIHRoZVxuICAgICAgICAvLyB1bndhbnRlZCBjbGljayBldmVudHMuXG4gICAgICAgIGlmIChuYXRpdmVFdmVudC5idXR0b24gPT09IDIpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgY2FzZSAndG9wRG91YmxlQ2xpY2snOlxuICAgICAgY2FzZSAndG9wTW91c2VEb3duJzpcbiAgICAgIGNhc2UgJ3RvcE1vdXNlTW92ZSc6XG4gICAgICBjYXNlICd0b3BNb3VzZVVwJzpcbiAgICAgIC8vIFRPRE86IERpc2FibGVkIGVsZW1lbnRzIHNob3VsZCBub3QgcmVzcG9uZCB0byBtb3VzZSBldmVudHNcbiAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgIGNhc2UgJ3RvcE1vdXNlT3V0JzpcbiAgICAgIGNhc2UgJ3RvcE1vdXNlT3Zlcic6XG4gICAgICBjYXNlICd0b3BDb250ZXh0TWVudSc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNNb3VzZUV2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcERyYWcnOlxuICAgICAgY2FzZSAndG9wRHJhZ0VuZCc6XG4gICAgICBjYXNlICd0b3BEcmFnRW50ZXInOlxuICAgICAgY2FzZSAndG9wRHJhZ0V4aXQnOlxuICAgICAgY2FzZSAndG9wRHJhZ0xlYXZlJzpcbiAgICAgIGNhc2UgJ3RvcERyYWdPdmVyJzpcbiAgICAgIGNhc2UgJ3RvcERyYWdTdGFydCc6XG4gICAgICBjYXNlICd0b3BEcm9wJzpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY0RyYWdFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BUb3VjaENhbmNlbCc6XG4gICAgICBjYXNlICd0b3BUb3VjaEVuZCc6XG4gICAgICBjYXNlICd0b3BUb3VjaE1vdmUnOlxuICAgICAgY2FzZSAndG9wVG91Y2hTdGFydCc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNUb3VjaEV2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcEFuaW1hdGlvbkVuZCc6XG4gICAgICBjYXNlICd0b3BBbmltYXRpb25JdGVyYXRpb24nOlxuICAgICAgY2FzZSAndG9wQW5pbWF0aW9uU3RhcnQnOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljQW5pbWF0aW9uRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wVHJhbnNpdGlvbkVuZCc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNUcmFuc2l0aW9uRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wU2Nyb2xsJzpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wV2hlZWwnOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljV2hlZWxFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3BDb3B5JzpcbiAgICAgIGNhc2UgJ3RvcEN1dCc6XG4gICAgICBjYXNlICd0b3BQYXN0ZSc6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNDbGlwYm9hcmRFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgICFFdmVudENvbnN0cnVjdG9yID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1NpbXBsZUV2ZW50UGx1Z2luOiBVbmhhbmRsZWQgZXZlbnQgdHlwZSwgYCVzYC4nLCB0b3BMZXZlbFR5cGUpIDogX3Byb2RJbnZhcmlhbnQoJzg2JywgdG9wTGV2ZWxUeXBlKSA6IHZvaWQgMDtcbiAgICB2YXIgZXZlbnQgPSBFdmVudENvbnN0cnVjdG9yLmdldFBvb2xlZChkaXNwYXRjaENvbmZpZywgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBFdmVudFByb3BhZ2F0b3JzLmFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoZXZlbnQpO1xuICAgIHJldHVybiBldmVudDtcbiAgfSxcblxuICBkaWRQdXRMaXN0ZW5lcjogZnVuY3Rpb24gKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyKSB7XG4gICAgLy8gTW9iaWxlIFNhZmFyaSBkb2VzIG5vdCBmaXJlIHByb3Blcmx5IGJ1YmJsZSBjbGljayBldmVudHMgb25cbiAgICAvLyBub24taW50ZXJhY3RpdmUgZWxlbWVudHMsIHdoaWNoIG1lYW5zIGRlbGVnYXRlZCBjbGljayBsaXN0ZW5lcnMgZG8gbm90XG4gICAgLy8gZmlyZS4gVGhlIHdvcmthcm91bmQgZm9yIHRoaXMgYnVnIGludm9sdmVzIGF0dGFjaGluZyBhbiBlbXB0eSBjbGlja1xuICAgIC8vIGxpc3RlbmVyIG9uIHRoZSB0YXJnZXQgbm9kZS5cbiAgICAvLyBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxMC8wOS9jbGlja19ldmVudF9kZWwuaHRtbFxuICAgIGlmIChyZWdpc3RyYXRpb25OYW1lID09PSAnb25DbGljaycgJiYgIWlzSW50ZXJhY3RpdmUoaW5zdC5fdGFnKSkge1xuICAgICAgdmFyIGtleSA9IGdldERpY3Rpb25hcnlLZXkoaW5zdCk7XG4gICAgICB2YXIgbm9kZSA9IFJlYWN0RE9NQ29tcG9uZW50VHJlZS5nZXROb2RlRnJvbUluc3RhbmNlKGluc3QpO1xuICAgICAgaWYgKCFvbkNsaWNrTGlzdGVuZXJzW2tleV0pIHtcbiAgICAgICAgb25DbGlja0xpc3RlbmVyc1trZXldID0gRXZlbnRMaXN0ZW5lci5saXN0ZW4obm9kZSwgJ2NsaWNrJywgZW1wdHlGdW5jdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHdpbGxEZWxldGVMaXN0ZW5lcjogZnVuY3Rpb24gKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSA9PT0gJ29uQ2xpY2snICYmICFpc0ludGVyYWN0aXZlKGluc3QuX3RhZykpIHtcbiAgICAgIHZhciBrZXkgPSBnZXREaWN0aW9uYXJ5S2V5KGluc3QpO1xuICAgICAgb25DbGlja0xpc3RlbmVyc1trZXldLnJlbW92ZSgpO1xuICAgICAgZGVsZXRlIG9uQ2xpY2tMaXN0ZW5lcnNba2V5XTtcbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gU2ltcGxlRXZlbnRQbHVnaW47XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2xpYi9TaW1wbGVFdmVudFBsdWdpbi5qc1xuLy8gbW9kdWxlIGlkID0gMjE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///214\n"); /***/ }), /* 215 */ @@ -2683,7 +2683,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\n\nvar getEventCharCode = __webpack_require__(/*! ./getEventCharCode */ 61);\nvar getEventKey = __webpack_require__(/*! ./getEventKey */ 219);\nvar getEventModifierState = __webpack_require__(/*! ./getEventModifierState */ 50);\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljS2V5Ym9hcmRFdmVudC5qcz9jZDBkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNVSUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNVSUV2ZW50Jyk7XG5cbnZhciBnZXRFdmVudENoYXJDb2RlID0gcmVxdWlyZSgnLi9nZXRFdmVudENoYXJDb2RlJyk7XG52YXIgZ2V0RXZlbnRLZXkgPSByZXF1aXJlKCcuL2dldEV2ZW50S2V5Jyk7XG52YXIgZ2V0RXZlbnRNb2RpZmllclN0YXRlID0gcmVxdWlyZSgnLi9nZXRFdmVudE1vZGlmaWVyU3RhdGUnKTtcblxuLyoqXG4gKiBAaW50ZXJmYWNlIEtleWJvYXJkRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzL1xuICovXG52YXIgS2V5Ym9hcmRFdmVudEludGVyZmFjZSA9IHtcbiAga2V5OiBnZXRFdmVudEtleSxcbiAgbG9jYXRpb246IG51bGwsXG4gIGN0cmxLZXk6IG51bGwsXG4gIHNoaWZ0S2V5OiBudWxsLFxuICBhbHRLZXk6IG51bGwsXG4gIG1ldGFLZXk6IG51bGwsXG4gIHJlcGVhdDogbnVsbCxcbiAgbG9jYWxlOiBudWxsLFxuICBnZXRNb2RpZmllclN0YXRlOiBnZXRFdmVudE1vZGlmaWVyU3RhdGUsXG4gIC8vIExlZ2FjeSBJbnRlcmZhY2VcbiAgY2hhckNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGBjaGFyQ29kZWAgaXMgdGhlIHJlc3VsdCBvZiBhIEtleVByZXNzIGV2ZW50IGFuZCByZXByZXNlbnRzIHRoZSB2YWx1ZSBvZlxuICAgIC8vIHRoZSBhY3R1YWwgcHJpbnRhYmxlIGNoYXJhY3Rlci5cblxuICAgIC8vIEtleVByZXNzIGlzIGRlcHJlY2F0ZWQsIGJ1dCBpdHMgcmVwbGFjZW1lbnQgaXMgbm90IHlldCBmaW5hbCBhbmQgbm90XG4gICAgLy8gaW1wbGVtZW50ZWQgaW4gYW55IG1ham9yIGJyb3dzZXIuIE9ubHkgS2V5UHJlc3MgaGFzIGNoYXJDb2RlLlxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnRDaGFyQ29kZShldmVudCk7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9LFxuICBrZXlDb2RlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyBga2V5Q29kZWAgaXMgdGhlIHJlc3VsdCBvZiBhIEtleURvd24vVXAgZXZlbnQgYW5kIHJlcHJlc2VudHMgdGhlIHZhbHVlIG9mXG4gICAgLy8gcGh5c2ljYWwga2V5Ym9hcmQga2V5LlxuXG4gICAgLy8gVGhlIGFjdHVhbCBtZWFuaW5nIG9mIHRoZSB2YWx1ZSBkZXBlbmRzIG9uIHRoZSB1c2Vycycga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gd2hpY2ggY2Fubm90IGJlIGRldGVjdGVkLiBBc3N1bWluZyB0aGF0IGl0IGlzIGEgVVMga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gcHJvdmlkZXMgYSBzdXJwcmlzaW5nbHkgYWNjdXJhdGUgbWFwcGluZyBmb3IgVVMgYW5kIEV1cm9wZWFuIHVzZXJzLlxuICAgIC8vIER1ZSB0byB0aGlzLCBpdCBpcyBsZWZ0IHRvIHRoZSB1c2VyIHRvIGltcGxlbWVudCBhdCB0aGlzIHRpbWUuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBldmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICByZXR1cm4gZXZlbnQua2V5Q29kZTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH0sXG4gIHdoaWNoOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyBgd2hpY2hgIGlzIGFuIGFsaWFzIGZvciBlaXRoZXIgYGtleUNvZGVgIG9yIGBjaGFyQ29kZWAgZGVwZW5kaW5nIG9uIHRoZVxuICAgIC8vIHR5cGUgb2YgdGhlIGV2ZW50LlxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnRDaGFyQ29kZShldmVudCk7XG4gICAgfVxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5ZG93bicgfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJykge1xuICAgICAgcmV0dXJuIGV2ZW50LmtleUNvZGU7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBkaXNwYXRjaENvbmZpZyBDb25maWd1cmF0aW9uIHVzZWQgdG8gZGlzcGF0Y2ggdGhpcyBldmVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXNwYXRjaE1hcmtlciBNYXJrZXIgaWRlbnRpZnlpbmcgdGhlIGV2ZW50IHRhcmdldC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEBleHRlbmRzIHtTeW50aGV0aWNVSUV2ZW50fVxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNLZXlib2FyZEV2ZW50KGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHJldHVybiBTeW50aGV0aWNVSUV2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNVSUV2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNLZXlib2FyZEV2ZW50LCBLZXlib2FyZEV2ZW50SW50ZXJmYWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljS2V5Ym9hcmRFdmVudC5qc1xuLy8gbW9kdWxlIGlkID0gMjE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///218\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\n\nvar getEventCharCode = __webpack_require__(/*! ./getEventCharCode */ 62);\nvar getEventKey = __webpack_require__(/*! ./getEventKey */ 219);\nvar getEventModifierState = __webpack_require__(/*! ./getEventModifierState */ 51);\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljS2V5Ym9hcmRFdmVudC5qcz9jZDBkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNVSUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNVSUV2ZW50Jyk7XG5cbnZhciBnZXRFdmVudENoYXJDb2RlID0gcmVxdWlyZSgnLi9nZXRFdmVudENoYXJDb2RlJyk7XG52YXIgZ2V0RXZlbnRLZXkgPSByZXF1aXJlKCcuL2dldEV2ZW50S2V5Jyk7XG52YXIgZ2V0RXZlbnRNb2RpZmllclN0YXRlID0gcmVxdWlyZSgnLi9nZXRFdmVudE1vZGlmaWVyU3RhdGUnKTtcblxuLyoqXG4gKiBAaW50ZXJmYWNlIEtleWJvYXJkRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzL1xuICovXG52YXIgS2V5Ym9hcmRFdmVudEludGVyZmFjZSA9IHtcbiAga2V5OiBnZXRFdmVudEtleSxcbiAgbG9jYXRpb246IG51bGwsXG4gIGN0cmxLZXk6IG51bGwsXG4gIHNoaWZ0S2V5OiBudWxsLFxuICBhbHRLZXk6IG51bGwsXG4gIG1ldGFLZXk6IG51bGwsXG4gIHJlcGVhdDogbnVsbCxcbiAgbG9jYWxlOiBudWxsLFxuICBnZXRNb2RpZmllclN0YXRlOiBnZXRFdmVudE1vZGlmaWVyU3RhdGUsXG4gIC8vIExlZ2FjeSBJbnRlcmZhY2VcbiAgY2hhckNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGBjaGFyQ29kZWAgaXMgdGhlIHJlc3VsdCBvZiBhIEtleVByZXNzIGV2ZW50IGFuZCByZXByZXNlbnRzIHRoZSB2YWx1ZSBvZlxuICAgIC8vIHRoZSBhY3R1YWwgcHJpbnRhYmxlIGNoYXJhY3Rlci5cblxuICAgIC8vIEtleVByZXNzIGlzIGRlcHJlY2F0ZWQsIGJ1dCBpdHMgcmVwbGFjZW1lbnQgaXMgbm90IHlldCBmaW5hbCBhbmQgbm90XG4gICAgLy8gaW1wbGVtZW50ZWQgaW4gYW55IG1ham9yIGJyb3dzZXIuIE9ubHkgS2V5UHJlc3MgaGFzIGNoYXJDb2RlLlxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnRDaGFyQ29kZShldmVudCk7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9LFxuICBrZXlDb2RlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyBga2V5Q29kZWAgaXMgdGhlIHJlc3VsdCBvZiBhIEtleURvd24vVXAgZXZlbnQgYW5kIHJlcHJlc2VudHMgdGhlIHZhbHVlIG9mXG4gICAgLy8gcGh5c2ljYWwga2V5Ym9hcmQga2V5LlxuXG4gICAgLy8gVGhlIGFjdHVhbCBtZWFuaW5nIG9mIHRoZSB2YWx1ZSBkZXBlbmRzIG9uIHRoZSB1c2Vycycga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gd2hpY2ggY2Fubm90IGJlIGRldGVjdGVkLiBBc3N1bWluZyB0aGF0IGl0IGlzIGEgVVMga2V5Ym9hcmQgbGF5b3V0XG4gICAgLy8gcHJvdmlkZXMgYSBzdXJwcmlzaW5nbHkgYWNjdXJhdGUgbWFwcGluZyBmb3IgVVMgYW5kIEV1cm9wZWFuIHVzZXJzLlxuICAgIC8vIER1ZSB0byB0aGlzLCBpdCBpcyBsZWZ0IHRvIHRoZSB1c2VyIHRvIGltcGxlbWVudCBhdCB0aGlzIHRpbWUuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBldmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICByZXR1cm4gZXZlbnQua2V5Q29kZTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH0sXG4gIHdoaWNoOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyBgd2hpY2hgIGlzIGFuIGFsaWFzIGZvciBlaXRoZXIgYGtleUNvZGVgIG9yIGBjaGFyQ29kZWAgZGVwZW5kaW5nIG9uIHRoZVxuICAgIC8vIHR5cGUgb2YgdGhlIGV2ZW50LlxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICByZXR1cm4gZ2V0RXZlbnRDaGFyQ29kZShldmVudCk7XG4gICAgfVxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5ZG93bicgfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJykge1xuICAgICAgcmV0dXJuIGV2ZW50LmtleUNvZGU7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBkaXNwYXRjaENvbmZpZyBDb25maWd1cmF0aW9uIHVzZWQgdG8gZGlzcGF0Y2ggdGhpcyBldmVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXNwYXRjaE1hcmtlciBNYXJrZXIgaWRlbnRpZnlpbmcgdGhlIGV2ZW50IHRhcmdldC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEBleHRlbmRzIHtTeW50aGV0aWNVSUV2ZW50fVxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNLZXlib2FyZEV2ZW50KGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHJldHVybiBTeW50aGV0aWNVSUV2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNVSUV2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNLZXlib2FyZEV2ZW50LCBLZXlib2FyZEV2ZW50SW50ZXJmYWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljS2V5Ym9hcmRFdmVudC5qc1xuLy8gbW9kdWxlIGlkID0gMjE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///218\n"); /***/ }), /* 219 */ @@ -2695,7 +2695,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar getEventCharCode = __webpack_require__(/*! ./getEventCharCode */ 61);\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1',\n 113: 'F2',\n 114: 'F3',\n 115: 'F4',\n 116: 'F5',\n 117: 'F6',\n 118: 'F7',\n 119: 'F8',\n 120: 'F9',\n 121: 'F10',\n 122: 'F11',\n 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZ2V0RXZlbnRLZXkuanM/ZGU4OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZ2V0RXZlbnRDaGFyQ29kZSA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRDaGFyQ29kZScpO1xuXG4vKipcbiAqIE5vcm1hbGl6YXRpb24gb2YgZGVwcmVjYXRlZCBIVE1MNSBga2V5YCB2YWx1ZXNcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cbnZhciBub3JtYWxpemVLZXkgPSB7XG4gIEVzYzogJ0VzY2FwZScsXG4gIFNwYWNlYmFyOiAnICcsXG4gIExlZnQ6ICdBcnJvd0xlZnQnLFxuICBVcDogJ0Fycm93VXAnLFxuICBSaWdodDogJ0Fycm93UmlnaHQnLFxuICBEb3duOiAnQXJyb3dEb3duJyxcbiAgRGVsOiAnRGVsZXRlJyxcbiAgV2luOiAnT1MnLFxuICBNZW51OiAnQ29udGV4dE1lbnUnLFxuICBBcHBzOiAnQ29udGV4dE1lbnUnLFxuICBTY3JvbGw6ICdTY3JvbGxMb2NrJyxcbiAgTW96UHJpbnRhYmxlS2V5OiAnVW5pZGVudGlmaWVkJ1xufTtcblxuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIGxlZ2FjeSBga2V5Q29kZWAgdG8gSFRNTDUgYGtleWBcbiAqIE9ubHkgc3BlY2lhbCBrZXlzIHN1cHBvcnRlZCwgYWxsIG90aGVycyBkZXBlbmQgb24ga2V5Ym9hcmQgbGF5b3V0IG9yIGJyb3dzZXJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cbnZhciB0cmFuc2xhdGVUb0tleSA9IHtcbiAgODogJ0JhY2tzcGFjZScsXG4gIDk6ICdUYWInLFxuICAxMjogJ0NsZWFyJyxcbiAgMTM6ICdFbnRlcicsXG4gIDE2OiAnU2hpZnQnLFxuICAxNzogJ0NvbnRyb2wnLFxuICAxODogJ0FsdCcsXG4gIDE5OiAnUGF1c2UnLFxuICAyMDogJ0NhcHNMb2NrJyxcbiAgMjc6ICdFc2NhcGUnLFxuICAzMjogJyAnLFxuICAzMzogJ1BhZ2VVcCcsXG4gIDM0OiAnUGFnZURvd24nLFxuICAzNTogJ0VuZCcsXG4gIDM2OiAnSG9tZScsXG4gIDM3OiAnQXJyb3dMZWZ0JyxcbiAgMzg6ICdBcnJvd1VwJyxcbiAgMzk6ICdBcnJvd1JpZ2h0JyxcbiAgNDA6ICdBcnJvd0Rvd24nLFxuICA0NTogJ0luc2VydCcsXG4gIDQ2OiAnRGVsZXRlJyxcbiAgMTEyOiAnRjEnLFxuICAxMTM6ICdGMicsXG4gIDExNDogJ0YzJyxcbiAgMTE1OiAnRjQnLFxuICAxMTY6ICdGNScsXG4gIDExNzogJ0Y2JyxcbiAgMTE4OiAnRjcnLFxuICAxMTk6ICdGOCcsXG4gIDEyMDogJ0Y5JyxcbiAgMTIxOiAnRjEwJyxcbiAgMTIyOiAnRjExJyxcbiAgMTIzOiAnRjEyJyxcbiAgMTQ0OiAnTnVtTG9jaycsXG4gIDE0NTogJ1Njcm9sbExvY2snLFxuICAyMjQ6ICdNZXRhJ1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5vcm1hbGl6ZWQgYGtleWAgcHJvcGVydHkuXG4gKi9cbmZ1bmN0aW9uIGdldEV2ZW50S2V5KG5hdGl2ZUV2ZW50KSB7XG4gIGlmIChuYXRpdmVFdmVudC5rZXkpIHtcbiAgICAvLyBOb3JtYWxpemUgaW5jb25zaXN0ZW50IHZhbHVlcyByZXBvcnRlZCBieSBicm93c2VycyBkdWUgdG9cbiAgICAvLyBpbXBsZW1lbnRhdGlvbnMgb2YgYSB3b3JraW5nIGRyYWZ0IHNwZWNpZmljYXRpb24uXG5cbiAgICAvLyBGaXJlRm94IGltcGxlbWVudHMgYGtleWAgYnV0IHJldHVybnMgYE1velByaW50YWJsZUtleWAgZm9yIGFsbFxuICAgIC8vIHByaW50YWJsZSBjaGFyYWN0ZXJzIChub3JtYWxpemVkIHRvIGBVbmlkZW50aWZpZWRgKSwgaWdub3JlIGl0LlxuICAgIHZhciBrZXkgPSBub3JtYWxpemVLZXlbbmF0aXZlRXZlbnQua2V5XSB8fCBuYXRpdmVFdmVudC5rZXk7XG4gICAgaWYgKGtleSAhPT0gJ1VuaWRlbnRpZmllZCcpIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICB9XG5cbiAgLy8gQnJvd3NlciBkb2VzIG5vdCBpbXBsZW1lbnQgYGtleWAsIHBvbHlmaWxsIGFzIG11Y2ggb2YgaXQgYXMgd2UgY2FuLlxuICBpZiAobmF0aXZlRXZlbnQudHlwZSA9PT0gJ2tleXByZXNzJykge1xuICAgIHZhciBjaGFyQ29kZSA9IGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpO1xuXG4gICAgLy8gVGhlIGVudGVyLWtleSBpcyB0ZWNobmljYWxseSBib3RoIHByaW50YWJsZSBhbmQgbm9uLXByaW50YWJsZSBhbmQgY2FuXG4gICAgLy8gdGh1cyBiZSBjYXB0dXJlZCBieSBga2V5cHJlc3NgLCBubyBvdGhlciBub24tcHJpbnRhYmxlIGtleSBzaG91bGQuXG4gICAgcmV0dXJuIGNoYXJDb2RlID09PSAxMyA/ICdFbnRlcicgOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKTtcbiAgfVxuICBpZiAobmF0aXZlRXZlbnQudHlwZSA9PT0gJ2tleWRvd24nIHx8IG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcbiAgICAvLyBXaGlsZSB1c2VyIGtleWJvYXJkIGxheW91dCBkZXRlcm1pbmVzIHRoZSBhY3R1YWwgbWVhbmluZyBvZiBlYWNoXG4gICAgLy8gYGtleUNvZGVgIHZhbHVlLCBhbG1vc3QgYWxsIGZ1bmN0aW9uIGtleXMgaGF2ZSBhIHVuaXZlcnNhbCB2YWx1ZS5cbiAgICByZXR1cm4gdHJhbnNsYXRlVG9LZXlbbmF0aXZlRXZlbnQua2V5Q29kZV0gfHwgJ1VuaWRlbnRpZmllZCc7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEV2ZW50S2V5O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZ2V0RXZlbnRLZXkuanNcbi8vIG1vZHVsZSBpZCA9IDIxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///219\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar getEventCharCode = __webpack_require__(/*! ./getEventCharCode */ 62);\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1',\n 113: 'F2',\n 114: 'F3',\n 115: 'F4',\n 116: 'F5',\n 117: 'F6',\n 118: 'F7',\n 119: 'F8',\n 120: 'F9',\n 121: 'F10',\n 122: 'F11',\n 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZ2V0RXZlbnRLZXkuanM/ZGU4OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZ2V0RXZlbnRDaGFyQ29kZSA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRDaGFyQ29kZScpO1xuXG4vKipcbiAqIE5vcm1hbGl6YXRpb24gb2YgZGVwcmVjYXRlZCBIVE1MNSBga2V5YCB2YWx1ZXNcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cbnZhciBub3JtYWxpemVLZXkgPSB7XG4gIEVzYzogJ0VzY2FwZScsXG4gIFNwYWNlYmFyOiAnICcsXG4gIExlZnQ6ICdBcnJvd0xlZnQnLFxuICBVcDogJ0Fycm93VXAnLFxuICBSaWdodDogJ0Fycm93UmlnaHQnLFxuICBEb3duOiAnQXJyb3dEb3duJyxcbiAgRGVsOiAnRGVsZXRlJyxcbiAgV2luOiAnT1MnLFxuICBNZW51OiAnQ29udGV4dE1lbnUnLFxuICBBcHBzOiAnQ29udGV4dE1lbnUnLFxuICBTY3JvbGw6ICdTY3JvbGxMb2NrJyxcbiAgTW96UHJpbnRhYmxlS2V5OiAnVW5pZGVudGlmaWVkJ1xufTtcblxuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIGxlZ2FjeSBga2V5Q29kZWAgdG8gSFRNTDUgYGtleWBcbiAqIE9ubHkgc3BlY2lhbCBrZXlzIHN1cHBvcnRlZCwgYWxsIG90aGVycyBkZXBlbmQgb24ga2V5Ym9hcmQgbGF5b3V0IG9yIGJyb3dzZXJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cbnZhciB0cmFuc2xhdGVUb0tleSA9IHtcbiAgODogJ0JhY2tzcGFjZScsXG4gIDk6ICdUYWInLFxuICAxMjogJ0NsZWFyJyxcbiAgMTM6ICdFbnRlcicsXG4gIDE2OiAnU2hpZnQnLFxuICAxNzogJ0NvbnRyb2wnLFxuICAxODogJ0FsdCcsXG4gIDE5OiAnUGF1c2UnLFxuICAyMDogJ0NhcHNMb2NrJyxcbiAgMjc6ICdFc2NhcGUnLFxuICAzMjogJyAnLFxuICAzMzogJ1BhZ2VVcCcsXG4gIDM0OiAnUGFnZURvd24nLFxuICAzNTogJ0VuZCcsXG4gIDM2OiAnSG9tZScsXG4gIDM3OiAnQXJyb3dMZWZ0JyxcbiAgMzg6ICdBcnJvd1VwJyxcbiAgMzk6ICdBcnJvd1JpZ2h0JyxcbiAgNDA6ICdBcnJvd0Rvd24nLFxuICA0NTogJ0luc2VydCcsXG4gIDQ2OiAnRGVsZXRlJyxcbiAgMTEyOiAnRjEnLFxuICAxMTM6ICdGMicsXG4gIDExNDogJ0YzJyxcbiAgMTE1OiAnRjQnLFxuICAxMTY6ICdGNScsXG4gIDExNzogJ0Y2JyxcbiAgMTE4OiAnRjcnLFxuICAxMTk6ICdGOCcsXG4gIDEyMDogJ0Y5JyxcbiAgMTIxOiAnRjEwJyxcbiAgMTIyOiAnRjExJyxcbiAgMTIzOiAnRjEyJyxcbiAgMTQ0OiAnTnVtTG9jaycsXG4gIDE0NTogJ1Njcm9sbExvY2snLFxuICAyMjQ6ICdNZXRhJ1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5vcm1hbGl6ZWQgYGtleWAgcHJvcGVydHkuXG4gKi9cbmZ1bmN0aW9uIGdldEV2ZW50S2V5KG5hdGl2ZUV2ZW50KSB7XG4gIGlmIChuYXRpdmVFdmVudC5rZXkpIHtcbiAgICAvLyBOb3JtYWxpemUgaW5jb25zaXN0ZW50IHZhbHVlcyByZXBvcnRlZCBieSBicm93c2VycyBkdWUgdG9cbiAgICAvLyBpbXBsZW1lbnRhdGlvbnMgb2YgYSB3b3JraW5nIGRyYWZ0IHNwZWNpZmljYXRpb24uXG5cbiAgICAvLyBGaXJlRm94IGltcGxlbWVudHMgYGtleWAgYnV0IHJldHVybnMgYE1velByaW50YWJsZUtleWAgZm9yIGFsbFxuICAgIC8vIHByaW50YWJsZSBjaGFyYWN0ZXJzIChub3JtYWxpemVkIHRvIGBVbmlkZW50aWZpZWRgKSwgaWdub3JlIGl0LlxuICAgIHZhciBrZXkgPSBub3JtYWxpemVLZXlbbmF0aXZlRXZlbnQua2V5XSB8fCBuYXRpdmVFdmVudC5rZXk7XG4gICAgaWYgKGtleSAhPT0gJ1VuaWRlbnRpZmllZCcpIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICB9XG5cbiAgLy8gQnJvd3NlciBkb2VzIG5vdCBpbXBsZW1lbnQgYGtleWAsIHBvbHlmaWxsIGFzIG11Y2ggb2YgaXQgYXMgd2UgY2FuLlxuICBpZiAobmF0aXZlRXZlbnQudHlwZSA9PT0gJ2tleXByZXNzJykge1xuICAgIHZhciBjaGFyQ29kZSA9IGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpO1xuXG4gICAgLy8gVGhlIGVudGVyLWtleSBpcyB0ZWNobmljYWxseSBib3RoIHByaW50YWJsZSBhbmQgbm9uLXByaW50YWJsZSBhbmQgY2FuXG4gICAgLy8gdGh1cyBiZSBjYXB0dXJlZCBieSBga2V5cHJlc3NgLCBubyBvdGhlciBub24tcHJpbnRhYmxlIGtleSBzaG91bGQuXG4gICAgcmV0dXJuIGNoYXJDb2RlID09PSAxMyA/ICdFbnRlcicgOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKTtcbiAgfVxuICBpZiAobmF0aXZlRXZlbnQudHlwZSA9PT0gJ2tleWRvd24nIHx8IG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcbiAgICAvLyBXaGlsZSB1c2VyIGtleWJvYXJkIGxheW91dCBkZXRlcm1pbmVzIHRoZSBhY3R1YWwgbWVhbmluZyBvZiBlYWNoXG4gICAgLy8gYGtleUNvZGVgIHZhbHVlLCBhbG1vc3QgYWxsIGZ1bmN0aW9uIGtleXMgaGF2ZSBhIHVuaXZlcnNhbCB2YWx1ZS5cbiAgICByZXR1cm4gdHJhbnNsYXRlVG9LZXlbbmF0aXZlRXZlbnQua2V5Q29kZV0gfHwgJ1VuaWRlbnRpZmllZCc7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEV2ZW50S2V5O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvZ2V0RXZlbnRLZXkuanNcbi8vIG1vZHVsZSBpZCA9IDIxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///219\n"); /***/ }), /* 220 */ @@ -2719,7 +2719,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\n\nvar getEventModifierState = __webpack_require__(/*! ./getEventModifierState */ 50);\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIxLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljVG91Y2hFdmVudC5qcz85MDRkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNVSUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNVSUV2ZW50Jyk7XG5cbnZhciBnZXRFdmVudE1vZGlmaWVyU3RhdGUgPSByZXF1aXJlKCcuL2dldEV2ZW50TW9kaWZpZXJTdGF0ZScpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgVG91Y2hFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi90b3VjaC1ldmVudHMvXG4gKi9cbnZhciBUb3VjaEV2ZW50SW50ZXJmYWNlID0ge1xuICB0b3VjaGVzOiBudWxsLFxuICB0YXJnZXRUb3VjaGVzOiBudWxsLFxuICBjaGFuZ2VkVG91Y2hlczogbnVsbCxcbiAgYWx0S2V5OiBudWxsLFxuICBtZXRhS2V5OiBudWxsLFxuICBjdHJsS2V5OiBudWxsLFxuICBzaGlmdEtleTogbnVsbCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlXG59O1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBkaXNwYXRjaENvbmZpZyBDb25maWd1cmF0aW9uIHVzZWQgdG8gZGlzcGF0Y2ggdGhpcyBldmVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXNwYXRjaE1hcmtlciBNYXJrZXIgaWRlbnRpZnlpbmcgdGhlIGV2ZW50IHRhcmdldC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEBleHRlbmRzIHtTeW50aGV0aWNVSUV2ZW50fVxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNUb3VjaEV2ZW50KGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHJldHVybiBTeW50aGV0aWNVSUV2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNVSUV2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNUb3VjaEV2ZW50LCBUb3VjaEV2ZW50SW50ZXJmYWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW50aGV0aWNUb3VjaEV2ZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljVG91Y2hFdmVudC5qc1xuLy8gbW9kdWxlIGlkID0gMjIxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///221\n"); +eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(/*! ./SyntheticUIEvent */ 29);\n\nvar getEventModifierState = __webpack_require__(/*! ./getEventModifierState */ 51);\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjIxLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljVG91Y2hFdmVudC5qcz85MDRkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNVSUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNVSUV2ZW50Jyk7XG5cbnZhciBnZXRFdmVudE1vZGlmaWVyU3RhdGUgPSByZXF1aXJlKCcuL2dldEV2ZW50TW9kaWZpZXJTdGF0ZScpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgVG91Y2hFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi90b3VjaC1ldmVudHMvXG4gKi9cbnZhciBUb3VjaEV2ZW50SW50ZXJmYWNlID0ge1xuICB0b3VjaGVzOiBudWxsLFxuICB0YXJnZXRUb3VjaGVzOiBudWxsLFxuICBjaGFuZ2VkVG91Y2hlczogbnVsbCxcbiAgYWx0S2V5OiBudWxsLFxuICBtZXRhS2V5OiBudWxsLFxuICBjdHJsS2V5OiBudWxsLFxuICBzaGlmdEtleTogbnVsbCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlXG59O1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBkaXNwYXRjaENvbmZpZyBDb25maWd1cmF0aW9uIHVzZWQgdG8gZGlzcGF0Y2ggdGhpcyBldmVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXNwYXRjaE1hcmtlciBNYXJrZXIgaWRlbnRpZnlpbmcgdGhlIGV2ZW50IHRhcmdldC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEBleHRlbmRzIHtTeW50aGV0aWNVSUV2ZW50fVxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNUb3VjaEV2ZW50KGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIHJldHVybiBTeW50aGV0aWNVSUV2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNVSUV2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNUb3VjaEV2ZW50LCBUb3VjaEV2ZW50SW50ZXJmYWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW50aGV0aWNUb3VjaEV2ZW50O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvU3ludGhldGljVG91Y2hFdmVudC5qc1xuLy8gbW9kdWxlIGlkID0gMjIxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///221\n"); /***/ }), /* 222 */ @@ -2755,7 +2755,7 @@ eval("/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar validateDOMNesting = __webpack_require__(/*! ./validateDOMNesting */ 60);\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01Db250YWluZXJJbmZvLmpzPzFmNmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHZhbGlkYXRlRE9NTmVzdGluZyA9IHJlcXVpcmUoJy4vdmFsaWRhdGVET01OZXN0aW5nJyk7XG5cbnZhciBET0NfTk9ERV9UWVBFID0gOTtcblxuZnVuY3Rpb24gUmVhY3RET01Db250YWluZXJJbmZvKHRvcExldmVsV3JhcHBlciwgbm9kZSkge1xuICB2YXIgaW5mbyA9IHtcbiAgICBfdG9wTGV2ZWxXcmFwcGVyOiB0b3BMZXZlbFdyYXBwZXIsXG4gICAgX2lkQ291bnRlcjogMSxcbiAgICBfb3duZXJEb2N1bWVudDogbm9kZSA/IG5vZGUubm9kZVR5cGUgPT09IERPQ19OT0RFX1RZUEUgPyBub2RlIDogbm9kZS5vd25lckRvY3VtZW50IDogbnVsbCxcbiAgICBfbm9kZTogbm9kZSxcbiAgICBfdGFnOiBub2RlID8gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIDogbnVsbCxcbiAgICBfbmFtZXNwYWNlVVJJOiBub2RlID8gbm9kZS5uYW1lc3BhY2VVUkkgOiBudWxsXG4gIH07XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaW5mby5fYW5jZXN0b3JJbmZvID0gbm9kZSA/IHZhbGlkYXRlRE9NTmVzdGluZy51cGRhdGVkQW5jZXN0b3JJbmZvKG51bGwsIGluZm8uX3RhZywgbnVsbCkgOiBudWxsO1xuICB9XG4gIHJldHVybiBpbmZvO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RE9NQ29udGFpbmVySW5mbztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NQ29udGFpbmVySW5mby5qc1xuLy8gbW9kdWxlIGlkID0gMjI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///224\n"); +eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar validateDOMNesting = __webpack_require__(/*! ./validateDOMNesting */ 61);\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/node_modules/node-libs-browser/node_modules/process/browser.js */ 0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9saWIvUmVhY3RET01Db250YWluZXJJbmZvLmpzPzFmNmUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHZhbGlkYXRlRE9NTmVzdGluZyA9IHJlcXVpcmUoJy4vdmFsaWRhdGVET01OZXN0aW5nJyk7XG5cbnZhciBET0NfTk9ERV9UWVBFID0gOTtcblxuZnVuY3Rpb24gUmVhY3RET01Db250YWluZXJJbmZvKHRvcExldmVsV3JhcHBlciwgbm9kZSkge1xuICB2YXIgaW5mbyA9IHtcbiAgICBfdG9wTGV2ZWxXcmFwcGVyOiB0b3BMZXZlbFdyYXBwZXIsXG4gICAgX2lkQ291bnRlcjogMSxcbiAgICBfb3duZXJEb2N1bWVudDogbm9kZSA/IG5vZGUubm9kZVR5cGUgPT09IERPQ19OT0RFX1RZUEUgPyBub2RlIDogbm9kZS5vd25lckRvY3VtZW50IDogbnVsbCxcbiAgICBfbm9kZTogbm9kZSxcbiAgICBfdGFnOiBub2RlID8gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIDogbnVsbCxcbiAgICBfbmFtZXNwYWNlVVJJOiBub2RlID8gbm9kZS5uYW1lc3BhY2VVUkkgOiBudWxsXG4gIH07XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaW5mby5fYW5jZXN0b3JJbmZvID0gbm9kZSA/IHZhbGlkYXRlRE9NTmVzdGluZy51cGRhdGVkQW5jZXN0b3JJbmZvKG51bGwsIGluZm8uX3RhZywgbnVsbCkgOiBudWxsO1xuICB9XG4gIHJldHVybiBpbmZvO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RE9NQ29udGFpbmVySW5mbztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vbGliL1JlYWN0RE9NQ29udGFpbmVySW5mby5qc1xuLy8gbW9kdWxlIGlkID0gMjI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///224\n"); /***/ }), /* 225 */ @@ -2867,36 +2867,36 @@ eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-pres /***/ }), /* 234 */ -/*!*******************************!*\ - !*** ./src/MagentoProduct.js ***! - \*******************************/ +/*!****************************************************!*\ + !*** ./src/components/MagentoProductList/index.js ***! + \****************************************************/ /*! exports provided: default */ /*! exports used: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ 71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__MagentoProduct_css__ = __webpack_require__(/*! ./MagentoProduct.css */ 235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__MagentoProduct_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__MagentoProduct_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_apollo_client__ = __webpack_require__(/*! apollo-client */ 246);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_graphql_tag__ = __webpack_require__(/*! graphql-tag */ 124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_graphql_tag___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_graphql_tag__);\n\n\n\n\n\nclass MagentoProduct extends __WEBPACK_IMPORTED_MODULE_0_react___default.a.Component {\n constructor(props) {\n super(props);\n\n const logErrors = {\n applyAfterware({ response }, next) {\n if (!response.ok) {\n response.clone().text().then(bodyText => {\n console.error(`Network Error: ${response.status} (${response.statusText}) - ${bodyText}`);\n next();\n });\n } else {\n response.clone().json().then(({ errors }) => {\n if (errors) {\n console.error('GraphQL Errors:', errors.map(e => e.message));\n }\n next();\n });\n }\n }\n };\n\n const networkInterface = Object(__WEBPACK_IMPORTED_MODULE_2_apollo_client__[\"a\" /* createNetworkInterface */])({\n uri: 'http://m2graphql.com/graphql'\n });\n networkInterface.useAfter([logErrors]);\n\n console.log('apollo');\n const client = new __WEBPACK_IMPORTED_MODULE_2_apollo_client__[\"b\" /* default */]({\n connectToDevTools: true,\n networkInterface: networkInterface\n });\n\n var result = client.query({\n query: __WEBPACK_IMPORTED_MODULE_3_graphql_tag___default.a`\n { MagentoCatalogProduct(sku: \"24-MB01\"){\n id, name, price, media_gallery_entries {\n file\n }, custom_attributes {\n attribute_code,\n }\n },\n MagentoStoreStoreConfigs(storeCodes: \"default\") {\n base_currency_code, base_url\n }\n }\n ` }).then(result => {\n console.log(result.data);\n this.setState(result.data);\n var state = { data: result.data };\n state.imgUrl = result.data.MagentoStoreStoreConfigs[0].base_url + '/pub/media/catalog/product' + result.data.MagentoCatalogProduct.media_gallery_entries[0].file;\n this.setState(state);\n console.log(state);\n }).catch(result => {\n console.log(result);\n });\n\n this.state = {\n imgUrl: \"placeholder.jpg\",\n data: {\n MagentoCatalogProduct: {\n name: \"Loading\", price: 0, media_gallery_entries: {\n file: \"test.jpg\"\n }\n },\n MagentoStoreStoreConfigs: [{ base_currency_code: \"USD\", \"base_url\": \"none\" }]\n }\n };\n }\n\n render() {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'mage-product' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'mage-product-image' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('img', { src: this.state.imgUrl, className: 'App-logo', alt: 'logo' }),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'h2',\n null,\n this.state.data.MagentoCatalogProduct.name\n )\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'mage-product-description' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'mage-product-price' },\n this.state.data.MagentoCatalogProduct.price,\n ' ',\n this.state.data.MagentoStoreStoreConfigs[0].base_currency_code\n )\n )\n );\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MagentoProduct);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjM0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9NYWdlbnRvUHJvZHVjdC5qcz9iZmFlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJy4vTWFnZW50b1Byb2R1Y3QuY3NzJztcbmltcG9ydCBBcG9sbG9DbGllbnQsIHsgY3JlYXRlTmV0d29ya0ludGVyZmFjZSB9IGZyb20gJ2Fwb2xsby1jbGllbnQnO1xuaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XG5cbmNsYXNzIE1hZ2VudG9Qcm9kdWN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgY29uc3QgbG9nRXJyb3JzID0ge1xuICAgICAgICAgICAgYXBwbHlBZnRlcndhcmUoeyByZXNwb25zZSB9LCBuZXh0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5jbG9uZSgpLnRleHQoKS50aGVuKGJvZHlUZXh0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYE5ldHdvcmsgRXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAoJHtyZXNwb25zZS5zdGF0dXNUZXh0fSkgLSAke2JvZHlUZXh0fWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5jbG9uZSgpLmpzb24oKS50aGVuKCh7IGVycm9ycyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignR3JhcGhRTCBFcnJvcnM6JywgZXJyb3JzLm1hcChlID0+IGUubWVzc2FnZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IG5ldHdvcmtJbnRlcmZhY2UgPSBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlKHtcbiAgICAgICAgICAgIHVyaTogJ2h0dHA6Ly9tMmdyYXBocWwuY29tL2dyYXBocWwnLFxuICAgICAgICB9KTtcbiAgICAgICAgbmV0d29ya0ludGVyZmFjZS51c2VBZnRlcihbbG9nRXJyb3JzXSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ2Fwb2xsbycpO1xuICAgICAgICBjb25zdCBjbGllbnQgPSBuZXcgQXBvbGxvQ2xpZW50KHtcbiAgICAgICAgICAgIGNvbm5lY3RUb0RldlRvb2xzOiB0cnVlLFxuICAgICAgICAgICAgbmV0d29ya0ludGVyZmFjZTogbmV0d29ya0ludGVyZmFjZSxcbiAgICAgICAgfSk7XG5cblxuICAgICAgICB2YXIgcmVzdWx0ID0gY2xpZW50LnF1ZXJ5KHtcbiAgICAgICAgICAgIHF1ZXJ5OiBncWxgXG4gICAgICAgIHsgTWFnZW50b0NhdGFsb2dQcm9kdWN0KHNrdTogXCIyNC1NQjAxXCIpe1xuICAgICAgICAgIGlkLCBuYW1lLCBwcmljZSwgbWVkaWFfZ2FsbGVyeV9lbnRyaWVzIHtcbiAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICB9LCBjdXN0b21fYXR0cmlidXRlcyB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVfY29kZSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIE1hZ2VudG9TdG9yZVN0b3JlQ29uZmlncyhzdG9yZUNvZGVzOiBcImRlZmF1bHRcIikge1xuICAgICAgICAgICAgYmFzZV9jdXJyZW5jeV9jb2RlLCBiYXNlX3VybFxuICAgICAgICB9XG4gICAgfVxuICAgICAgYH0pLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQuZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZShyZXN1bHQuZGF0YSk7XG4gICAgICAgICAgICAgICAgdmFyIHN0YXRlID0geyBkYXRhOiByZXN1bHQuZGF0YSB9XG4gICAgICAgICAgICAgICAgc3RhdGUuaW1nVXJsID0gcmVzdWx0LmRhdGEuTWFnZW50b1N0b3JlU3RvcmVDb25maWdzWzBdLmJhc2VfdXJsICsgJy9wdWIvbWVkaWEvY2F0YWxvZy9wcm9kdWN0JyArXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kYXRhLk1hZ2VudG9DYXRhbG9nUHJvZHVjdC5tZWRpYV9nYWxsZXJ5X2VudHJpZXNbMF0uZmlsZVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coc3RhdGUpO1xuICAgICAgICAgICAgfSkuY2F0Y2gocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBpbWdVcmw6IFwicGxhY2Vob2xkZXIuanBnXCIsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgTWFnZW50b0NhdGFsb2dQcm9kdWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTG9hZGluZ1wiLCBwcmljZTogMCwgbWVkaWFfZ2FsbGVyeV9lbnRyaWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiBcInRlc3QuanBnXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgTWFnZW50b1N0b3JlU3RvcmVDb25maWdzOiBbeyBiYXNlX2N1cnJlbmN5X2NvZGU6IFwiVVNEXCIsIFwiYmFzZV91cmxcIjogXCJub25lXCIgfV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFnZS1wcm9kdWN0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYWdlLXByb2R1Y3QtaW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e3RoaXMuc3RhdGUuaW1nVXJsfSBjbGFzc05hbWU9XCJBcHAtbG9nb1wiIGFsdD1cImxvZ29cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8aDI+e3RoaXMuc3RhdGUuZGF0YS5NYWdlbnRvQ2F0YWxvZ1Byb2R1Y3QubmFtZX08L2gyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFnZS1wcm9kdWN0LWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFnZS1wcm9kdWN0LXByaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5kYXRhLk1hZ2VudG9DYXRhbG9nUHJvZHVjdC5wcmljZX0ge3RoaXMuc3RhdGUuZGF0YS5NYWdlbnRvU3RvcmVTdG9yZUNvbmZpZ3NbMF0uYmFzZV9jdXJyZW5jeV9jb2RlfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFnZW50b1Byb2R1Y3RcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvTWFnZW50b1Byb2R1Y3QuanMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFmQTtBQUNBO0FBaUJBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBQ0E7QUFLQTtBQUNBOzs7Ozs7Ozs7Ozs7QUFEQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBREE7QUFEQTtBQUtBO0FBTkE7QUFGQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUZBO0FBSUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBREE7QUFEQTtBQUxBO0FBWUE7QUF0RkE7QUFDQTtBQXdGQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///234\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ 44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ProductList_css__ = __webpack_require__(/*! ./ProductList.css */ 235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__ProductList_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__ProductList_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_graphql_tag__ = __webpack_require__(/*! graphql-tag */ 124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_graphql_tag___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_graphql_tag__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__MagentoProductItem__ = __webpack_require__(/*! ../MagentoProductItem */ 289);\n\n\n\n//import { MagentoProductItem } from 'react-router-dom';\n\n\nclass MagentoProductList extends __WEBPACK_IMPORTED_MODULE_0_react___default.a.Component {\n constructor(props) {\n super(props);\n console.log(props);\n this.props.registerGQL({\n query: this.getGQL(),\n callback: this.dataLoaded.bind(this)\n });\n\n this.state = {\n ProductItems: [{\n imgUrl: \"placeholder.jpg\",\n data: {\n MagentoCatalogProduct: {\n name: \"Loading\", price: 0, media_gallery_entries: {\n file: \"test.jpg\"\n }\n },\n MagentoStoreStoreConfigs: [{ base_currency_code: \"USD\", \"base_url\": \"none\" }]\n }\n }]\n };\n }\n\n dataLoaded(dataPromise) {\n return new Promise((resolve, reject) => {\n dataPromise.then(result => {\n try {\n console.log(result.data);\n if (result.data.hasOwnProperty('MagentoCatalogCategoryProductLinks')) {\n const productSkus = [];\n result.data.MagentoCatalogCategoryProductLinks.map(categoryLink => {\n productSkus.push(categoryLink.sku);\n });\n\n resolve({\n query: `MagentoCatalogProductSearchResults(searchCriteria:{\n filter_groups: {\n filters: {\n field: \"sku\",\n value: \"` + productSkus.join(',') + `\",\n condition_type: \"in\"\n }\n },\n page_size:10,\n current_page: 0\n }){\n items{id, name, price, custom_attributes(\n filter:[\"thumbnail\", \"url_key\"]\n ){attribute_code, value}}\n }`,\n callback: this.dataLoaded.bind(this)\n });\n } else if (result.data.hasOwnProperty('MagentoCatalogProductSearchResults')) {\n var state = {};\n state['ProductItems'] = result.data.MagentoCatalogProductSearchResults.items;\n this.setState(state);\n console.log(this.state);\n resolve(true);\n } else {\n reject('Response does not have needed data');\n }\n } catch (e) {\n reject(e);\n }\n }).catch(console.log);\n });\n }\n\n getGQL() {\n return `MagentoCatalogCategoryProductLinks(categoryId: 2) {\n sku, position\n }`;\n }\n\n render() {\n var items = [];\n\n this.state.ProductItems.map(productItem => {\n items.push(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__MagentoProductItem__[\"a\" /* default */], { data: productItem }));\n });\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'block widget block-products-list grid' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'block-content' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'products-grid grid' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'ol',\n { className: 'product-items widget-product-grid' },\n items\n )\n )\n )\n );\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MagentoProductList);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjM0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9jb21wb25lbnRzL01hZ2VudG9Qcm9kdWN0TGlzdC9pbmRleC5qcz83OWQxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJy4vUHJvZHVjdExpc3QuY3NzJztcbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuLy9pbXBvcnQgeyBNYWdlbnRvUHJvZHVjdEl0ZW0gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBNYWdlbnRvUHJvZHVjdEl0ZW0gZnJvbSAnLi4vTWFnZW50b1Byb2R1Y3RJdGVtJztcblxuY2xhc3MgTWFnZW50b1Byb2R1Y3RMaXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHByb3BzKTtcbiAgICAgICAgdGhpcy5wcm9wcy5yZWdpc3RlckdRTCh7XG4gICAgICAgICAgICBxdWVyeTogdGhpcy5nZXRHUUwoKSxcbiAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLmRhdGFMb2FkZWQuYmluZCh0aGlzKVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBQcm9kdWN0SXRlbXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGltZ1VybDogXCJwbGFjZWhvbGRlci5qcGdcIixcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgTWFnZW50b0NhdGFsb2dQcm9kdWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJMb2FkaW5nXCIsIHByaWNlOiAwLCBtZWRpYV9nYWxsZXJ5X2VudHJpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogXCJ0ZXN0LmpwZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hZ2VudG9TdG9yZVN0b3JlQ29uZmlnczogW3sgYmFzZV9jdXJyZW5jeV9jb2RlOiBcIlVTRFwiLCBcImJhc2VfdXJsXCI6IFwibm9uZVwiIH1dXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRhTG9hZGVkKGRhdGFQcm9taXNlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBkYXRhUHJvbWlzZS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0LmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRhdGEuaGFzT3duUHJvcGVydHkoJ01hZ2VudG9DYXRhbG9nQ2F0ZWdvcnlQcm9kdWN0TGlua3MnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdFNrdXMgPSBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmRhdGEuTWFnZW50b0NhdGFsb2dDYXRlZ29yeVByb2R1Y3RMaW5rcy5tYXAoY2F0ZWdvcnlMaW5rID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0U2t1cy5wdXNoKGNhdGVnb3J5TGluay5za3UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IGBNYWdlbnRvQ2F0YWxvZ1Byb2R1Y3RTZWFyY2hSZXN1bHRzKHNlYXJjaENyaXRlcmlhOntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX2dyb3Vwczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogXCJza3VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImAgKyBwcm9kdWN0U2t1cy5qb2luKCcsJykgKyBgXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fdHlwZTogXCJpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX3NpemU6MTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfcGFnZTogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXN7aWQsIG5hbWUsIHByaWNlLCBjdXN0b21fYXR0cmlidXRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6W1widGh1bWJuYWlsXCIsIFwidXJsX2tleVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApe2F0dHJpYnV0ZV9jb2RlLCB2YWx1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMuZGF0YUxvYWRlZC5iaW5kKHRoaXMpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5kYXRhLmhhc093blByb3BlcnR5KCdNYWdlbnRvQ2F0YWxvZ1Byb2R1Y3RTZWFyY2hSZXN1bHRzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGF0ZSA9IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVsnUHJvZHVjdEl0ZW1zJ10gPSByZXN1bHQuZGF0YS5NYWdlbnRvQ2F0YWxvZ1Byb2R1Y3RTZWFyY2hSZXN1bHRzLml0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdSZXNwb25zZSBkb2VzIG5vdCBoYXZlIG5lZWRlZCBkYXRhJylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuY2F0Y2goY29uc29sZS5sb2cpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgZ2V0R1FMKCkge1xuICAgICAgICByZXR1cm4gYE1hZ2VudG9DYXRhbG9nQ2F0ZWdvcnlQcm9kdWN0TGlua3MoY2F0ZWdvcnlJZDogMikge1xuICAgICAgICAgICAgc2t1LCBwb3NpdGlvblxuICAgICAgICB9YFxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIGl0ZW1zID0gW11cblxuICAgICAgICB0aGlzLnN0YXRlLlByb2R1Y3RJdGVtcy5tYXAocHJvZHVjdEl0ZW0gPT4ge1xuICAgICAgICAgICAgaXRlbXMucHVzaCg8TWFnZW50b1Byb2R1Y3RJdGVtIGRhdGE9e3Byb2R1Y3RJdGVtfSAvPik7XG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmxvY2sgd2lkZ2V0IGJsb2NrLXByb2R1Y3RzLWxpc3QgZ3JpZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmxvY2stY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2R1Y3RzLWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9sIGNsYXNzTmFtZT1cInByb2R1Y3QtaXRlbXMgd2lkZ2V0LXByb2R1Y3QtZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtc31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYWdlbnRvUHJvZHVjdExpc3RcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvY29tcG9uZW50cy9NYWdlbnRvUHJvZHVjdExpc3QvaW5kZXguanMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQURBO0FBS0E7QUFOQTtBQUZBO0FBRkE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFBQTs7Ozs7Ozs7OztBQURBO0FBZ0JBO0FBaEJBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBREE7QUFEQTtBQURBO0FBREE7QUFVQTtBQS9GQTtBQUNBO0FBaUdBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///234\n"); /***/ }), /* 235 */ -/*!********************************!*\ - !*** ./src/MagentoProduct.css ***! - \********************************/ +/*!***********************************************************!*\ + !*** ./src/components/MagentoProductList/ProductList.css ***! + \***********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../node_modules/css-loader!./MagentoProduct.css */ 236);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {}\noptions.transform = transform\n// add the styles to the DOM\nvar update = __webpack_require__(/*! ../node_modules/style-loader/lib/addStyles.js */ 244)(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../node_modules/css-loader/index.js!./MagentoProduct.css\", function() {\n\t\t\tvar newContent = require(\"!!../node_modules/css-loader/index.js!./MagentoProduct.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjM1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL01hZ2VudG9Qcm9kdWN0LmNzcz9lZGJiIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHN0eWxlLWxvYWRlcjogQWRkcyBzb21lIGNzcyB0byB0aGUgRE9NIGJ5IGFkZGluZyBhIDxzdHlsZT4gdGFnXG5cbi8vIGxvYWQgdGhlIHN0eWxlc1xudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuL01hZ2VudG9Qcm9kdWN0LmNzc1wiKTtcbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuLy8gUHJlcGFyZSBjc3NUcmFuc2Zvcm1hdGlvblxudmFyIHRyYW5zZm9ybTtcblxudmFyIG9wdGlvbnMgPSB7fVxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbi8vIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSBET01cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gSG90IE1vZHVsZSBSZXBsYWNlbWVudFxuaWYobW9kdWxlLmhvdCkge1xuXHQvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuXHRpZighY29udGVudC5sb2NhbHMpIHtcblx0XHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi9NYWdlbnRvUHJvZHVjdC5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4vTWFnZW50b1Byb2R1Y3QuY3NzXCIpO1xuXHRcdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cdFx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdFx0fSk7XG5cdH1cblx0Ly8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9NYWdlbnRvUHJvZHVjdC5jc3Ncbi8vIG1vZHVsZSBpZCA9IDIzNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///235\n"); +eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../node_modules/css-loader!./ProductList.css */ 236);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {}\noptions.transform = transform\n// add the styles to the DOM\nvar update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ 244)(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!./ProductList.css\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!./ProductList.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjM1LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWFnZW50b1Byb2R1Y3RMaXN0L1Byb2R1Y3RMaXN0LmNzcz8xN2UwIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHN0eWxlLWxvYWRlcjogQWRkcyBzb21lIGNzcyB0byB0aGUgRE9NIGJ5IGFkZGluZyBhIDxzdHlsZT4gdGFnXG5cbi8vIGxvYWQgdGhlIHN0eWxlc1xudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuL1Byb2R1Y3RMaXN0LmNzc1wiKTtcbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuLy8gUHJlcGFyZSBjc3NUcmFuc2Zvcm1hdGlvblxudmFyIHRyYW5zZm9ybTtcblxudmFyIG9wdGlvbnMgPSB7fVxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbi8vIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSBET01cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gSG90IE1vZHVsZSBSZXBsYWNlbWVudFxuaWYobW9kdWxlLmhvdCkge1xuXHQvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuXHRpZighY29udGVudC5sb2NhbHMpIHtcblx0XHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi9Qcm9kdWN0TGlzdC5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4vUHJvZHVjdExpc3QuY3NzXCIpO1xuXHRcdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cdFx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdFx0fSk7XG5cdH1cblx0Ly8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9jb21wb25lbnRzL01hZ2VudG9Qcm9kdWN0TGlzdC9Qcm9kdWN0TGlzdC5jc3Ncbi8vIG1vZHVsZSBpZCA9IDIzNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///235\n"); /***/ }), /* 236 */ -/*!**********************************************************!*\ - !*** ./node_modules/css-loader!./src/MagentoProduct.css ***! - \**********************************************************/ +/*!*************************************************************************************!*\ + !*** ./node_modules/css-loader!./src/components/MagentoProductList/ProductList.css ***! + \*************************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/lib/css-base.js */ 237)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"body {\\n margin: 0;\\n padding: 0\\n}\\n\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nmain,\\nfooter,\\nheader,\\nnav,\\nsection,\\nsummary {\\n display: block\\n}\\n\\naudio,\\ncanvas,\\nvideo {\\n display: inline-block\\n}\\n\\naudio:not([controls]) {\\n display: none;\\n height: 0\\n}\\n\\nnav ul,\\nnav ol {\\n list-style: none none\\n}\\n\\nimg {\\n border: 0\\n}\\n\\nimg,\\nobject,\\nvideo,\\nembed {\\n height: auto;\\n max-width: 100%\\n}\\n\\nsvg:not(:root) {\\n overflow: hidden\\n}\\n\\nfigure {\\n margin: 0\\n}\\n\\nhtml {\\n font-size: 62.5%;\\n -webkit-text-size-adjust: 100%;\\n -ms-text-size-adjust: 100%;\\n font-size-adjust: 100%\\n}\\n\\nbody {\\n color: #333;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1.42857143;\\n font-size: 1.4rem\\n}\\n\\np {\\n margin-top: 0rem;\\n margin-bottom: 1rem\\n}\\n\\nabbr[title] {\\n border-bottom: 1px dotted #ccc;\\n cursor: help\\n}\\n\\nb,\\nstrong {\\n font-weight: 700\\n}\\n\\nem,\\ni {\\n font-style: italic\\n}\\n\\nmark {\\n background: #f6f6f6;\\n color: #000\\n}\\n\\nsmall,\\n.small {\\n font-size: 12px\\n}\\n\\nhr {\\n border: 0;\\n border-top: 1px solid #ccc;\\n margin-bottom: 20px;\\n margin-top: 20px\\n}\\n\\nsub,\\nsup {\\n font-size: 71.42857143000001%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline\\n}\\n\\nsup {\\n top: -.5em\\n}\\n\\nsub {\\n bottom: -.25em\\n}\\n\\ndfn {\\n font-style: italic\\n}\\n\\nh1 {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 0rem;\\n margin-bottom: 2rem\\n}\\n\\nh2 {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\nh3 {\\n font-weight: 600;\\n line-height: 1.1;\\n font-size: 1.8rem;\\n margin-top: 2rem;\\n margin-bottom: 1rem\\n}\\n\\nh4 {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1.4rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\nh5 {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1.2rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\nh6 {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\nh1 small,\\nh2 small,\\nh3 small,\\nh4 small,\\nh5 small,\\nh6 small,\\nh1 .small,\\nh2 .small,\\nh3 .small,\\nh4 .small,\\nh5 .small,\\nh6 .small {\\n color: #333;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1\\n}\\n\\na,\\n.alink {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\na:visited,\\n.alink:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\na:hover,\\n.alink:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\na:active,\\n.alink:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\nul,\\nol {\\n margin-top: 0rem;\\n margin-bottom: 2.5rem\\n}\\n\\nul>li,\\nol>li {\\n margin-top: 0rem;\\n margin-bottom: 1rem\\n}\\n\\nul ul,\\nol ul,\\nul ol,\\nol ol {\\n margin-bottom: 0\\n}\\n\\ndl {\\n margin-bottom: 20px;\\n margin-top: 0\\n}\\n\\ndt {\\n font-weight: 700;\\n margin-bottom: 5px;\\n margin-top: 0\\n}\\n\\ndd {\\n margin-bottom: 10px;\\n margin-top: 0;\\n margin-left: 0\\n}\\n\\ncode,\\nkbd,\\npre,\\nsamp {\\n font-family: Menlo, Monaco, Consolas, 'Courier New', monospace\\n}\\n\\ncode {\\n background: #f6f6f6;\\n color: #111;\\n padding: 2px 4px;\\n font-size: 1.2rem;\\n white-space: nowrap\\n}\\n\\nkbd {\\n background: #f6f6f6;\\n color: #111;\\n padding: 2px 4px;\\n font-size: 1.2rem\\n}\\n\\npre {\\n background: #f6f6f6;\\n border: 1px solid #ccc;\\n color: #111;\\n line-height: 1.42857143;\\n margin: 0 0 10px;\\n padding: 10px;\\n font-size: 1.2rem;\\n display: block;\\n word-wrap: break-word\\n}\\n\\npre code {\\n background-color: transparent;\\n border-radius: 0;\\n color: inherit;\\n font-size: inherit;\\n padding: 0;\\n white-space: pre-wrap\\n}\\n\\nblockquote {\\n border-left: 0 solid #ccc;\\n margin: 0 0 20px 40px;\\n padding: 0;\\n color: #333;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-style: italic;\\n font-weight: 400;\\n line-height: 1.42857143;\\n font-size: 1.4rem\\n}\\n\\nblockquote p:last-child,\\nblockquote ul:last-child,\\nblockquote ol:last-child {\\n margin-bottom: 0\\n}\\n\\nblockquote footer,\\nblockquote small,\\nblockquote .small {\\n color: #333;\\n line-height: 1.42857143;\\n font-size: 1rem;\\n display: block\\n}\\n\\nblockquote footer:before,\\nblockquote small:before,\\nblockquote .small:before {\\n content: '\\\\2014 \\\\A0'\\n}\\n\\nblockquote cite {\\n font-style: normal\\n}\\n\\nblockquote:before,\\nblockquote:after {\\n content: ''\\n}\\n\\nq {\\n quotes: none\\n}\\n\\nq:before,\\nq:after {\\n content: '';\\n content: none\\n}\\n\\ncite {\\n font-style: normal\\n}\\n\\ntable {\\n width: 100%;\\n border-collapse: collapse;\\n border-spacing: 0;\\n max-width: 100%\\n}\\n\\ntable th {\\n text-align: left\\n}\\n\\ntable>tbody>tr>th,\\ntable>tfoot>tr>th,\\ntable>tbody>tr>td,\\ntable>tfoot>tr>td {\\n vertical-align: top\\n}\\n\\ntable>thead>tr>th,\\ntable>thead>tr>td {\\n vertical-align: bottom\\n}\\n\\ntable>thead>tr>th,\\ntable>tbody>tr>th,\\ntable>tfoot>tr>th,\\ntable>thead>tr>td,\\ntable>tbody>tr>td,\\ntable>tfoot>tr>td {\\n padding: 11px 10px\\n}\\n\\nbutton {\\n background-image: none;\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333;\\n cursor: pointer;\\n display: inline-block;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n margin: 0;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n box-sizing: border-box;\\n vertical-align: middle\\n}\\n\\nbutton:focus,\\nbutton:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\nbutton:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\nbutton.disabled,\\nbutton[disabled],\\nfieldset[disabled] button {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\nbutton::-moz-focus-inner {\\n border: 0;\\n padding: 0\\n}\\n\\ninput[type=\\\"text\\\"],\\ninput[type=\\\"password\\\"],\\ninput[type=\\\"url\\\"],\\ninput[type=\\\"tel\\\"],\\ninput[type=\\\"search\\\"],\\ninput[type=\\\"number\\\"],\\ninput[type=\\\"datetime\\\"],\\ninput[type=\\\"email\\\"] {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 0 9px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box\\n}\\n\\ninput[type=\\\"text\\\"]:disabled,\\ninput[type=\\\"password\\\"]:disabled,\\ninput[type=\\\"url\\\"]:disabled,\\ninput[type=\\\"tel\\\"]:disabled,\\ninput[type=\\\"search\\\"]:disabled,\\ninput[type=\\\"number\\\"]:disabled,\\ninput[type=\\\"datetime\\\"]:disabled,\\ninput[type=\\\"email\\\"]:disabled {\\n opacity: .5\\n}\\n\\ninput[type=\\\"text\\\"]::-moz-placeholder,\\ninput[type=\\\"password\\\"]::-moz-placeholder,\\ninput[type=\\\"url\\\"]::-moz-placeholder,\\ninput[type=\\\"tel\\\"]::-moz-placeholder,\\ninput[type=\\\"search\\\"]::-moz-placeholder,\\ninput[type=\\\"number\\\"]::-moz-placeholder,\\ninput[type=\\\"datetime\\\"]::-moz-placeholder,\\ninput[type=\\\"email\\\"]::-moz-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"text\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"password\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"url\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"tel\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"search\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"number\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"datetime\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"email\\\"]::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"text\\\"]:-ms-input-placeholder,\\ninput[type=\\\"password\\\"]:-ms-input-placeholder,\\ninput[type=\\\"url\\\"]:-ms-input-placeholder,\\ninput[type=\\\"tel\\\"]:-ms-input-placeholder,\\ninput[type=\\\"search\\\"]:-ms-input-placeholder,\\ninput[type=\\\"number\\\"]:-ms-input-placeholder,\\ninput[type=\\\"datetime\\\"]:-ms-input-placeholder,\\ninput[type=\\\"email\\\"]:-ms-input-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"number\\\"] {\\n -moz-appearance: textfield\\n}\\n\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0\\n}\\n\\ninput[type=\\\"search\\\"] {\\n -webkit-appearance: none\\n}\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration,\\ninput[type=\\\"search\\\"]::-webkit-search-results-button,\\ninput[type=\\\"search\\\"]::-webkit-search-results-decoration {\\n -webkit-appearance: none\\n}\\n\\nselect {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 5px 10px 4px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box\\n}\\n\\nselect:disabled {\\n opacity: .5\\n}\\n\\nselect[multiple=\\\"multiple\\\"] {\\n height: auto;\\n background-image: none\\n}\\n\\ntextarea {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: auto;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 10px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box;\\n resize: vertical\\n}\\n\\ntextarea:disabled {\\n opacity: .5\\n}\\n\\ntextarea::-moz-placeholder {\\n color: #575757\\n}\\n\\ntextarea::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\ntextarea:-ms-input-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"checkbox\\\"] {\\n margin: 2px 5px 0 0\\n}\\n\\ninput[type=\\\"checkbox\\\"]:disabled {\\n opacity: .5\\n}\\n\\ninput[type=\\\"radio\\\"] {\\n margin: 2px 5px 0 0\\n}\\n\\ninput[type=\\\"radio\\\"]:disabled {\\n opacity: .5\\n}\\n\\ninput.mage-error,\\nselect.mage-error,\\ntextarea.mage-error {\\n border-color: #ed8380\\n}\\n\\ndiv.mage-error[generated] {\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\ninput[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n cursor: pointer;\\n -webkit-appearance: button\\n}\\n\\ninput::-moz-focus-inner {\\n border: 0;\\n padding: 0\\n}\\n\\nform {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0)\\n}\\n\\naddress {\\n font-style: normal\\n}\\n\\n*:focus {\\n box-shadow: none;\\n outline: 0\\n}\\n\\n._keyfocus *:focus,\\ninput:not([disabled]):focus,\\ntextarea:not([disabled]):focus,\\nselect:not([disabled]):focus {\\n box-shadow: 0 0 3px 1px #00699d\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle.items,\\n.product-items,\\n.prices-tier,\\n.search-terms,\\n.cart-summary .checkout-methods-items,\\n.opc-wrapper .opc,\\n.opc-progress-bar,\\n.checkout-agreements-items,\\n.order-details-items .items-qty,\\n.footer.content ul,\\n.block-banners .banner-items,\\n.block-banners-inline .banner-items,\\n.block-event .slider-panel .slider {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle.items>li,\\n.product-items>li,\\n.prices-tier>li,\\n.search-terms>li,\\n.cart-summary .checkout-methods-items>li,\\n.opc-wrapper .opc>li,\\n.opc-progress-bar>li,\\n.checkout-agreements-items>li,\\n.order-details-items .items-qty>li,\\n.footer.content ul>li,\\n.block-banners .banner-items>li,\\n.block-banners-inline .banner-items>li,\\n.block-event .slider-panel .slider>li {\\n margin: 0\\n}\\n\\n.action-primary:focus,\\n.action-primary:active {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action-primary:hover {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action-primary.disabled,\\n.action-primary[disabled],\\nfieldset[disabled] .action-primary {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.abs-discount-block .actions-toolbar .action.primary,\\n.abs-discount-block .actions-toolbar .action.cancel,\\n.block-compare .action.primary,\\n.cart-summary .block .actions-toolbar>.primary .action.primary,\\n.cart-summary .form.giftregistry .fieldset .action.primary,\\n.paypal-review-discount .actions-toolbar .action.primary,\\n.paypal-review-discount .actions-toolbar .action.cancel,\\n.cart-discount .actions-toolbar .action.primary,\\n.cart-discount .actions-toolbar .action.cancel {\\n border-radius: 3px\\n}\\n\\n.abs-discount-block .actions-toolbar .action.primary:not(:focus),\\n.abs-discount-block .actions-toolbar .action.cancel:not(:focus),\\n.block-compare .action.primary:not(:focus),\\n.cart-summary .block .actions-toolbar>.primary .action.primary:not(:focus),\\n.cart-summary .form.giftregistry .fieldset .action.primary:not(:focus),\\n.paypal-review-discount .actions-toolbar .action.primary:not(:focus),\\n.paypal-review-discount .actions-toolbar .action.cancel:not(:focus),\\n.cart-discount .actions-toolbar .action.primary:not(:focus),\\n.cart-discount .actions-toolbar .action.cancel:not(:focus) {\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\n.abs-discount-block .actions-toolbar .action.primary:active,\\n.abs-discount-block .actions-toolbar .action.cancel:active,\\n.block-compare .action.primary:active,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:active,\\n.cart-summary .form.giftregistry .fieldset .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.cancel:active,\\n.cart-discount .actions-toolbar .action.primary:active,\\n.cart-discount .actions-toolbar .action.cancel:active {\\n box-shadow: inset 0 1px 0 0 rgba(204, 204, 204, 0.8), inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\n.block-event .slider-panel .slider .item .action.event {\\n background-image: none;\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333;\\n cursor: pointer;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n margin: 0;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n box-sizing: border-box;\\n vertical-align: middle;\\n display: inline-block;\\n text-decoration: none;\\n border-radius: 3px\\n}\\n\\n.abs-action-link-button:focus,\\n.abs-action-link-button:active,\\n.block-event .slider-panel .slider .item .action.event:focus,\\n.block-event .slider-panel .slider .item .action.event:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-action-link-button:hover,\\n.block-event .slider-panel .slider .item .action.event:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-action-link-button.disabled,\\n.abs-action-link-button[disabled],\\nfieldset[disabled] .abs-action-link-button,\\n.block-event .slider-panel .slider .item .action.event.disabled,\\n.block-event .slider-panel .slider .item .action.event[disabled],\\nfieldset[disabled] .block-event .slider-panel .slider .item .action.event {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.abs-action-link-button:hover,\\n.abs-action-link-button:active,\\n.abs-action-link-button:focus,\\n.block-event .slider-panel .slider .item .action.event:hover,\\n.block-event .slider-panel .slider .item .action.event:active,\\n.block-event .slider-panel .slider .item .action.event:focus {\\n text-decoration: none\\n}\\n\\n.abs-action-remove,\\n.abs-discount-block .action.check,\\n.popup .actions-toolbar .action.cancel,\\n.paypal-button-widget .paypal-button,\\n.bundle-options-container .action.back,\\n.block.related .action.select,\\n.cart.table-wrapper .actions-toolbar>.action-delete,\\n.cart.table-wrapper .action.help.map,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup,\\n.opc-wrapper .edit-address-link,\\n.opc-block-shipping-information .shipping-information-title .action-edit,\\n.action-auth-toggle,\\n.checkout-payment-method .checkout-billing-address .action-cancel,\\n.checkout-agreements-block .action-show,\\n.gift-options .actions-toolbar .action-cancel,\\n.gift-summary .action-edit,\\n.gift-summary .action-delete,\\n.action-gift,\\n.gift-wrapping-title .action-remove,\\n.wishlist.split.button>.action,\\n.abs-add-fields .action.remove,\\n.paypal-review-discount .action.check,\\n.cart-discount .action.check,\\n.form-giftregistry-share .action.remove,\\n.form-giftregistry-edit .action.remove,\\n.form-add-invitations .action.remove,\\n.form-create-return .action.remove,\\n.form.send.friend .action.remove {\\n line-height: 1.42857143;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline;\\n font-weight: 400;\\n border-radius: 0\\n}\\n\\n.abs-action-button-as-link:visited,\\n.abs-action-remove:visited,\\n.abs-discount-block .action.check:visited,\\n.popup .actions-toolbar .action.cancel:visited,\\n.paypal-button-widget .paypal-button:visited,\\n.bundle-options-container .action.back:visited,\\n.block.related .action.select:visited,\\n.cart.table-wrapper .actions-toolbar>.action-delete:visited,\\n.cart.table-wrapper .action.help.map:visited,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:visited,\\n.opc-wrapper .edit-address-link:visited,\\n.opc-block-shipping-information .shipping-information-title .action-edit:visited,\\n.action-auth-toggle:visited,\\n.checkout-payment-method .checkout-billing-address .action-cancel:visited,\\n.checkout-agreements-block .action-show:visited,\\n.gift-options .actions-toolbar .action-cancel:visited,\\n.gift-summary .action-edit:visited,\\n.gift-summary .action-delete:visited,\\n.action-gift:visited,\\n.gift-wrapping-title .action-remove:visited,\\n.wishlist.split.button>.action:visited,\\n.abs-add-fields .action.remove:visited,\\n.paypal-review-discount .action.check:visited,\\n.cart-discount .action.check:visited,\\n.form-giftregistry-share .action.remove:visited,\\n.form-giftregistry-edit .action.remove:visited,\\n.form-add-invitations .action.remove:visited,\\n.form-create-return .action.remove:visited,\\n.form.send.friend .action.remove:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.abs-action-button-as-link:hover,\\n.abs-action-remove:hover,\\n.abs-discount-block .action.check:hover,\\n.popup .actions-toolbar .action.cancel:hover,\\n.paypal-button-widget .paypal-button:hover,\\n.bundle-options-container .action.back:hover,\\n.block.related .action.select:hover,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover,\\n.cart.table-wrapper .action.help.map:hover,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:hover,\\n.opc-wrapper .edit-address-link:hover,\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover,\\n.action-auth-toggle:hover,\\n.checkout-payment-method .checkout-billing-address .action-cancel:hover,\\n.checkout-agreements-block .action-show:hover,\\n.gift-options .actions-toolbar .action-cancel:hover,\\n.gift-summary .action-edit:hover,\\n.gift-summary .action-delete:hover,\\n.action-gift:hover,\\n.gift-wrapping-title .action-remove:hover,\\n.wishlist.split.button>.action:hover,\\n.abs-add-fields .action.remove:hover,\\n.paypal-review-discount .action.check:hover,\\n.cart-discount .action.check:hover,\\n.form-giftregistry-share .action.remove:hover,\\n.form-giftregistry-edit .action.remove:hover,\\n.form-add-invitations .action.remove:hover,\\n.form-create-return .action.remove:hover,\\n.form.send.friend .action.remove:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.abs-action-button-as-link:active,\\n.abs-action-remove:active,\\n.abs-discount-block .action.check:active,\\n.popup .actions-toolbar .action.cancel:active,\\n.paypal-button-widget .paypal-button:active,\\n.bundle-options-container .action.back:active,\\n.block.related .action.select:active,\\n.cart.table-wrapper .actions-toolbar>.action-delete:active,\\n.cart.table-wrapper .action.help.map:active,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:active,\\n.opc-wrapper .edit-address-link:active,\\n.opc-block-shipping-information .shipping-information-title .action-edit:active,\\n.action-auth-toggle:active,\\n.checkout-payment-method .checkout-billing-address .action-cancel:active,\\n.checkout-agreements-block .action-show:active,\\n.gift-options .actions-toolbar .action-cancel:active,\\n.gift-summary .action-edit:active,\\n.gift-summary .action-delete:active,\\n.action-gift:active,\\n.gift-wrapping-title .action-remove:active,\\n.wishlist.split.button>.action:active,\\n.abs-add-fields .action.remove:active,\\n.paypal-review-discount .action.check:active,\\n.cart-discount .action.check:active,\\n.form-giftregistry-share .action.remove:active,\\n.form-giftregistry-edit .action.remove:active,\\n.form-add-invitations .action.remove:active,\\n.form-create-return .action.remove:active,\\n.form.send.friend .action.remove:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.abs-action-button-as-link:hover,\\n.abs-action-remove:hover,\\n.abs-discount-block .action.check:hover,\\n.popup .actions-toolbar .action.cancel:hover,\\n.paypal-button-widget .paypal-button:hover,\\n.bundle-options-container .action.back:hover,\\n.block.related .action.select:hover,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover,\\n.cart.table-wrapper .action.help.map:hover,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:hover,\\n.opc-wrapper .edit-address-link:hover,\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover,\\n.action-auth-toggle:hover,\\n.checkout-payment-method .checkout-billing-address .action-cancel:hover,\\n.checkout-agreements-block .action-show:hover,\\n.gift-options .actions-toolbar .action-cancel:hover,\\n.gift-summary .action-edit:hover,\\n.gift-summary .action-delete:hover,\\n.action-gift:hover,\\n.gift-wrapping-title .action-remove:hover,\\n.wishlist.split.button>.action:hover,\\n.abs-add-fields .action.remove:hover,\\n.paypal-review-discount .action.check:hover,\\n.cart-discount .action.check:hover,\\n.form-giftregistry-share .action.remove:hover,\\n.form-giftregistry-edit .action.remove:hover,\\n.form-add-invitations .action.remove:hover,\\n.form-create-return .action.remove:hover,\\n.form.send.friend .action.remove:hover {\\n color: #006bb4\\n}\\n\\n.abs-action-button-as-link:hover,\\n.abs-action-button-as-link:active,\\n.abs-action-button-as-link:focus,\\n.abs-action-remove:hover,\\n.abs-action-remove:active,\\n.abs-action-remove:focus,\\n.abs-discount-block .action.check:hover,\\n.abs-discount-block .action.check:active,\\n.abs-discount-block .action.check:focus,\\n.popup .actions-toolbar .action.cancel:hover,\\n.popup .actions-toolbar .action.cancel:active,\\n.popup .actions-toolbar .action.cancel:focus,\\n.paypal-button-widget .paypal-button:hover,\\n.paypal-button-widget .paypal-button:active,\\n.paypal-button-widget .paypal-button:focus,\\n.bundle-options-container .action.back:hover,\\n.bundle-options-container .action.back:active,\\n.bundle-options-container .action.back:focus,\\n.block.related .action.select:hover,\\n.block.related .action.select:active,\\n.block.related .action.select:focus,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover,\\n.cart.table-wrapper .actions-toolbar>.action-delete:active,\\n.cart.table-wrapper .actions-toolbar>.action-delete:focus,\\n.cart.table-wrapper .action.help.map:hover,\\n.cart.table-wrapper .action.help.map:active,\\n.cart.table-wrapper .action.help.map:focus,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:hover,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:active,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:focus,\\n.opc-wrapper .edit-address-link:hover,\\n.opc-wrapper .edit-address-link:active,\\n.opc-wrapper .edit-address-link:focus,\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover,\\n.opc-block-shipping-information .shipping-information-title .action-edit:active,\\n.opc-block-shipping-information .shipping-information-title .action-edit:focus,\\n.action-auth-toggle:hover,\\n.action-auth-toggle:active,\\n.action-auth-toggle:focus,\\n.checkout-payment-method .checkout-billing-address .action-cancel:hover,\\n.checkout-payment-method .checkout-billing-address .action-cancel:active,\\n.checkout-payment-method .checkout-billing-address .action-cancel:focus,\\n.checkout-agreements-block .action-show:hover,\\n.checkout-agreements-block .action-show:active,\\n.checkout-agreements-block .action-show:focus,\\n.gift-options .actions-toolbar .action-cancel:hover,\\n.gift-options .actions-toolbar .action-cancel:active,\\n.gift-options .actions-toolbar .action-cancel:focus,\\n.gift-summary .action-edit:hover,\\n.gift-summary .action-edit:active,\\n.gift-summary .action-edit:focus,\\n.gift-summary .action-delete:hover,\\n.gift-summary .action-delete:active,\\n.gift-summary .action-delete:focus,\\n.action-gift:hover,\\n.action-gift:active,\\n.action-gift:focus,\\n.gift-wrapping-title .action-remove:hover,\\n.gift-wrapping-title .action-remove:active,\\n.gift-wrapping-title .action-remove:focus,\\n.wishlist.split.button>.action:hover,\\n.wishlist.split.button>.action:active,\\n.wishlist.split.button>.action:focus,\\n.abs-add-fields .action.remove:hover,\\n.abs-add-fields .action.remove:active,\\n.abs-add-fields .action.remove:focus,\\n.paypal-review-discount .action.check:hover,\\n.paypal-review-discount .action.check:active,\\n.paypal-review-discount .action.check:focus,\\n.cart-discount .action.check:hover,\\n.cart-discount .action.check:active,\\n.cart-discount .action.check:focus,\\n.form-giftregistry-share .action.remove:hover,\\n.form-giftregistry-share .action.remove:active,\\n.form-giftregistry-share .action.remove:focus,\\n.form-giftregistry-edit .action.remove:hover,\\n.form-giftregistry-edit .action.remove:active,\\n.form-giftregistry-edit .action.remove:focus,\\n.form-add-invitations .action.remove:hover,\\n.form-add-invitations .action.remove:active,\\n.form-add-invitations .action.remove:focus,\\n.form-create-return .action.remove:hover,\\n.form-create-return .action.remove:active,\\n.form-create-return .action.remove:focus,\\n.form.send.friend .action.remove:hover,\\n.form.send.friend .action.remove:active,\\n.form.send.friend .action.remove:focus {\\n background: none;\\n border: 0\\n}\\n\\n.abs-action-button-as-link.disabled,\\n.abs-action-button-as-link[disabled],\\nfieldset[disabled] .abs-action-button-as-link,\\n.abs-action-remove.disabled,\\n.abs-action-remove[disabled],\\nfieldset[disabled] .abs-action-remove,\\n.abs-discount-block .action.check.disabled,\\n.abs-discount-block .action.check[disabled],\\nfieldset[disabled] .abs-discount-block .action.check,\\n.popup .actions-toolbar .action.cancel.disabled,\\n.popup .actions-toolbar .action.cancel[disabled],\\nfieldset[disabled] .popup .actions-toolbar .action.cancel,\\n.paypal-button-widget .paypal-button.disabled,\\n.paypal-button-widget .paypal-button[disabled],\\nfieldset[disabled] .paypal-button-widget .paypal-button,\\n.bundle-options-container .action.back.disabled,\\n.bundle-options-container .action.back[disabled],\\nfieldset[disabled] .bundle-options-container .action.back,\\n.block.related .action.select.disabled,\\n.block.related .action.select[disabled],\\nfieldset[disabled] .block.related .action.select,\\n.cart.table-wrapper .actions-toolbar>.action-delete.disabled,\\n.cart.table-wrapper .actions-toolbar>.action-delete[disabled],\\nfieldset[disabled] .cart.table-wrapper .actions-toolbar>.action-delete,\\n.cart.table-wrapper .action.help.map.disabled,\\n.cart.table-wrapper .action.help.map[disabled],\\nfieldset[disabled] .cart.table-wrapper .action.help.map,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup.disabled,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup[disabled],\\nfieldset[disabled] .checkout-index-index .modal-popup .modal-footer .action-hide-popup,\\n.opc-wrapper .edit-address-link.disabled,\\n.opc-wrapper .edit-address-link[disabled],\\nfieldset[disabled] .opc-wrapper .edit-address-link,\\n.opc-block-shipping-information .shipping-information-title .action-edit.disabled,\\n.opc-block-shipping-information .shipping-information-title .action-edit[disabled],\\nfieldset[disabled] .opc-block-shipping-information .shipping-information-title .action-edit,\\n.action-auth-toggle.disabled,\\n.action-auth-toggle[disabled],\\nfieldset[disabled] .action-auth-toggle,\\n.checkout-payment-method .checkout-billing-address .action-cancel.disabled,\\n.checkout-payment-method .checkout-billing-address .action-cancel[disabled],\\nfieldset[disabled] .checkout-payment-method .checkout-billing-address .action-cancel,\\n.checkout-agreements-block .action-show.disabled,\\n.checkout-agreements-block .action-show[disabled],\\nfieldset[disabled] .checkout-agreements-block .action-show,\\n.gift-options .actions-toolbar .action-cancel.disabled,\\n.gift-options .actions-toolbar .action-cancel[disabled],\\nfieldset[disabled] .gift-options .actions-toolbar .action-cancel,\\n.gift-summary .action-edit.disabled,\\n.gift-summary .action-edit[disabled],\\nfieldset[disabled] .gift-summary .action-edit,\\n.gift-summary .action-delete.disabled,\\n.gift-summary .action-delete[disabled],\\nfieldset[disabled] .gift-summary .action-delete,\\n.action-gift.disabled,\\n.action-gift[disabled],\\nfieldset[disabled] .action-gift,\\n.gift-wrapping-title .action-remove.disabled,\\n.gift-wrapping-title .action-remove[disabled],\\nfieldset[disabled] .gift-wrapping-title .action-remove,\\n.wishlist.split.button>.action.disabled,\\n.wishlist.split.button>.action[disabled],\\nfieldset[disabled] .wishlist.split.button>.action,\\n.abs-add-fields .action.remove.disabled,\\n.abs-add-fields .action.remove[disabled],\\nfieldset[disabled] .abs-add-fields .action.remove,\\n.paypal-review-discount .action.check.disabled,\\n.paypal-review-discount .action.check[disabled],\\nfieldset[disabled] .paypal-review-discount .action.check,\\n.cart-discount .action.check.disabled,\\n.cart-discount .action.check[disabled],\\nfieldset[disabled] .cart-discount .action.check,\\n.form-giftregistry-share .action.remove.disabled,\\n.form-giftregistry-share .action.remove[disabled],\\nfieldset[disabled] .form-giftregistry-share .action.remove,\\n.form-giftregistry-edit .action.remove.disabled,\\n.form-giftregistry-edit .action.remove[disabled],\\nfieldset[disabled] .form-giftregistry-edit .action.remove,\\n.form-add-invitations .action.remove.disabled,\\n.form-add-invitations .action.remove[disabled],\\nfieldset[disabled] .form-add-invitations .action.remove,\\n.form-create-return .action.remove.disabled,\\n.form-create-return .action.remove[disabled],\\nfieldset[disabled] .form-create-return .action.remove,\\n.form.send.friend .action.remove.disabled,\\n.form.send.friend .action.remove[disabled],\\nfieldset[disabled] .form.send.friend .action.remove {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.abs-action-remove:active,\\n.abs-action-remove:not(:focus),\\n.abs-discount-block .action.check:active,\\n.abs-discount-block .action.check:not(:focus),\\n.popup .actions-toolbar .action.cancel:active,\\n.popup .actions-toolbar .action.cancel:not(:focus),\\n.paypal-button-widget .paypal-button:active,\\n.paypal-button-widget .paypal-button:not(:focus),\\n.bundle-options-container .action.back:active,\\n.bundle-options-container .action.back:not(:focus),\\n.block.related .action.select:active,\\n.block.related .action.select:not(:focus),\\n.cart.table-wrapper .actions-toolbar>.action-delete:active,\\n.cart.table-wrapper .actions-toolbar>.action-delete:not(:focus),\\n.cart.table-wrapper .action.help.map:active,\\n.cart.table-wrapper .action.help.map:not(:focus),\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:active,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:not(:focus),\\n.opc-wrapper .edit-address-link:active,\\n.opc-wrapper .edit-address-link:not(:focus),\\n.opc-block-shipping-information .shipping-information-title .action-edit:active,\\n.opc-block-shipping-information .shipping-information-title .action-edit:not(:focus),\\n.action-auth-toggle:active,\\n.action-auth-toggle:not(:focus),\\n.checkout-payment-method .checkout-billing-address .action-cancel:active,\\n.checkout-payment-method .checkout-billing-address .action-cancel:not(:focus),\\n.checkout-agreements-block .action-show:active,\\n.checkout-agreements-block .action-show:not(:focus),\\n.gift-options .actions-toolbar .action-cancel:active,\\n.gift-options .actions-toolbar .action-cancel:not(:focus),\\n.gift-summary .action-edit:active,\\n.gift-summary .action-edit:not(:focus),\\n.gift-summary .action-delete:active,\\n.gift-summary .action-delete:not(:focus),\\n.action-gift:active,\\n.action-gift:not(:focus),\\n.gift-wrapping-title .action-remove:active,\\n.gift-wrapping-title .action-remove:not(:focus),\\n.wishlist.split.button>.action:active,\\n.wishlist.split.button>.action:not(:focus),\\n.abs-add-fields .action.remove:active,\\n.abs-add-fields .action.remove:not(:focus),\\n.paypal-review-discount .action.check:active,\\n.paypal-review-discount .action.check:not(:focus),\\n.cart-discount .action.check:active,\\n.cart-discount .action.check:not(:focus),\\n.form-giftregistry-share .action.remove:active,\\n.form-giftregistry-share .action.remove:not(:focus),\\n.form-giftregistry-edit .action.remove:active,\\n.form-giftregistry-edit .action.remove:not(:focus),\\n.form-add-invitations .action.remove:active,\\n.form-add-invitations .action.remove:not(:focus),\\n.form-create-return .action.remove:active,\\n.form-create-return .action.remove:not(:focus),\\n.form.send.friend .action.remove:active,\\n.form.send.friend .action.remove:not(:focus) {\\n box-shadow: none\\n}\\n\\n.abs-revert-to-action-secondary,\\n.paypal-review .block .actions-toolbar .action.primary,\\n.abs-discount-block .actions-toolbar .action.primary,\\n.abs-discount-block .actions-toolbar .action.cancel,\\n.block-compare .action.primary,\\n.cart-summary .block .actions-toolbar>.primary .action.primary,\\n.cart-summary .form.giftregistry .fieldset .action.primary,\\n.paypal-review-discount .actions-toolbar .action.primary,\\n.paypal-review-discount .actions-toolbar .action.cancel,\\n.cart-discount .actions-toolbar .action.primary,\\n.cart-discount .actions-toolbar .action.cancel {\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-revert-secondary-color:focus,\\n.abs-revert-secondary-color:active,\\n.abs-revert-to-action-secondary:focus,\\n.abs-revert-to-action-secondary:active,\\n.paypal-review .block .actions-toolbar .action.primary:focus,\\n.paypal-review .block .actions-toolbar .action.primary:active,\\n.abs-discount-block .actions-toolbar .action.primary:focus,\\n.abs-discount-block .actions-toolbar .action.primary:active,\\n.abs-discount-block .actions-toolbar .action.cancel:focus,\\n.abs-discount-block .actions-toolbar .action.cancel:active,\\n.block-compare .action.primary:focus,\\n.block-compare .action.primary:active,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:focus,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:active,\\n.cart-summary .form.giftregistry .fieldset .action.primary:focus,\\n.cart-summary .form.giftregistry .fieldset .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.primary:focus,\\n.paypal-review-discount .actions-toolbar .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.cancel:focus,\\n.paypal-review-discount .actions-toolbar .action.cancel:active,\\n.cart-discount .actions-toolbar .action.primary:focus,\\n.cart-discount .actions-toolbar .action.primary:active,\\n.cart-discount .actions-toolbar .action.cancel:focus,\\n.cart-discount .actions-toolbar .action.cancel:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-revert-secondary-color:hover,\\n.abs-revert-to-action-secondary:hover,\\n.paypal-review .block .actions-toolbar .action.primary:hover,\\n.abs-discount-block .actions-toolbar .action.primary:hover,\\n.abs-discount-block .actions-toolbar .action.cancel:hover,\\n.block-compare .action.primary:hover,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:hover,\\n.cart-summary .form.giftregistry .fieldset .action.primary:hover,\\n.paypal-review-discount .actions-toolbar .action.primary:hover,\\n.paypal-review-discount .actions-toolbar .action.cancel:hover,\\n.cart-discount .actions-toolbar .action.primary:hover,\\n.cart-discount .actions-toolbar .action.cancel:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.products-grid.wishlist .product-item .box-tocart .tocart {\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n padding: 7px 15px\\n}\\n\\n.multicheckout .action.primary,\\n.order-review-form .action.primary,\\n.bundle-actions .action.primary.customize,\\n.bundle-options-container .block-bundle-summary .box-tocart .action.primary,\\n.box-tocart .action.tocart,\\n.cart-summary .checkout-methods-items .action.primary.checkout,\\n.block-minicart .block-content>.actions>.primary .action.primary,\\n.methods-shipping .actions-toolbar .action.primary,\\n.block-authentication .action.action-register,\\n.block-authentication .action.action-login,\\n.checkout-payment-method .payment-method-content>.actions-toolbar>.primary .action.primary,\\n.form-address-edit .actions-toolbar .action.primary {\\n line-height: 2.2rem;\\n padding: 14px 17px;\\n font-size: 1.8rem\\n}\\n\\n.multicheckout .item-options dt,\\n.cart.table-wrapper .item-options dt,\\n.block-giftregistry-shared-items .product .item-options dt {\\n clear: left;\\n float: left;\\n margin: 0 10px 5px 0\\n}\\n\\n.multicheckout .item-options dt:after,\\n.cart.table-wrapper .item-options dt:after,\\n.block-giftregistry-shared-items .product .item-options dt:after {\\n content: ': '\\n}\\n\\n.multicheckout .item-options dd,\\n.cart.table-wrapper .item-options dd,\\n.block-giftregistry-shared-items .product .item-options dd {\\n display: inline-block;\\n float: left;\\n margin: 0 0 5px\\n}\\n\\n.actions-toolbar>.primary .action,\\n.actions-toolbar>.secondary .action,\\n.bundle-actions .action.primary.customize,\\n.bundle-options-container .block-bundle-summary .box-tocart .action.primary,\\n.box-tocart .action.tocart {\\n width: 100%\\n}\\n\\n.products-list .product-image-wrapper,\\n.cart.table-wrapper .product-image-wrapper,\\n.minicart-items .product-image-wrapper,\\n.block-giftregistry-shared-items .product-image-wrapper {\\n height: auto;\\n padding: 0 !important\\n}\\n\\n.products-list .product-image-wrapper .product-image-photo,\\n.cart.table-wrapper .product-image-wrapper .product-image-photo,\\n.minicart-items .product-image-wrapper .product-image-photo,\\n.block-giftregistry-shared-items .product-image-wrapper .product-image-photo {\\n position: static\\n}\\n\\n.product.media .product.photo .photo.image {\\n display: block;\\n height: auto;\\n margin: 0 auto;\\n max-width: 100%\\n}\\n\\n.login-container .block .block-title {\\n border-bottom: 1px solid #e8e8e8;\\n font-size: 1.8rem;\\n margin-bottom: 15px;\\n padding-bottom: 12px\\n}\\n\\n.login-container .block .block-title strong {\\n font-weight: 500\\n}\\n\\n.giftregisty-dropdown,\\n.wishlist-dropdown {\\n display: inline-block;\\n position: relative\\n}\\n\\n.abs-dropdown-simple:before,\\n.abs-dropdown-simple:after,\\n.giftregisty-dropdown:before,\\n.giftregisty-dropdown:after,\\n.wishlist-dropdown:before,\\n.wishlist-dropdown:after {\\n content: '';\\n display: table\\n}\\n\\n.abs-dropdown-simple:after,\\n.giftregisty-dropdown:after,\\n.wishlist-dropdown:after {\\n clear: both\\n}\\n\\n.abs-dropdown-simple .action.toggle,\\n.giftregisty-dropdown .action.toggle,\\n.wishlist-dropdown .action.toggle {\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-dropdown-simple .action.toggle:after,\\n.giftregisty-dropdown .action.toggle:after,\\n.wishlist-dropdown .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 5px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-dropdown-simple .action.toggle:hover:after,\\n.giftregisty-dropdown .action.toggle:hover:after,\\n.wishlist-dropdown .action.toggle:hover:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple .action.toggle:active:after,\\n.giftregisty-dropdown .action.toggle:active:after,\\n.wishlist-dropdown .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple .action.toggle.active,\\n.giftregisty-dropdown .action.toggle.active,\\n.wishlist-dropdown .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-dropdown-simple .action.toggle.active:after,\\n.giftregisty-dropdown .action.toggle.active:after,\\n.wishlist-dropdown .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0 0 0 5px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-dropdown-simple .action.toggle.active:hover:after,\\n.giftregisty-dropdown .action.toggle.active:hover:after,\\n.wishlist-dropdown .action.toggle.active:hover:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple .action.toggle.active:active:after,\\n.giftregisty-dropdown .action.toggle.active:active:after,\\n.wishlist-dropdown .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple ul.dropdown,\\n.giftregisty-dropdown ul.dropdown,\\n.wishlist-dropdown ul.dropdown {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 200px;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.abs-dropdown-simple ul.dropdown li,\\n.giftregisty-dropdown ul.dropdown li,\\n.wishlist-dropdown ul.dropdown li {\\n margin: 0;\\n padding: 5px 5px 5px 23px\\n}\\n\\n.abs-dropdown-simple ul.dropdown li:hover,\\n.giftregisty-dropdown ul.dropdown li:hover,\\n.wishlist-dropdown ul.dropdown li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.abs-dropdown-simple ul.dropdown:before,\\n.abs-dropdown-simple ul.dropdown:after,\\n.giftregisty-dropdown ul.dropdown:before,\\n.giftregisty-dropdown ul.dropdown:after,\\n.wishlist-dropdown ul.dropdown:before,\\n.wishlist-dropdown ul.dropdown:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.abs-dropdown-simple ul.dropdown:before,\\n.giftregisty-dropdown ul.dropdown:before,\\n.wishlist-dropdown ul.dropdown:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.abs-dropdown-simple ul.dropdown:after,\\n.giftregisty-dropdown ul.dropdown:after,\\n.wishlist-dropdown ul.dropdown:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.abs-dropdown-simple ul.dropdown:before,\\n.giftregisty-dropdown ul.dropdown:before,\\n.wishlist-dropdown ul.dropdown:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.abs-dropdown-simple ul.dropdown:after,\\n.giftregisty-dropdown ul.dropdown:after,\\n.wishlist-dropdown ul.dropdown:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.abs-dropdown-simple.active,\\n.giftregisty-dropdown.active,\\n.wishlist-dropdown.active {\\n overflow: visible\\n}\\n\\n.abs-dropdown-simple.active ul.dropdown,\\n.giftregisty-dropdown.active ul.dropdown,\\n.wishlist-dropdown.active ul.dropdown {\\n display: block\\n}\\n\\n.giftregisty-dropdown ul.items,\\n.wishlist-dropdown ul.items {\\n padding: 6px 0\\n}\\n\\n.multicheckout .table-wrapper .col .qty .input-text,\\n.column .block-addbysku .qty .qty,\\n.bundle-options-container .input-text.qty,\\n.box-tocart .input-text.qty,\\n.account .data.table-return-items .qty .input-text,\\n.table-giftregistry-items .field.qty .qty,\\n.block-giftregistry-shared-items .qty .qty,\\n.table.grouped .col.qty .control.qty .qty,\\n.block-wishlist-info-items .input-text.qty,\\n.account .table-wrapper .data.table.wishlist .box-tocart .qty,\\n.products-grid.wishlist .product-item .box-tocart input.qty,\\n.sidebar .block-addbysku .fieldset .fields .field.qty .qty {\\n text-align: center;\\n width: 54px\\n}\\n\\n.block,\\n.customer-review .product-details,\\n.block-banners,\\n.block-banners-inline {\\n margin-bottom: 40px\\n}\\n\\n.sidebar .product-items .action.delete,\\n.table-comparison .cell.remove .action.delete,\\n.block-compare .action.delete,\\n.filter-current .action.remove {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-remove-button-for-blocks>span,\\n.sidebar .product-items .action.delete>span,\\n.table-comparison .cell.remove .action.delete>span,\\n.block-compare .action.delete>span,\\n.filter-current .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-remove-button-for-blocks:before,\\n.sidebar .product-items .action.delete:before,\\n.table-comparison .cell.remove .action.delete:before,\\n.block-compare .action.delete:before,\\n.filter-current .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 15px;\\n color: #757575;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-remove-button-for-blocks:hover:before,\\n.sidebar .product-items .action.delete:hover:before,\\n.table-comparison .cell.remove .action.delete:hover:before,\\n.block-compare .action.delete:hover:before,\\n.filter-current .action.remove:hover:before {\\n color: #494949\\n}\\n\\n.abs-remove-button-for-blocks:active:before,\\n.sidebar .product-items .action.delete:active:before,\\n.table-comparison .cell.remove .action.delete:active:before,\\n.block-compare .action.delete:active:before,\\n.filter-current .action.remove:active:before {\\n color: #999\\n}\\n\\n.product-item-name,\\n.product.name a {\\n font-weight: 400\\n}\\n\\n.product-item-name>a,\\n.product.name a>a {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.abs-product-link>a:visited,\\n.product-item-name>a:visited,\\n.product.name a>a:visited {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.abs-product-link>a:hover,\\n.product-item-name>a:hover,\\n.product.name a>a:hover {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.abs-product-link>a:active,\\n.product-item-name>a:active,\\n.product.name a>a:active {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.abs-like-link:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.abs-like-link:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.abs-like-link:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.form.giftregistry.items .actions-toolbar,\\n.form.wishlist.items .actions-toolbar {\\n margin-left: 0\\n}\\n\\n.abs-add-fields .action.remove,\\n.form-giftregistry-share .action.remove,\\n.form-giftregistry-edit .action.remove,\\n.form-add-invitations .action.remove,\\n.form-create-return .action.remove,\\n.form.send.friend .action.remove {\\n line-height: normal;\\n margin-left: 73%;\\n position: absolute;\\n top: 34px;\\n width: auto\\n}\\n\\n.form-giftregistry-share .fieldset .field .control,\\n.form-giftregistry-edit .fieldset .field .control,\\n.form-add-invitations .fieldset .field .control,\\n.form-create-return .fieldset .field .control,\\n.form.send.friend .fieldset .field .control {\\n width: 70%\\n}\\n\\n.form-giftregistry-share .fieldset .actions-toolbar>.secondary,\\n.form-giftregistry-edit .fieldset .actions-toolbar>.secondary,\\n.form-add-invitations .fieldset .actions-toolbar>.secondary,\\n.form-create-return .fieldset .actions-toolbar>.secondary,\\n.form.send.friend .fieldset .actions-toolbar>.secondary {\\n float: left\\n}\\n\\n.form-giftregistry-share .fieldset .actions-toolbar>.secondary .action.add,\\n.form-giftregistry-edit .fieldset .actions-toolbar>.secondary .action.add,\\n.form-add-invitations .fieldset .actions-toolbar>.secondary .action.add,\\n.form-create-return .fieldset .actions-toolbar>.secondary .action.add,\\n.form.send.friend .fieldset .actions-toolbar>.secondary .action.add {\\n margin-top: 30px\\n}\\n\\n.form-giftregistry-share .fieldset .fields .actions-toolbar,\\n.form-giftregistry-edit .fieldset .fields .actions-toolbar,\\n.form-add-invitations .fieldset .fields .actions-toolbar,\\n.form-create-return .fieldset .fields .actions-toolbar,\\n.form.send.friend .fieldset .fields .actions-toolbar {\\n margin: 0\\n}\\n\\n.form-giftregistry-share .additional,\\n.form-giftregistry-edit .additional,\\n.form-add-invitations .additional,\\n.form-create-return .additional,\\n.form.send.friend .additional {\\n margin-top: 55px;\\n position: relative\\n}\\n\\n.form-giftregistry-share .message.notice,\\n.form-giftregistry-edit .message.notice,\\n.form-add-invitations .message.notice,\\n.form-create-return .message.notice,\\n.form.send.friend .message.notice {\\n margin: 30px 0 0\\n}\\n\\n.order-details-items .order-items .order-gift-message:not(.expanded-content) {\\n height: 0;\\n visibility: hidden\\n}\\n\\n.multicheckout .table-wrapper .col .label,\\n.multicheckout .block .methods-shipping .item-content .fieldset>.legend,\\n.opc-wrapper .form-discount .field .label,\\n.bundle-options-container .block-bundle-summary .product-image-container,\\n.bundle-options-container .block-bundle-summary .product.name,\\n.bundle-options-container .block-bundle-summary .stock,\\n.product-item-actions .actions-secondary>.action span,\\n.special-price .price-label,\\n.table-comparison .cell.label.remove span,\\n.table-comparison .cell.label.product span,\\n.block.related .field.choice .label,\\n.cart.table-wrapper .col.qty .label,\\n.minicart-wrapper .action.showcart .text,\\n.minicart-wrapper .action.showcart .counter-label,\\n.checkout-index-index .page-title-wrapper,\\n.checkout-payment-method .field-select-billing>.label,\\n.checkout-payment-method .payments .legend,\\n.checkout-payment-method .ccard .legend,\\n.fieldset .fullname>.label,\\n.field.street .field.additional .label,\\n.block-balance .balance-price-label,\\n.page-product-downloadable .product-options-wrapper .fieldset .legend.links-title,\\n.page-product-giftcard .fieldset.giftcard>.legend,\\n.opc-wrapper .form-giftcard-account .field .label,\\n.form-add-invitations .fields .label,\\n.filter-options-content .filter-count-label,\\n.table-comparison .wishlist.split.button>.action.split span,\\n.product-items .wishlist.split.button>.action.split span,\\n.page-multiple-wishlist .page-title-wrapper .page-title,\\n.block-wishlist-search-form .form-wishlist-search .fieldset>.legend,\\n.block.newsletter .label,\\n.review-date .review-details-label,\\n.customer-review .product-details .rating-average-label,\\n.block-reorder .product-item .label,\\n.action.skip:not(:focus),\\n.page-header .switcher .label,\\n.page-footer .switcher .label,\\n.products-grid.wishlist .product-item .comment-box .label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-items .product.options .toggle>span,\\n.shipping-policy-block.field-tooltip .field-tooltip-action span {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto\\n}\\n\\n.abs-add-clearfix:before,\\n.abs-add-clearfix:after,\\n.abs-add-fields .fieldset .actions-toolbar:before,\\n.abs-add-fields .fieldset .actions-toolbar:after,\\n.payment-method-braintree .hosted-date-wrap:before,\\n.payment-method-braintree .hosted-date-wrap:after,\\n.multicheckout .item-options:before,\\n.multicheckout .item-options:after,\\n.multicheckout .block:before,\\n.multicheckout .block:after,\\n.multicheckout .block-content:before,\\n.multicheckout .block-content:after,\\n.bundle-options-container .product-options-wrapper .field.choice .label:before,\\n.bundle-options-container .product-options-wrapper .field.choice .label:after,\\n.toolbar:before,\\n.toolbar:after,\\n.sidebar .product-items-images:before,\\n.sidebar .product-items-images:after,\\n.cart.table-wrapper .actions-toolbar:before,\\n.cart.table-wrapper .actions-toolbar:after,\\n.cart.table-wrapper .item-options:before,\\n.cart.table-wrapper .item-options:after,\\n.minicart-items .product-item>.product:before,\\n.minicart-items .product-item>.product:after,\\n.checkout-container:before,\\n.checkout-container:after,\\n.checkout-onepage-success:before,\\n.checkout-onepage-success:after,\\n.opc-estimated-wrapper:before,\\n.opc-estimated-wrapper:after,\\n.opc-wrapper .field.addresses:before,\\n.opc-wrapper .field.addresses:after,\\n.page-product-downloadable .product-add-form:before,\\n.page-product-downloadable .product-add-form:after,\\n.gift-item-block .content:before,\\n.gift-item-block .content:after,\\n.order-details-items .order-gift-message:before,\\n.order-details-items .order-gift-message:after,\\n.order-details-items .block-order-details-gift-message:before,\\n.order-details-items .block-order-details-gift-message:after,\\n.block-giftregistry-shared-items .product .item-options:before,\\n.block-giftregistry-shared-items .product .item-options:after,\\n.gift-wrapping-list:before,\\n.gift-wrapping-list:after,\\n.opc-wrapper .data.table .gift-wrapping .content:before,\\n.opc-wrapper .data.table .gift-wrapping .content:after,\\n.table-order-items .gift-wrapping .content:before,\\n.table-order-items .gift-wrapping .content:after,\\n.order-options .product:before,\\n.order-options .product:after,\\n.map-popup .map-info-price:before,\\n.map-popup .map-info-price:after,\\n.customer-review .product-details:before,\\n.customer-review .product-details:after,\\n.form-create-return .actions-toolbar:before,\\n.form-create-return .actions-toolbar:after,\\n.header.content:before,\\n.header.content:after,\\n.form-giftregistry-share .fieldset .actions-toolbar:before,\\n.form-giftregistry-share .fieldset .actions-toolbar:after,\\n.form-giftregistry-edit .fieldset .actions-toolbar:before,\\n.form-giftregistry-edit .fieldset .actions-toolbar:after,\\n.form-add-invitations .fieldset .actions-toolbar:before,\\n.form-add-invitations .fieldset .actions-toolbar:after,\\n.form-create-return .fieldset .actions-toolbar:before,\\n.form-create-return .fieldset .actions-toolbar:after,\\n.form.send.friend .fieldset .actions-toolbar:before,\\n.form.send.friend .fieldset .actions-toolbar:after {\\n content: '';\\n display: table\\n}\\n\\n.abs-add-clearfix:after,\\n.abs-add-fields .fieldset .actions-toolbar:after,\\n.payment-method-braintree .hosted-date-wrap:after,\\n.multicheckout .item-options:after,\\n.multicheckout .block:after,\\n.multicheckout .block-content:after,\\n.bundle-options-container .product-options-wrapper .field.choice .label:after,\\n.toolbar:after,\\n.sidebar .product-items-images:after,\\n.cart.table-wrapper .actions-toolbar:after,\\n.cart.table-wrapper .item-options:after,\\n.minicart-items .product-item>.product:after,\\n.checkout-container:after,\\n.checkout-onepage-success:after,\\n.opc-estimated-wrapper:after,\\n.opc-wrapper .field.addresses:after,\\n.page-product-downloadable .product-add-form:after,\\n.gift-item-block .content:after,\\n.order-details-items .order-gift-message:after,\\n.order-details-items .block-order-details-gift-message:after,\\n.block-giftregistry-shared-items .product .item-options:after,\\n.gift-wrapping-list:after,\\n.opc-wrapper .data.table .gift-wrapping .content:after,\\n.table-order-items .gift-wrapping .content:after,\\n.order-options .product:after,\\n.map-popup .map-info-price:after,\\n.customer-review .product-details:after,\\n.form-create-return .actions-toolbar:after,\\n.header.content:after,\\n.form-giftregistry-share .fieldset .actions-toolbar:after,\\n.form-giftregistry-edit .fieldset .actions-toolbar:after,\\n.form-add-invitations .fieldset .actions-toolbar:after,\\n.form-create-return .fieldset .actions-toolbar:after,\\n.form.send.friend .fieldset .actions-toolbar:after {\\n clear: both\\n}\\n\\n.abs-field-date .control,\\n.abs-field-tooltip,\\n.columns .column.main,\\n.columns .sidebar-main,\\n.columns .sidebar-additional,\\n.column .block-addbysku .sku,\\n.product-item,\\n.sidebar .product-items-images .product-item,\\n.search-autocomplete,\\n.cart-summary,\\n.opc-wrapper .shipping-address-item,\\n.shipping-policy-block.field-tooltip .field-tooltip-content,\\n.opc-block-summary,\\n.block-event .slider-panel .slider .item .action.show,\\n.sidebar .block-addbysku .fieldset .fields .field.sku,\\n.form.search.advanced .fields.range .field.date .control,\\n.field .control._with-tooltip,\\n.form-giftregistry-edit .field.date .control {\\n box-sizing: border-box\\n}\\n\\n.abs-navigation-icon:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 34px;\\n line-height: 1.2;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-split-button:before,\\n.abs-split-button:after {\\n content: '';\\n display: table\\n}\\n\\n.abs-split-button:after {\\n clear: both\\n}\\n\\n.abs-split-button .action.split {\\n float: left;\\n margin: 0\\n}\\n\\n.abs-split-button .action.toggle {\\n float: right;\\n margin: 0\\n}\\n\\n.abs-split-button button.action.split {\\n border-bottom-right-radius: 0;\\n border-top-right-radius: 0\\n}\\n\\n.abs-split-button button+.action.toggle {\\n border-bottom-left-radius: 0;\\n border-left: 0;\\n border-top-left-radius: 0\\n}\\n\\n.abs-split-button .action.toggle {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-split-button .action.toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-split-button .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-split-button .action.toggle:hover:after {\\n color: inherit\\n}\\n\\n.abs-split-button .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.abs-split-button .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-split-button .action.toggle.active>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-split-button .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-split-button .action.toggle.active:hover:after {\\n color: inherit\\n}\\n\\n.abs-split-button .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.abs-split-button .items {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 100%;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.abs-split-button .items li {\\n margin: 0;\\n padding: 3px 5px\\n}\\n\\n.abs-split-button .items li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.abs-split-button .items:before,\\n.abs-split-button .items:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.abs-split-button .items:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.abs-split-button .items:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.abs-split-button .items:before {\\n right: 10px;\\n top: -12px\\n}\\n\\n.abs-split-button .items:after {\\n right: 9px;\\n top: -14px\\n}\\n\\n.abs-split-button.active {\\n overflow: visible\\n}\\n\\n.abs-split-button.active .items {\\n display: block\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action,\\n.product-item-actions .actions-secondary>.action,\\n.product-social-links .action.tocompare,\\n.wishlist.split.button>.action.split,\\n.product-social-links .action.mailto.friend,\\n.product-social-links .action.towishlist,\\n.block-bundle-summary .action.towishlist,\\n.product-item .action.towishlist,\\n.table-comparison .action.towishlist {\\n color: #666;\\n font-weight: 600;\\n letter-spacing: .05em;\\n text-transform: uppercase;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-actions-addto:before,\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action:before,\\n.product-item-actions .actions-secondary>.action:before,\\n.product-social-links .action.tocompare:before,\\n.wishlist.split.button>.action.split:before,\\n.product-social-links .action.mailto.friend:before,\\n.product-social-links .action.towishlist:before,\\n.block-bundle-summary .action.towishlist:before,\\n.product-item .action.towishlist:before,\\n.table-comparison .action.towishlist:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: inherit;\\n font-family: 'luma-icons';\\n margin: -2px 5px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action:hover,\\n.product-item-actions .actions-secondary>.action:hover,\\n.product-social-links .action.tocompare:hover,\\n.wishlist.split.button>.action.split:hover,\\n.product-social-links .action.mailto.friend:hover,\\n.product-social-links .action.towishlist:hover,\\n.block-bundle-summary .action.towishlist:hover,\\n.product-item .action.towishlist:hover,\\n.table-comparison .action.towishlist:hover {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action:before,\\n.product-item-actions .actions-secondary>.action:before,\\n.product-social-links .action.tocompare:before,\\n.wishlist.split.button>.action.split:before,\\n.product-social-links .action.mailto.friend:before,\\n.product-social-links .action.towishlist:before,\\n.block-bundle-summary .action.towishlist:before,\\n.product-item .action.towishlist:before,\\n.table-comparison .action.towishlist:before {\\n width: 18px\\n}\\n\\n.bundle-options-container .block-bundle-summary .box-tocart,\\n.box-tocart {\\n margin: 0 0 30px\\n}\\n\\n.abs-cart-block>.title,\\n.minicart-items .product .toggle,\\n.abs-discount-block .block>.title,\\n.cart-summary .block>.title,\\n.paypal-review-discount .block>.title,\\n.cart-discount .block>.title {\\n border-top: 1px solid #ccc;\\n cursor: pointer;\\n margin-bottom: 0;\\n position: relative;\\n padding: 10px 40px 10px 15px;\\n display: block;\\n text-decoration: none\\n}\\n\\n.abs-cart-block>.title:after,\\n.minicart-items .product .toggle:after,\\n.abs-discount-block .block>.title:after,\\n.cart-summary .block>.title:after,\\n.paypal-review-discount .block>.title:after,\\n.cart-discount .block>.title:after {\\n position: absolute;\\n right: 20px;\\n top: 10px\\n}\\n\\n.abs-toggling-title>span,\\n.abs-cart-block>.title>span,\\n.minicart-items .product .toggle>span,\\n.abs-discount-block .block>.title>span,\\n.cart-summary .block>.title>span,\\n.paypal-review-discount .block>.title>span,\\n.cart-discount .block>.title>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-toggling-title:after,\\n.abs-cart-block>.title:after,\\n.minicart-items .product .toggle:after,\\n.abs-discount-block .block>.title:after,\\n.cart-summary .block>.title:after,\\n.paypal-review-discount .block>.title:after,\\n.cart-discount .block>.title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-discount-block .block,\\n.cart-summary .block,\\n.paypal-review-discount .block,\\n.cart-discount .block {\\n margin: 0\\n}\\n\\n.abs-discount-block .block>.title:after,\\n.cart-summary .block>.title:after,\\n.paypal-review-discount .block>.title:after,\\n.cart-discount .block>.title:after {\\n color: #858585\\n}\\n\\n.abs-discount-block .block .content,\\n.cart-summary .block .content,\\n.paypal-review-discount .block .content,\\n.cart-discount .block .content {\\n display: none;\\n padding: 5px 15px 23px;\\n position: relative\\n}\\n\\n.abs-cart-block.active>.title:after,\\n.abs-discount-block .block.active>.title:after,\\n.cart-summary .block.active>.title:after,\\n.paypal-review-discount .block.active>.title:after,\\n.cart-discount .block.active>.title:after {\\n content: '\\\\E621'\\n}\\n\\n.abs-discount-block .block.active .content,\\n.cart-summary .block.active .content,\\n.paypal-review-discount .block.active .content,\\n.cart-discount .block.active .content {\\n display: block\\n}\\n\\n.multicheckout .table-wrapper .cart-price {\\n color: #7d7d7d;\\n font-size: 1.6rem;\\n font-weight: 700\\n}\\n\\n.multicheckout .table-wrapper .product-item-name {\\n font-size: 1.8rem;\\n font-weight: 300;\\n margin: 0\\n}\\n\\n.abs-account-blocks .block-title,\\n.multicheckout .block-title,\\n.multicheckout .block-content .title,\\n.account .legend,\\n.form-giftregistry-search .legend,\\n.block-giftregistry-results .block-title,\\n.block-giftregistry-shared-items .block-title,\\n.block-wishlist-search-form .block-title,\\n.block-wishlist-search-results .block-title,\\n.customer-review .review-details .title,\\n.multicheckout .block-title,\\n.paypal-review .block .block-title,\\n.account .column.main .block:not(.widget) .block-title,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title,\\n.sales-guest-view .column.main .block:not(.widget) .block-title {\\n border-bottom: 1px solid #c6c6c6;\\n margin-bottom: 25px;\\n padding-bottom: 10px\\n}\\n\\n.abs-account-blocks .block-title>strong,\\n.abs-account-blocks .block-title>span,\\n.multicheckout .block-title>strong,\\n.multicheckout .block-title>span,\\n.multicheckout .block-content .title>strong,\\n.multicheckout .block-content .title>span,\\n.account .legend>strong,\\n.account .legend>span,\\n.form-giftregistry-search .legend>strong,\\n.form-giftregistry-search .legend>span,\\n.block-giftregistry-results .block-title>strong,\\n.block-giftregistry-results .block-title>span,\\n.block-giftregistry-shared-items .block-title>strong,\\n.block-giftregistry-shared-items .block-title>span,\\n.block-wishlist-search-form .block-title>strong,\\n.block-wishlist-search-form .block-title>span,\\n.block-wishlist-search-results .block-title>strong,\\n.block-wishlist-search-results .block-title>span,\\n.customer-review .review-details .title>strong,\\n.customer-review .review-details .title>span,\\n.multicheckout .block-title>strong,\\n.multicheckout .block-title>span,\\n.paypal-review .block .block-title>strong,\\n.paypal-review .block .block-title>span,\\n.account .column.main .block:not(.widget) .block-title>strong,\\n.account .column.main .block:not(.widget) .block-title>span,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title>strong,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title>span,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title>strong,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title>span,\\n.sales-guest-view .column.main .block:not(.widget) .block-title>strong,\\n.sales-guest-view .column.main .block:not(.widget) .block-title>span {\\n font-size: 2.2rem;\\n font-weight: 300\\n}\\n\\n.block-addresses-list address,\\n.box-billing-address .box-content,\\n.box-shipping-address .box-content,\\n.box-address-billing .box-content,\\n.box-address-shipping .box-content,\\n.box-information .box-content,\\n.box-newsletter .box-content {\\n line-height: 24px\\n}\\n\\n.order-details-items tfoot td {\\n background: #f5f5f5\\n}\\n\\n.paypal-review .table-paypal-review-items .col.price .price-including-tax,\\n.paypal-review .table-paypal-review-items .col.price .price-excluding-tax,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-including-tax,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-excluding-tax,\\n.cart.table-wrapper .col.price .price-including-tax,\\n.cart.table-wrapper .col.price .price-excluding-tax,\\n.cart.table-wrapper .col.subtotal .price-including-tax,\\n.cart.table-wrapper .col.subtotal .price-excluding-tax,\\n.cart.table-wrapper .col.msrp .price-including-tax,\\n.cart.table-wrapper .col.msrp .price-excluding-tax,\\n.order-details-items .col.price .price-including-tax,\\n.order-details-items .col.price .price-excluding-tax,\\n.order-details-items .col.subtotal .price-including-tax,\\n.order-details-items .col.subtotal .price-excluding-tax {\\n color: #666;\\n font-size: 1.8rem;\\n display: block;\\n line-height: 1;\\n white-space: nowrap\\n}\\n\\n.paypal-review .table-paypal-review-items .col.price .price-including-tax .price,\\n.paypal-review .table-paypal-review-items .col.price .price-excluding-tax .price,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-including-tax .price,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-excluding-tax .price,\\n.cart.table-wrapper .col.price .price-including-tax .price,\\n.cart.table-wrapper .col.price .price-excluding-tax .price,\\n.cart.table-wrapper .col.subtotal .price-including-tax .price,\\n.cart.table-wrapper .col.subtotal .price-excluding-tax .price,\\n.cart.table-wrapper .col.msrp .price-including-tax .price,\\n.cart.table-wrapper .col.msrp .price-excluding-tax .price,\\n.order-details-items .col.price .price-including-tax .price,\\n.order-details-items .col.price .price-excluding-tax .price,\\n.order-details-items .col.subtotal .price-including-tax .price,\\n.order-details-items .col.subtotal .price-excluding-tax .price {\\n font-weight: 700\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax,\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-excluding-tax,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-excluding-tax,\\n.cart-summary .price-including-tax,\\n.cart-summary .price-excluding-tax,\\n.gift-summary .price-including-tax,\\n.gift-summary .price-excluding-tax,\\n.gift-options .price-including-tax,\\n.gift-options .price-excluding-tax {\\n font-size: 1.4rem;\\n display: inline-block\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax+.price-excluding-tax,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax+.price-excluding-tax,\\n.cart-summary .price-including-tax+.price-excluding-tax,\\n.gift-summary .price-including-tax+.price-excluding-tax,\\n.gift-options .price-including-tax+.price-excluding-tax {\\n font-size: 1.1rem;\\n display: inline-block\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax+.price-excluding-tax:before,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax+.price-excluding-tax:before,\\n.cart-summary .price-including-tax+.price-excluding-tax:before,\\n.gift-summary .price-including-tax+.price-excluding-tax:before,\\n.gift-options .price-including-tax+.price-excluding-tax:before {\\n content: '(' attr(data-label) ': '\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax+.price-excluding-tax:after,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax+.price-excluding-tax:after,\\n.cart-summary .price-including-tax+.price-excluding-tax:after,\\n.gift-summary .price-including-tax+.price-excluding-tax:after,\\n.gift-options .price-including-tax+.price-excluding-tax:after {\\n content: ')'\\n}\\n\\n.price-including-tax .cart-tax-total,\\n.price-excluding-tax .cart-tax-total,\\n.paypal-review .table-paypal-review-items .cart-tax-total,\\n.cart.table-wrapper .cart-tax-total,\\n.order-details-items .cart-tax-total {\\n cursor: pointer;\\n padding-right: 10px;\\n position: relative;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-tax-total:after,\\n.price-including-tax .cart-tax-total:after,\\n.price-excluding-tax .cart-tax-total:after,\\n.paypal-review .table-paypal-review-items .cart-tax-total:after,\\n.cart.table-wrapper .cart-tax-total:after,\\n.order-details-items .cart-tax-total:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 8px;\\n line-height: 8px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.price-including-tax .cart-tax-total:after,\\n.price-excluding-tax .cart-tax-total:after,\\n.paypal-review .table-paypal-review-items .cart-tax-total:after,\\n.cart.table-wrapper .cart-tax-total:after,\\n.order-details-items .cart-tax-total:after {\\n position: absolute;\\n right: -2px;\\n top: 4px\\n}\\n\\n.abs-tax-total-expanded:after,\\n.price-including-tax .cart-tax-total-expanded:after,\\n.price-excluding-tax .cart-tax-total-expanded:after,\\n.paypal-review .table-paypal-review-items .cart-tax-total-expanded:after,\\n.cart.table-wrapper .cart-tax-total-expanded:after,\\n.order-details-items .cart-tax-total-expanded:after {\\n content: '\\\\E621'\\n}\\n\\n.giftcard-account .form-giftcard-redeem .fieldset,\\n.form-giftregistry-create .fieldset {\\n margin-bottom: 20px\\n}\\n\\n.review-ratings .rating-summary,\\n.customer-review .review-details .customer-review-rating .rating-summary {\\n display: table-row\\n}\\n\\n.review-ratings .rating-label,\\n.customer-review .review-details .customer-review-rating .rating-label {\\n display: table-cell;\\n padding-bottom: 5px;\\n padding-right: 25px;\\n padding-top: 1px;\\n vertical-align: top\\n}\\n\\n.review-ratings .rating-result,\\n.customer-review .review-details .customer-review-rating .rating-result {\\n display: table-cell;\\n vertical-align: top\\n}\\n\\n.block-addresses-list .items.addresses .item.actions .action:after,\\n.account .data.table .col.actions .action:after,\\n[class^='sales-guest-'] .data.table .col.actions .action:after,\\n.sales-guest-view .data.table .col.actions .action:after,\\n.block .box-actions .action:after {\\n border-left: 1px solid #a6a6a6;\\n content: '';\\n display: inline-block;\\n height: 12px;\\n margin: 0 10px;\\n vertical-align: -1px\\n}\\n\\n.block-addresses-list .items.addresses .item.actions .action:last-child:after,\\n.account .data.table .col.actions .action:last-child:after,\\n[class^='sales-guest-'] .data.table .col.actions .action:last-child:after,\\n.sales-guest-view .data.table .col.actions .action:last-child:after,\\n.block .box-actions .action:last-child:after {\\n display: none\\n}\\n\\n.multicheckout .block-title>.action,\\n.paypal-review .block .block-title>.action,\\n.account .column.main .block:not(.widget) .block-title>.action,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title>.action,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title>.action,\\n.sales-guest-view .column.main .block:not(.widget) .block-title>.action {\\n margin-left: 15px\\n}\\n\\n.multicheckout .box-title,\\n.paypal-review .block .box-title,\\n.account .column.main .block:not(.widget) .box-title,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .box-title,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .box-title,\\n.sales-guest-view .column.main .block:not(.widget) .box-title {\\n display: inline-block;\\n margin: 0 0 10px\\n}\\n\\n.multicheckout .box-title>span,\\n.paypal-review .block .box-title>span,\\n.account .column.main .block:not(.widget) .box-title>span,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .box-title>span,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .box-title>span,\\n.sales-guest-view .column.main .block:not(.widget) .box-title>span {\\n font-size: 1.6rem\\n}\\n\\n.multicheckout .box-title>.action,\\n.paypal-review .block .box-title>.action,\\n.account .column.main .block:not(.widget) .box-title>.action,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .box-title>.action,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .box-title>.action,\\n.sales-guest-view .column.main .block:not(.widget) .box-title>.action {\\n font-weight: 400;\\n margin-left: 10px\\n}\\n\\n.block-minicart .subtotal .label:after,\\n.minicart-items .details-qty .label:after,\\n.minicart-items .price-minicart .label:after,\\n.order-details-items .order-gift-message .label:after,\\n.order-details-items .block-order-details-gift-message .label:after,\\n.block-wishlist-management .wishlist-select .wishlist-name-label:after {\\n content: ': '\\n}\\n\\n.abs-dropdown-items-new .action.new,\\n.wishlist.split.button .action.new,\\n.wishlist-dropdown .action.new {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-icon-add:before,\\n.abs-dropdown-items-new .action.new:before,\\n.wishlist.split.button .action.new:before,\\n.wishlist-dropdown .action.new:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 10px;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.split.button .items .item:last-child:hover,\\n.wishlist-dropdown .items .item:last-child:hover {\\n background: #e8e8e8\\n}\\n\\n.wishlist.split.button .action.new:before,\\n.wishlist-dropdown .action.new:before {\\n margin-left: -17px;\\n margin-right: 5px\\n}\\n\\n.abs-sidebar-totals .table-caption,\\n.multicheckout .block .methods-shipping .item-content .fieldset>.legend+br,\\n.multicheckout .hidden,\\n[class^='multishipping-'] .nav-sections,\\n[class^='multishipping-'] .nav-toggle,\\n.sidebar .subtitle,\\n.cart-summary .block .fieldset.estimate>.legend,\\n.cart-summary .block .fieldset.estimate>.legend+br,\\n.minicart-items .product-item-details .weee[data-label] .label,\\n.page-product-giftcard .fieldset.giftcard>.legend+br,\\n.order-details-items .order-items .order-gift-message .action.close,\\n.no-display,\\n.cart-totals .table-caption,\\n.opc-block-summary .table-totals .table-caption {\\n display: none\\n}\\n\\n.return-status,\\n.order-status {\\n border: 2px solid #ccc;\\n border-radius: 3px;\\n display: inline-block;\\n margin: 3px 0 0;\\n padding: 2px 10px;\\n text-transform: uppercase;\\n vertical-align: top\\n}\\n\\n.magento-rma-returns-returns .page-main .page-title-wrapper .page-title,\\n.magento-rma-returns-view .page-main .page-title-wrapper .page-title,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .page-title,\\n.account .page-main .page-title-wrapper .page-title,\\n[class^='sales-guest-'] .page-main .page-title-wrapper .page-title,\\n.sales-guest-view .page-main .page-title-wrapper .page-title,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .page-title {\\n margin-right: 25px\\n}\\n\\n.magento-rma-returns-returns .page-main .page-title-wrapper .order-date,\\n.magento-rma-returns-view .page-main .page-title-wrapper .order-date,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date,\\n.account .page-main .page-title-wrapper .order-date,\\n[class^='sales-guest-'] .page-main .page-title-wrapper .order-date,\\n.sales-guest-view .page-main .page-title-wrapper .order-date,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date {\\n font-size: 16px;\\n margin-bottom: 10px\\n}\\n\\n.magento-rma-returns-returns .page-main .page-title-wrapper .order-date .label,\\n.magento-rma-returns-view .page-main .page-title-wrapper .order-date .label,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date .label,\\n.account .page-main .page-title-wrapper .order-date .label,\\n[class^='sales-guest-'] .page-main .page-title-wrapper .order-date .label,\\n.sales-guest-view .page-main .page-title-wrapper .order-date .label,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date .label {\\n display: none\\n}\\n\\n.account .column.main .order-details-items .table-wrapper .data.table,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table,\\n.block-giftregistry-results .data.table,\\n.block-wishlist-search-results .data.table,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table {\\n border: none\\n}\\n\\n.abs-table-striped>tbody>tr:nth-child(even)>td,\\n.abs-table-striped>tbody>tr:nth-child(even)>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th,\\n.block-giftregistry-results .data.table>tbody>tr:nth-child(even)>td,\\n.block-giftregistry-results .data.table>tbody>tr:nth-child(even)>th,\\n.block-wishlist-search-results .data.table>tbody>tr:nth-child(even)>td,\\n.block-wishlist-search-results .data.table>tbody>tr:nth-child(even)>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th {\\n background: #f6f6f6\\n}\\n\\n.abs-table-striped>thead>tr>th,\\n.abs-table-striped>tbody>tr>th,\\n.abs-table-striped>tfoot>tr>th,\\n.abs-table-striped>thead>tr>td,\\n.abs-table-striped>tbody>tr>td,\\n.abs-table-striped>tfoot>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td,\\n.block-giftregistry-results .data.table>thead>tr>th,\\n.block-giftregistry-results .data.table>tbody>tr>th,\\n.block-giftregistry-results .data.table>tfoot>tr>th,\\n.block-giftregistry-results .data.table>thead>tr>td,\\n.block-giftregistry-results .data.table>tbody>tr>td,\\n.block-giftregistry-results .data.table>tfoot>tr>td,\\n.block-wishlist-search-results .data.table>thead>tr>th,\\n.block-wishlist-search-results .data.table>tbody>tr>th,\\n.block-wishlist-search-results .data.table>tfoot>tr>th,\\n.block-wishlist-search-results .data.table>thead>tr>td,\\n.block-wishlist-search-results .data.table>tbody>tr>td,\\n.block-wishlist-search-results .data.table>tfoot>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td {\\n border: none\\n}\\n\\n.abs-table-striped>thead>tr>th,\\n.abs-table-striped>thead>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.block-giftregistry-results .data.table>thead>tr>th,\\n.block-giftregistry-results .data.table>thead>tr>td,\\n.block-wishlist-search-results .data.table>thead>tr>th,\\n.block-wishlist-search-results .data.table>thead>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>td {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.block-compare .counter,\\n.block-wishlist .counter {\\n color: #6d6d6d;\\n font-size: 1.2rem;\\n white-space: nowrap\\n}\\n\\n.block-compare .counter:before,\\n.block-wishlist .counter:before {\\n content: '('\\n}\\n\\n.block-compare .counter:after,\\n.block-wishlist .counter:after {\\n content: ')'\\n}\\n\\n.block-compare .block-title,\\n.block-reorder .block-title,\\n.widget .block-title,\\n.block-wishlist .block-title {\\n margin: 0 0 20px\\n}\\n\\n.block-compare .block-title strong,\\n.block-reorder .block-title strong,\\n.widget .block-title strong,\\n.block-wishlist .block-title strong {\\n font-size: 18px;\\n font-weight: 300\\n}\\n\\n.block-cart-failed,\\n.cart-container .form-cart {\\n margin-bottom: 20px\\n}\\n\\n.block-cart-failed .actions.main .continue,\\n.block-cart-failed .actions.main .clear,\\n.cart-container .form-cart .actions.main .continue,\\n.cart-container .form-cart .actions.main .clear {\\n display: none\\n}\\n\\n.form.search.advanced .fields.range .field.date .control,\\n.form-giftregistry-edit .field.date .control {\\n position: relative\\n}\\n\\n.abs-field-date input,\\n.field.date ._has-datepicker,\\n.field-dob ._has-datepicker,\\n.form-giftregistry-search .fields-specific-options .datetime-picker,\\n.form.search.advanced .fields.range .field.date input,\\n.form-giftregistry-edit .field.date input {\\n margin-right: 10px;\\n width: calc(100% - 33px)\\n}\\n\\n.field .control._with-tooltip {\\n position: relative\\n}\\n\\n.field .control._with-tooltip input {\\n margin-right: 10px;\\n width: calc(100% - 36px)\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content,\\n.shipping-policy-block.field-tooltip .field-tooltip-content {\\n right: -10px;\\n top: 40px;\\n left: auto\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:before,\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:after,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:before,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:after {\\n border: 10px solid transparent;\\n height: 0;\\n width: 0;\\n margin-top: -21px;\\n right: 10px;\\n left: auto;\\n top: 0\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:before,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:before {\\n border-bottom-color: #666\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:after,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:after {\\n border-bottom-color: #f4f4f4;\\n top: 1px\\n}\\n\\n.opc-wrapper .step-title,\\n.opc-block-shipping-information .shipping-information-title,\\n.opc-block-summary>.title,\\n.checkout-agreements-items .checkout-agreements-item-title {\\n padding-bottom: 10px;\\n color: #333;\\n font-weight: 300;\\n font-size: 2.6rem\\n}\\n\\n.cart-totals,\\n.opc-block-summary .table-totals {\\n border-top: 1px solid #ccc;\\n padding-top: 10px\\n}\\n\\n.cart-totals tbody .mark,\\n.cart-totals tfoot .mark,\\n.opc-block-summary .table-totals tbody .mark,\\n.opc-block-summary .table-totals tfoot .mark {\\n border: 0;\\n font-weight: 400;\\n padding: 6px 0\\n}\\n\\n.cart-totals tbody .amount,\\n.cart-totals tfoot .amount,\\n.opc-block-summary .table-totals tbody .amount,\\n.opc-block-summary .table-totals tfoot .amount {\\n border: 0;\\n font-weight: 400;\\n padding: 6px 0 6px 14px;\\n text-align: right;\\n white-space: nowrap\\n}\\n\\n.cart-totals .grand th,\\n.cart-totals .grand td,\\n.opc-block-summary .table-totals .grand th,\\n.opc-block-summary .table-totals .grand td {\\n padding: 11px 0\\n}\\n\\n.cart-totals .grand strong,\\n.opc-block-summary .table-totals .grand strong {\\n display: inline-block;\\n font-weight: 600;\\n padding: 3px 0 0\\n}\\n\\n.cart-totals .grand .mark,\\n.opc-block-summary .table-totals .grand .mark {\\n font-size: 1.8rem;\\n border-top: 1px solid #ccc;\\n padding-right: 10px\\n}\\n\\n.cart-totals .grand .amount,\\n.opc-block-summary .table-totals .grand .amount {\\n font-size: 1.8rem;\\n border-top: 1px solid #ccc\\n}\\n\\n.cart-totals .msrp,\\n.opc-block-summary .table-totals .msrp {\\n margin-bottom: 10px\\n}\\n\\n.cart-totals tbody tr:last-child td,\\n.opc-block-summary .table-totals tbody tr:last-child td {\\n padding-bottom: 19px\\n}\\n\\n.cart-totals .totals-tax-summary .mark,\\n.cart-totals .totals-tax-summary .amount,\\n.opc-block-summary .table-totals .totals-tax-summary .mark,\\n.opc-block-summary .table-totals .totals-tax-summary .amount {\\n border-bottom: 1px solid #ccc;\\n border-top: 1px solid #ccc;\\n cursor: pointer\\n}\\n\\n.cart-totals .totals-tax-summary .amount .price,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price {\\n padding-right: 20px;\\n position: relative;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-sidebar-totals .totals-tax-summary .amount .price>span,\\n.cart-totals .totals-tax-summary .amount .price>span,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-sidebar-totals .totals-tax-summary .amount .price:after,\\n.cart-totals .totals-tax-summary .amount .price:after,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.cart-totals .totals-tax-summary .amount .price:after,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price:after {\\n position: absolute;\\n right: 3px;\\n top: 3px\\n}\\n\\n.cart-totals .totals-tax-summary.expanded .mark,\\n.cart-totals .totals-tax-summary.expanded .amount,\\n.opc-block-summary .table-totals .totals-tax-summary.expanded .mark,\\n.opc-block-summary .table-totals .totals-tax-summary.expanded .amount {\\n border-bottom: 0\\n}\\n\\n.abs-sidebar-totals .totals-tax-summary.expanded .amount .price:after,\\n.cart-totals .totals-tax-summary.expanded .amount .price:after,\\n.opc-block-summary .table-totals .totals-tax-summary.expanded .amount .price:after {\\n content: '\\\\E621'\\n}\\n\\n.cart-totals .totals-tax-details,\\n.opc-block-summary .table-totals .totals-tax-details {\\n border-bottom: 1px solid #ccc;\\n display: none\\n}\\n\\n.cart-totals .totals-tax-details.shown,\\n.opc-block-summary .table-totals .totals-tax-details.shown {\\n display: table-row\\n}\\n\\n.cart-totals .table-wrapper,\\n.opc-block-summary .table-totals .table-wrapper {\\n margin-bottom: 0\\n}\\n\\n.paypal-review-discount .block>.title strong,\\n.cart-discount .block>.title strong {\\n color: #1979c3;\\n font-weight: 400\\n}\\n\\n.paypal-review-discount .actions-toolbar,\\n.cart-discount .actions-toolbar {\\n display: table-cell;\\n vertical-align: top;\\n width: 1%\\n}\\n\\n.paypal-review-discount .actions-toolbar .action.primary,\\n.paypal-review-discount .actions-toolbar .action.cancel,\\n.cart-discount .actions-toolbar .action.primary,\\n.cart-discount .actions-toolbar .action.cancel {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n margin: 0 0 0 -1px;\\n white-space: nowrap;\\n width: auto\\n}\\n\\n.paypal-review-discount .actions-toolbar .secondary,\\n.cart-discount .actions-toolbar .secondary {\\n bottom: 5px;\\n left: 15px;\\n position: absolute\\n}\\n\\n.paypal-review-discount .action.check,\\n.cart-discount .action.check {\\n font-weight: 400\\n}\\n\\n.paypal-review-discount .fieldset,\\n.cart-discount .fieldset {\\n display: table;\\n width: 100%\\n}\\n\\n.paypal-review-discount .fieldset>.field>.label,\\n.cart-discount .fieldset>.field>.label {\\n display: none\\n}\\n\\n.paypal-review-discount .field,\\n.cart-discount .field {\\n display: table-cell\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../fonts/opensans/light/opensans-300.woff2 */ 238) + \") format('woff2');\\n font-weight: 300;\\n font-style: normal\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../fonts/opensans/regular/opensans-400.woff2 */ 239) + \") format('woff2');\\n font-weight: 400;\\n font-style: normal\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../fonts/opensans/semibold/opensans-600.woff2 */ 240) + \") format('woff2');\\n font-weight: 600;\\n font-style: normal\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../fonts/opensans/bold/opensans-700.woff2 */ 241) + \") format('woff2');\\n font-weight: 700;\\n font-style: normal\\n}\\n\\n.items {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.columns {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-wrap: wrap;\\n flex-wrap: wrap;\\n box-sizing: border-box\\n}\\n\\n.columns:after {\\n clear: both;\\n content: ' ';\\n display: block;\\n height: 0;\\n overflow: hidden;\\n visibility: hidden\\n}\\n\\n.columns .column.main {\\n padding-bottom: 40px;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n -webkit-flex-grow: 1;\\n flex-grow: 1;\\n -ms-flex-order: 1;\\n -webkit-order: 1;\\n order: 1;\\n width: 100%\\n}\\n\\n.columns .sidebar-main {\\n -webkit-flex-grow: 1;\\n flex-grow: 1;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n -ms-flex-order: 1;\\n -webkit-order: 1;\\n order: 1\\n}\\n\\n.columns .sidebar-additional {\\n -webkit-flex-grow: 1;\\n flex-grow: 1;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n -ms-flex-order: 2;\\n -webkit-order: 2;\\n order: 2\\n}\\n\\n.table-wrapper {\\n margin-bottom: 20px\\n}\\n\\ntable>caption {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.table tfoot {\\n background: #f5f5f5\\n}\\n\\n.table tfoot>tr:first-child th,\\n.table tfoot>tr:first-child td {\\n border-top: 1px solid #ccc;\\n padding-top: 20px\\n}\\n\\n.table tfoot th,\\n.table tfoot td {\\n border: 0\\n}\\n\\n.table tfoot .mark {\\n font-weight: 400;\\n text-align: right\\n}\\n\\n.message.info {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fdf0d5;\\n color: #6f4400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.info a {\\n color: #006bb4\\n}\\n\\n.message.info a:hover {\\n color: #006bb4\\n}\\n\\n.message.info a:active {\\n color: #006bb4\\n}\\n\\n.message.info>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #c07600;\\n content: '\\\\E602';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.error {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fae5e5;\\n color: #e02b27;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.error a {\\n color: #006bb4\\n}\\n\\n.message.error a:hover {\\n color: #006bb4\\n}\\n\\n.message.error a:active {\\n color: #006bb4\\n}\\n\\n.message.error>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #b30000;\\n content: '\\\\E61F';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.warning {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fdf0d5;\\n color: #6f4400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.warning a {\\n color: #006bb4\\n}\\n\\n.message.warning a:hover {\\n color: #006bb4\\n}\\n\\n.message.warning a:active {\\n color: #006bb4\\n}\\n\\n.message.warning>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #c07600;\\n content: '\\\\E602';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.notice {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fdf0d5;\\n color: #6f4400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.notice a {\\n color: #006bb4\\n}\\n\\n.message.notice a:hover {\\n color: #006bb4\\n}\\n\\n.message.notice a:active {\\n color: #006bb4\\n}\\n\\n.message.notice>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #c07600;\\n content: '\\\\E602';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.success {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #e5efe5;\\n color: #006400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.success a {\\n color: #006bb4\\n}\\n\\n.message.success a:hover {\\n color: #006bb4\\n}\\n\\n.message.success a:active {\\n color: #006bb4\\n}\\n\\n.message.success>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #006400;\\n content: '\\\\E60E';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.panel.header .links,\\n.panel.header .switcher {\\n display: none\\n}\\n\\n.nav-sections {\\n background: #f0f0f0\\n}\\n\\n.nav-toggle {\\n display: inline-block;\\n text-decoration: none;\\n cursor: pointer;\\n display: block;\\n font-size: 0;\\n left: 15px;\\n position: absolute;\\n top: 15px;\\n z-index: 14\\n}\\n\\n.nav-toggle:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 28px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E609';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.nav-toggle:hover:before {\\n color: #333\\n}\\n\\n.nav-toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.tooltip.wrapper {\\n position: relative\\n}\\n\\n.tooltip.wrapper .tooltip.content {\\n background: #fff;\\n max-width: 360px;\\n min-width: 210px;\\n padding: 12px 16px;\\n z-index: 100;\\n display: none;\\n position: absolute;\\n text-align: left;\\n color: #333;\\n line-height: 1.4;\\n border: 1px solid #bbb;\\n margin-top: 5px;\\n left: 0;\\n top: 100%\\n}\\n\\n.tooltip.wrapper .tooltip.content:after,\\n.tooltip.wrapper .tooltip.content:before {\\n border: solid transparent;\\n content: '';\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.tooltip.wrapper .tooltip.content:after {\\n border-width: 5px;\\n border-color: transparent\\n}\\n\\n.tooltip.wrapper .tooltip.content:before {\\n border-width: 6px;\\n border-color: transparent\\n}\\n\\n.tooltip.wrapper .tooltip.content:after,\\n.tooltip.wrapper .tooltip.content:before {\\n bottom: 100%\\n}\\n\\n.tooltip.wrapper .tooltip.content:after {\\n border-bottom-color: #fff;\\n left: 15px;\\n margin-left: -5px\\n}\\n\\n.tooltip.wrapper .tooltip.content:before {\\n border-bottom-color: #bbb;\\n left: 15px;\\n margin-left: -6px\\n}\\n\\n.tooltip.wrapper tooltip.toggle {\\n cursor: help\\n}\\n\\n.tooltip.wrapper tooltip.toggle:hover+.tooltip.content,\\n.tooltip.wrapper tooltip.toggle:focus+.tooltip.content,\\n.tooltip.wrapper:hover .tooltip.content {\\n display: block\\n}\\n\\n.tooltip.wrapper .tooltip.content dl {\\n margin-bottom: 0\\n}\\n\\n.tooltip.wrapper .tooltip.content dd {\\n white-space: normal\\n}\\n\\n.tooltip.wrapper .tooltip.content .subtitle {\\n display: inline-block;\\n font-size: 16px;\\n font-weight: 500;\\n margin-bottom: 15px\\n}\\n\\n.tooltip.wrapper .tooltip.content .label {\\n margin-top: 10px\\n}\\n\\n.tooltip.wrapper .tooltip.content .label:first-child {\\n margin-top: 0\\n}\\n\\n.tooltip.wrapper .tooltip.content .values {\\n margin: 0\\n}\\n\\n.ui-tooltip {\\n position: absolute;\\n z-index: 9999\\n}\\n\\n.load.indicator {\\n background-color: rgba(255, 255, 255, 0.7);\\n z-index: 9999;\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n position: absolute\\n}\\n\\n.load.indicator:before {\\n border-radius: 5px;\\n height: 160px;\\n width: 160px;\\n bottom: 0;\\n box-sizing: border-box;\\n content: '';\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.load.indicator>span {\\n display: none\\n}\\n\\n.loading-mask {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 100;\\n background: rgba(255, 255, 255, 0.5)\\n}\\n\\n.loading-mask .loader>img {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 100\\n}\\n\\n.loading-mask .loader>p {\\n display: none\\n}\\n\\nbody>.loading-mask {\\n z-index: 9999\\n}\\n\\n._block-content-loading {\\n position: relative\\n}\\n\\n.fieldset {\\n border: 0;\\n margin: 0 0 40px;\\n padding: 0;\\n letter-spacing: -.31em\\n}\\n\\n.fieldset>* {\\n letter-spacing: normal\\n}\\n\\n.fieldset>.legend {\\n margin: 0 0 20px;\\n padding: 0 0 10px;\\n width: 100%;\\n box-sizing: border-box;\\n float: left;\\n font-weight: 300;\\n line-height: 1.2;\\n font-size: 1.8rem\\n}\\n\\n.fieldset>.legend+br {\\n clear: both;\\n display: block;\\n height: 0;\\n overflow: hidden;\\n visibility: hidden\\n}\\n\\n.fieldset:last-child {\\n margin-bottom: 0\\n}\\n\\n.fieldset>.field,\\n.fieldset>.fields>.field {\\n margin: 0 0 20px\\n}\\n\\n.fieldset>.field>.label,\\n.fieldset>.fields>.field>.label {\\n margin: 0 0 8px;\\n display: inline-block\\n}\\n\\n.fieldset>.field:last-child,\\n.fieldset>.fields>.field:last-child {\\n margin-bottom: 0\\n}\\n\\n.fieldset>.field>.label,\\n.fieldset>.fields>.field>.label {\\n font-weight: 600\\n}\\n\\n.fieldset>.field>.label+br,\\n.fieldset>.fields>.field>.label+br {\\n display: none\\n}\\n\\n.fieldset>.field .choice input,\\n.fieldset>.fields>.field .choice input {\\n vertical-align: top\\n}\\n\\n.fieldset>.field .fields.group:before,\\n.fieldset>.fields>.field .fields.group:before,\\n.fieldset>.field .fields.group:after,\\n.fieldset>.fields>.field .fields.group:after {\\n content: '';\\n display: table\\n}\\n\\n.fieldset>.field .fields.group:after,\\n.fieldset>.fields>.field .fields.group:after {\\n clear: both\\n}\\n\\n.fieldset>.field .fields.group .field,\\n.fieldset>.fields>.field .fields.group .field {\\n box-sizing: border-box;\\n float: left\\n}\\n\\n.fieldset>.field .fields.group.group-2 .field,\\n.fieldset>.fields>.field .fields.group.group-2 .field {\\n width: 50% !important\\n}\\n\\n.fieldset>.field .fields.group.group-3 .field,\\n.fieldset>.fields>.field .fields.group.group-3 .field {\\n width: 33.3% !important\\n}\\n\\n.fieldset>.field .fields.group.group-4 .field,\\n.fieldset>.fields>.field .fields.group.group-4 .field {\\n width: 25% !important\\n}\\n\\n.fieldset>.field .fields.group.group-5 .field,\\n.fieldset>.fields>.field .fields.group.group-5 .field {\\n width: 20% !important\\n}\\n\\n.fieldset>.field .addon,\\n.fieldset>.fields>.field .addon {\\n display: -webkit-inline-flex;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -webkit-flex-wrap: nowrap;\\n flex-wrap: nowrap;\\n padding: 0;\\n width: 100%\\n}\\n\\n.fieldset>.field .addon textarea,\\n.fieldset>.fields>.field .addon textarea,\\n.fieldset>.field .addon select,\\n.fieldset>.fields>.field .addon select,\\n.fieldset>.field .addon input,\\n.fieldset>.fields>.field .addon input {\\n -ms-flex-order: 2;\\n -webkit-order: 2;\\n order: 2;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n display: inline-block;\\n margin: 0;\\n width: auto\\n}\\n\\n.fieldset>.field .addon .addbefore,\\n.fieldset>.fields>.field .addon .addbefore,\\n.fieldset>.field .addon .addafter,\\n.fieldset>.fields>.field .addon .addafter {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 0 9px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box;\\n -ms-flex-order: 3;\\n -webkit-order: 3;\\n order: 3;\\n display: inline-block;\\n vertical-align: middle;\\n white-space: nowrap;\\n width: auto\\n}\\n\\n.fieldset>.field .addon .addbefore:disabled,\\n.fieldset>.fields>.field .addon .addbefore:disabled,\\n.fieldset>.field .addon .addafter:disabled,\\n.fieldset>.fields>.field .addon .addafter:disabled {\\n opacity: .5\\n}\\n\\n.fieldset>.field .addon .addbefore::-moz-placeholder,\\n.fieldset>.fields>.field .addon .addbefore::-moz-placeholder,\\n.fieldset>.field .addon .addafter::-moz-placeholder,\\n.fieldset>.fields>.field .addon .addafter::-moz-placeholder {\\n color: #575757\\n}\\n\\n.fieldset>.field .addon .addbefore::-webkit-input-placeholder,\\n.fieldset>.fields>.field .addon .addbefore::-webkit-input-placeholder,\\n.fieldset>.field .addon .addafter::-webkit-input-placeholder,\\n.fieldset>.fields>.field .addon .addafter::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\n.fieldset>.field .addon .addbefore:-ms-input-placeholder,\\n.fieldset>.fields>.field .addon .addbefore:-ms-input-placeholder,\\n.fieldset>.field .addon .addafter:-ms-input-placeholder,\\n.fieldset>.fields>.field .addon .addafter:-ms-input-placeholder {\\n color: #575757\\n}\\n\\n.fieldset>.field .addon .addbefore,\\n.fieldset>.fields>.field .addon .addbefore {\\n float: left;\\n -ms-flex-order: 1;\\n -webkit-order: 1;\\n order: 1\\n}\\n\\n.fieldset>.field .additional,\\n.fieldset>.fields>.field .additional {\\n margin-top: 10px\\n}\\n\\n.fieldset>.field.required>.label:after,\\n.fieldset>.fields>.field.required>.label:after,\\n.fieldset>.field._required>.label:after,\\n.fieldset>.fields>.field._required>.label:after {\\n content: '*';\\n color: #e02b27;\\n font-size: 1.2rem;\\n margin: 0 0 0 5px\\n}\\n\\n.fieldset>.field .note,\\n.fieldset>.fields>.field .note {\\n font-size: 1.2rem;\\n margin: 3px 0 0;\\n padding: 0;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.fieldset>.field .note:before,\\n.fieldset>.fields>.field .note:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 12px;\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.fieldset>.field.no-label>.label,\\n.fieldset>.fields>.field.no-label>.label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.fieldset>.field.choice .label,\\n.fieldset>.fields>.field.choice .label {\\n display: inline;\\n font-weight: normal;\\n margin: 0\\n}\\n\\n.column:not(.main) .fieldset>.field .label,\\n.column:not(.main) .fieldset>.fields>.field .label {\\n font-weight: normal\\n}\\n\\n.fieldset>.field .field.choice,\\n.fieldset>.fields>.field .field.choice {\\n margin-bottom: 10px\\n}\\n\\n.fieldset>.field .field.choice:last-child,\\n.fieldset>.fields>.field .field.choice:last-child {\\n margin-bottom: 0\\n}\\n\\n.legend+.fieldset,\\n.legend+div {\\n clear: both\\n}\\n\\n.legend>span {\\n margin-right: 5px\\n}\\n\\nfieldset.field {\\n border: 0;\\n padding: 0\\n}\\n\\n.field.date .time-picker {\\n display: inline-block;\\n margin-top: 10px;\\n white-space: nowrap\\n}\\n\\n.field .message.warning {\\n margin-top: 10px\\n}\\n\\nselect {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -ms-appearance: none;\\n appearance: none;\\n background: #fff url(\" + __webpack_require__(/*! ../images/select-bg.svg */ 242) + \") no-repeat 100% 45%;\\n background-size: 30px 60px;\\n border: 1px solid #ccc;\\n height: 32px;\\n padding-right: 25px;\\n text-indent: .01em;\\n text-overflow: ''\\n}\\n\\nselect::-ms-expand {\\n display: none\\n}\\n\\n.lt-ie10 select {\\n background-image: none;\\n padding-right: 4px\\n}\\n\\n.field-error,\\ndiv.mage-error[generated] {\\n margin-top: 7px\\n}\\n\\n.field-error {\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\n.field .tooltip {\\n position: relative\\n}\\n\\n.field .tooltip .tooltip-content {\\n background: #fff;\\n max-width: 360px;\\n min-width: 210px;\\n padding: 12px 16px;\\n z-index: 100;\\n display: none;\\n position: absolute;\\n text-align: left;\\n color: #333;\\n line-height: 1.4;\\n border: 1px solid #bbb;\\n margin-left: 5px;\\n left: 100%;\\n top: 0\\n}\\n\\n.field .tooltip .tooltip-content:after,\\n.field .tooltip .tooltip-content:before {\\n border: solid transparent;\\n content: '';\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.field .tooltip .tooltip-content:after {\\n border-width: 5px;\\n border-color: transparent\\n}\\n\\n.field .tooltip .tooltip-content:before {\\n border-width: 6px;\\n border-color: transparent\\n}\\n\\n.field .tooltip .tooltip-content:after,\\n.field .tooltip .tooltip-content:before {\\n right: 100%\\n}\\n\\n.field .tooltip .tooltip-content:after {\\n border-right-color: #fff;\\n margin-top: -5px;\\n top: 15px\\n}\\n\\n.field .tooltip .tooltip-content:before {\\n border-right-color: #bbb;\\n margin-top: -6px;\\n top: 15px\\n}\\n\\n.field .tooltip .tooltip-toggle {\\n cursor: help\\n}\\n\\n.field .tooltip .tooltip-toggle:hover+.tooltip-content,\\n.field .tooltip .tooltip-toggle:focus+.tooltip-content,\\n.field .tooltip:hover .tooltip-content {\\n display: block\\n}\\n\\n.field .tooltip .tooltip-content {\\n min-width: 200px;\\n white-space: normal\\n}\\n\\ninput:focus~.tooltip .tooltip-content,\\nselect:focus~.tooltip .tooltip-content {\\n display: block\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-shadow: none;\\n font-weight: 400;\\n display: block;\\n text-decoration: none;\\n display: inline-block;\\n margin-top: -4px;\\n vertical-align: middle\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:focus,\\n._has-datepicker~.ui-datepicker-trigger:active {\\n background: none;\\n border: none\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:hover {\\n background: none;\\n border: none\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger.disabled,\\n._has-datepicker~.ui-datepicker-trigger[disabled],\\nfieldset[disabled] ._has-datepicker~.ui-datepicker-trigger {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 23px;\\n line-height: 23px;\\n color: #7d7d7d;\\n content: '\\\\E612';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:focus {\\n box-shadow: none;\\n outline: 0\\n}\\n\\n.sidebar .fieldset {\\n margin: 0\\n}\\n\\n.sidebar .fieldset>.field:not(.choice):not(:last-child),\\n.sidebar .fieldset .fields>.field:not(:last-child) {\\n margin: 0 0 20px\\n}\\n\\n.sidebar .fieldset>.field:not(.choice) .label,\\n.sidebar .fieldset .fields>.field .label {\\n margin: 0 0 4px;\\n padding: 0 0 5px;\\n text-align: left;\\n width: 100%\\n}\\n\\n.sidebar .fieldset>.field:not(.choice) .control,\\n.sidebar .fieldset .fields>.field .control {\\n width: 100%\\n}\\n\\n@font-face {\\n font-family: 'luma-icons';\\n src: url(\" + __webpack_require__(/*! ../fonts/Luma-Icons.woff2 */ 243) + \") format('woff2');\\n font-weight: normal;\\n font-style: normal\\n}\\n\\nbutton,\\na.action.primary {\\n border-radius: 3px\\n}\\n\\nbutton:not(.primary) {\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\nbutton:not(.primary):active {\\n box-shadow: inset 0 1px 0 0 rgba(204, 204, 204, 0.8), inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\nbody:not(._keyfocus) button:focus {\\n box-shadow: none\\n}\\n\\na.action.primary {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\na.action.primary:hover,\\na.action.primary:active,\\na.action.primary:focus {\\n text-decoration: none\\n}\\n\\n.action.primary {\\n background-image: none;\\n background: #1979c3;\\n border: 1px solid #1979c3;\\n color: #fff;\\n cursor: pointer;\\n display: inline-block;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n box-sizing: border-box;\\n vertical-align: middle\\n}\\n\\n.action.primary:focus,\\n.action.primary:active {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action.primary:hover {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action.primary.disabled,\\n.action.primary[disabled],\\nfieldset[disabled] .action.primary {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.product.data.items {\\n margin: 0;\\n padding: 0;\\n border-bottom: 1px solid #ccc;\\n margin-bottom: 20px;\\n margin-left: -15px;\\n margin-right: -15px\\n}\\n\\n.product.data.items>.item.title {\\n box-sizing: border-box;\\n float: none;\\n width: 100%\\n}\\n\\n.product.data.items>.item.title>.switch {\\n display: block\\n}\\n\\n.product.data.items>.item.content {\\n box-sizing: border-box;\\n display: block;\\n float: none;\\n margin: 0\\n}\\n\\n.product.data.items>.item.content:before,\\n.product.data.items>.item.content:after {\\n content: '';\\n display: table\\n}\\n\\n.product.data.items>.item.content:after {\\n clear: both\\n}\\n\\n.product.data.items>.item.content.active {\\n display: block\\n}\\n\\n.product.data.items>.item.title {\\n margin: 0\\n}\\n\\n.product.data.items>.item.title>.switch {\\n border-top: 1px solid #ccc;\\n height: 40px;\\n padding: 1px 10px 1px 10px;\\n font-weight: 600;\\n line-height: 40px;\\n font-size: 1.4rem;\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title>.switch:visited {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title>.switch:hover {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title>.switch:active {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title:not(.disabled)>.switch:active,\\n.product.data.items>.item.title.active>.switch,\\n.product.data.items>.item.title.active>.switch:focus,\\n.product.data.items>.item.title.active>.switch:hover {\\n padding-bottom: 1px\\n}\\n\\n.product.data.items>.item.content {\\n background: #fff;\\n margin: 0;\\n padding: 10px 10px 30px\\n}\\n\\n.product.data.items .item.title a {\\n position: relative;\\n text-decoration: none\\n}\\n\\n.product.data.items .item.title a:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 14px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.product.data.items .item.title a:after {\\n position: absolute;\\n right: 10px;\\n top: 1px\\n}\\n\\n.product.data.items .item.title.active a:after {\\n content: '\\\\E621'\\n}\\n\\n.product.data.items .value p:last-child {\\n margin-bottom: 0\\n}\\n\\n.product.data.items .table-wrapper {\\n margin: 0\\n}\\n\\n.pages>.label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages .items {\\n font-size: 0;\\n letter-spacing: -1px;\\n line-height: 0;\\n white-space: nowrap;\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n display: inline-block;\\n font-weight: 400\\n}\\n\\n.pages .item {\\n font-size: 1.2rem;\\n font-size: 12px;\\n letter-spacing: normal;\\n line-height: 30px;\\n margin: 0 8px 0 0;\\n display: inline-block\\n}\\n\\n.pages .item .label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages a.page {\\n color: #006bb4;\\n display: inline-block;\\n padding: 0 5px;\\n text-decoration: none\\n}\\n\\n.pages a.page:visited {\\n color: #006bb4\\n}\\n\\n.pages a.page:hover {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.pages a.page:active {\\n color: #ff5501\\n}\\n\\n.pages strong.page {\\n background: #e5e5e5;\\n font-size: 1.2rem;\\n font-size: 12px;\\n letter-spacing: normal;\\n line-height: 30px;\\n color: #333;\\n display: inline-block;\\n font-weight: 700;\\n padding: 0 5px\\n}\\n\\n.pages .action {\\n background: #f0f0f0;\\n border: 1px solid #ccc;\\n color: #7d7d7d;\\n display: inline-block;\\n padding: 0;\\n text-decoration: none\\n}\\n\\n.pages .action:visited {\\n color: #7d7d7d\\n}\\n\\n.pages .action:hover {\\n background: #dedede;\\n color: #7d7d7d;\\n text-decoration: none\\n}\\n\\n.pages .action:active {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.pages .action.next:visited:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages .action.next:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #7d7d7d;\\n content: '\\\\E608';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.pages .action.next:hover:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.pages .action.previous:visited:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages .action.previous:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #7d7d7d;\\n content: '\\\\E617';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.pages .action.previous:hover:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action {\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3);\\n border-radius: 3px;\\n padding: 0 8px\\n}\\n\\n.pages .action.previous {\\n margin-right: 8px\\n}\\n\\n.pages .action.next {\\n margin-left: 8px\\n}\\n\\n.actions-toolbar>.primary,\\n.actions-toolbar>.secondary {\\n margin-bottom: 10px;\\n text-align: center\\n}\\n\\n.actions-toolbar>.primary .action,\\n.actions-toolbar>.secondary .action {\\n margin-bottom: 10px\\n}\\n\\n.actions-toolbar>.primary .action:last-child,\\n.actions-toolbar>.secondary .action:last-child {\\n margin-bottom: 0\\n}\\n\\n.actions-toolbar>.primary:last-child,\\n.actions-toolbar>.secondary:last-child {\\n margin-bottom: 0\\n}\\n\\n.actions-toolbar>.secondary .action.back {\\n display: none\\n}\\n\\n.breadcrumbs {\\n margin: 0 0 15px\\n}\\n\\n.breadcrumbs .items {\\n font-size: 1.2rem;\\n color: #707070;\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.breadcrumbs .items>li {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.breadcrumbs .item {\\n margin: 0\\n}\\n\\n.breadcrumbs a {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.breadcrumbs a:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.breadcrumbs a:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.breadcrumbs a:active {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.breadcrumbs strong {\\n font-weight: 400\\n}\\n\\n.breadcrumbs .item:not(:last-child) {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.breadcrumbs .item:not(:last-child):after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 18px;\\n content: '\\\\E608';\\n font-family: 'luma-icons';\\n margin: 0 10px;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.ui-dialog.popup .action.close {\\n position: absolute;\\n height: 40px;\\n right: 0;\\n top: 0;\\n width: 40px;\\n z-index: 1001;\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.ui-dialog.popup .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.ui-dialog.popup .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #8c8c8c;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.ui-dialog.popup .action.close:hover:before {\\n color: #737373\\n}\\n\\n.ui-dialog.popup .action.close:active:before {\\n color: #737373\\n}\\n\\n.ui-dialog.popup .action.close:focus,\\n.ui-dialog.popup .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.ui-dialog.popup .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.ui-dialog.popup .action.close.disabled,\\n.ui-dialog.popup .action.close[disabled],\\nfieldset[disabled] .ui-dialog.popup .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.popup .actions-toolbar .action.cancel {\\n font-weight: 400\\n}\\n\\n.popup-pointer {\\n margin-left: -14px;\\n position: absolute;\\n top: -14px\\n}\\n\\n.popup-pointer:before,\\n.popup-pointer:after {\\n content: '';\\n position: absolute;\\n display: block;\\n width: 0;\\n height: 0;\\n border-bottom-style: solid\\n}\\n\\n.popup-pointer:before {\\n left: 2px;\\n top: 2px;\\n border: solid 6px;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.popup-pointer:after {\\n left: 1px;\\n top: 0px;\\n border: solid 7px;\\n border-color: transparent transparent #aeaeae transparent;\\n z-index: 98\\n}\\n\\n.price-tier_price .price-excluding-tax,\\n.price-tier_price .price-including-tax {\\n display: inline\\n}\\n\\n.price-including-tax,\\n.price-excluding-tax {\\n display: block;\\n font-size: 1.8rem;\\n line-height: 1\\n}\\n\\n.price-including-tax .price,\\n.price-excluding-tax .price {\\n font-weight: 700\\n}\\n\\n.price-including-tax+.price-excluding-tax,\\n.weee[data-label] {\\n display: block;\\n font-size: 1.8rem\\n}\\n\\n.price-including-tax+.price-excluding-tax:before,\\n.weee[data-label]:before {\\n content: attr(data-label) ': ';\\n font-size: 1.1rem\\n}\\n\\n.price-including-tax+.price-excluding-tax .price,\\n.weee[data-label] .price {\\n font-size: 1.1rem\\n}\\n\\nbody._has-modal {\\n height: 100%;\\n overflow: hidden;\\n width: 100%\\n}\\n\\n.modals-overlay {\\n z-index: 899\\n}\\n\\n.modal-slide,\\n.modal-popup {\\n bottom: 0;\\n left: 0;\\n min-width: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n visibility: hidden;\\n opacity: 0;\\n -webkit-transition: visibility 0s .3s, opacity .3s ease;\\n transition: visibility 0s .3s, opacity .3s ease\\n}\\n\\n.modal-slide._show,\\n.modal-popup._show {\\n visibility: visible;\\n opacity: 1;\\n -webkit-transition: opacity .3s ease;\\n transition: opacity .3s ease\\n}\\n\\n.modal-slide._show .modal-inner-wrap,\\n.modal-popup._show .modal-inner-wrap {\\n -webkit-transform: translate(0, 0);\\n transform: translate(0, 0)\\n}\\n\\n.modal-slide .modal-inner-wrap,\\n.modal-popup .modal-inner-wrap {\\n background-color: #fff;\\n box-shadow: 0 0 12px 2px rgba(0, 0, 0, 0.35);\\n opacity: 1;\\n pointer-events: auto\\n}\\n\\n.modal-slide {\\n left: 44px;\\n z-index: 900\\n}\\n\\n.modal-slide._show .modal-inner-wrap {\\n -webkit-transform: translateX(0);\\n transform: translateX(0)\\n}\\n\\n.modal-slide .modal-inner-wrap {\\n height: 100%;\\n overflow-y: auto;\\n position: static;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transition: -webkit-transform .3s ease-in-out;\\n transition: transform .3s ease-in-out;\\n width: auto\\n}\\n\\n.modal-slide._inner-scroll .modal-inner-wrap {\\n overflow-y: visible;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column\\n}\\n\\n.modal-slide._inner-scroll .modal-header,\\n.modal-slide._inner-scroll .modal-footer {\\n -webkit-flex-grow: 0;\\n flex-grow: 0;\\n -webkit-flex-shrink: 0;\\n flex-shrink: 0\\n}\\n\\n.modal-slide._inner-scroll .modal-content {\\n overflow-y: auto\\n}\\n\\n.modal-slide._inner-scroll .modal-footer {\\n margin-top: auto\\n}\\n\\n.modal-slide .modal-header,\\n.modal-slide .modal-content,\\n.modal-slide .modal-footer {\\n padding: 0 2.6rem 2.6rem\\n}\\n\\n.modal-slide .modal-header {\\n padding-bottom: 2.1rem;\\n padding-top: 2.1rem\\n}\\n\\n.modal-popup {\\n z-index: 900;\\n left: 0;\\n overflow-y: auto\\n}\\n\\n.modal-popup._show .modal-inner-wrap {\\n -webkit-transform: translateY(0);\\n transform: translateY(0)\\n}\\n\\n.modal-popup .modal-inner-wrap {\\n margin: 5rem auto;\\n width: 75%;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n box-sizing: border-box;\\n height: auto;\\n left: 0;\\n position: absolute;\\n right: 0;\\n -webkit-transform: translateY(-200%);\\n transform: translateY(-200%);\\n -webkit-transition: -webkit-transform .2s ease;\\n transition: transform .2s ease\\n}\\n\\n.modal-popup._inner-scroll {\\n overflow-y: visible\\n}\\n\\n.ie11 .modal-popup._inner-scroll,\\n.ie10 .modal-popup._inner-scroll,\\n.ie9 .modal-popup._inner-scroll {\\n overflow-y: auto\\n}\\n\\n.modal-popup._inner-scroll .modal-inner-wrap {\\n max-height: 90%\\n}\\n\\n.ie11 .modal-popup._inner-scroll .modal-inner-wrap,\\n.ie10 .modal-popup._inner-scroll .modal-inner-wrap,\\n.ie9 .modal-popup._inner-scroll .modal-inner-wrap {\\n max-height: none\\n}\\n\\n.modal-popup._inner-scroll .modal-content {\\n overflow-y: auto\\n}\\n\\n.modal-popup .modal-header,\\n.modal-popup .modal-content,\\n.modal-popup .modal-footer {\\n padding-left: 3rem;\\n padding-right: 3rem\\n}\\n\\n.modal-popup .modal-header,\\n.modal-popup .modal-footer {\\n -webkit-flex-grow: 0;\\n flex-grow: 0;\\n -webkit-flex-shrink: 0;\\n flex-shrink: 0\\n}\\n\\n.modal-popup .modal-header {\\n padding-bottom: 1.2rem;\\n padding-top: 3rem\\n}\\n\\n.modal-popup .modal-footer {\\n margin-top: auto;\\n padding-bottom: 3rem;\\n padding-top: 3rem\\n}\\n\\n.modal-popup .modal-footer-actions {\\n text-align: right\\n}\\n\\n.modal-custom .action-close,\\n.modal-popup .action-close,\\n.modal-slide .action-close {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-shadow: none;\\n font-weight: 400;\\n display: inline-block;\\n text-decoration: none;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.modal-custom .action-close:focus,\\n.modal-popup .action-close:focus,\\n.modal-slide .action-close:focus,\\n.modal-custom .action-close:active,\\n.modal-popup .action-close:active,\\n.modal-slide .action-close:active {\\n background: none;\\n border: none\\n}\\n\\n.modal-custom .action-close:hover,\\n.modal-popup .action-close:hover,\\n.modal-slide .action-close:hover {\\n background: none;\\n border: none\\n}\\n\\n.modal-custom .action-close.disabled,\\n.modal-popup .action-close.disabled,\\n.modal-slide .action-close.disabled,\\n.modal-custom .action-close[disabled],\\n.modal-popup .action-close[disabled],\\n.modal-slide .action-close[disabled],\\nfieldset[disabled] .modal-custom .action-close,\\nfieldset[disabled] .modal-popup .action-close,\\nfieldset[disabled] .modal-slide .action-close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.modal-custom .action-close>span,\\n.modal-popup .action-close>span,\\n.modal-slide .action-close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.modal-custom .action-close:before,\\n.modal-popup .action-close:before,\\n.modal-slide .action-close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 14px;\\n line-height: 14px;\\n color: #757575;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.modal-custom .action-close:hover:before,\\n.modal-popup .action-close:hover:before,\\n.modal-slide .action-close:hover:before {\\n color: inherit\\n}\\n\\n.modal-custom .action-close:active:before,\\n.modal-popup .action-close:active:before,\\n.modal-slide .action-close:active:before {\\n color: inherit\\n}\\n\\n.modal-custom .action-close:hover:before,\\n.modal-popup .action-close:hover:before,\\n.modal-slide .action-close:hover:before {\\n color: #1a1a1a\\n}\\n\\n.modal-custom .action-close {\\n margin: 25px\\n}\\n\\n.modal-popup .modal-title {\\n border-bottom: 1px solid #c1c1c1;\\n font-weight: 300;\\n padding-bottom: 10px;\\n font-size: 26px;\\n margin-bottom: 0;\\n min-height: 1em;\\n word-wrap: break-word\\n}\\n\\n.modal-popup .action-close {\\n padding: 20px\\n}\\n\\n.modal-slide .action-close {\\n padding: 2.1rem 3rem\\n}\\n\\n.modal-slide .page-main-actions {\\n margin-bottom: -12.9rem;\\n margin-top: 2.1rem\\n}\\n\\n.modals-overlay {\\n background-color: rgba(51, 51, 51, 0.55);\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0\\n}\\n\\nbody._has-modal-custom .modal-custom-overlay {\\n height: 100vh;\\n left: 0;\\n position: fixed;\\n top: 0;\\n width: 100vw;\\n z-index: 899\\n}\\n\\n.payment-method-braintree .hosted-control {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 0 9px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box;\\n position: relative;\\n width: 225px\\n}\\n\\n.payment-method-braintree .hosted-control:disabled {\\n opacity: .5\\n}\\n\\n.payment-method-braintree .hosted-control::-moz-placeholder {\\n color: #575757\\n}\\n\\n.payment-method-braintree .hosted-control::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\n.payment-method-braintree .hosted-control:-ms-input-placeholder {\\n color: #575757\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-focused {\\n border-color: #006bb4\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-invalid:not(.braintree-hosted-fields-focused) {\\n border-color: #e02b27\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-invalid:not(.braintree-hosted-fields-focused)~.hosted-error {\\n height: auto;\\n opacity: 1\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-valid {\\n border-color: #006400\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-cid {\\n width: 5rem\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-date {\\n float: left;\\n margin-bottom: 7px;\\n width: 6rem\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-date:first-of-type {\\n margin-right: 50px\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-date:first-of-type:after {\\n content: '/';\\n display: inline;\\n padding-bottom: inherit;\\n padding-top: inherit;\\n position: absolute;\\n right: -25px;\\n top: 5px\\n}\\n\\n.payment-method-braintree .field-tooltip {\\n right: 0\\n}\\n\\n.payment-method-braintree .hosted-error {\\n clear: both;\\n color: #e02b27;\\n font-size: 1.2rem;\\n height: 0;\\n margin-top: 7px;\\n opacity: 0\\n}\\n\\n.braintree-paypal-logo {\\n margin-top: 10px;\\n text-align: center\\n}\\n\\n.braintree-paypal-account {\\n padding: 15px 0 15px 50px;\\n position: relative;\\n display: inline-block\\n}\\n\\n.braintree-paypal-account:before {\\n background-position-x: 0;\\n background-position-y: 0;\\n line-height: 16px;\\n vertical-align: middle;\\n height: 16px;\\n width: 16px;\\n background-repeat: no-repeat;\\n content: '';\\n display: inline-block\\n}\\n\\n.braintree-paypal-account:before {\\n left: 17px;\\n margin-top: -8px;\\n position: absolute;\\n top: 50%\\n}\\n\\n.braintree-paypal-account .payment-method-type {\\n font-weight: 700\\n}\\n\\n.braintree-paypal-account .payment-method-description {\\n color: #575757\\n}\\n\\n.braintree-paypal-fieldset {\\n border: 0;\\n margin: 0;\\n padding: 0\\n}\\n\\n.action-braintree-paypal-logo {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.action-braintree-paypal-logo:focus,\\n.action-braintree-paypal-logo:active {\\n background: none;\\n border: none\\n}\\n\\n.action-braintree-paypal-logo:hover {\\n background: none;\\n border: none\\n}\\n\\n.action-braintree-paypal-logo.disabled,\\n.action-braintree-paypal-logo[disabled],\\nfieldset[disabled] .action-braintree-paypal-logo {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.action-braintree-paypal-logo img {\\n margin: 0;\\n width: 114px\\n}\\n\\n.payment-method .payment-method-content .actions-toolbar.braintree-paypal-actions {\\n margin-left: 0\\n}\\n\\n.account .table .col.paypal-account img {\\n vertical-align: middle\\n}\\n\\n.account .table .col.paypal-account+.actions {\\n vertical-align: middle\\n}\\n\\n.block-category-event {\\n background: #f0f0f0;\\n color: #333;\\n padding: 10px 0 15px;\\n text-align: center\\n}\\n\\n.block-category-event.block:last-child {\\n margin-bottom: 10px\\n}\\n\\n.block-category-event .block-title {\\n margin: 0 0 10px\\n}\\n\\n.block-category-event .block-title strong {\\n font-size: 1.5rem;\\n font-weight: 300\\n}\\n\\n.block-category-event .ticker {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.block-category-event .ticker li {\\n display: none;\\n margin: 0 15px\\n}\\n\\n.block-category-event .ticker .value {\\n font-size: 1.8rem;\\n font-weight: 300\\n}\\n\\n.block-category-event .ticker .label {\\n font-size: 1rem;\\n display: block;\\n text-transform: lowercase\\n}\\n\\n.block-category-event .dates {\\n display: table;\\n margin: 0 auto\\n}\\n\\n.block-category-event .dates .start,\\n.block-category-event .dates .end {\\n display: table-cell;\\n vertical-align: top\\n}\\n\\n.block-category-event .dates .date {\\n font-size: 1.8rem\\n}\\n\\n.block-category-event .dates .time {\\n display: block\\n}\\n\\n.block-category-event .dates .start {\\n padding-right: 40px;\\n position: relative\\n}\\n\\n.block-category-event .dates .start:after {\\n font-size: 1.8rem;\\n content: '\\\\2013';\\n display: block;\\n position: absolute;\\n right: 15px;\\n top: 0\\n}\\n\\n.multicheckout .title {\\n margin-bottom: 30px\\n}\\n\\n.multicheckout .title strong {\\n font-weight: 400\\n}\\n\\n.multicheckout .table-wrapper {\\n margin-bottom: 0\\n}\\n\\n.multicheckout .table-wrapper .action.delete {\\n display: inline-block\\n}\\n\\n.multicheckout .table-wrapper .col .qty {\\n display: inline-block\\n}\\n\\n.multicheckout .table-wrapper .col.item .action.edit {\\n font-weight: 400;\\n margin-left: 10px\\n}\\n\\n.multicheckout:not(.address) .table-wrapper .product-item-name {\\n margin: 0\\n}\\n\\n.multicheckout>.actions-toolbar {\\n margin-top: 40px\\n}\\n\\n.multicheckout .actions-toolbar>.secondary {\\n display: block\\n}\\n\\n.multicheckout .actions-toolbar>.secondary .action {\\n margin-bottom: 25px\\n}\\n\\n.multicheckout .actions-toolbar>.secondary .action.back {\\n display: block;\\n margin-left: 0\\n}\\n\\n.multicheckout .actions-toolbar>.primary {\\n margin-right: 10px\\n}\\n\\n.multicheckout .item-options {\\n margin: 10px 0 0\\n}\\n\\n.multicheckout .block .methods-shipping .item-content .fieldset>.field:before {\\n display: none\\n}\\n\\n.multicheckout .block .methods-shipping .item-content .fieldset>.field .control {\\n display: inline-block\\n}\\n\\n.multicheckout .block-title,\\n.multicheckout .block-content .title {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 10px\\n}\\n\\n.multicheckout .block-title strong,\\n.multicheckout .block-content .title strong {\\n font-weight: 400\\n}\\n\\n.multicheckout .block-title strong span,\\n.multicheckout .block-content .title strong span {\\n color: #a6a6a6\\n}\\n\\n.multicheckout .block-content .title {\\n border-bottom: none;\\n padding-bottom: 0\\n}\\n\\n.multicheckout.order-review .block-title>strong {\\n font-size: 2.4rem\\n}\\n\\n.multicheckout.order-review .block-shipping .block-content:not(:last-child) {\\n margin-bottom: 40px\\n}\\n\\n.multicheckout .box-title span {\\n margin-right: 10px\\n}\\n\\n.multicheckout .box-title>.action {\\n margin: 0\\n}\\n\\n.multicheckout .box-shipping-method .price {\\n font-weight: 700\\n}\\n\\n.multicheckout .box-billing-method .fieldset {\\n margin: 0\\n}\\n\\n.multicheckout .box-billing-method .fieldset .legend.box-title {\\n margin: 0 0 5px\\n}\\n\\n.multicheckout .checkout-review .grand.totals {\\n font-size: 2.1rem;\\n margin-bottom: 40px\\n}\\n\\n.multicheckout .checkout-review .grand.totals .mark {\\n font-weight: 400\\n}\\n\\n[class^='multishipping-'] .logo {\\n margin-left: 0\\n}\\n\\n.multishipping-checkout-success .nav-sections {\\n display: block\\n}\\n\\n.table-wrapper.billing-agreements {\\n margin-bottom: 40px\\n}\\n\\n.paypal {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.block-minicart .paypal,\\n.cart-summary .paypal {\\n display: block\\n}\\n\\n.paypal img {\\n display: block;\\n margin: 5px auto 0\\n}\\n\\n.opc .paypal {\\n vertical-align: middle\\n}\\n\\n.paypal.acceptance {\\n display: block;\\n margin: 0 0 20px\\n}\\n\\n.map-form-addtocart .paypal {\\n display: block;\\n margin: 10px auto 5px\\n}\\n\\n.cart-summary .paypal+.paypal {\\n margin-top: 25px\\n}\\n\\n.paypal-review .actions-toolbar {\\n margin-top: 10px\\n}\\n\\n.paypal-review .paypal-review-title {\\n padding: 0 0 10px\\n}\\n\\n.paypal-review .paypal-review-title>strong {\\n font-size: 2.4rem;\\n font-weight: 300\\n}\\n\\n.paypal-review .paypal-review-title .action {\\n display: inline-block;\\n margin: 12px 0 0 30px\\n}\\n\\n.paypal-review .table-paypal-review-items .col.name {\\n padding-top: 16px\\n}\\n\\n.paypal-review .table-paypal-review-items .col.qty {\\n text-align: center\\n}\\n\\n.paypal-review .item-options dt {\\n display: inline-block\\n}\\n\\n.paypal-review .item-options dt:after {\\n content: ': '\\n}\\n\\n.paypal-review .item-options dd {\\n margin: 0\\n}\\n\\n.paypal-review-discount {\\n border-bottom: 1px solid #ccc;\\n margin: 0 0 40px;\\n padding: 10px 0 0\\n}\\n\\n.fotorama-video-container:after {\\n bottom: 0;\\n content: '';\\n height: 100px;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 12px;\\n width: 100px\\n}\\n\\n.fotorama-video-container .magnify-lens {\\n display: none !important\\n}\\n\\n.fotorama-video-container.video-unplayed:hover img {\\n opacity: .6\\n}\\n\\n.fotorama-video-container.video-unplayed:hover:after {\\n transform: scale(1.25)\\n}\\n\\n.video-thumb-icon:after {\\n bottom: 0;\\n content: '';\\n height: 40px;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 10px;\\n width: 49px\\n}\\n\\n.product-video {\\n bottom: 0;\\n height: 75%;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n width: 100%\\n}\\n\\n.product-video iframe {\\n height: 100%;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n z-index: 9999\\n}\\n\\n.fotorama__stage__shaft:focus .fotorama__stage__frame.fotorama__active:after {\\n bottom: 0;\\n content: '';\\n height: 100px;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 12px;\\n width: 100px\\n}\\n\\n.fotorama__product-video--loading:after {\\n visibility: hidden\\n}\\n\\n@media only screen and (min-device-width:320px) and (max-device-width:780px) and (orientation:landscape) {\\n .product-video {\\n height: 100%;\\n width: 81%\\n }\\n}\\n\\n.opc-wrapper .form-discount {\\n max-width: 500px\\n}\\n\\n.minilist .weee {\\n display: table-row;\\n font-size: 1.1rem\\n}\\n\\n.minilist .weee:before {\\n display: none\\n}\\n\\n.price-container.weee:before {\\n display: none\\n}\\n\\n.column .block-addbysku .fieldset {\\n margin: 0\\n}\\n\\n.column .block-addbysku .fieldset .fields {\\n position: relative\\n}\\n\\n.column .block-addbysku .fieldset .fields .field {\\n display: inline-block;\\n margin-bottom: 10px;\\n vertical-align: top\\n}\\n\\n.column .block-addbysku .fieldset .fields .actions-toolbar {\\n position: absolute;\\n right: 0;\\n top: 7px\\n}\\n\\n.column .block-addbysku .sku {\\n margin-right: -155px;\\n padding-right: 160px;\\n width: 100%\\n}\\n\\n.column .block-addbysku .qty .qty+.mage-error {\\n width: 80px\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar {\\n clear: both;\\n margin: 0 0 20px;\\n text-align: left\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar:before,\\n.column .block-addbysku .block-content .actions-toolbar:after {\\n content: '';\\n display: table\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar:after {\\n clear: both\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary {\\n float: left\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary,\\n.column .block-addbysku .block-content .actions-toolbar .secondary {\\n display: inline-block\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary a.action,\\n.column .block-addbysku .block-content .actions-toolbar .secondary a.action {\\n display: inline-block\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary .action {\\n margin: 0 15px 0 0\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .secondary a.action {\\n margin-top: 6px\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary,\\n.column .block-addbysku .block-content .actions-toolbar .secondary {\\n display: block;\\n float: none\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar>.secondary {\\n text-align: left\\n}\\n\\n.column .block-addbysku .action.add {\\n display: inline-block;\\n text-decoration: none;\\n line-height: normal;\\n padding: 4px;\\n width: auto\\n}\\n\\n.column .block-addbysku .action.add>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.column .block-addbysku .action.add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 20px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.column .block-addbysku .action.add:hover:before {\\n color: inherit\\n}\\n\\n.column .block-addbysku .action.add:active:before {\\n color: inherit\\n}\\n\\n.column .block-addbysku .reset {\\n margin: 7px 0\\n}\\n\\n.column .block-addbysku .note {\\n display: block;\\n margin: 0 0 20px;\\n padding-top: 10px\\n}\\n\\n.block-cart-failed {\\n margin: 40px 0\\n}\\n\\n.block-cart-failed .block-title {\\n font-size: 2.6rem\\n}\\n\\n.block-cart-failed .block-title strong {\\n font-weight: 300\\n}\\n\\n.block-cart-failed .actions {\\n text-align: center\\n}\\n\\n.block-cart-failed .actions .action {\\n display: block;\\n margin: 0 auto 10px\\n}\\n\\n.catalogsearch-advanced-result .message.error {\\n margin-top: -60px\\n}\\n\\n.bundle-actions {\\n margin: 0 0 30px\\n}\\n\\n.bundle-options-container {\\n clear: both;\\n margin-bottom: 40px\\n}\\n\\n.bundle-options-container .legend.title {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 0rem;\\n margin-bottom: 2rem;\\n border: 0;\\n padding: 0\\n}\\n\\n.bundle-options-container .product-add-form {\\n display: none\\n}\\n\\n.bundle-options-container .product-options-wrapper {\\n margin-bottom: 30px\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset>.field {\\n border-top: 1px #e4e4e4 solid;\\n padding-top: 20px\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset>.field:first-of-type {\\n border-top: 0;\\n padding-top: 0\\n}\\n\\n.bundle-options-container .product-options-wrapper .field.choice input {\\n float: left\\n}\\n\\n.bundle-options-container .product-options-wrapper .field.choice .label {\\n display: block;\\n margin-left: 24px\\n}\\n\\n.bundle-options-container .product-options-wrapper .field.choice .price-excluding-tax {\\n display: inline-block\\n}\\n\\n.bundle-options-container .action.back {\\n margin-bottom: 30px\\n}\\n\\n.bundle-options-container .block-bundle-summary>.title {\\n margin-bottom: 15px\\n}\\n\\n.bundle-options-container .block-bundle-summary>.title>strong {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.bundle-options-container .block-bundle-summary>.title,\\n.bundle-options-container .block-bundle-summary .bundle-summary .subtitle {\\n border-bottom: 1px #e4e4e4 solid;\\n margin-bottom: 25px;\\n padding-bottom: 16px\\n}\\n\\n.bundle-options-container .block-bundle-summary .price-box {\\n margin-bottom: 20px\\n}\\n\\n.bundle-options-container .block-bundle-summary .price-box .price-label {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle-summary {\\n margin-top: 30px\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle-summary.empty {\\n display: none\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle-summary>.subtitle {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem;\\n display: block\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle.items>li {\\n margin-bottom: 20px\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links {\\n text-align: center\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action {\\n margin-right: 5%\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action.tocompare:before {\\n content: '\\\\E61E'\\n}\\n\\n.bundle-options-container p.required {\\n color: #e02b27\\n}\\n\\n.bundle-options-container .nested .field.qty {\\n margin: 0 0 20px;\\n margin-top: 20px\\n}\\n\\n.bundle-options-container .nested .field.qty>.label {\\n margin: 0 0 8px;\\n display: inline-block\\n}\\n\\n.bundle-options-container .nested .field.qty .label {\\n font-weight: 600\\n}\\n\\n.bundle-options-container .nested .field.qty:last-child {\\n margin-bottom: 0\\n}\\n\\n.bundle-options-container .price {\\n font-weight: 600\\n}\\n\\n.bundle-options-container .product-options-bottom {\\n border-top: 1px solid #ccc;\\n clear: left;\\n margin: 0 0 40px;\\n padding-top: 20px\\n}\\n\\n.products {\\n margin: 30px 0\\n}\\n\\n.product-item {\\n vertical-align: top\\n}\\n\\n.products-grid .product-item {\\n display: inline-block;\\n width: 50%\\n}\\n\\n.product-item-name {\\n -moz-hyphens: auto;\\n -ms-hyphens: auto;\\n -webkit-hyphens: auto;\\n display: block;\\n hyphens: auto;\\n margin: 5px 0;\\n word-wrap: break-word\\n}\\n\\n.product-item-info {\\n max-width: 100%;\\n width: 152px\\n}\\n\\n.page-products .product-item-info {\\n width: 240px\\n}\\n\\n.product-item-actions {\\n display: none\\n}\\n\\n.product-item-actions .actions-secondary>button.action {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.product-item-actions .actions-secondary>button.action:focus,\\n.product-item-actions .actions-secondary>button.action:active {\\n background: none;\\n border: none\\n}\\n\\n.product-item-actions .actions-secondary>button.action:hover {\\n background: none;\\n border: none\\n}\\n\\n.product-item-actions .actions-secondary>button.action.disabled,\\n.product-item-actions .actions-secondary>button.action[disabled],\\nfieldset[disabled] .product-item-actions .actions-secondary>button.action {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.product-item-actions .actions-secondary>.action:before {\\n margin: 0\\n}\\n\\n.product-item-description {\\n margin: 25px 0\\n}\\n\\n.product-item .product-reviews-summary .rating-summary {\\n margin: 0 4px 0 0\\n}\\n\\n.product-item .product-reviews-summary .reviews-actions {\\n font-size: 12px;\\n margin-top: 5px;\\n text-transform: lowercase\\n}\\n\\n.product-item .price-box {\\n margin: 10px 0 25px\\n}\\n\\n.product-item .price-box .price {\\n font-weight: 700;\\n white-space: nowrap\\n}\\n\\n.product-item .price-box .price-label {\\n color: #666;\\n font-size: 12px\\n}\\n\\n.product-item .old-price {\\n margin: 5px 0\\n}\\n\\n.product-item .old-price .price {\\n font-weight: normal\\n}\\n\\n.product-item .regular-price .price-label {\\n display: none\\n}\\n\\n.product-item .minimal-price .price-container {\\n display: block\\n}\\n\\n.product-item .minimal-price-link {\\n margin-top: 5px\\n}\\n\\n.product-item .price-from,\\n.product-item .price-to {\\n margin: 0\\n}\\n\\n.product-item .tocompare:before {\\n content: '\\\\E61E'\\n}\\n\\n.product-item .tocart {\\n font-size: 1.3rem;\\n border-radius: 0;\\n line-height: 1;\\n padding-bottom: 10px;\\n padding-top: 10px;\\n white-space: nowrap\\n}\\n\\n.column.main .product-items {\\n margin-left: -20px\\n}\\n\\n.column.main .product-item {\\n padding-left: 20px\\n}\\n\\n.price-container .price {\\n font-size: 1.4rem\\n}\\n\\n.price-container .price-including-tax+.price-excluding-tax,\\n.price-container .weee {\\n margin-top: 5px\\n}\\n\\n.price-container .price-including-tax+.price-excluding-tax,\\n.price-container .weee,\\n.price-container .price-including-tax+.price-excluding-tax .price,\\n.price-container .weee .price,\\n.price-container .weee+.price-excluding-tax:before,\\n.price-container .weee+.price-excluding-tax .price {\\n font-size: 1.1rem\\n}\\n\\n.price-container .weee:before {\\n content: '(' attr(data-label) ': '\\n}\\n\\n.price-container .weee:after {\\n content: ')'\\n}\\n\\n.price-container .weee+.price-excluding-tax:before {\\n content: attr(data-label) ': '\\n}\\n\\n.products-list .product-item {\\n display: table;\\n width: 100%\\n}\\n\\n.products-list .product-item-info {\\n display: table-row\\n}\\n\\n.products-list .product-item-photo {\\n display: table-cell;\\n padding: 0 30px 30px 0;\\n vertical-align: top;\\n width: 1%\\n}\\n\\n.products-list .product-item-details {\\n display: table-cell;\\n vertical-align: top\\n}\\n\\n.page-products .columns {\\n padding-top: 60px;\\n position: relative;\\n z-index: 1\\n}\\n\\n.toolbar {\\n margin-bottom: 30px;\\n text-align: center\\n}\\n\\n.toolbar select {\\n background-color: #f0f0f0;\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3);\\n border-radius: 3px\\n}\\n\\n.toolbar-amount {\\n left: 0;\\n line-height: 18px;\\n margin: 0;\\n padding: 7px 0;\\n position: absolute;\\n text-align: left;\\n top: 0;\\n vertical-align: middle\\n}\\n\\n.products.wrapper~.toolbar .toolbar-amount {\\n display: none\\n}\\n\\n.page-with-filter .toolbar-amount {\\n position: static\\n}\\n\\n.toolbar-products {\\n background-color: transparent\\n}\\n\\n.toolbar-products .pages {\\n display: none\\n}\\n\\n.products.wrapper~.toolbar-products .pages {\\n display: block\\n}\\n\\n.toolbar .pages {\\n margin-bottom: 25px\\n}\\n\\n.sorter {\\n float: right\\n}\\n\\n.page-products .sorter {\\n position: absolute;\\n right: 10px;\\n top: 0;\\n z-index: 1\\n}\\n\\n.products.wrapper~.toolbar .sorter {\\n display: none\\n}\\n\\n.sorter-options {\\n margin: 0 5px 0 7px;\\n width: auto\\n}\\n\\n.sorter-action {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.sorter-action:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E613';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.sorter-action:hover:before {\\n color: #333\\n}\\n\\n.sorter-action>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.sorter-action.sort-desc:before {\\n content: '\\\\E614'\\n}\\n\\n.modes {\\n display: none\\n}\\n\\n.limiter-options {\\n margin: 0 5px 0 7px;\\n width: auto\\n}\\n\\n.limiter-label {\\n font-weight: 400\\n}\\n\\n.page-products .toolbar .limiter {\\n display: none\\n}\\n\\n.limiter .control {\\n display: inline-block\\n}\\n\\n.old-price,\\n.old.price {\\n color: #666\\n}\\n\\n.prices-tier .price-container .price-including-tax+.price-excluding-tax:before {\\n content: '(' attr(data-label) ':'\\n}\\n\\n.prices-tier .price-container .price-including-tax+.price-excluding-tax:last-child:after {\\n content: ')'\\n}\\n\\n.prices-tier .price-container .weee[data-label] {\\n display: inline\\n}\\n\\n.prices-tier .price-container .weee[data-label]:before {\\n content: ' +' attr(data-label) ':'\\n}\\n\\n.actual-price {\\n font-weight: 700\\n}\\n\\n.category-image .image {\\n display: block;\\n height: auto;\\n max-width: 100%\\n}\\n\\n.category-cms,\\n.category-image,\\n.category-description {\\n margin-bottom: 20px\\n}\\n\\n.product-image-container {\\n display: inline-block;\\n max-width: 100%\\n}\\n\\n.product-image-wrapper {\\n display: block;\\n height: 0;\\n overflow: hidden;\\n position: relative;\\n z-index: 1\\n}\\n\\n.product-image-photo {\\n bottom: 0;\\n display: block;\\n height: auto;\\n left: 0;\\n margin: auto;\\n max-width: 100%;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.product.media .placeholder .photo.container {\\n max-width: 100%\\n}\\n\\n.product.media .notice {\\n margin: 10px 0;\\n color: #7d7d7d;\\n font-size: 1.2rem\\n}\\n\\n.product.media .product.thumbs {\\n margin: 10px 0 25px\\n}\\n\\n.product.media .items.thumbs {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.product.media .items.thumbs>li {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.product.media .items.thumbs>li {\\n margin: 1rem 0 0\\n}\\n\\n.product.media .items.thumbs img {\\n display: block\\n}\\n\\n.product.media .items.thumbs .active {\\n display: block;\\n line-height: 1\\n}\\n\\n.product.info.detailed {\\n clear: both;\\n margin-bottom: 30px\\n}\\n\\n.product.info.detailed .additional-attributes {\\n width: auto;\\n border: none\\n}\\n\\n.product.info.detailed .additional-attributes>thead>tr>th,\\n.product.info.detailed .additional-attributes>tbody>tr>th,\\n.product.info.detailed .additional-attributes>tfoot>tr>th,\\n.product.info.detailed .additional-attributes>thead>tr>td,\\n.product.info.detailed .additional-attributes>tbody>tr>td,\\n.product.info.detailed .additional-attributes>tfoot>tr>td {\\n border: none\\n}\\n\\n.product.info.detailed .additional-attributes>thead>tr>td,\\n.product.info.detailed .additional-attributes>tbody>tr>td,\\n.product.info.detailed .additional-attributes>tfoot>tr>td {\\n padding: 5.5px 5px 10px 5px\\n}\\n\\n.product.info.detailed .additional-attributes>thead>tr>th,\\n.product.info.detailed .additional-attributes>tbody>tr>th,\\n.product.info.detailed .additional-attributes>tfoot>tr>th {\\n padding: 5.5px 30px 10px 0\\n}\\n\\n.product-info-main .product-info-price {\\n color: #575757;\\n border-bottom: 1px solid #c1c1c1;\\n display: table;\\n margin-bottom: 15px;\\n width: 100%\\n}\\n\\n.product-info-main .product-info-price .price-box {\\n display: table-cell;\\n vertical-align: top;\\n width: 1px\\n}\\n\\n.product-info-main .product-info-price .price-box .price-container>span {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.product-info-main .product-info-price .price-box .price-container>span:last-child {\\n margin-bottom: 0\\n}\\n\\n.product-info-main .product-info-price .price-including-tax+.price-excluding-tax,\\n.product-info-main .product-info-price .weee+.price-excluding-tax,\\n.product-info-main .product-info-price .weee {\\n font-size: 1.4rem\\n}\\n\\n.product-info-main .product-info-price .price-including-tax+.price-excluding-tax .price,\\n.product-info-main .product-info-price .weee+.price-excluding-tax .price,\\n.product-info-main .product-info-price .weee .price {\\n font-size: 1.4rem;\\n font-weight: 600;\\n line-height: 16px\\n}\\n\\n.product-info-main .product-info-price .price-wrapper .price {\\n font-size: 2.2rem;\\n font-weight: 600;\\n line-height: 22px\\n}\\n\\n.product-info-main .product-info-price .old-price .price-wrapper .price {\\n font-size: 2rem;\\n font-weight: 300\\n}\\n\\n.product-info-main .product-info-price .special-price .price-label:after {\\n content: ': '\\n}\\n\\n.product-info-main .product-info-price .price {\\n white-space: nowrap\\n}\\n\\n.product-info-main .product-info-stock-sku {\\n display: table-cell;\\n padding-bottom: 10px;\\n padding-left: 10%;\\n text-align: right;\\n vertical-align: top\\n}\\n\\n.product-info-main .stock {\\n margin: 0 0 3px\\n}\\n\\n.product-info-main .stock.available,\\n.product-info-main .stock.unavailable {\\n font-weight: 700;\\n text-transform: uppercase\\n}\\n\\n.product-info-main .product.attribute.sku {\\n word-break: break-all;\\n word-wrap: break-word\\n}\\n\\n.product-info-main .product.attribute.sku .type {\\n font-weight: normal;\\n margin-right: 5px\\n}\\n\\n.product-info-main .product.attribute.sku .type:after {\\n content: '#:'\\n}\\n\\n.product-info-main .product.attribute.sku .value {\\n display: inline-block\\n}\\n\\n.product-info-main .product.attribute.overview {\\n margin: 20px 0\\n}\\n\\n.product-info-main .product.alert {\\n margin: 10px 0\\n}\\n\\n.product-info-main .product-add-form {\\n clear: both;\\n padding-top: 15px\\n}\\n\\n.product-info-main .product-reviews-summary {\\n float: left\\n}\\n\\n.product-info-main .product-options-bottom .box-tocart {\\n margin-top: 20px\\n}\\n\\n.product-options-wrapper .fieldset-product-options-inner .legend {\\n font-weight: 600;\\n font-size: 1.4rem;\\n border: none;\\n display: inline-block;\\n float: none;\\n margin: 0 0 8px;\\n padding: 0\\n}\\n\\n.product-options-wrapper .fieldset-product-options-inner input.datetime-picker~select.datetime-picker {\\n margin-top: 10px\\n}\\n\\n.product-options-wrapper .fieldset-product-options-inner.required .legend:after,\\n.product-options-wrapper .fieldset-product-options-inner._required .legend:after {\\n content: '*';\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\n.product-options-wrapper .field .note {\\n display: block;\\n margin-top: 5px\\n}\\n\\n.product-options-bottom .price-box,\\n.product-info-price .price-box {\\n color: #575757;\\n display: table-cell;\\n padding-bottom: 10px;\\n vertical-align: top\\n}\\n\\n.product-options-bottom .price-box .old-price,\\n.product-info-price .price-box .old-price {\\n font-size: 20px;\\n font-weight: 300\\n}\\n\\n.product-options-bottom .price-box .old-price .price-container>span,\\n.product-info-price .price-box .old-price .price-container>span {\\n display: inline-block\\n}\\n\\n.product-options-bottom .price-box .price-container>span,\\n.product-info-price .price-box .price-container>span {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.product-options-bottom .price-box .price-container>span:last-child,\\n.product-info-price .price-box .price-container>span:last-child {\\n margin-bottom: 0\\n}\\n\\n.product-options-bottom .price-box .price-container .price,\\n.product-info-price .price-box .price-container .price {\\n font-size: 22px;\\n font-weight: 600;\\n line-height: 22px\\n}\\n\\n.product-options-bottom .price-box .price-container .price-including-tax+.price-excluding-tax,\\n.product-info-price .price-box .price-container .price-including-tax+.price-excluding-tax,\\n.product-options-bottom .price-box .price-container .weee+.price-excluding-tax,\\n.product-info-price .price-box .price-container .weee+.price-excluding-tax,\\n.product-options-bottom .price-box .price-container .weee,\\n.product-info-price .price-box .price-container .weee {\\n font-size: 1.2rem;\\n line-height: 14px\\n}\\n\\n.product-options-bottom .price-box .price-container .price-including-tax+.price-excluding-tax .price,\\n.product-info-price .price-box .price-container .price-including-tax+.price-excluding-tax .price,\\n.product-options-bottom .price-box .price-container .weee+.price-excluding-tax .price,\\n.product-info-price .price-box .price-container .weee+.price-excluding-tax .price,\\n.product-options-bottom .price-box .price-container .weee .price,\\n.product-info-price .price-box .price-container .weee .price {\\n font-size: 1.2rem;\\n font-weight: 700\\n}\\n\\n.box-tocart .action.tocart {\\n vertical-align: top\\n}\\n\\n.box-tocart .action.tocart:not(:last-child) {\\n margin-bottom: 15px\\n}\\n\\n.product-addto-links {\\n display: inline\\n}\\n\\n.product-addto-links .action {\\n margin-right: 5%\\n}\\n\\n.product-social-links {\\n margin: 0 0 20px;\\n text-align: center\\n}\\n\\n.product-social-links .action.tocompare:before {\\n content: '\\\\E61E'\\n}\\n\\n.prices-tier {\\n margin-bottom: 15px\\n}\\n\\n.prices-tier .item {\\n margin-bottom: 10px\\n}\\n\\n.prices-tier .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.prices-tier .price-excluding-tax,\\n.prices-tier .price-including-tax {\\n display: inline-block\\n}\\n\\n.minimal-price-link,\\n.price-excluding-tax,\\n.price-including-tax {\\n display: block;\\n white-space: nowrap\\n}\\n\\n.ui-dialog-titlebar-close {\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\n.ui-dialog-titlebar-close:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.ui-dialog-titlebar-close:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.ui-dialog-titlebar-close:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.ui-dialog-titlebar-close:hover {\\n color: #006bb4\\n}\\n\\n.ui-dialog-titlebar-close:hover,\\n.ui-dialog-titlebar-close:active,\\n.ui-dialog-titlebar-close:focus {\\n background: none;\\n border: 0\\n}\\n\\n.ui-dialog-titlebar-close.disabled,\\n.ui-dialog-titlebar-close[disabled],\\nfieldset[disabled] .ui-dialog-titlebar-close {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.sidebar .product-items .product-item {\\n margin-bottom: 20px;\\n position: relative\\n}\\n\\n.sidebar .product-items .product-item-info {\\n position: relative;\\n width: auto\\n}\\n\\n.sidebar .product-items .product-item-info .product-item-photo {\\n left: 0;\\n position: absolute;\\n top: 0\\n}\\n\\n.sidebar .product-items .product-item-name {\\n margin-top: 0\\n}\\n\\n.sidebar .product-items .product-item-details {\\n margin: 0 0 0 85px\\n}\\n\\n.sidebar .product-items .product-item-actions {\\n display: block;\\n margin-top: 10px\\n}\\n\\n.sidebar .product-items .price-box {\\n display: block;\\n margin: 7px 0\\n}\\n\\n.sidebar .product-items .text {\\n margin-right: 8px\\n}\\n\\n.sidebar .product-items .counter {\\n color: #7d7d7d;\\n font-size: 12px;\\n white-space: nowrap\\n}\\n\\n.sidebar .product-items .minilist .price {\\n display: inline;\\n padding: 0\\n}\\n\\n.sidebar .product-items .minilist .weee:before {\\n display: inline-block\\n}\\n\\n.sidebar .product-items .action.delete {\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.sidebar .action.tocart {\\n border-radius: 0\\n}\\n\\n.sidebar .product-items-images {\\n margin-left: -5px\\n}\\n\\n.sidebar .product-items-images .product-item {\\n float: left;\\n padding-left: 5px\\n}\\n\\n.sidebar .product-items-names .product-item {\\n margin-bottom: 10px\\n}\\n\\n.sidebar .product-items-names .product-item-name {\\n margin: 0\\n}\\n\\nbody.catalog-product-compare-index .action.print {\\n float: right;\\n margin: 15px 0\\n}\\n\\n.table-wrapper.comparison {\\n clear: both;\\n max-width: 100%;\\n overflow-x: auto;\\n position: relative\\n}\\n\\n.table-wrapper.comparison .table-comparison>tbody>tr>th,\\n.table-wrapper.comparison .table-comparison>tbody>tr>td {\\n border-top: 0\\n}\\n\\n.table-comparison {\\n table-layout: fixed\\n}\\n\\n.table-comparison .cell {\\n padding: 15px;\\n width: 180px\\n}\\n\\n.table-comparison .cell.label {\\n border-right: 1px solid #ccc\\n}\\n\\n.table-comparison .cell.label .attribute.label {\\n display: block;\\n width: 100%;\\n word-wrap: break-word\\n}\\n\\n.table-comparison .cell.product.info,\\n.table-comparison .cell.product.label {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.table-comparison .cell.attribute {\\n font-size: 1.3rem\\n}\\n\\n.table-comparison .cell.attribute img {\\n height: auto;\\n max-width: 100%\\n}\\n\\n.table-comparison .cell.remove {\\n padding-bottom: 0;\\n padding-top: 0;\\n text-align: right\\n}\\n\\n.table-comparison .cell.remove .action.delete {\\n margin-right: .6rem\\n}\\n\\n.table-comparison .cell .attribute.value {\\n overflow: hidden;\\n width: 100%\\n}\\n\\n.table-comparison td:last-child {\\n border-right: 1px solid #ccc\\n}\\n\\n.table-comparison .product-item-photo {\\n display: block;\\n margin: 0 auto 15px\\n}\\n\\n.table-comparison .product-image-photo {\\n margin-left: 0\\n}\\n\\n.table-comparison .product-item-actions,\\n.table-comparison .price-box,\\n.table-comparison .product.rating,\\n.table-comparison .product-item-name {\\n display: block;\\n margin: 15px 0\\n}\\n\\n.table-comparison .product-addto-links {\\n margin-top: 15px\\n}\\n\\n.table-comparison .product-addto-links .action.toggle {\\n padding: 0\\n}\\n\\n.table-comparison .product-addto-links .action.split,\\n.table-comparison .product-addto-links .action.toggle {\\n line-height: 1.2rem;\\n padding: 5px 8px;\\n font-size: 1.1rem\\n}\\n\\n.table-comparison .action.tocart {\\n white-space: nowrap\\n}\\n\\n.comparison.headings {\\n background: #fff;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: auto;\\n z-index: 2\\n}\\n\\n.block-compare .product-item .product-item-name {\\n margin-left: 22px\\n}\\n\\n.block-compare .action.delete {\\n left: 0;\\n position: absolute;\\n top: 0\\n}\\n\\n.block-compare .actions-toolbar {\\n margin: 17px 0 0\\n}\\n\\n.block.related .action.select {\\n vertical-align: top\\n}\\n\\n.block.related .product-item-details {\\n position: relative;\\n z-index: 1\\n}\\n\\n.block.related .related-available .product-item-name {\\n margin-left: 20px\\n}\\n\\n.block.related .field.choice {\\n left: 0;\\n position: absolute;\\n top: 2px\\n}\\n\\n.block-search {\\n margin-bottom: 0\\n}\\n\\n.block-search .block-title {\\n display: none\\n}\\n\\n.block-search .block-content {\\n margin-bottom: 0\\n}\\n\\n.block-search .label {\\n text-decoration: none;\\n display: inline-block;\\n float: right\\n}\\n\\n.block-search .label>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.block-search .label:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 28px;\\n color: #757575;\\n content: '\\\\E615';\\n font-family: 'luma-icons';\\n margin: 0 10px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block-search .label:hover:before {\\n color: #333\\n}\\n\\n.block-search .label:active:before {\\n color: #333\\n}\\n\\n.block-search .label.active+.control input {\\n position: static\\n}\\n\\n.block-search .action.search {\\n display: none\\n}\\n\\n.block-search .control {\\n border-top: 1px solid #ccc;\\n clear: both;\\n margin: 0 -15px -1px;\\n padding: 0 15px\\n}\\n\\n.block-search input {\\n left: -300%;\\n margin: 15px 0;\\n position: absolute\\n}\\n\\n.block-search .nested {\\n display: none\\n}\\n\\n.search-autocomplete {\\n display: none;\\n margin-top: -15px;\\n overflow: hidden;\\n position: absolute;\\n z-index: 3\\n}\\n\\n.search-autocomplete ul {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.search-autocomplete ul:not(:empty) {\\n background: #fff;\\n border: 1px solid #c2c2c2;\\n border-top: 0\\n}\\n\\n.search-autocomplete ul li {\\n border-top: 1px solid #e5e5e5;\\n cursor: pointer;\\n margin: 0;\\n padding: 5px 40px 5px 10px;\\n position: relative;\\n text-align: left;\\n white-space: normal\\n}\\n\\n.search-autocomplete ul li:first-child {\\n border-top: none\\n}\\n\\n.search-autocomplete ul li:hover,\\n.search-autocomplete ul li.selected {\\n background: #e8e8e8\\n}\\n\\n.search-autocomplete ul li .amount {\\n color: #999;\\n position: absolute;\\n right: 7px;\\n top: 5px\\n}\\n\\n.form.search.advanced .fields.range .field:first-child {\\n position: relative\\n}\\n\\n.form.search.advanced .fields.range .field:first-child .control {\\n padding-right: 25px\\n}\\n\\n.form.search.advanced .fields.range .field:first-child .control:after {\\n content: ' \\\\2013 ';\\n display: inline-block;\\n position: absolute;\\n right: 0;\\n text-align: center;\\n top: 6px;\\n width: 25px\\n}\\n\\n.form.search.advanced .fields.range .field:last-child {\\n position: relative\\n}\\n\\n.form.search.advanced .fields.range .field:last-child div.mage-error[generated] {\\n left: 0;\\n position: absolute;\\n top: 32px\\n}\\n\\n.form.search.advanced .fields.range .field.with-addon .control {\\n padding-right: 45px\\n}\\n\\n.form.search.advanced .group.price .addon .addafter {\\n background: none;\\n border: 0;\\n padding-top: 6px;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.search-terms {\\n line-height: 2em\\n}\\n\\n.search-terms>li {\\n display: inline-block;\\n margin-right: 10px\\n}\\n\\n.search.found {\\n margin-bottom: 10px\\n}\\n\\n.checkout-cart-index .page-main {\\n padding-left: 0;\\n padding-right: 0\\n}\\n\\n.checkout-cart-index .page-title-wrapper {\\n padding-left: 15px;\\n padding-right: 15px\\n}\\n\\n.cart-summary {\\n background: #f5f5f5;\\n margin-bottom: 25px;\\n padding: 1px 0 25px\\n}\\n\\n.cart-summary>.title {\\n font-size: 2.4rem;\\n display: none;\\n font-weight: 300;\\n margin: 12px 0\\n}\\n\\n.cart-summary .block form:not(:last-of-type) .fieldset {\\n margin: 0 0 25px\\n}\\n\\n.cart-summary .block .price {\\n font-weight: 700\\n}\\n\\n.cart-summary .block .field {\\n margin: 0 0 16px\\n}\\n\\n.cart-summary .block .field.note {\\n display: none\\n}\\n\\n.cart-summary .block .actions-toolbar>.primary {\\n text-align: left\\n}\\n\\n.cart-summary .block .actions-toolbar>.primary .action.primary {\\n width: auto\\n}\\n\\n.cart-summary .block .title strong {\\n font-size: 1.4rem;\\n font-weight: 600\\n}\\n\\n.cart-summary .block .item-options {\\n margin: 0 0 16px\\n}\\n\\n.cart-summary .block .item-options .field .radio {\\n float: left\\n}\\n\\n.cart-summary .block .item-options .field .radio+.label {\\n display: block;\\n margin: 0;\\n overflow: hidden\\n}\\n\\n.page-main .cart-summary .block {\\n margin-bottom: 0\\n}\\n\\n.cart-summary .checkout-methods-items {\\n margin: 20px 0 0;\\n padding: 0 15px;\\n text-align: center\\n}\\n\\n.cart-summary .checkout-methods-items .action.primary.checkout {\\n width: 100%\\n}\\n\\n.cart-summary .checkout-methods-items .item {\\n margin-bottom: 25px\\n}\\n\\n.cart-summary .checkout-methods-items .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.cart-summary .message {\\n padding-left: 20px\\n}\\n\\n.cart-summary .message>*:first-child:before {\\n display: none\\n}\\n\\n.cart-summary .action.multicheckout {\\n color: #006bb4\\n}\\n\\n.cart-totals tbody .mark,\\n.cart-totals tfoot .mark {\\n text-align: left\\n}\\n\\n.cart.table-wrapper .cart thead tr th.col {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 15px;\\n padding-top: 24px\\n}\\n\\n.cart.table-wrapper .cart tbody td {\\n border: 0\\n}\\n\\n.cart.table-wrapper .cart>.item {\\n border-bottom: 1px solid #ccc;\\n position: relative\\n}\\n\\n.cart.table-wrapper .col {\\n padding-top: 15px\\n}\\n\\n.cart.table-wrapper .col.price,\\n.cart.table-wrapper .col.subtotal,\\n.cart.table-wrapper .col.msrp {\\n padding: 20px 11px 10px;\\n text-align: center\\n}\\n\\n.cart.table-wrapper .col.qty {\\n padding: 20px 11px 10px;\\n text-align: center\\n}\\n\\n.cart.table-wrapper .col.qty .input-text {\\n height: 36px;\\n margin-top: -7px;\\n text-align: center;\\n width: 45px\\n}\\n\\n.cart.table-wrapper .col>.price {\\n color: #7d7d7d;\\n font-size: 1.8rem;\\n font-weight: 700\\n}\\n\\n.cart.table-wrapper .item-actions td {\\n padding-bottom: 0;\\n padding-left: 15px;\\n padding-right: 15px;\\n white-space: normal\\n}\\n\\n.cart.table-wrapper .item .col.item {\\n display: block;\\n min-height: 75px;\\n padding: 15px 15px 10px 90px;\\n position: relative\\n}\\n\\n.cart.table-wrapper .actions-toolbar {\\n min-height: 20px;\\n padding-bottom: 15px;\\n position: relative\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit,\\n.cart.table-wrapper .actions-toolbar>.action-delete {\\n position: absolute;\\n right: 16px;\\n top: 0;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit>span,\\n.cart.table-wrapper .actions-toolbar>.action-delete>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit:before,\\n.cart.table-wrapper .actions-toolbar>.action-delete:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit:hover:before,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover:before {\\n color: #333\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit:active:before,\\n.cart.table-wrapper .actions-toolbar>.action-delete:active:before {\\n color: #757575\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-delete {\\n right: 0\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-delete:before {\\n content: '\\\\E604'\\n}\\n\\n.cart.table-wrapper .action {\\n margin-right: 25px\\n}\\n\\n.cart.table-wrapper .action:last-child {\\n margin-right: 0\\n}\\n\\n.cart.table-wrapper .action.help.map {\\n font-weight: 400\\n}\\n\\n.cart.table-wrapper .product-item-photo {\\n display: block;\\n left: 15px;\\n max-width: 65px;\\n padding: 0;\\n position: absolute;\\n top: 15px;\\n width: 100%\\n}\\n\\n.cart.table-wrapper .product-item-name {\\n font-size: 1.8rem;\\n display: block;\\n margin: -3px 0 5px\\n}\\n\\n.cart.table-wrapper .gift-registry-name-label:after {\\n content: ':'\\n}\\n\\n.cart.table-wrapper .item-options {\\n margin-bottom: 0\\n}\\n\\n.cart.table-wrapper .product-item-name+.item-options {\\n margin-top: 20px\\n}\\n\\n.cart.table-wrapper .action.configure {\\n display: inline-block;\\n margin: 10px 0 0\\n}\\n\\n.cart.table-wrapper .item .message {\\n margin-top: 20px\\n}\\n\\n.cart-products-toolbar .toolbar-amount {\\n left: inherit;\\n margin: 25px 0 15px;\\n padding: 0;\\n position: relative;\\n text-align: center;\\n top: inherit\\n}\\n\\n.cart-products-toolbar-top {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.cart-discount {\\n border-bottom: 1px solid #ccc;\\n clear: left\\n}\\n\\n.cart-empty {\\n padding-left: 15px;\\n padding-right: 15px\\n}\\n\\n.cart-tax-info+.cart-tax-total,\\n.cart .cart-tax-info+.cart-tax-total {\\n display: block\\n}\\n\\n.cart.table-wrapper .col.price,\\n.order-items.table-wrapper .col.price,\\n.cart.table-wrapper .col.qty,\\n.order-items.table-wrapper .col.qty,\\n.cart.table-wrapper .col.subtotal,\\n.order-items.table-wrapper .col.subtotal,\\n.cart.table-wrapper .col.msrp,\\n.order-items.table-wrapper .col.msrp {\\n text-align: right\\n}\\n\\n.block.crosssell {\\n padding: 0 15px;\\n margin-top: 70px\\n}\\n\\n.block.crosssell .product-item-info {\\n width: 200px\\n}\\n\\n.block-minicart .items-total {\\n float: left;\\n margin: 0 10px\\n}\\n\\n.block-minicart .items-total .count {\\n font-weight: 700\\n}\\n\\n.block-minicart .subtotal {\\n margin: 0 10px 10px;\\n text-align: right\\n}\\n\\n.block-minicart .amount .price-wrapper:first-child .price {\\n font-size: 18px;\\n font-weight: 700\\n}\\n\\n.block-minicart .subtitle {\\n display: none\\n}\\n\\n.block-minicart .subtitle.empty {\\n display: block;\\n font-size: 14px;\\n padding: 30px 0 20px;\\n text-align: center\\n}\\n\\n.block-minicart .text.empty {\\n text-align: center\\n}\\n\\n.block-minicart .block-content>.actions {\\n margin-top: 15px\\n}\\n\\n.block-minicart .block-content>.actions>.secondary {\\n text-align: center\\n}\\n\\n.block-minicart .block-content>.actions>.primary {\\n margin: 0 10px 15px\\n}\\n\\n.block-minicart .block-content>.actions>.primary .action.primary {\\n display: block;\\n width: 100%\\n}\\n\\n.block-minicart .block-content>.actions .paypal-logo {\\n margin-top: 15px;\\n text-align: center\\n}\\n\\n.block-minicart .block-category-link,\\n.block-minicart .block-product-link,\\n.block-minicart .block-cms-link,\\n.block-minicart .block-banners {\\n margin: 15px 0 0;\\n text-align: center\\n}\\n\\n.minicart-wrapper {\\n display: inline-block;\\n position: relative;\\n float: right\\n}\\n\\n.minicart-wrapper:before,\\n.minicart-wrapper:after {\\n content: '';\\n display: table\\n}\\n\\n.minicart-wrapper:after {\\n clear: both\\n}\\n\\n.minicart-wrapper .action.showcart {\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-wrapper .action.showcart:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 28px;\\n color: #757575;\\n content: '\\\\E611';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-wrapper .action.showcart:hover:before {\\n color: #333\\n}\\n\\n.minicart-wrapper .action.showcart:active:before {\\n color: #757575\\n}\\n\\n.minicart-wrapper .action.showcart.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-wrapper .action.showcart.active:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 28px;\\n color: #757575;\\n content: '\\\\E611';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-wrapper .action.showcart.active:hover:before {\\n color: #333\\n}\\n\\n.minicart-wrapper .action.showcart.active:active:before {\\n color: #757575\\n}\\n\\n.minicart-wrapper .block-minicart {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 100%;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.minicart-wrapper .block-minicart li {\\n margin: 0\\n}\\n\\n.minicart-wrapper .block-minicart li:hover {\\n cursor: pointer\\n}\\n\\n.minicart-wrapper .block-minicart:before,\\n.minicart-wrapper .block-minicart:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.minicart-wrapper .block-minicart:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.minicart-wrapper .block-minicart:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.minicart-wrapper .block-minicart:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.minicart-wrapper .block-minicart:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.minicart-wrapper.active {\\n overflow: visible\\n}\\n\\n.minicart-wrapper.active .block-minicart {\\n display: block\\n}\\n\\n.minicart-wrapper .block-minicart {\\n padding: 25px 20px;\\n right: 0;\\n width: 320px;\\n z-index: 101\\n}\\n\\n.minicart-wrapper .block-minicart .block-title {\\n display: none\\n}\\n\\n.minicart-wrapper .block-minicart:after {\\n left: auto;\\n right: 25px\\n}\\n\\n.minicart-wrapper .block-minicart:before {\\n left: auto;\\n right: 26px\\n}\\n\\n.minicart-wrapper .product .actions {\\n float: right;\\n margin: -24px 0 0\\n}\\n\\n.minicart-wrapper .product .actions>.primary,\\n.minicart-wrapper .product .actions>.secondary {\\n display: inline\\n}\\n\\n.minicart-wrapper .product .actions>.primary:not(:last-child),\\n.minicart-wrapper .product .actions>.secondary:not(:last-child) {\\n margin-right: 15px\\n}\\n\\n.minicart-wrapper .action.close {\\n height: 40px;\\n position: absolute;\\n right: 0;\\n top: 0;\\n width: 40px;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-shadow: none;\\n font-weight: 400;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-wrapper .action.close:focus,\\n.minicart-wrapper .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.minicart-wrapper .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.minicart-wrapper .action.close.disabled,\\n.minicart-wrapper .action.close[disabled],\\nfieldset[disabled] .minicart-wrapper .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.minicart-wrapper .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-wrapper .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #757575;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-wrapper .action.close:hover:before {\\n color: inherit\\n}\\n\\n.minicart-wrapper .action.close:active:before {\\n color: inherit\\n}\\n\\n.minicart-wrapper .action.showcart {\\n white-space: nowrap\\n}\\n\\n.minicart-wrapper .action.showcart .counter.qty {\\n background: #ff5501;\\n color: #fff;\\n height: 24px;\\n line-height: 24px;\\n border-radius: 2px;\\n display: inline-block;\\n margin: 3px 0 0;\\n min-width: 18px;\\n overflow: hidden;\\n padding: 0 3px;\\n text-align: center;\\n white-space: normal\\n}\\n\\n.minicart-wrapper .action.showcart .counter.qty.empty {\\n display: none\\n}\\n\\n.minicart-wrapper .action.showcart .counter.qty .loader>img {\\n max-width: 24px\\n}\\n\\n.minicart-wrapper .action.showcart .counter-number {\\n text-shadow: 0 0 7px #000\\n}\\n\\n.minicart-wrapper .minicart-widgets {\\n margin-top: 15px\\n}\\n\\n.minicart-items-wrapper {\\n border: 1px solid #ccc;\\n margin: 0 -20px;\\n border-left: 0;\\n border-right: 0;\\n overflow-x: auto;\\n padding: 15px\\n}\\n\\n.minicart-items {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.minicart-items .product-item {\\n padding: 20px 0\\n}\\n\\n.minicart-items .product-item:not(:first-child) {\\n border-top: 1px solid #ccc\\n}\\n\\n.minicart-items .product-item:first-child {\\n padding-top: 0\\n}\\n\\n.minicart-items .product-item-pricing .label {\\n display: inline-block;\\n width: 4.5rem\\n}\\n\\n.minicart-items .price-minicart {\\n margin-bottom: 5px\\n}\\n\\n.minicart-items .product-item-name {\\n font-weight: 400;\\n margin: 0 0 10px\\n}\\n\\n.minicart-items .product-item-name a {\\n color: #006bb4\\n}\\n\\n.minicart-items .product-item-details {\\n padding-left: 88px\\n}\\n\\n.minicart-items .product-item-details .price {\\n font-weight: 700\\n}\\n\\n.minicart-items .product-item-details .price-including-tax,\\n.minicart-items .product-item-details .price-excluding-tax {\\n margin: 5px 0\\n}\\n\\n.minicart-items .product-item-details .weee[data-label] {\\n font-size: 1.1rem\\n}\\n\\n.minicart-items .product-item-details .details-qty {\\n margin-top: 10px\\n}\\n\\n.minicart-items .product>.product-item-photo,\\n.minicart-items .product>.product-image-container {\\n float: left\\n}\\n\\n.minicart-items .product .toggle {\\n border: 0;\\n padding: 0 40px 5px 0\\n}\\n\\n.minicart-items .product .toggle:after {\\n color: #8f8f8f;\\n margin: 0 0 0 5px;\\n position: static\\n}\\n\\n.minicart-items .product .active>.toggle:after {\\n content: '\\\\E621'\\n}\\n\\n.minicart-items .product.pricing {\\n margin-top: 3px\\n}\\n\\n.minicart-items .product.options .toggle.tooltip {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-items .product.options .toggle.tooltip>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-items .product.options .toggle.tooltip:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: -3px 0 0 7px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-items .product.options .details {\\n display: none\\n}\\n\\n.minicart-items .item-qty {\\n margin-right: 10px;\\n text-align: center;\\n width: 40px\\n}\\n\\n.minicart-items .update-cart-item {\\n font-size: 1.1rem;\\n vertical-align: top\\n}\\n\\n.minicart-items .subtitle {\\n display: none\\n}\\n\\n.minicart-items .action.edit,\\n.minicart-items .action.delete {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-items .action.edit>span,\\n.minicart-items .action.delete>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-items .action.edit:before,\\n.minicart-items .action.delete:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-items .action.edit:hover:before,\\n.minicart-items .action.delete:hover:before {\\n color: #333\\n}\\n\\n.minicart-items .action.edit:active:before,\\n.minicart-items .action.delete:active:before {\\n color: #757575\\n}\\n\\n.minicart-items .action.delete:before {\\n content: '\\\\E604'\\n}\\n\\n.checkout-container {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .step-title {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.opc-wrapper .step-content {\\n margin: 0 0 40px\\n}\\n\\n.checkout-index-index .nav-sections,\\n.checkout-index-index .nav-toggle {\\n display: none\\n}\\n\\n.checkout-index-index .logo {\\n margin-left: 0\\n}\\n\\n.checkout-onepage-success .print {\\n display: none\\n}\\n\\n.opc-estimated-wrapper {\\n background: #f4f4f4;\\n border-bottom: 1px solid #ccc;\\n border-top: 1px solid #ccc;\\n margin: -21px -15px 15px;\\n padding: 18px 15px\\n}\\n\\n.opc-estimated-wrapper .estimated-block {\\n font-size: 18px;\\n float: left;\\n font-weight: 700\\n}\\n\\n.opc-estimated-wrapper .estimated-block .estimated-label {\\n display: block;\\n margin: 0 0 5px\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:focus,\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:active {\\n background: none;\\n border: none\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:hover {\\n background: none;\\n border: none\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart.disabled,\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart[disabled],\\nfieldset[disabled] .opc-estimated-wrapper .minicart-wrapper button.action.showcart {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:before {\\n color: #333\\n}\\n\\n.opc-progress-bar {\\n display: none\\n}\\n\\n.field.choice .field-tooltip {\\n display: inline-block;\\n margin-left: 10px;\\n position: relative;\\n top: -3px\\n}\\n\\n.field.choice .field-tooltip-action {\\n line-height: 21px\\n}\\n\\n.field._error .control input,\\n.field._error .control select,\\n.field._error .control textarea {\\n border-color: #ed8380\\n}\\n\\n.checkout-index-index .modal-popup .fieldset .field .label {\\n font-weight: 400\\n}\\n\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup {\\n margin-top: 8px\\n}\\n\\n.field-tooltip {\\n cursor: pointer;\\n position: absolute;\\n right: 0;\\n top: 1px\\n}\\n\\n.field-tooltip._active {\\n z-index: 100\\n}\\n\\n.field-tooltip._active .field-tooltip-content {\\n display: block\\n}\\n\\n.field-tooltip._active .field-tooltip-action:before {\\n color: #333\\n}\\n\\n.field-tooltip .field-tooltip-action {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.field-tooltip .field-tooltip-action>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.field-tooltip .field-tooltip-action:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 21px;\\n line-height: inherit;\\n color: #bbb;\\n content: '\\\\E623';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.field-tooltip .field-tooltip-action:hover:before {\\n color: #333\\n}\\n\\n._keyfocus .field-tooltip .field-tooltip-action:focus {\\n z-index: 100\\n}\\n\\n._keyfocus .field-tooltip .field-tooltip-action:focus+.field-tooltip-content {\\n display: block\\n}\\n\\n._keyfocus .field-tooltip .field-tooltip-action:focus:before {\\n color: #333\\n}\\n\\n.field-tooltip .field-tooltip-content {\\n background: #f4f4f4;\\n border: 1px solid #999;\\n border-radius: 1px;\\n font-size: 14px;\\n padding: 12px;\\n width: 270px;\\n display: none;\\n left: 38px;\\n position: absolute;\\n text-transform: none;\\n top: -9px;\\n word-wrap: break-word;\\n z-index: 2\\n}\\n\\n.field-tooltip .field-tooltip-content:before,\\n.field-tooltip .field-tooltip-content:after {\\n border: 10px solid transparent;\\n height: 0;\\n width: 0;\\n border-right-color: #f4f4f4;\\n left: -21px;\\n top: 12px;\\n content: '';\\n display: block;\\n position: absolute;\\n z-index: 3\\n}\\n\\n.field-tooltip .field-tooltip-content:before {\\n border-right-color: #666\\n}\\n\\n.field-tooltip .field-tooltip-content:after {\\n border-right-color: #f4f4f4;\\n width: 1px;\\n z-index: 4\\n}\\n\\n.opc-wrapper .form-login,\\n.opc-wrapper .form-shipping-address {\\n margin-top: 28px;\\n margin-bottom: 28px\\n}\\n\\n.opc-wrapper .form-login .fieldset .field .label,\\n.opc-wrapper .form-shipping-address .fieldset .field .label {\\n font-weight: 400\\n}\\n\\n.opc-wrapper .form-login .fieldset .note,\\n.opc-wrapper .form-shipping-address .fieldset .note {\\n font-size: 14px;\\n margin-top: 10px\\n}\\n\\n.opc-wrapper .shipping-address-items {\\n font-size: 0\\n}\\n\\n.opc-wrapper .shipping-address-item {\\n border: 2px solid transparent;\\n font-size: 14px;\\n line-height: 30px;\\n margin: 0 0 20px;\\n padding: 20px 35px 20px 20px;\\n transition: .3s border-color;\\n width: 50%;\\n display: inline-block;\\n position: relative;\\n vertical-align: top;\\n word-wrap: break-word\\n}\\n\\n.opc-wrapper .shipping-address-item.selected-item {\\n border-color: #ff5501\\n}\\n\\n.opc-wrapper .shipping-address-item.selected-item:after {\\n background: #ff5501;\\n color: #fff;\\n content: '\\\\E610';\\n font-family: 'luma-icons';\\n height: 27px;\\n width: 29px;\\n font-size: 19px;\\n line-height: 21px;\\n padding-top: 2px;\\n position: absolute;\\n right: 0;\\n text-align: center;\\n top: 0\\n}\\n\\n.opc-wrapper .shipping-address-item.selected-item .action-select-shipping-item {\\n visibility: hidden\\n}\\n\\n.opc-wrapper .action-show-popup {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .action-show-popup>span:before {\\n content: '+';\\n padding-right: 5px\\n}\\n\\n.opc-wrapper .action-select-shipping-item {\\n float: right;\\n margin: 20px 0 0\\n}\\n\\n.opc-wrapper .edit-address-link {\\n display: block;\\n float: left;\\n margin: 26px 5px 0 0\\n}\\n\\n.checkout-shipping-method .step-title {\\n margin-bottom: 0\\n}\\n\\n.checkout-shipping-method .no-quotes-block {\\n margin: 20px 0\\n}\\n\\n.methods-shipping .actions-toolbar .action.primary {\\n margin: 20px 0 0\\n}\\n\\n.table-checkout-shipping-method thead th {\\n display: none\\n}\\n\\n.table-checkout-shipping-method tbody td {\\n border-top: 1px solid #ccc;\\n padding-bottom: 20px;\\n padding-top: 20px\\n}\\n\\n.table-checkout-shipping-method tbody td:first-child {\\n padding-left: 0;\\n padding-right: 0;\\n width: 20px\\n}\\n\\n.table-checkout-shipping-method tbody tr:first-child td {\\n border-top: none\\n}\\n\\n.table-checkout-shipping-method tbody .col-price {\\n font-weight: 600\\n}\\n\\n.table-checkout-shipping-method tbody .row-error td {\\n border-top: none;\\n padding-bottom: 10px;\\n padding-top: 0\\n}\\n\\n.checkout-shipping-method {\\n position: relative\\n}\\n\\n.shipping-policy-block.field-tooltip {\\n top: 12px\\n}\\n\\n.shipping-policy-block.field-tooltip .field-tooltip-action {\\n color: #006bb4;\\n cursor: pointer\\n}\\n\\n.shipping-policy-block.field-tooltip .field-tooltip-action:before {\\n display: none\\n}\\n\\n.shipping-policy-block.field-tooltip .field-tooltip-content {\\n width: 420px;\\n top: 30px\\n}\\n\\n.opc-block-shipping-information {\\n padding: 0 30px\\n}\\n\\n.opc-block-shipping-information .shipping-information-title {\\n border-bottom: 1px solid #ccc;\\n margin: 0 0 20px;\\n position: relative\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit {\\n top: 10px;\\n display: inline-block;\\n text-decoration: none;\\n margin: 0;\\n position: absolute;\\n right: 0\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover:before {\\n color: #333\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit:active:before {\\n color: #757575\\n}\\n\\n.opc-block-shipping-information .shipping-information-content {\\n line-height: 27px\\n}\\n\\n.opc-block-shipping-information .shipping-information-content .actions-toolbar {\\n margin-left: 0\\n}\\n\\n.opc-block-shipping-information .ship-to,\\n.opc-block-shipping-information .ship-via {\\n margin: 0 0 20px\\n}\\n\\n.opc-block-summary {\\n background: #f5f5f5;\\n margin: 0 0 20px;\\n padding: 22px 30px\\n}\\n\\n.opc-block-summary>.title {\\n display: block\\n}\\n\\n.opc-block-summary .mark .value {\\n color: #666;\\n display: block\\n}\\n\\n.opc-block-summary .grand.incl+.grand.excl .mark,\\n.opc-block-summary .grand.incl+.grand.excl .amount {\\n border-top: 0;\\n font-size: 1.4rem;\\n padding-top: 0\\n}\\n\\n.opc-block-summary .grand.incl+.grand.excl .mark strong,\\n.opc-block-summary .grand.incl+.grand.excl .amount strong {\\n font-weight: 400\\n}\\n\\n.opc-block-summary .not-calculated {\\n font-style: italic\\n}\\n\\n.opc-block-summary .items-in-cart>.title {\\n border-bottom: 1px solid #ccc;\\n padding: 10px 40px 10px 0;\\n cursor: pointer;\\n display: block;\\n text-decoration: none;\\n margin-bottom: 0;\\n position: relative\\n}\\n\\n.opc-block-summary .items-in-cart>.title>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.opc-block-summary .items-in-cart>.title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.opc-block-summary .items-in-cart>.title:after {\\n position: absolute;\\n right: 0;\\n top: 10px\\n}\\n\\n.opc-block-summary .items-in-cart>.title strong {\\n font-size: 1.8rem;\\n font-weight: 300;\\n margin: 0\\n}\\n\\n.opc-block-summary .items-in-cart.active>.title:after {\\n content: '\\\\E621'\\n}\\n\\n.opc-block-summary .items-in-cart .product {\\n position: relative\\n}\\n\\n.opc-block-summary .minicart-items-wrapper {\\n margin: 0 -15px 0 0;\\n max-height: 370px;\\n padding: 15px 15px 0 0;\\n border: 0\\n}\\n\\n.column.main .opc-block-summary .product-item {\\n margin: 0;\\n padding-left: 0\\n}\\n\\n.opc-block-summary .product-item .product-item-inner {\\n display: table;\\n margin: 0 0 10px;\\n width: 100%\\n}\\n\\n.opc-block-summary .product-item .product-item-name-block {\\n display: table-cell;\\n padding-right: 5px;\\n text-align: left\\n}\\n\\n.opc-block-summary .product-item .subtotal {\\n display: table-cell;\\n text-align: right\\n}\\n\\n.opc-block-summary .product-item .price {\\n font-size: 1.6rem;\\n font-weight: 400\\n}\\n\\n.opc-block-summary .product-item .price-including-tax+.price-excluding-tax .price {\\n font-size: 1rem\\n}\\n\\n.opc-block-summary .actions-toolbar {\\n position: relative;\\n z-index: 1\\n}\\n\\n.opc-block-summary .actions-toolbar .secondary {\\n border-top: 1px solid #ccc;\\n display: block;\\n margin: -1px 0 0;\\n padding: 15px 0 0;\\n text-align: left\\n}\\n\\n.opc-block-summary .actions-toolbar .secondary .action {\\n margin: 0\\n}\\n\\n.authentication-dropdown {\\n box-sizing: border-box\\n}\\n\\n.authentication-dropdown .modal-inner-wrap {\\n padding: 25px\\n}\\n\\n.authentication-wrapper {\\n float: right;\\n margin-top: -60px;\\n max-width: 50%;\\n position: relative;\\n z-index: 1\\n}\\n\\n._has-auth-shown .authentication-wrapper {\\n z-index: 900\\n}\\n\\n.block-authentication .block-title {\\n font-size: 1.8rem;\\n border-bottom: 0;\\n margin-bottom: 25px\\n}\\n\\n.block-authentication .block-title strong {\\n font-weight: 300\\n}\\n\\n.block-authentication .field .label {\\n font-weight: 400\\n}\\n\\n.block-authentication .actions-toolbar {\\n margin-bottom: 5px\\n}\\n\\n.block-authentication .actions-toolbar>.secondary {\\n padding-top: 25px;\\n text-align: left\\n}\\n\\n.block-authentication .block[class] {\\n margin: 0\\n}\\n\\n.block-authentication .block[class] ul {\\n list-style: none;\\n padding-left: 10px\\n}\\n\\n.block-authentication .block[class] .field .control,\\n.block-authentication .block[class] .field .label {\\n float: none;\\n width: auto\\n}\\n\\n.block-authentication .block[class]+.block {\\n border-top: 1px solid #c1c1c1;\\n margin-top: 40px;\\n padding-top: 40px;\\n position: relative\\n}\\n\\n.block-authentication .block[class]+.block::before {\\n height: 36px;\\n line-height: 34px;\\n margin: -19px 0 0 -18px;\\n min-width: 36px;\\n background: #fff;\\n border: 1px solid #c1c1c1;\\n border-radius: 50%;\\n box-sizing: border-box;\\n color: #c1c1c1;\\n content: attr(data-label);\\n display: inline-block;\\n left: 50%;\\n letter-spacing: normal;\\n padding: 0 .2rem;\\n position: absolute;\\n text-align: center;\\n text-transform: uppercase;\\n top: 0\\n}\\n\\n.checkout-payment-method .step-title {\\n border-bottom: 0;\\n margin-bottom: 0\\n}\\n\\n.checkout-payment-method .payment-method:first-child .payment-method-title {\\n border-top: 0\\n}\\n\\n.checkout-payment-method .payment-method._active .payment-method-content {\\n display: block\\n}\\n\\n.checkout-payment-method .payment-method+.payment-method .payment-method-title {\\n border-top: 1px solid #ccc\\n}\\n\\n.checkout-payment-method .payment-method-title {\\n padding: 20px 0;\\n margin: 0\\n}\\n\\n.checkout-payment-method .payment-method-title .payment-icon {\\n display: inline-block;\\n margin-right: 5px;\\n vertical-align: middle\\n}\\n\\n.checkout-payment-method .payment-method-title .action-help {\\n display: inline-block;\\n margin-left: 5px\\n}\\n\\n.checkout-payment-method .payment-method-content {\\n display: none;\\n padding: 0 0 20px 22px\\n}\\n\\n.checkout-payment-method .payment-method-content .fieldset:not(:last-child) {\\n margin: 0 0 20px\\n}\\n\\n.checkout-payment-method .payment-group+.payment-group .step-title {\\n margin: 20px 0 0\\n}\\n\\n.checkout-payment-method .field-select-billing,\\n.checkout-payment-method .billing-address-form {\\n max-width: 500px\\n}\\n\\n.checkout-payment-method .billing-address-same-as-shipping-block {\\n margin: 0 0 10px\\n}\\n\\n.checkout-payment-method .checkout-billing-address {\\n margin: 0 0 20px\\n}\\n\\n.checkout-payment-method .checkout-billing-address .primary .action-update {\\n margin-right: 0\\n}\\n\\n.checkout-payment-method .checkout-billing-address .billing-address-details {\\n line-height: 27px;\\n padding: 0 0 0 23px\\n}\\n\\n.checkout-payment-method .payment-method-note+.checkout-billing-address {\\n margin-top: 20px\\n}\\n\\n.checkout-payment-method .payment-method-iframe {\\n background-color: transparent;\\n display: none;\\n width: 100%\\n}\\n\\n.checkout-payment-method .no-payments-block {\\n margin: 20px 0\\n}\\n\\n.checkout-payment-method .payment-option._active .payment-option-title .action-toggle:after {\\n content: '\\\\E621'\\n}\\n\\n.checkout-payment-method .payment-option._collapsible .payment-option-title {\\n cursor: pointer\\n}\\n\\n.checkout-payment-method .payment-option._collapsible .payment-option-content {\\n display: none\\n}\\n\\n.checkout-payment-method .payment-option-title {\\n border-top: 1px solid #ccc;\\n padding: 20px 0\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle {\\n color: #006bb4;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 14px;\\n line-height: 16px;\\n color: #757575;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 10px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle:hover:after {\\n color: #333\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle:active:after {\\n color: #757575\\n}\\n\\n.checkout-payment-method .payment-option-content {\\n padding: 0 0 20px 22px\\n}\\n\\n.checkout-payment-method .payment-option-inner {\\n margin: 0 0 20px\\n}\\n\\n.checkout-payment-method .credit-card-types {\\n padding: 0\\n}\\n\\n.checkout-payment-method .credit-card-types .item {\\n display: inline-block;\\n list-style: none;\\n margin: 0 5px 0 0;\\n vertical-align: top\\n}\\n\\n.checkout-payment-method .credit-card-types .item._active {\\n font-weight: 700\\n}\\n\\n.checkout-payment-method .credit-card-types .item._active img {\\n -webkit-filter: grayscale(0%)\\n}\\n\\n.checkout-payment-method .credit-card-types .item._inactive {\\n opacity: .4\\n}\\n\\n.checkout-payment-method .credit-card-types .item span {\\n display: inline-block;\\n padding-top: 6px;\\n vertical-align: top\\n}\\n\\n.checkout-payment-method .credit-card-types img {\\n -webkit-filter: grayscale(100%);\\n -webkit-transition: all .6s ease\\n}\\n\\n.checkout-payment-method .ccard .fields>.year {\\n padding-left: 5px\\n}\\n\\n.checkout-payment-method .ccard .fields .select {\\n padding-left: 5px;\\n padding-right: 5px\\n}\\n\\n.checkout-payment-method .ccard .month .select {\\n width: 140px\\n}\\n\\n.checkout-payment-method .ccard .year .select {\\n width: 80px\\n}\\n\\n.checkout-payment-method .ccard .number .input-text {\\n width: 225px\\n}\\n\\n.checkout-payment-method .ccard>.field.cvv>.control {\\n display: inline-block;\\n padding-right: 20px\\n}\\n\\n.checkout-payment-method .ccard .cvv .label {\\n display: block\\n}\\n\\n.checkout-payment-method .ccard .cvv .input-text {\\n width: 55px\\n}\\n\\n.checkout-payment-method .ccard.fieldset>.field .fields.group.group-2 .field {\\n width: auto !important\\n}\\n\\n.checkout-agreements-block .checkout-agreements {\\n margin-bottom: 20px\\n}\\n\\n.checkout-agreements-block .action-show {\\n vertical-align: baseline\\n}\\n\\n.checkout-agreements-items {\\n padding-bottom: 30px\\n}\\n\\n.checkout-agreements-items .checkout-agreements-item {\\n margin-bottom: 20px\\n}\\n\\n.checkout-agreements-items .checkout-agreements-item-title {\\n border-bottom: 0\\n}\\n\\n.checkout-agreement-item-content {\\n overflow: auto\\n}\\n\\n.login-container .block-new-customer .actions-toolbar {\\n margin-top: 25px\\n}\\n\\n.login-container .block .block-title {\\n font-size: 1.8rem\\n}\\n\\n.login-container .fieldset:after {\\n margin: 10px 0 0;\\n content: attr(data-hasrequired);\\n display: block;\\n letter-spacing: normal;\\n word-spacing: normal;\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\n.login-container .fieldset:after {\\n margin-top: 35px\\n}\\n\\n.block-addresses-list .items.addresses>.item {\\n margin-bottom: 20px\\n}\\n\\n.block-addresses-list .items.addresses>.item:last-child {\\n margin-bottom: 0\\n}\\n\\n.block-addresses-list .items.addresses .item.actions {\\n margin-top: 5px\\n}\\n\\n.form-address-edit #region_id {\\n display: none\\n}\\n\\n.form-edit-account .fieldset.password {\\n display: none\\n}\\n\\n.form-create-account .fieldset-fullname .fields .field {\\n float: none\\n}\\n\\n.account .page-title-wrapper .page-title {\\n display: inline-block\\n}\\n\\n.account .messages {\\n margin-bottom: 20px\\n}\\n\\n.account .column.main {\\n margin-bottom: 30px\\n}\\n\\n.account .column.main h2 {\\n margin-top: 0\\n}\\n\\n.account .sidebar-additional {\\n margin-top: 40px\\n}\\n\\n.account .table-wrapper {\\n margin-bottom: 20px;\\n border-bottom: 1px solid #e4e4e4\\n}\\n\\n.account .table-wrapper:last-child {\\n margin-bottom: 0\\n}\\n\\n.account .data.table .col.actions .action.delete,\\n[class^='sales-guest-'] .data.table .col.actions .action.delete,\\n.sales-guest-view .data.table .col.actions .action.delete {\\n color: #d10029\\n}\\n\\n.column.main .block:last-child {\\n margin-bottom: 0\\n}\\n\\n.block .title {\\n margin-bottom: 10px\\n}\\n\\n.block .title strong {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1.4rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\n.block p:last-child {\\n margin: 0\\n}\\n\\n.block .box-actions {\\n margin-top: 5px\\n}\\n\\n.field.password .control {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column\\n}\\n\\n.field.password .control .mage-error {\\n -ms-flex-order: 2;\\n -webkit-order: 2;\\n order: 2\\n}\\n\\n.field.password .control .input-text {\\n -ms-flex-order: 0;\\n -webkit-order: 0;\\n order: 0;\\n z-index: 2\\n}\\n\\n.password-strength-meter {\\n background-color: #f4f4f4;\\n height: 32px;\\n line-height: 32px;\\n padding: 0 9px;\\n position: relative;\\n z-index: 1\\n}\\n\\n.password-strength-meter:before {\\n content: '';\\n height: 100%;\\n left: 0;\\n position: absolute;\\n top: 0;\\n z-index: -1\\n}\\n\\n.password-none .password-strength-meter:before {\\n background-color: #f4f4f4;\\n width: 100%\\n}\\n\\n.password-weak .password-strength-meter:before {\\n background-color: #ffafae;\\n width: 25%\\n}\\n\\n.password-medium .password-strength-meter:before {\\n background-color: #ffd6b3;\\n width: 50%\\n}\\n\\n.password-strong .password-strength-meter:before {\\n background-color: #c5eeac;\\n width: 75%\\n}\\n\\n.password-very-strong .password-strength-meter:before {\\n background-color: #81b562;\\n width: 100%\\n}\\n\\n.control.captcha-image {\\n margin-top: 10px\\n}\\n\\n.control.captcha-image .captcha-img {\\n vertical-align: middle\\n}\\n\\n.order-products-toolbar {\\n position: relative\\n}\\n\\n.order-products-toolbar .toolbar-amount {\\n position: relative;\\n text-align: center\\n}\\n\\n.block-balance .price {\\n margin-top: -10px;\\n font-size: 3.2rem;\\n display: inline-block;\\n line-height: 32px\\n}\\n\\n.table-downloadable-products .product-name {\\n font-weight: 400;\\n margin-right: 15px\\n}\\n\\n.table-downloadable-products .action.download {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.table-downloadable-products .action.download:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: inherit;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E626';\\n font-family: 'luma-icons';\\n margin: 0 5px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.page-product-downloadable .product-add-form {\\n clear: both;\\n margin-bottom: 25px\\n}\\n\\n.page-product-downloadable .product-options-bottom .field.qty {\\n display: none\\n}\\n\\n.samples-item-title {\\n font-size: 1.4rem;\\n font-weight: 600;\\n margin: 0 0 10px\\n}\\n\\n.samples-item {\\n margin: 0 0 10px\\n}\\n\\n.field.downloads {\\n margin-bottom: 10px\\n}\\n\\n.page-product-downloadable .product-add-form .product-options-wrapper .field.downloads>.control {\\n width: 100%\\n}\\n\\n.field.downloads .price-container {\\n display: inline;\\n white-space: nowrap\\n}\\n\\n.field.downloads .price-container:before {\\n content: ' + ';\\n display: inline\\n}\\n\\n.field.downloads .price-excluding-tax {\\n display: inline\\n}\\n\\n.field.downloads .price-excluding-tax:before {\\n content: ' (' attr(data-label) ': '\\n}\\n\\n.field.downloads .price-excluding-tax:after {\\n content: ')'\\n}\\n\\n.field.downloads .price-including-tax {\\n display: inline;\\n font-weight: 600;\\n font-size: 1.4rem\\n}\\n\\n.field.downloads .field.choice {\\n border-bottom: 1px solid #ebebeb;\\n box-sizing: border-box;\\n margin-bottom: 10px;\\n padding-bottom: 10px;\\n padding-left: 25px;\\n position: relative;\\n width: 100%;\\n z-index: 1\\n}\\n\\n.field.downloads .field.choice input {\\n left: 0;\\n position: absolute;\\n top: 2px\\n}\\n\\n.field.downloads .field.downloads-all {\\n border-bottom: 0;\\n padding-left: 0\\n}\\n\\n.field.downloads .sample.link {\\n float: right\\n}\\n\\n.field.downloads-all .label {\\n color: #006bb4;\\n text-decoration: none;\\n cursor: pointer\\n}\\n\\n.field.downloads-all .label:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.field.downloads-all .label:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.field.downloads-all .label:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.field.downloads-all input {\\n opacity: 0\\n}\\n\\n.field.downloads.downloads-no-separately .field.choice {\\n padding-left: 0\\n}\\n\\n.page-product-giftcard .giftcard-amount {\\n border-top: 1px #c1c1c1 solid;\\n clear: both;\\n margin-bottom: 0;\\n padding-top: 15px;\\n text-align: left\\n}\\n\\n.page-product-giftcard .giftcard-amount .field:last-child {\\n padding-bottom: 20px !important\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .old-price {\\n font-size: 20px\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .price-container.price-final>span {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .price-container.price-final>span:last-child {\\n margin-bottom: 0\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .price-container.price-final .price {\\n font-size: 22px;\\n font-weight: 600;\\n line-height: 22px\\n}\\n\\n.page-product-giftcard .product-info-main .price-box+.giftcard.form {\\n border-top: 1px #c1c1c1 solid;\\n padding-top: 15px\\n}\\n\\n.page-product-giftcard .product-info-main .alert {\\n clear: left\\n}\\n\\n.page-product-giftcard .product-info-stock-sku {\\n display: block\\n}\\n\\n.page-product-giftcard .product-add-form {\\n border: 0;\\n clear: none;\\n padding-top: 0\\n}\\n\\n.page-product-giftcard .product-add-form .product-options-wrapper .field:not(.text) {\\n margin-bottom: 20px;\\n margin-top: 20px\\n}\\n\\n.page-product-giftcard .giftcard.form {\\n clear: both\\n}\\n\\n.page-product-giftcard .price-box {\\n margin-bottom: 10px\\n}\\n\\n.page-product-giftcard .product-info-price {\\n border: 0;\\n display: block;\\n float: right;\\n white-space: nowrap;\\n width: auto\\n}\\n\\n.giftcard-account .please-wait {\\n display: none\\n}\\n\\n.giftcard-account .form-giftcard-redeem .giftcard.info {\\n margin-bottom: 30px\\n}\\n\\n.opc-wrapper .form-giftcard-account {\\n max-width: 500px\\n}\\n\\n.opc-wrapper .form-giftcard-account .field {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .giftcard-account-info {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .giftcard-account-info .giftcard-account-number {\\n margin: 0 0 10px\\n}\\n\\n.gift-message .field {\\n margin-bottom: 20px\\n}\\n\\n.gift-message .field .label {\\n color: #666;\\n font-weight: 400\\n}\\n\\n.gift-options {\\n margin: 20px 0\\n}\\n\\n.gift-options .actions-toolbar .action-cancel {\\n display: none\\n}\\n\\n.gift-options-title {\\n font-weight: 600;\\n margin: 0 0 20px\\n}\\n\\n.gift-options-content .fieldset {\\n margin: 0 0 20px\\n}\\n\\n.gift-summary {\\n position: relative;\\n margin-top: 10px\\n}\\n\\n.gift-summary .actions-toolbar>.secondary .action {\\n margin: 0 0 0 20px;\\n width: auto\\n}\\n\\n.gift-summary .action-edit,\\n.gift-summary .action-delete {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.gift-summary .action-edit>span,\\n.gift-summary .action-delete>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.gift-summary .action-edit:before,\\n.gift-summary .action-delete:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-summary .action-edit:hover:before,\\n.gift-summary .action-delete:hover:before {\\n color: #333\\n}\\n\\n.gift-summary .action-edit:active:before,\\n.gift-summary .action-delete:active:before {\\n color: #757575\\n}\\n\\n.gift-summary .action-delete:before {\\n content: '\\\\E604'\\n}\\n\\n.action-gift {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.action-gift:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 1.2rem;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 10px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.action-gift:hover:after {\\n color: #333\\n}\\n\\n.action-gift:active:after {\\n color: #757575\\n}\\n\\n.action-gift.active:after,\\n.action-gift._active:after {\\n content: '\\\\E621'\\n}\\n\\n.gift-summary .actions-toolbar,\\n.cart.table-wrapper .gift-summary .actions-toolbar {\\n padding: 0;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.cart.table-wrapper .gift-content {\\n box-sizing: border-box;\\n clear: left;\\n display: none;\\n float: left;\\n margin-right: -100%;\\n padding: 20px 0;\\n width: 100%\\n}\\n\\n.cart.table-wrapper .gift-content._active {\\n display: block\\n}\\n\\n.cart.table-wrapper .item-gift._active {\\n border-top: 1px solid #c1c1c1\\n}\\n\\n.cart.table-wrapper .item-gift .action {\\n margin-right: 0\\n}\\n\\n.gift-item-block {\\n border-bottom: 1px solid #c1c1c1;\\n margin: 0\\n}\\n\\n.gift-item-block._active .title:after {\\n content: '\\\\E621'\\n}\\n\\n.gift-item-block .title {\\n color: #1979c3;\\n cursor: pointer;\\n margin: 0;\\n padding: 10px 40px 10px 15px;\\n position: relative;\\n display: block;\\n text-decoration: none\\n}\\n\\n.gift-item-block .title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 1.2rem;\\n line-height: 20px;\\n color: #858585;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 10px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-item-block .title:hover:after {\\n color: #333\\n}\\n\\n.gift-item-block .content {\\n padding: 10px 0 20px;\\n position: relative\\n}\\n\\n.order-details-items .order-gift-message dt:after,\\n.order-details-items .block-order-details-gift-message dt:after {\\n content: ''\\n}\\n\\n.order-details-items .order-gift-message .item-message,\\n.order-details-items .block-order-details-gift-message .item-message {\\n clear: left\\n}\\n\\n.order-details-items .order-gift-message .item-options dt,\\n.order-details-items .block-order-details-gift-message .item-options dt {\\n font-weight: 400;\\n margin: 10px 0\\n}\\n\\n.gift-messages-order {\\n margin-bottom: 25px\\n}\\n\\n.form-giftregistry-share .actions-toolbar:not(:last-child),\\n.form-giftregistry-edit .actions-toolbar:not(:last-child) {\\n margin-bottom: 40px\\n}\\n\\n.form-giftregistry-share .fieldset .nested .field:not(.choice) .control,\\n.form-giftregistry-edit .fieldset .nested .field:not(.choice) .control {\\n width: 100%\\n}\\n\\n.giftregisty-dropdown .action.toggle {\\n color: #006bb4\\n}\\n\\n.table-giftregistry-items .product-image {\\n margin-right: 10px;\\n float: left\\n}\\n\\n.cart-summary .form.giftregistry .fieldset {\\n margin: 15px 0 5px;\\n text-align: left\\n}\\n\\n.cart-summary .form.giftregistry .fieldset .field {\\n margin: 0 0 10px\\n}\\n\\n.cart-summary .form.giftregistry .fieldset .field .control {\\n float: none;\\n width: auto\\n}\\n\\n.form-giftregistry-search {\\n margin-bottom: 60px\\n}\\n\\n.form-giftregistry-search .fields-specific-options .field:nth-last-of-type(1) {\\n margin-bottom: 0\\n}\\n\\n.block-giftregistry .actions-toolbar {\\n margin: 17px 0 0\\n}\\n\\n.block-giftregistry-shared .item-options .item-value {\\n margin: 0 0 25px\\n}\\n\\n.block-giftregistry-shared-items .item .col {\\n border: 0\\n}\\n\\n.block-giftregistry-shared-items th {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.block-giftregistry-shared-items .col {\\n padding: 20px 11px 10px\\n}\\n\\n.block-giftregistry-shared-items .col .price-box {\\n display: inline-block\\n}\\n\\n.block-giftregistry-shared-items .col .price-wrapper {\\n font-size: 1.8rem;\\n display: block;\\n font-weight: 700;\\n white-space: nowrap\\n}\\n\\n.block-giftregistry-shared-items .product .item-options {\\n margin: 0\\n}\\n\\n.block-giftregistry-shared-items .product-item-photo {\\n display: block;\\n max-width: 65px;\\n padding: 10px 0\\n}\\n\\n.block-giftregistry-shared-items .product-item-name {\\n font-size: 1.8rem;\\n display: block;\\n margin: 0 0 5px\\n}\\n\\n.gift-wrapping .label {\\n margin: 0 0 8px;\\n display: inline-block\\n}\\n\\n.gift-wrapping .field {\\n margin-bottom: 10px\\n}\\n\\n.gift-wrapping-info {\\n font-weight: 300;\\n font-size: 18px;\\n margin: 20px 0\\n}\\n\\n.gift-wrapping-list {\\n list-style: none;\\n margin: 20px 0 10px;\\n padding: 0\\n}\\n\\n.gift-wrapping-list .no-image {\\n background: #f2f2f2;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.gift-wrapping-list .no-image>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.gift-wrapping-list .no-image:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 4rem;\\n color: #494949;\\n content: '\\\\E62A';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-wrapping-list .no-image:after {\\n display: block\\n}\\n\\n.gift-wrapping-preview,\\n.gift-wrapping-item>span {\\n cursor: pointer;\\n display: block;\\n overflow: hidden;\\n position: relative;\\n z-index: 1\\n}\\n\\n.gift-wrapping-item {\\n float: left;\\n margin: 0 10px 10px 0\\n}\\n\\n.gift-wrapping-item:last-child {\\n margin-right: 0\\n}\\n\\n.gift-wrapping-item._active span:before {\\n border: 3px solid #333;\\n box-sizing: border-box;\\n content: '';\\n display: block;\\n height: 100%;\\n position: absolute;\\n width: 100%;\\n z-index: 2\\n}\\n\\n.gift-wrapping-item>span {\\n height: 4rem;\\n width: 4rem\\n}\\n\\n.gift-wrapping-title {\\n margin: 10px 0\\n}\\n\\n.gift-wrapping-title .action-remove {\\n margin: -5px 0 0 5px;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.gift-wrapping-title .action-remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.gift-wrapping-title .action-remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E604';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-wrapping-title .action-remove:hover:before {\\n color: #333\\n}\\n\\n.gift-wrapping-title .action-remove:active:before {\\n color: #757575\\n}\\n\\n.gift-options-content .fieldset .field {\\n margin: 10px 0\\n}\\n\\n.gift-wrapping-summary {\\n padding-right: 7rem\\n}\\n\\n.gift-wrapping-summary .gift-wrapping-title {\\n border: 0;\\n display: inline-block;\\n padding: 0\\n}\\n\\n.opc-wrapper .fieldset.gift-message .field.gift-wrapping {\\n padding: 0;\\n width: 100%\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping,\\n.table-order-items .gift-wrapping {\\n margin: 20px 0 0\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping .title,\\n.table-order-items .gift-wrapping .title {\\n float: none\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping .content,\\n.table-order-items .gift-wrapping .content {\\n margin: 0\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping .content>img,\\n.table-order-items .gift-wrapping .content>img {\\n float: left;\\n margin: 0 10px 0 0;\\n max-height: 50px;\\n max-width: 50px\\n}\\n\\n.gift-summary .price-box,\\n.gift-options .price-box {\\n margin-left: 22px\\n}\\n\\n.gift-summary .regular-price:before,\\n.gift-options .regular-price:before {\\n content: attr(data-label) ': '\\n}\\n\\n.gift-summary .regular-price .price,\\n.gift-options .regular-price .price {\\n font-weight: 700\\n}\\n\\n.order-options .item {\\n padding-bottom: 20px\\n}\\n\\n.order-options .product {\\n margin-bottom: 10px\\n}\\n\\n.order-options .product-image-container {\\n float: left;\\n padding-right: 10px\\n}\\n\\n.order-options .gift-wrapping {\\n margin-bottom: 10px\\n}\\n\\n.table-wrapper.grouped {\\n width: auto\\n}\\n\\n.table.grouped .row-tier-price>td {\\n border-top: 0\\n}\\n\\n.table.grouped .col.item {\\n width: 90%\\n}\\n\\n.table.grouped .col.qty {\\n width: 10%\\n}\\n\\n.table.grouped .product-item-name {\\n display: inline-block;\\n font-weight: 400;\\n margin-bottom: 10px\\n}\\n\\n.table.grouped .price-box p {\\n margin: 0\\n}\\n\\n.table.grouped .price-box .price {\\n font-weight: 700\\n}\\n\\n.table.grouped .price-box .old-price .price {\\n font-weight: normal\\n}\\n\\n.table.grouped .stock.unavailable {\\n font-weight: normal;\\n margin: 0;\\n text-transform: none;\\n white-space: nowrap\\n}\\n\\n.page-product-grouped .product-info-main .alert {\\n clear: left\\n}\\n\\n.form-add-invitations .additional,\\n.form-add-invitations .field.message {\\n margin-top: 20px\\n}\\n\\n.form-add-invitations .action.remove {\\n top: 4px\\n}\\n\\n.form-add-invitations .action.add {\\n display: inline-block;\\n text-decoration: none;\\n line-height: normal;\\n padding: 4px;\\n width: auto\\n}\\n\\n.form-add-invitations .action.add>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.form-add-invitations .action.add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.form-add-invitations .action.add:hover:before {\\n color: inherit\\n}\\n\\n.form-add-invitations .action.add:active:before {\\n color: inherit\\n}\\n\\n.filter.block {\\n margin-bottom: 0\\n}\\n\\n.filter-title strong {\\n background-color: #f0f0f0;\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3);\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n font-weight: 400;\\n left: 0;\\n line-height: 16px;\\n padding: 7px 10px;\\n position: absolute;\\n text-align: center;\\n top: 0;\\n z-index: 2\\n}\\n\\n.filter-title strong[data-count]:after {\\n color: #fff;\\n background: #ff5501;\\n border-radius: 2px;\\n content: attr(data-count);\\n display: inline-block;\\n font-size: .8em;\\n line-height: 1;\\n margin: 0 5px;\\n min-width: 1em;\\n padding: 2px\\n}\\n\\n.filter-title strong.disabled {\\n opacity: .5\\n}\\n\\n.filter .block-subtitle {\\n border-bottom: 1px solid #ccc;\\n font-size: 14px;\\n font-weight: 600;\\n line-height: 1em;\\n padding: 10px 10px 20px\\n}\\n\\n.filter-subtitle {\\n display: none\\n}\\n\\n.filter-current {\\n margin: 0\\n}\\n\\n.filter-current .items {\\n padding: 5px 10px\\n}\\n\\n.filter-current .item {\\n padding-left: 17px;\\n position: relative;\\n z-index: 1\\n}\\n\\n.filter .filter-current-subtitle {\\n border: none;\\n display: block;\\n padding-bottom: 10px\\n}\\n\\n.filter-current .action.remove {\\n left: -2px;\\n position: absolute;\\n top: -1px\\n}\\n\\n.filter-actions {\\n margin-bottom: 25px;\\n padding: 0 10px\\n}\\n\\n.filter-label {\\n font-weight: 700\\n}\\n\\n.filter-label:after {\\n content: ': '\\n}\\n\\n.filter-value {\\n color: #757575\\n}\\n\\n.filter-options {\\n display: none;\\n margin: 0\\n}\\n\\n.filter-options-item {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 10px\\n}\\n\\n.filter-options-title {\\n cursor: pointer;\\n font-weight: 600;\\n margin: 0;\\n overflow: hidden;\\n padding: 10px 40px 0 10px;\\n position: relative;\\n text-transform: uppercase;\\n word-break: break-all;\\n z-index: 1;\\n display: block;\\n text-decoration: none\\n}\\n\\n.filter-options-title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 13px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.filter-options-title:after {\\n position: absolute;\\n right: 13px;\\n top: 12px\\n}\\n\\n.filter-options-title:hover {\\n color: #000\\n}\\n\\n.active>.filter-options-title:after {\\n content: '\\\\E621'\\n}\\n\\n.filter-options-content {\\n margin: 0;\\n padding: 10px\\n}\\n\\n.filter-options-content .item {\\n line-height: 1.5em;\\n margin: 10px 0\\n}\\n\\n.filter-options-content a {\\n color: #494949;\\n margin-left: -5px;\\n margin-right: -5px;\\n padding-left: 5px;\\n padding-right: 7px\\n}\\n\\n.filter-options-content a:hover {\\n background-color: #e8e8e8;\\n text-decoration: none\\n}\\n\\n.filter-options-content a:hover+.count {\\n background-color: #e8e8e8\\n}\\n\\n.filter-options-content .count {\\n color: #757575;\\n font-weight: 300;\\n padding-left: 5px;\\n padding-right: 5px\\n}\\n\\n.filter-options-content .count:before {\\n content: '('\\n}\\n\\n.filter-options-content .count:after {\\n content: ')'\\n}\\n\\n.map-popup-wrapper.popup .action.close {\\n top: 10px\\n}\\n\\n.map-popup {\\n background: #fff;\\n border: 1px solid #adadad;\\n padding: 22px;\\n width: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15);\\n transition: opacity .3s linear;\\n left: 0;\\n margin-top: 10px;\\n position: absolute;\\n top: 0;\\n z-index: 1001;\\n display: none;\\n opacity: 0;\\n box-sizing: border-box\\n}\\n\\n.map-popup .popup-header {\\n margin: 0 0 25px;\\n padding-right: 16px\\n}\\n\\n.map-popup .popup-header .title {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.map-popup .popup-actions .action.close {\\n position: absolute;\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400;\\n right: 10px;\\n top: 10px\\n}\\n\\n.map-popup .popup-actions .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.map-popup .popup-actions .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #8c8c8c;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.map-popup .popup-actions .action.close:hover:before {\\n color: #737373\\n}\\n\\n.map-popup .popup-actions .action.close:active:before {\\n color: #737373\\n}\\n\\n.map-popup .popup-actions .action.close:focus,\\n.map-popup .popup-actions .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.map-popup .popup-actions .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.map-popup .popup-actions .action.close.disabled,\\n.map-popup .popup-actions .action.close[disabled],\\nfieldset[disabled] .map-popup .popup-actions .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.map-popup.active {\\n opacity: 1\\n}\\n\\n.map-popup .map-info-price {\\n margin: 0 0 20px\\n}\\n\\n.map-popup .map-info-price .price-box {\\n margin: 0 0 20px\\n}\\n\\n.map-popup .map-info-price .price-box .label:after {\\n content: ': '\\n}\\n\\n.map-popup .action.primary {\\n margin-right: 10px\\n}\\n\\n.map-popup .map-msrp {\\n margin-bottom: 10px\\n}\\n\\n.map-popup .actual-price {\\n margin: 3px 0 15px\\n}\\n\\n.map-popup .regular-price .price-label {\\n display: none\\n}\\n\\n.map-popup .popup-header {\\n display: none\\n}\\n\\n.map-old-price {\\n text-decoration: none\\n}\\n\\n.map-old-price .price-wrapper {\\n text-decoration: line-through\\n}\\n\\n.map-old-price,\\n.product-item .map-old-price,\\n.product-info-price .map-show-info {\\n display: inline-block;\\n min-width: 10rem\\n}\\n\\n.map-old-price:not(:last-child),\\n.product-item .map-old-price:not(:last-child),\\n.product-info-price .map-show-info:not(:last-child) {\\n margin-right: 10px\\n}\\n\\n.product-options-bottom .price-box .old-price .price-container>span,\\n.product-info-price .price-box .old-price .price-container>span {\\n display: inline\\n}\\n\\n.map-form-addtocart {\\n display: inline-block;\\n text-align: center\\n}\\n\\n.map-form-addtocart img {\\n display: block;\\n margin: 0 auto\\n}\\n\\nbutton.map-show-info {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\nbutton.map-show-info:focus,\\nbutton.map-show-info:active {\\n background: none;\\n border: none\\n}\\n\\nbutton.map-show-info:hover {\\n background: none;\\n border: none\\n}\\n\\nbutton.map-show-info.disabled,\\nbutton.map-show-info[disabled],\\nfieldset[disabled] button.map-show-info {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\nbutton.map-show-info:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\nbutton.map-show-info:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\nbutton.map-show-info:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\nbutton.map-show-info:hover {\\n color: #006bb4\\n}\\n\\nbutton.map-show-info:hover,\\nbutton.map-show-info:active,\\nbutton.map-show-info:focus {\\n background: none;\\n border: 0\\n}\\n\\nbutton.map-show-info.disabled,\\nbutton.map-show-info[disabled],\\nfieldset[disabled] button.map-show-info {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.wishlist.split.button {\\n display: inline-block;\\n position: relative;\\n margin-right: 5%;\\n vertical-align: middle\\n}\\n\\n.wishlist.split.button:before,\\n.wishlist.split.button:after {\\n content: '';\\n display: table\\n}\\n\\n.wishlist.split.button:after {\\n clear: both\\n}\\n\\n.wishlist.split.button .action.split {\\n float: left;\\n margin: 0\\n}\\n\\n.wishlist.split.button .action.toggle {\\n float: right;\\n margin: 0\\n}\\n\\n.wishlist.split.button .action.toggle {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.wishlist.split.button .action.toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.wishlist.split.button .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: #666;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.split.button .action.toggle:hover:after {\\n color: #333\\n}\\n\\n.wishlist.split.button .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.wishlist.split.button .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.wishlist.split.button .action.toggle.active>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.wishlist.split.button .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: #666;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.split.button .action.toggle.active:hover:after {\\n color: #333\\n}\\n\\n.wishlist.split.button .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.wishlist.split.button .items {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 200px;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.wishlist.split.button .items li {\\n margin: 0;\\n padding: 5px 5px 5px 23px\\n}\\n\\n.wishlist.split.button .items li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.wishlist.split.button .items:before,\\n.wishlist.split.button .items:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.wishlist.split.button .items:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.wishlist.split.button .items:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.wishlist.split.button .items:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.wishlist.split.button .items:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.wishlist.split.button.active {\\n overflow: visible\\n}\\n\\n.wishlist.split.button.active .items {\\n display: block\\n}\\n\\n.wishlist.split.button .items {\\n padding: 6px 0;\\n text-align: left\\n}\\n\\n.wishlist.split.button>.action.split {\\n margin-right: 5px\\n}\\n\\n.wishlist.split.button>.action.split:before {\\n content: '\\\\E600'\\n}\\n\\n.wishlist.split.button>.action.split:before {\\n margin: 0;\\n width: 18px\\n}\\n\\n.wishlist.split.button>.action:active,\\n.wishlist.split.button>.action:focus,\\n.wishlist.split.button>.action:hover {\\n color: #333\\n}\\n\\n.wishlist.split.button>.action.toggle:before {\\n border-left: 1px solid #666;\\n content: '';\\n float: left;\\n height: 15px;\\n margin: 3px 4px 0 0\\n}\\n\\n.cart.table-wrapper .wishlist.split.button {\\n vertical-align: baseline\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.split {\\n font-weight: normal;\\n letter-spacing: normal;\\n text-transform: none\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.toggle:after {\\n color: #006bb4\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.split,\\n.cart.table-wrapper .wishlist.split.button>.action.toggle {\\n color: #006bb4\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.split:before,\\n.cart.table-wrapper .wishlist.split.button>.action.toggle:before {\\n display: none\\n}\\n\\n.wishlist.window.popup {\\n background: #fff;\\n border: 1px solid #adadad;\\n padding: 22px;\\n width: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15);\\n transition: opacity .3s linear;\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 1001;\\n display: none;\\n opacity: 0;\\n box-sizing: border-box\\n}\\n\\n.wishlist.window.popup .popup-header {\\n margin: 0 0 25px;\\n padding-right: 16px\\n}\\n\\n.wishlist.window.popup .popup-header .title {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close {\\n position: absolute;\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400;\\n right: 10px;\\n top: 10px\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #8c8c8c;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:hover:before {\\n color: #737373\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:active:before {\\n color: #737373\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:focus,\\n.wishlist.window.popup .popup-actions .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close.disabled,\\n.wishlist.window.popup .popup-actions .action.close[disabled],\\nfieldset[disabled] .wishlist.window.popup .popup-actions .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.wishlist.window.popup.active {\\n opacity: 1\\n}\\n\\n.wishlist.window.popup.active {\\n display: block\\n}\\n\\n.wishlist.overlay {\\n transition: opacity .15s linear;\\n background: #8c8c8c;\\n z-index: 899;\\n bottom: 0;\\n left: 0;\\n opacity: 0;\\n position: fixed;\\n right: 0;\\n top: 0\\n}\\n\\n.wishlist.overlay.active {\\n opacity: .7;\\n filter: alpha(opacity=70)\\n}\\n\\n.wishlist.overlay.active {\\n display: block\\n}\\n\\n.wishlist-dropdown.move .action.toggle,\\n.wishlist-dropdown.copy .action.toggle {\\n color: #006bb4\\n}\\n\\n.page-multiple-wishlist .actions-toolbar>.primary {\\n display: block;\\n float: none;\\n text-align: left\\n}\\n\\n.page-multiple-wishlist .actions-toolbar>.primary .action.remove {\\n float: right\\n}\\n\\n.block-wishlist-management {\\n position: relative\\n}\\n\\n.block-wishlist-management .wishlist-select .wishlist-name-label {\\n font-weight: 600\\n}\\n\\n.block-wishlist-management .wishlist-title {\\n margin-bottom: 10px\\n}\\n\\n.block-wishlist-management .wishlist-title strong {\\n font-weight: 300;\\n margin-right: 10px\\n}\\n\\n.block-wishlist-management .wishlist-notice {\\n color: #7d7d7d;\\n display: inline-block;\\n margin-right: 20px\\n}\\n\\n.block-wishlist-management .wishlist-notice.private {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.block-wishlist-management .wishlist-notice.private:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: inherit;\\n line-height: inherit;\\n color: #a3a3a3;\\n content: '\\\\E629';\\n font-family: 'luma-icons';\\n margin: 0 5px 0 0;\\n vertical-align: text-bottom;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block-wishlist-management .wishlist-toolbar-select,\\n.block-wishlist-management .wishlist-toolbar-actions {\\n display: inline-block\\n}\\n\\n.block-wishlist-management .wishlist-toolbar-select {\\n margin-right: 20px\\n}\\n\\n.block-wishlist-management .wishlist-toolbar .copy .dropdown {\\n right: 0\\n}\\n\\n.block-wishlist-management .wishlist-toolbar .copy .dropdown:before {\\n left: auto;\\n right: 11px\\n}\\n\\n.block-wishlist-management .wishlist-toolbar .copy .dropdown:after {\\n left: auto;\\n right: 10px\\n}\\n\\n.block-wishlist-management .wishlist-dropdown.move {\\n margin-right: 20px\\n}\\n\\n.block-wishlist-search-form .form-wishlist-search {\\n margin-bottom: 60px;\\n max-width: 500px\\n}\\n\\n.block-wishlist-search-results .table-wrapper {\\n border-top: none\\n}\\n\\n.block-wishlist-info-items .block-title {\\n margin-bottom: 20px;\\n font-size: 2.2rem\\n}\\n\\n.block-wishlist-info-items .block-title>strong {\\n font-weight: 300\\n}\\n\\n.block-wishlist-info-items .product-item {\\n width: 100%\\n}\\n\\n.block-wishlist-info-items .product-item-photo {\\n margin-left: 20px\\n}\\n\\n.block-wishlist-info-items .product-item-info {\\n width: auto\\n}\\n\\n.block-wishlist-info-items .product-item-info:hover .split {\\n visibility: visible\\n}\\n\\n.block-wishlist-info-items .price-wrapper {\\n display: block;\\n margin: 0 0 10px\\n}\\n\\n.block-wishlist-info-items .split {\\n clear: both;\\n padding: 10px 0;\\n visibility: hidden\\n}\\n\\n.block-wishlist-info-items .wishlist-dropdown .change {\\n color: #006bb4\\n}\\n\\n.block-wishlist-info-items .action.towishlist {\\n padding: 10px 0\\n}\\n\\n.block-wishlist-info-items .input-text.qty {\\n margin-right: 10px\\n}\\n\\n.block.newsletter {\\n margin-bottom: 20px\\n}\\n\\n.block.newsletter .form.subscribe {\\n display: table;\\n width: 100%\\n}\\n\\n.block.newsletter .fieldset {\\n display: table-cell;\\n margin: 0;\\n padding: 0;\\n vertical-align: top\\n}\\n\\n.block.newsletter .field {\\n margin: 0\\n}\\n\\n.block.newsletter .field .control {\\n display: inline-block;\\n text-decoration: none;\\n display: block\\n}\\n\\n.block.newsletter .field .control:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 32px;\\n color: #575757;\\n content: '\\\\E61D';\\n font-family: 'luma-icons';\\n margin: 0 0 0 8px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block.newsletter .field .control:before {\\n position: absolute\\n}\\n\\n.block.newsletter input {\\n padding-left: 35px\\n}\\n\\n.block.newsletter .title {\\n display: none\\n}\\n\\n.block.newsletter .actions {\\n display: table-cell;\\n vertical-align: top;\\n width: 1%\\n}\\n\\n.block.newsletter .action.subscribe {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n margin-left: -1px\\n}\\n\\n.data.switch .counter {\\n color: #7d7d7d\\n}\\n\\n.data.switch .counter:before {\\n content: '('\\n}\\n\\n.data.switch .counter:after {\\n content: ')'\\n}\\n\\n.rating-summary {\\n overflow: hidden;\\n white-space: nowrap\\n}\\n\\n.rating-summary .rating-result {\\n width: 88px;\\n display: inline-block;\\n position: relative;\\n vertical-align: middle\\n}\\n\\n.rating-summary .rating-result:before {\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n z-index: 1;\\n -webkit-font-smoothing: antialiased;\\n color: #c7c7c7;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605';\\n display: block;\\n font-style: normal;\\n font-weight: normal;\\n speak: none\\n}\\n\\n.rating-summary .rating-result>span {\\n display: block;\\n overflow: hidden\\n}\\n\\n.rating-summary .rating-result>span:before {\\n position: relative;\\n z-index: 2;\\n -webkit-font-smoothing: antialiased;\\n color: #ff5501;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605';\\n display: block;\\n font-style: normal;\\n font-weight: normal;\\n speak: none\\n}\\n\\n.rating-summary .rating-result>span span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.product-reviews-summary .rating-summary .label,\\n.table-reviews .rating-summary .label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.review-control-vote {\\n overflow: hidden\\n}\\n\\n.review-control-vote:before {\\n color: #c7c7c7;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n font-style: normal;\\n font-weight: normal;\\n speak: none;\\n vertical-align: top;\\n -webkit-font-smoothing: antialiased;\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605';\\n display: block;\\n position: absolute;\\n z-index: 1\\n}\\n\\n.review-control-vote input[type=\\\"radio\\\"] {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.review-control-vote input[type=\\\"radio\\\"]:focus+label:before,\\n.review-control-vote input[type=\\\"radio\\\"]:checked+label:before {\\n opacity: 1\\n}\\n\\n.review-control-vote label {\\n cursor: pointer;\\n display: block;\\n position: absolute\\n}\\n\\n.review-control-vote label span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.review-control-vote label:before {\\n color: #ff5501;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n font-style: normal;\\n font-weight: normal;\\n speak: none;\\n vertical-align: top;\\n -webkit-font-smoothing: antialiased;\\n opacity: 0\\n}\\n\\n.review-control-vote label:hover:before {\\n opacity: 1\\n}\\n\\n.review-control-vote label:hover~label:before {\\n opacity: 0\\n}\\n\\n.review-control-vote .rating-5 {\\n z-index: 2\\n}\\n\\n.review-control-vote .rating-5:before {\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-4 {\\n z-index: 3\\n}\\n\\n.review-control-vote .rating-4:before {\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-3 {\\n z-index: 4\\n}\\n\\n.review-control-vote .rating-3:before {\\n content: '\\\\E605' '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-2 {\\n z-index: 5\\n}\\n\\n.review-control-vote .rating-2:before {\\n content: '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-1 {\\n z-index: 6\\n}\\n\\n.review-control-vote .rating-1:before {\\n content: '\\\\E605'\\n}\\n\\n.review-control-vote:before {\\n content: '\\\\E625' '\\\\E625' '\\\\E625' '\\\\E625' '\\\\E625'\\n}\\n\\n.products-reviews-toolbar {\\n position: relative\\n}\\n\\n.products-reviews-toolbar .toolbar-amount {\\n position: relative;\\n text-align: center\\n}\\n\\n.review-toolbar {\\n border-top: 1px solid #c9c9c9;\\n margin: 0 0 20px;\\n padding: 0;\\n text-align: center\\n}\\n\\n.review-toolbar:first-child {\\n display: none\\n}\\n\\n.review-toolbar .pages {\\n border-bottom: 1px solid #c9c9c9;\\n display: block;\\n padding: 20px 0;\\n text-align: center\\n}\\n\\n.review-toolbar .limiter {\\n display: none\\n}\\n\\n.review-add .block-title {\\n display: none\\n}\\n\\n.review-form .action.submit.primary {\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333;\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n padding: 7px 15px;\\n margin: 0\\n}\\n\\n.review-form .action.submit.primary:focus,\\n.review-form .action.submit.primary:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.review-form .action.submit.primary:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.review-form .actions-toolbar .actions-primary {\\n padding: 0\\n}\\n\\n.fieldset .review-legend.legend {\\n border-bottom: 0;\\n line-height: 1.3;\\n margin-bottom: 20px;\\n padding: 0\\n}\\n\\n.fieldset .review-legend.legend span {\\n margin: 0\\n}\\n\\n.fieldset .review-legend.legend strong {\\n display: block;\\n font-weight: 600\\n}\\n\\n.fieldset .review-field-ratings>.label {\\n font-weight: 600;\\n margin-bottom: 10px;\\n padding: 0\\n}\\n\\n.review-control-vote label:before,\\n.review-control-vote:before {\\n font-size: 32px;\\n height: 32px;\\n letter-spacing: 10px;\\n line-height: 32px\\n}\\n\\n.review-field-rating .label {\\n font-weight: 600\\n}\\n\\n.review-field-rating .control {\\n margin-bottom: 48px;\\n margin-top: 10px\\n}\\n\\n.review-list {\\n margin-bottom: 30px\\n}\\n\\n.review-list .block-title strong {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.review-item {\\n border-bottom: 1px solid #c9c9c9;\\n margin: 0;\\n padding: 20px 0\\n}\\n\\n.review-item:after {\\n clear: both;\\n content: '';\\n display: table\\n}\\n\\n.review-item:last-child {\\n border-width: 0\\n}\\n\\n.review-ratings {\\n display: table;\\n margin-bottom: 10px;\\n max-width: 100%\\n}\\n\\n.review-author {\\n display: inline\\n}\\n\\n.review-author .review-details-value {\\n font-weight: 400\\n}\\n\\n.review-date {\\n display: inline\\n}\\n\\n.review-title {\\n font-weight: 600;\\n line-height: 1.1;\\n font-size: 1.8rem;\\n margin-top: 2rem;\\n margin-bottom: 1rem;\\n margin: 0 0 20px\\n}\\n\\n.review-content {\\n margin-bottom: 20px\\n}\\n\\n.page-main .column .review-add {\\n margin-bottom: 0\\n}\\n\\n.data.table.reviews .rating-summary {\\n margin-top: -4px\\n}\\n\\n.customer.review.view .review.title,\\n.customer.review.view .ratings.summary.items,\\n.customer.review.view .product.details {\\n margin-bottom: 20px\\n}\\n\\n.product-reviews-summary {\\n margin-bottom: 5px\\n}\\n\\n.products.wrapper.list .product-reviews-summary {\\n margin: 0 auto\\n}\\n\\n.product-reviews-summary .rating-summary {\\n display: inline-block;\\n vertical-align: middle\\n}\\n\\n.product-reviews-summary .reviews-actions {\\n display: inline-block;\\n font-size: 11px;\\n vertical-align: middle\\n}\\n\\n.product-reviews-summary .reviews-actions a:not(:last-child) {\\n margin-right: 30px\\n}\\n\\n.product-info-main .rating-summary,\\n.customer-review .rating-summary {\\n margin-right: 30px\\n}\\n\\n.block-reviews-dashboard .items .item {\\n margin-bottom: 20px\\n}\\n\\n.block-reviews-dashboard .items .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.block-reviews-dashboard .product-name {\\n display: inline-block\\n}\\n\\n.block-reviews-dashboard .product-name:not(:last-child) {\\n margin-bottom: 5px\\n}\\n\\n.block-reviews-dashboard .rating-summary .label {\\n font-weight: 600;\\n margin-right: 10px\\n}\\n\\n.table-reviews .product-name,\\n.block-reviews-dashboard .product-name {\\n font-weight: 400\\n}\\n\\n.table-reviews .rating-summary {\\n display: inline-block;\\n vertical-align: baseline\\n}\\n\\n.customer-review .product-media {\\n float: left;\\n margin-right: 3%;\\n max-width: 285px;\\n width: 30%\\n}\\n\\n.customer-review .review-details {\\n margin: 0\\n}\\n\\n.customer-review .review-details .customer-review-rating {\\n margin-bottom: 20px\\n}\\n\\n.customer-review .review-details .customer-review-rating .item {\\n margin-bottom: 10px\\n}\\n\\n.customer-review .review-details .customer-review-rating .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.customer-review .review-details .review-title {\\n line-height: 1.1;\\n font-size: 1.8rem;\\n margin-top: 2rem;\\n margin-bottom: 1rem;\\n font-weight: 600;\\n margin-bottom: 20px\\n}\\n\\n.customer-review .review-details .review-content {\\n margin: 0;\\n margin-bottom: 20px\\n}\\n\\n.customer-review .review-details .review-date {\\n color: #a6a6a6\\n}\\n\\n.block-reward-info .reward-balance {\\n font-size: 1.8rem;\\n margin-bottom: 25px\\n}\\n\\n.block-reward-info .reward-rates:not(:last-child),\\n.block-reward-info .reward-limit:not(:last-child),\\n.block-reward-info .reward-expiring:not(:last-child) {\\n margin-bottom: 25px\\n}\\n\\n.block-reward-info .reward-rates .title,\\n.block-reward-info .reward-limit .title,\\n.block-reward-info .reward-expiring .title {\\n display: inline-block;\\n margin-bottom: 10px\\n}\\n\\n.order-details-items.rma .order-title {\\n display: none\\n}\\n\\n.order-details-items.rma .order-title+.toolbar {\\n display: none\\n}\\n\\n.form-create-return .additional:first-child {\\n margin-top: 0\\n}\\n\\n.form-create-return .field.comment {\\n margin-top: 55px\\n}\\n\\n.block-returns-comments .returns-comments dt,\\n.block-returns-comments .returns-comments dd {\\n margin: 0\\n}\\n\\n.block-returns-comments .returns-comments dt {\\n font-weight: 400\\n}\\n\\n.block-returns-comments .returns-comments dd {\\n margin-bottom: 15px\\n}\\n\\n.block-returns-comments .returns-comments dd:last-child {\\n margin-bottom: 0\\n}\\n\\n.block-returns-comments .fieldset {\\n margin-bottom: 20px\\n}\\n\\n.magento-rma-guest-create .order-links .item a {\\n line-height: 1.42857143;\\n margin: 0 30px 0 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\n.magento-rma-guest-create .order-links .item a:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.magento-rma-guest-create .order-links .item a:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.magento-rma-guest-create .order-links .item a:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.magento-rma-guest-create .order-links .item a:hover {\\n color: #006bb4\\n}\\n\\n.magento-rma-guest-create .order-links .item a:hover,\\n.magento-rma-guest-create .order-links .item a:active,\\n.magento-rma-guest-create .order-links .item a:focus {\\n background: none;\\n border: 0\\n}\\n\\n.magento-rma-guest-create .order-links .item a.disabled,\\n.magento-rma-guest-create .order-links .item a[disabled],\\nfieldset[disabled] .magento-rma-guest-create .order-links .item a {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.order-links .item {\\n line-height: 40px;\\n margin: 0 0 -1px\\n}\\n\\n.order-links .item strong {\\n background: #fff;\\n border: 1px solid #ccc;\\n display: block;\\n font-weight: 400;\\n padding: 0 20px\\n}\\n\\n.order-links .item a {\\n background: #f6f6f6;\\n color: #6d6d6d;\\n border: 1px solid #ccc;\\n display: block;\\n font-weight: 400;\\n padding: 0 20px\\n}\\n\\n.order-links .item a:hover {\\n background: #fff;\\n text-decoration: none\\n}\\n\\n.order-details-items {\\n border: 1px solid #ccc;\\n margin-bottom: 40px;\\n padding: 10px\\n}\\n\\n.order-details-items .order-title {\\n border-bottom: 1px solid #ccc;\\n padding: 0 0 10px\\n}\\n\\n.order-details-items .order-title>strong {\\n font-size: 2.4rem;\\n font-weight: 300\\n}\\n\\n.order-details-items .order-title .action {\\n display: inline-block\\n}\\n\\n.order-details-items .table-wrapper {\\n margin: 0\\n}\\n\\n.order-details-items .table-wrapper+.actions-toolbar {\\n display: none\\n}\\n\\n.order-details-items .table-wrapper:not(:last-child) {\\n margin-bottom: 30px\\n}\\n\\n.order-details-items .table-order-items>thead>tr>th {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.order-details-items .table-order-items tbody+tbody {\\n border-top: 1px solid #ccc\\n}\\n\\n.account .order-details-items .table-order-items tbody tr:nth-child(even) td {\\n background: none\\n}\\n\\n.order-details-items .table-order-items tbody td {\\n padding-bottom: 20px;\\n padding-top: 20px\\n}\\n\\n.order-details-items .table-order-items tbody .col.label {\\n font-weight: 700;\\n padding-bottom: 5px;\\n padding-top: 0\\n}\\n\\n.order-details-items .table-order-items tbody .col.options {\\n padding: 0 0 15px\\n}\\n\\n.order-details-items .table-order-items tbody>.item-parent td {\\n padding-bottom: 5px\\n}\\n\\n.order-details-items .table-order-items tbody>.item-parent+tr td {\\n padding-top: 5px\\n}\\n\\n.order-details-items .table-order-items tbody .item-options-container td {\\n padding-bottom: 15px;\\n padding-top: 0\\n}\\n\\n.order-details-items .table-order-items .product-item-name {\\n margin: 0 0 10px\\n}\\n\\n.order-details-items .item-options {\\n margin: 0\\n}\\n\\n.order-details-items .item-options dt {\\n margin: 0\\n}\\n\\n.order-details-items .item-options dd {\\n margin: 0 0 15px\\n}\\n\\n.order-details-items .item-options dd:last-child {\\n margin-bottom: 0\\n}\\n\\n.order-details-items .item-options.links dt {\\n display: inline-block\\n}\\n\\n.order-details-items .item-options.links dt:after {\\n content: ': '\\n}\\n\\n.order-details-items .item-options.links dd {\\n margin: 0\\n}\\n\\n.order-details-items thead .col.qty {\\n text-align: center\\n}\\n\\n.order-details-items .col.name {\\n padding-top: 16px\\n}\\n\\n.order-details-items .action.show {\\n display: inline-block;\\n text-decoration: none;\\n color: #333\\n}\\n\\n.order-details-items .action.show>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.order-details-items .action.show:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 10px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.order-details-items .action.show.expanded:after {\\n content: '\\\\E621'\\n}\\n\\n.order-details-items .product-item-name {\\n font-size: 1.8rem\\n}\\n\\n.order-details-items .items-qty .item {\\n white-space: nowrap\\n}\\n\\n.order-details-items .items-qty .title:after {\\n content: ': '\\n}\\n\\n.order-details-items .pages-items .item:first-child,\\n.order-details-items .pages-items .item:last-child {\\n margin-right: 0\\n}\\n\\n.block-order-details-comments {\\n margin: 0 0 40px\\n}\\n\\n.block-order-details-comments .comment-date {\\n font-weight: 600\\n}\\n\\n.block-order-details-comments .comment-content {\\n line-height: 1.6;\\n margin: 0 0 20px\\n}\\n\\n.block-order-details-view .block-content .box {\\n margin-bottom: 30px\\n}\\n\\n.block-order-details-view .box-title {\\n font-weight: 600\\n}\\n\\n.block-order-details-view .box-content .payment-method .title {\\n font-weight: 400\\n}\\n\\n.block-order-details-view .box-content .payment-method .content {\\n margin: 0\\n}\\n\\n.block-order-details-view .box-content .payment-method .content>strong {\\n font-weight: 400\\n}\\n\\n.block-order-details-view .box-content .payment-method .content>strong:after {\\n content: ': '\\n}\\n\\n.column.main .order-details-items .block-order-details-gift-message {\\n margin: 40px 0 0\\n}\\n\\n.block-order-details-gift-message+.actions-toolbar {\\n display: none\\n}\\n\\n.order-tracking {\\n margin: 0;\\n padding: 20px 0\\n}\\n\\n.order-title+.order-tracking {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.order-tracking .tracking-title {\\n display: inline-block\\n}\\n\\n.order-tracking .tracking-content {\\n display: inline-block;\\n margin: 0 0 0 5px\\n}\\n\\n.order-actions-toolbar {\\n margin-bottom: 25px\\n}\\n\\n.order-actions-toolbar .action {\\n margin-right: 30px\\n}\\n\\n.order-actions-toolbar .action.print {\\n display: none;\\n margin: 0\\n}\\n\\n.form-orders-search .field:last-child {\\n margin-bottom: 20px\\n}\\n\\n.block-reorder .actions-toolbar {\\n margin: 17px 0\\n}\\n\\n.block-reorder .product-item-name {\\n display: inline-block\\n}\\n\\n.block-reorder .product-item .field.item {\\n display: inline-block\\n}\\n\\n.product-social-links .action.mailto.friend:before {\\n content: '\\\\E61D'\\n}\\n\\n.block-collapsible-nav .content {\\n background: #f5f5f5;\\n padding: 15px 0\\n}\\n\\n.block-collapsible-nav .item {\\n margin: 3px 0 0\\n}\\n\\n.block-collapsible-nav .item:first-child {\\n margin-top: 0\\n}\\n\\n.block-collapsible-nav .item a,\\n.block-collapsible-nav .item>strong {\\n border-left: 3px solid transparent;\\n color: #575757;\\n display: block;\\n padding: 5px 18px 5px 15px\\n}\\n\\n.block-collapsible-nav .item a {\\n text-decoration: none\\n}\\n\\n.block-collapsible-nav .item a:hover {\\n background: #e8e8e8\\n}\\n\\n.block-collapsible-nav .item.current a,\\n.block-collapsible-nav .item.current>strong {\\n border-color: #ff5501;\\n color: #000;\\n font-weight: 600\\n}\\n\\n.block-collapsible-nav .item.current a {\\n border-color: #ff5501\\n}\\n\\n.block-collapsible-nav .item .delimiter {\\n border-top: 1px solid #d1d1d1;\\n display: block;\\n margin: 10px 1.8rem\\n}\\n\\nbody {\\n background-color: #fff\\n}\\n\\n.ie9 .page-wrapper {\\n background-color: #fff;\\n min-height: 0\\n}\\n\\n.page-header {\\n border-bottom: 1px solid #ccc;\\n margin-bottom: 20px\\n}\\n\\n.page-header .panel.wrapper {\\n background-color: #6e716e;\\n color: #fff\\n}\\n\\n.header.panel>.header.links {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n float: right;\\n font-size: 0;\\n margin-left: auto;\\n margin-right: 20px\\n}\\n\\n.header.panel>.header.links>li {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.header.panel>.header.links>li {\\n font-size: 14px;\\n margin: 0 0 0 15px\\n}\\n\\n.header.panel>.header.links>li>a {\\n color: #fff;\\n text-decoration: none\\n}\\n\\n.header.panel>.header.links>li>a:visited {\\n color: #fff;\\n text-decoration: none\\n}\\n\\n.header.panel>.header.links>li>a:hover {\\n color: #fff;\\n text-decoration: underline\\n}\\n\\n.header.panel>.header.links>li>a:active {\\n color: #fff;\\n text-decoration: underline\\n}\\n\\n.header.content {\\n padding-top: 10px;\\n position: relative\\n}\\n\\n.logo {\\n float: left;\\n margin: 0 0 10px 40px;\\n max-width: 50%;\\n position: relative;\\n z-index: 5\\n}\\n\\n.logo img {\\n display: block\\n}\\n\\n.page-print .logo {\\n display: inline-block;\\n float: none\\n}\\n\\n.page-main>.page-title-wrapper .page-title+.action {\\n margin-top: 30px\\n}\\n\\n.action.skip:focus {\\n background: #f0f0f0;\\n padding: 10px;\\n box-sizing: border-box;\\n left: 0;\\n position: absolute;\\n text-align: center;\\n top: 0;\\n width: 100%;\\n z-index: 15\\n}\\n\\n.action-skip-wrapper {\\n height: 0;\\n position: relative\\n}\\n\\n.message.global p {\\n margin: 0\\n}\\n\\n.message.global.noscript,\\n.message.global.cookie {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #ffee9c;\\n border-color: #d6ca8e;\\n color: #333;\\n margin: 0\\n}\\n\\n.message.global.noscript a,\\n.message.global.cookie a {\\n color: #006bb4\\n}\\n\\n.message.global.noscript a:hover,\\n.message.global.cookie a:hover {\\n color: #006bb4\\n}\\n\\n.message.global.noscript a:active,\\n.message.global.cookie a:active {\\n color: #ff5501\\n}\\n\\n.message.global.cookie {\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n z-index: 3\\n}\\n\\n.message.global.cookie .actions {\\n margin-top: 10px\\n}\\n\\n.message.global.demo {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #ff0101;\\n border-color: none;\\n color: #fff;\\n margin-bottom: 0;\\n text-align: center\\n}\\n\\n.message.global.demo a {\\n color: #006bb4\\n}\\n\\n.message.global.demo a:hover {\\n color: #006bb4\\n}\\n\\n.message.global.demo a:active {\\n color: #ff5501\\n}\\n\\n.page-footer {\\n margin-top: 25px\\n}\\n\\n.footer.content {\\n border-top: 1px solid #cecece;\\n padding-top: 20px\\n}\\n\\n.footer.content .links>li {\\n background: #f4f4f4;\\n font-size: 1.6rem;\\n border-top: 1px solid #cecece;\\n margin: 0 -15px;\\n padding: 0 15px\\n}\\n\\n.footer.content .links a,\\n.footer.content .links strong {\\n display: block;\\n padding: 10px 0\\n}\\n\\n.footer.content .links strong {\\n color: #a6a6a6;\\n font-weight: normal\\n}\\n\\n.footer.content .links a {\\n color: #575757;\\n text-decoration: none\\n}\\n\\n.footer.content .links a:visited {\\n color: #575757;\\n text-decoration: none\\n}\\n\\n.footer.content .links a:hover {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.footer.content .links a:active {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.copyright {\\n background-color: #6e716e;\\n color: #fff;\\n display: block;\\n padding: 10px;\\n text-align: center\\n}\\n\\n.page-header .switcher .options,\\n.page-footer .switcher .options {\\n display: inline-block;\\n position: relative\\n}\\n\\n.page-header .switcher .options:before,\\n.page-footer .switcher .options:before,\\n.page-header .switcher .options:after,\\n.page-footer .switcher .options:after {\\n content: '';\\n display: table\\n}\\n\\n.page-header .switcher .options:after,\\n.page-footer .switcher .options:after {\\n clear: both\\n}\\n\\n.page-header .switcher .options .action.toggle,\\n.page-footer .switcher .options .action.toggle {\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options .action.toggle>span,\\n.page-footer .switcher .options .action.toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.page-header .switcher .options .action.toggle:after,\\n.page-footer .switcher .options .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 22px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.page-header .switcher .options .action.toggle:hover:after,\\n.page-footer .switcher .options .action.toggle:hover:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options .action.toggle:active:after,\\n.page-footer .switcher .options .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options .action.toggle.active,\\n.page-footer .switcher .options .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options .action.toggle.active>span,\\n.page-footer .switcher .options .action.toggle.active>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.page-header .switcher .options .action.toggle.active:after,\\n.page-footer .switcher .options .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 22px;\\n color: inherit;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.page-header .switcher .options .action.toggle.active:hover:after,\\n.page-footer .switcher .options .action.toggle.active:hover:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options .action.toggle.active:active:after,\\n.page-footer .switcher .options .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options ul.dropdown,\\n.page-footer .switcher .options ul.dropdown {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 160px;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.page-header .switcher .options ul.dropdown li,\\n.page-footer .switcher .options ul.dropdown li {\\n margin: 0;\\n padding: 0\\n}\\n\\n.page-header .switcher .options ul.dropdown li:hover,\\n.page-footer .switcher .options ul.dropdown li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.page-header .switcher .options ul.dropdown:before,\\n.page-footer .switcher .options ul.dropdown:before,\\n.page-header .switcher .options ul.dropdown:after,\\n.page-footer .switcher .options ul.dropdown:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.page-header .switcher .options ul.dropdown:before,\\n.page-footer .switcher .options ul.dropdown:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.page-header .switcher .options ul.dropdown:after,\\n.page-footer .switcher .options ul.dropdown:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.page-header .switcher .options ul.dropdown:before,\\n.page-footer .switcher .options ul.dropdown:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.page-header .switcher .options ul.dropdown:after,\\n.page-footer .switcher .options ul.dropdown:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.page-header .switcher .options.active,\\n.page-footer .switcher .options.active {\\n overflow: visible\\n}\\n\\n.page-header .switcher .options.active ul.dropdown,\\n.page-footer .switcher .options.active ul.dropdown {\\n display: block\\n}\\n\\n.page-header .switcher .options ul.dropdown a,\\n.page-footer .switcher .options ul.dropdown a {\\n color: #333;\\n text-decoration: none;\\n display: block;\\n padding: 8px\\n}\\n\\n.page-header .switcher .options ul.dropdown a:visited,\\n.page-footer .switcher .options ul.dropdown a:visited {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options ul.dropdown a:hover,\\n.page-footer .switcher .options ul.dropdown a:hover {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options ul.dropdown a:active,\\n.page-footer .switcher .options ul.dropdown a:active {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.page-header .switcher strong,\\n.page-footer .switcher strong {\\n font-weight: 400\\n}\\n\\n.sidebar .widget.block:not(:last-child),\\n.sidebar .widget:not(:last-child) {\\n margin-bottom: 40px\\n}\\n\\n.widget {\\n clear: both\\n}\\n\\n.page-header .widget.block,\\n.page-footer .widget.block {\\n margin: 20px 0\\n}\\n\\n.ui-datepicker td {\\n padding: 0\\n}\\n\\n.ui-tooltip {\\n background: #fff;\\n border: 1px solid #bbb;\\n padding: 10px\\n}\\n\\n.my-credit-cards .status {\\n font-style: italic\\n}\\n\\n.my-credit-cards .action.delete {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\n.my-credit-cards .action.delete:focus,\\n.my-credit-cards .action.delete:active {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards .action.delete:hover {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards .action.delete.disabled,\\n.my-credit-cards .action.delete[disabled],\\nfieldset[disabled] .my-credit-cards .action.delete {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.my-credit-cards .action.delete:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.my-credit-cards .action.delete:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards .action.delete:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards .action.delete:hover {\\n color: #006bb4\\n}\\n\\n.my-credit-cards .action.delete:hover,\\n.my-credit-cards .action.delete:active,\\n.my-credit-cards .action.delete:focus {\\n background: none;\\n border: 0\\n}\\n\\n.my-credit-cards .action.delete.disabled,\\n.my-credit-cards .action.delete[disabled],\\nfieldset[disabled] .my-credit-cards .action.delete {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards-popup .modal-footer {\\n text-align: right\\n}\\n\\n.my-credit-cards-popup .action.secondary {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline;\\n margin-right: 20px\\n}\\n\\n.my-credit-cards-popup .action.secondary:focus,\\n.my-credit-cards-popup .action.secondary:active {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards-popup .action.secondary.disabled,\\n.my-credit-cards-popup .action.secondary[disabled],\\nfieldset[disabled] .my-credit-cards-popup .action.secondary {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.my-credit-cards-popup .action.secondary:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards-popup .action.secondary:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover {\\n color: #006bb4\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover,\\n.my-credit-cards-popup .action.secondary:active,\\n.my-credit-cards-popup .action.secondary:focus {\\n background: none;\\n border: 0\\n}\\n\\n.my-credit-cards-popup .action.secondary.disabled,\\n.my-credit-cards-popup .action.secondary[disabled],\\nfieldset[disabled] .my-credit-cards-popup .action.secondary {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.product-social-links .action.towishlist:before,\\n.block-bundle-summary .action.towishlist:before,\\n.product-item .action.towishlist:before,\\n.table-comparison .action.towishlist:before {\\n content: '\\\\E600'\\n}\\n\\n.account .table-wrapper .data.table.wishlist>thead>tr>th,\\n.account .table-wrapper .data.table.wishlist>tbody>tr>th,\\n.account .table-wrapper .data.table.wishlist>tfoot>tr>th,\\n.account .table-wrapper .data.table.wishlist>thead>tr>td,\\n.account .table-wrapper .data.table.wishlist>tbody>tr>td,\\n.account .table-wrapper .data.table.wishlist>tfoot>tr>td {\\n border-top: 1px solid #ccc\\n}\\n\\n.account .table-wrapper .data.table.wishlist>caption+thead>tr:first-child>th,\\n.account .table-wrapper .data.table.wishlist>colgroup+thead>tr:first-child>th,\\n.account .table-wrapper .data.table.wishlist>thead:first-child>tr:first-child>th,\\n.account .table-wrapper .data.table.wishlist>caption+thead>tr:first-child>td,\\n.account .table-wrapper .data.table.wishlist>colgroup+thead>tr:first-child>td,\\n.account .table-wrapper .data.table.wishlist>thead:first-child>tr:first-child>td {\\n border-top: 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist>tbody+tbody {\\n border-top: 1px solid #ccc\\n}\\n\\n.account .table-wrapper .data.table.wishlist thead>tr>th {\\n border-bottom: 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist tbody>tr:last-child>td {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.account .table-wrapper .data.table.wishlist .product.name {\\n display: inline-block;\\n margin-bottom: 10px\\n}\\n\\n.account .table-wrapper .data.table.wishlist .box-tocart {\\n margin: 10px 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist .box-tocart .qty {\\n vertical-align: middle\\n}\\n\\n.account .table-wrapper .data.table.wishlist .col.item {\\n width: 50%\\n}\\n\\n.account .table-wrapper .data.table.wishlist .col.photo {\\n max-width: 150px\\n}\\n\\n.account .table-wrapper .data.table.wishlist .col.selector {\\n max-width: 15px\\n}\\n\\n.account .table-wrapper .data.table.wishlist textarea {\\n margin: 10px 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist .input-text.qty {\\n margin-bottom: 10px\\n}\\n\\n.account .table-wrapper .data.table.wishlist .action.primary {\\n vertical-align: top\\n}\\n\\n.account .table-wrapper .data.table.wishlist .price {\\n font-weight: 700\\n}\\n\\n.link.wishlist .counter {\\n color: #7d7d7d;\\n white-space: nowrap\\n}\\n\\n.link.wishlist .counter:before {\\n content: '('\\n}\\n\\n.link.wishlist .counter:after {\\n content: ')'\\n}\\n\\n.block-wishlist .product-item-name {\\n margin-right: 25px\\n}\\n\\n.products-grid.wishlist .product-item-photo {\\n display: block;\\n margin-bottom: 10px\\n}\\n\\n.products-grid.wishlist .product-item-name {\\n margin-top: 0\\n}\\n\\n.products-grid.wishlist .product-item .price-box {\\n margin: 0\\n}\\n\\n.products-grid.wishlist .product-item-comment {\\n display: block;\\n height: 42px;\\n margin: 10px 0\\n}\\n\\n.products-grid.wishlist .product-item-actions>* {\\n margin-right: 15px\\n}\\n\\n.products-grid.wishlist .product-item-actions>*:last-child {\\n margin-right: 0\\n}\\n\\n.block-banners .banner-item,\\n.block-banners-inline .banner-item {\\n display: block\\n}\\n\\n.block-banners .banner-item-content,\\n.block-banners-inline .banner-item-content {\\n margin-bottom: 20px\\n}\\n\\n.block-banners .banner-item-content img,\\n.block-banners-inline .banner-item-content img {\\n display: block;\\n margin: 0 auto\\n}\\n\\n.block-product-link.widget,\\n.block-category-link.widget {\\n display: block;\\n margin-bottom: 20px\\n}\\n\\n.block-product-link-inline.widget {\\n margin: 0\\n}\\n\\n.block.widget .product-item-info {\\n width: auto\\n}\\n\\n.block.widget .pager {\\n padding: 0\\n}\\n\\n.block.widget .pager .toolbar-amount {\\n float: none;\\n font-size: 1.2rem\\n}\\n\\n.block.widget .pager .pages-item-previous {\\n padding-left: 0\\n}\\n\\n.block.widget .pager .pages-item-next {\\n position: relative\\n}\\n\\n.block.widget .pager .items {\\n white-space: nowrap\\n}\\n\\n.columns .block-event {\\n position: relative;\\n z-index: 2\\n}\\n\\n.block-event .block-content {\\n position: relative\\n}\\n\\n.block-event .block-content>.action {\\n cursor: pointer;\\n margin-top: -6px;\\n position: absolute;\\n top: 50%;\\n z-index: 3\\n}\\n\\n.block-event .block-content>.action.backward,\\n.block-event .block-content>.action.forward {\\n opacity: .5;\\n overflow: hidden;\\n width: 20px;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.block-event .block-content>.action.backward>span,\\n.block-event .block-content>.action.forward>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.block-event .block-content>.action.backward:before,\\n.block-event .block-content>.action.forward:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 55px;\\n line-height: 30px;\\n color: inherit;\\n content: '\\\\E617';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block-event .block-content>.action.backward:before,\\n.block-event .block-content>.action.forward:before {\\n margin-left: -15px\\n}\\n\\n.block-event .block-content>.action.backward {\\n left: 0\\n}\\n\\n.block-event .block-content>.action.forward {\\n right: 0\\n}\\n\\n.block-event .block-content>.action.forward:before {\\n content: '\\\\E608'\\n}\\n\\n.block-event .block-content>.action.forward:before {\\n margin-left: -20px\\n}\\n\\n.block-event .block-content>.action.inactive {\\n cursor: default;\\n display: none\\n}\\n\\n.block-event .block-content>.action:hover {\\n opacity: 1\\n}\\n\\n.block-event .slider-panel {\\n overflow: hidden;\\n position: relative;\\n z-index: 2\\n}\\n\\n.block-event .slider-panel .slider {\\n white-space: nowrap\\n}\\n\\n.block-event .slider-panel .slider .item {\\n background: #f0f0f0;\\n display: inline-block;\\n text-align: center;\\n vertical-align: top;\\n white-space: normal;\\n width: 16.35%\\n}\\n\\n.sidebar-main .block-event .slider-panel .slider .item,\\n.sidebar-additional .block-event .slider-panel .slider .item {\\n width: 100%\\n}\\n\\n.block-event .slider-panel .slider .item img {\\n max-width: 100%\\n}\\n\\n.block-event .slider-panel .slider .item .category-name {\\n display: inline-block;\\n font-size: 1.8rem;\\n padding: 15px 5px 0;\\n word-break: break-all\\n}\\n\\n.block-event .slider-panel .slider .item .ticker {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.block-event .slider-panel .slider .item .ticker li {\\n display: none;\\n margin: 0 5px\\n}\\n\\n.block-event .slider-panel .slider .item .ticker .value {\\n font-size: 2.6rem;\\n font-weight: 300\\n}\\n\\n.block-event .slider-panel .slider .item .ticker .label {\\n display: block;\\n font-size: 1.3rem\\n}\\n\\n.block-event .slider-panel .slider .item .dates {\\n font-weight: 300\\n}\\n\\n.block-event .slider-panel .slider .item .dates .start,\\n.block-event .slider-panel .slider .item .dates .end,\\n.block-event .slider-panel .slider .item .dates .date {\\n display: block\\n}\\n\\n.block-event .slider-panel .slider .item .dates .start:after {\\n font-size: 1.8rem;\\n content: '\\\\2013';\\n display: block\\n}\\n\\n.block-event .slider-panel .slider .item .dates .date {\\n font-size: 1.8rem;\\n font-weight: 300\\n}\\n\\n.block-event .slider-panel .slider .item .dates .time {\\n font-size: 1.3rem\\n}\\n\\n.block-event .slider-panel .slider .item .box-event .box-content {\\n padding: 5px 0 10px\\n}\\n\\n.block-event .slider-panel .slider .item .box-event .box-title {\\n display: block;\\n font-weight: 300;\\n margin: 10px 0 0\\n}\\n\\n.block-event .slider-panel .slider .item .action.show {\\n display: block;\\n padding: 0\\n}\\n\\n.block-event .slider-panel .slider .item .action.show .category.name {\\n display: inline-block;\\n padding: 30px 10px 0\\n}\\n\\n.block-event .slider-panel .slider .item .action.show img {\\n display: block\\n}\\n\\n.block-event .slider-panel .slider .item .action.event {\\n background-image: none;\\n background: #1979c3;\\n border: 1px solid #1979c3;\\n color: #fff;\\n cursor: pointer;\\n display: inline-block;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n box-sizing: border-box;\\n vertical-align: middle;\\n margin-top: 15px\\n}\\n\\n.block-event .slider-panel .slider .item .action.event:focus,\\n.block-event .slider-panel .slider .item .action.event:active {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.block-event .slider-panel .slider .item .action.event:hover {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.block-event .slider-panel .slider .item .action.event.disabled,\\n.block-event .slider-panel .slider .item .action.event[disabled],\\nfieldset[disabled] .block-event .slider-panel .slider .item .action.event {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.block-event .slider-panel .slider .item .action.event:hover {\\n text-decoration: none\\n}\\n\\n.block-static-block.widget,\\n.block-cms-link.widget {\\n margin-bottom: 20px\\n}\\n\\n.links .block-static-block.widget,\\n.links .block-cms-link.widget {\\n margin-bottom: 0\\n}\\n\\n.block-cms-link-inline.widget {\\n margin: 0\\n}\\n\\n.block-wishlist-search .form-wishlist-search {\\n margin: 20px 0 0\\n}\\n\\n.block-cms-hierarchy-link.widget {\\n display: block;\\n margin-bottom: 20px\\n}\\n\\n.block-cms-hierarchy-link-inline.widget {\\n margin: 0\\n}\\n\\n.sidebar .block-addbysku .fieldset {\\n margin: 0\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields {\\n position: relative\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .field {\\n display: inline-block;\\n margin-bottom: 10px;\\n vertical-align: top\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .field.sku {\\n margin-right: -85px;\\n padding-right: 90px;\\n width: 100%\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .field.qty .qty+.mage-error {\\n width: 80px\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .actions-toolbar {\\n position: absolute;\\n right: 0;\\n top: 7px\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar {\\n margin-bottom: 20px\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar .primary {\\n text-align: left\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar .primary .action {\\n width: auto\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar .secondary {\\n float: none;\\n text-align: left\\n}\\n\\n.sidebar .block-addbysku .action.add {\\n display: inline-block;\\n text-decoration: none;\\n line-height: normal;\\n padding: 4px;\\n width: auto\\n}\\n\\n.sidebar .block-addbysku .action.add>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.sidebar .block-addbysku .action.add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.sidebar .block-addbysku .action.add:hover:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.add:active:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.links {\\n display: inline-block;\\n margin: 20px 0 0\\n}\\n\\n.sidebar .block-addbysku .action.reset {\\n display: block;\\n margin: 10px 0\\n}\\n\\n.sidebar .block-addbysku .action.remove {\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.sidebar .block-addbysku .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.sidebar .block-addbysku .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: #999;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.sidebar .block-addbysku .action.remove:hover:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.remove:active:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.remove:focus,\\n.sidebar .block-addbysku .action.remove:active {\\n background: none;\\n border: none\\n}\\n\\n.sidebar .block-addbysku .action.remove:hover {\\n background: none;\\n border: none\\n}\\n\\n.sidebar .block-addbysku .action.remove.disabled,\\n.sidebar .block-addbysku .action.remove[disabled],\\nfieldset[disabled] .sidebar .block-addbysku .action.remove {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n@media only screen and (max-width:479px) {\\n .tooltip.wrapper .tooltip.content {\\n min-width: 10rem\\n }\\n .minicart-wrapper .block-minicart {\\n width: 290px\\n }\\n .modal-popup .field-tooltip .field-tooltip-content {\\n width: 200px\\n }\\n}\\n\\n@media only screen and (max-width:639px) {\\n .abs-visually-hidden-mobile,\\n .table-downloadable-products .col.title:before,\\n .table-giftregistry-items .col.product:before {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-add-clearfix-mobile:before,\\n .abs-add-clearfix-mobile:after,\\n .abs-checkout-order-review tbody>tr:before,\\n .abs-checkout-order-review tbody>tr:after,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:before,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:after,\\n .table-giftregistry-items .col.product:before,\\n .table-giftregistry-items .col.product:after,\\n .multicheckout.order-review .data.table tbody>tr:before,\\n .multicheckout.order-review .data.table tbody>tr:after {\\n content: '';\\n display: table\\n }\\n .abs-add-clearfix-mobile:after,\\n .abs-checkout-order-review tbody>tr:after,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:after,\\n .table-giftregistry-items .col.product:after,\\n .multicheckout.order-review .data.table tbody>tr:after {\\n clear: both\\n }\\n .multicheckout.order-review .data.table tbody>tr:not(:last-child) {\\n border-bottom: 1px solid #ccc\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col.item:before {\\n display: none\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col.qty,\\n .multicheckout.order-review .data.table tbody>tr>td.col.price,\\n .multicheckout.order-review .data.table tbody>tr>td.col.subtotal {\\n box-sizing: border-box;\\n float: left;\\n text-align: center;\\n white-space: nowrap;\\n width: 33%\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col.qty:before,\\n .multicheckout.order-review .data.table tbody>tr>td.col.price:before,\\n .multicheckout.order-review .data.table tbody>tr>td.col.subtotal:before {\\n content: attr(data-th) ':';\\n display: block;\\n font-weight: 700;\\n padding-bottom: 10px\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col:last-child {\\n border: 0\\n }\\n .abs-checkout-order-review .product-item-name,\\n .multicheckout.order-review .data.table .product-item-name {\\n margin: 0\\n }\\n .abs-product-items-summary tbody .col {\\n padding: 10px 0 0\\n }\\n .abs-product-items-summary tfoot .mark {\\n padding-bottom: 5px;\\n text-align: left\\n }\\n .abs-product-items-summary tfoot .amount {\\n padding-top: 0;\\n text-align: left\\n }\\n .abs-product-items-summary tfoot .grand.totals {\\n font-size: 1.6rem\\n }\\n .abs-product-items-summary tfoot .grand.totals .mark {\\n padding-bottom: 0;\\n padding-top: 5px\\n }\\n .abs-product-items-summary tfoot .grand.totals .amount {\\n padding-bottom: 10px;\\n padding-top: 0\\n }\\n .abs-product-items-summary tfoot .grand.totals .amount strong {\\n border-top: none\\n }\\n .abs-account-table-margin-mobile,\\n .table-wrapper.balance-history,\\n .table-wrapper.reward-history,\\n .table-wrapper.orders-recent {\\n margin-top: -20px\\n }\\n .abs-sidebar-totals-mobile th:before,\\n .abs-sidebar-totals-mobile td:before,\\n .account .table-billing-agreements .col.actions:before,\\n .account .table-billing-agreements-related .col.actions:before,\\n .table-wrapper.comparison .table-comparison>tbody>tr>th:before,\\n .table-wrapper.comparison .table-comparison>tbody>tr>td:before,\\n .cart .table.items .col.item:before,\\n .cart .table.items .item-actions td:before,\\n .account .table-giftregistry .col.actions:before,\\n .table.grouped>tbody>tr>td:before,\\n .account .table-reviews .col.actions:before,\\n .account .table-order-items .col.actions:before,\\n .account .table-order-items .col.options:before,\\n .cart-totals .totals th:before,\\n .cart-totals .totals td:before,\\n .opc-block-summary .totals th:before,\\n .opc-block-summary .totals td:before {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-no-display-s,\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison).additional-attributes tbody th,\\n .order-details-items .table-order-items .options-label,\\n .opc-wrapper .shipping-address-item.selected-item .action-select-shipping-item {\\n display: none\\n }\\n .abs-title-orders-mobile .page-main .page-title-wrapper .page-title,\\n .magento-rma-returns-returns .page-main .page-title-wrapper .page-title,\\n .magento-rma-returns-view .page-main .page-title-wrapper .page-title,\\n .account .page-main .page-title-wrapper .page-title,\\n [class^='sales-guest-'] .page-main .page-title-wrapper .page-title,\\n .sales-guest-view .page-main .page-title-wrapper .page-title {\\n display: block\\n }\\n .abs-title-orders-mobile .page-main .page-title-wrapper .order-status,\\n .magento-rma-returns-returns .page-main .page-title-wrapper .order-status,\\n .magento-rma-returns-view .page-main .page-title-wrapper .order-status,\\n .account .page-main .page-title-wrapper .order-status,\\n [class^='sales-guest-'] .page-main .page-title-wrapper .order-status,\\n .sales-guest-view .page-main .page-title-wrapper .order-status {\\n margin: -10px 0 10px\\n }\\n .abs-table-striped-mobile>tbody>tr>td:last-child,\\n .account .data.table>tbody>tr>td:last-child {\\n border: 0\\n }\\n .abs-no-border-top,\\n .product.info.detailed .additional-attributes-wrapper,\\n .table-wrapper.balance-history,\\n .table-wrapper.table-returns,\\n .table-wrapper.orders-recent,\\n .order-details-items .table-wrapper {\\n border-top: 0\\n }\\n .abs-no-border-bottom {\\n border-bottom: 0\\n }\\n .abs-sidebar-totals-mobile .amount,\\n .cart-totals .totals .amount,\\n .opc-block-summary .totals .amount {\\n text-align: right\\n }\\n .table-wrapper {\\n border-top: 1px solid #ccc;\\n overflow-x: auto;\\n overflow-y: hidden;\\n width: 100%;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n -webkit-overflow-scrolling: touch;\\n position: relative\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) {\\n border: none;\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>thead>tr>th {\\n display: none\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr td,\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr th {\\n border-bottom: none;\\n display: block;\\n padding: 5px 10px\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr td:before,\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr th:before {\\n padding-right: 10px;\\n content: attr(data-th) ': ';\\n display: inline-block;\\n color: #111;\\n font-weight: 700\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr>th {\\n background-color: #f6f6f6\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) tbody>tr>td:first-child {\\n padding-top: 15px\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) tbody>tr>td:last-child {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 15px\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) tbody>tr>td.col.qty {\\n text-align: left\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison).additional-attributes tbody td:last-child {\\n border: none;\\n padding: 0 0 5px\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:first-child th,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:first-child td {\\n padding-top: 20px\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .mark {\\n box-sizing: border-box;\\n float: left;\\n text-align: left;\\n width: 70%\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .amount {\\n box-sizing: border-box;\\n float: left;\\n text-align: right;\\n width: 30%\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .grand.totals {\\n font-size: 1.6rem\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .grand.totals .amount {\\n padding-bottom: 10px\\n }\\n .data-table-definition-list thead {\\n display: none\\n }\\n .data-table-definition-list tbody th {\\n padding-bottom: 0\\n }\\n .data-table-definition-list tbody th,\\n .data-table-definition-list tbody td {\\n display: block;\\n padding-left: 0;\\n padding-right: 0\\n }\\n .pages .pages-items {\\n display: block;\\n padding: 2px 40px 0;\\n position: relative;\\n white-space: normal;\\n z-index: 1\\n }\\n .pages-item-previous {\\n left: 0;\\n position: absolute;\\n top: 0;\\n z-index: 1\\n }\\n .pages-item-next {\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 1\\n }\\n .multicheckout .data.table .address:before {\\n margin-bottom: 5px\\n }\\n .multicheckout .product-item-name,\\n .multicheckout .price-including-tax,\\n .multicheckout .price-excluding-tax {\\n display: inline-block\\n }\\n .multicheckout .block-content .box:not(:last-child) {\\n margin-bottom: 40px\\n }\\n .multicheckout .block-content .box:last-child {\\n margin-bottom: 0\\n }\\n .multicheckout.order-review .box-items .data.table thead {\\n display: block\\n }\\n .multicheckout.order-review .box-items .data.table thead tr {\\n display: block\\n }\\n .multicheckout.order-review .box-items .data.table thead .col.item {\\n display: block;\\n padding: 0\\n }\\n .multicheckout .actions-toolbar .action {\\n margin-bottom: 25px\\n }\\n .multicheckout .actions-toolbar>.primary {\\n margin-bottom: 25px;\\n margin-right: 0\\n }\\n .form-new-agreement select {\\n width: auto\\n }\\n .table-paypal-review-items .col.subtotal {\\n text-align: left\\n }\\n .table-paypal-review-items .product-item-name {\\n display: inline-block\\n }\\n .column .block-addbysku .sku {\\n margin-right: -85px;\\n padding-right: 90px\\n }\\n .column .block-addbysku .action.remove {\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n }\\n .column .block-addbysku .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .column .block-addbysku .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E604';\\n font-family: 'luma-icons';\\n margin: -4px 0 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .column .block-addbysku .action.remove:hover:before {\\n color: inherit\\n }\\n .column .block-addbysku .action.remove:active:before {\\n color: inherit\\n }\\n .column .block-addbysku .action.remove:focus,\\n .column .block-addbysku .action.remove:active {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove:hover {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove.disabled,\\n .column .block-addbysku .action.remove[disabled],\\n fieldset[disabled] .column .block-addbysku .action.remove {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n }\\n .products-list .product-item {\\n table-layout: fixed\\n }\\n .products-list .product-item-photo {\\n padding: 0 10px 10px 0;\\n width: 30%\\n }\\n .toolbar-products {\\n margin-bottom: 0\\n }\\n .product-social-links .action.tocompare {\\n display: none\\n }\\n .product-info-price {\\n margin: 0 -10px 0;\\n width: calc(100% + 2*10px) !important\\n }\\n .product-info-price>*:first-child {\\n padding-left: 10px\\n }\\n .product-info-price>*:last-child {\\n padding-right: 10px\\n }\\n .table-wrapper.comparison .table-comparison>tbody>tr>th,\\n .table-wrapper.comparison .table-comparison>tbody>tr>td {\\n display: table-cell\\n }\\n .block-search {\\n margin-top: 10px\\n }\\n .cart .table.items .col.qty {\\n text-align: center\\n }\\n .minicart-wrapper {\\n margin-top: 10px\\n }\\n .opc-wrapper .step-title {\\n font-size: 18px;\\n border-bottom: 0;\\n padding-bottom: 0\\n }\\n .opc-wrapper .step-content {\\n margin: 0 0 15px\\n }\\n .opc-wrapper .form-login,\\n .opc-wrapper .form-shipping-address,\\n .opc-wrapper .methods-shipping {\\n background: #f4f4f4;\\n margin: 20px -15px 15px;\\n padding: 20px 15px\\n }\\n .opc-wrapper .form-login+.form-shipping-address {\\n margin-top: -15px\\n }\\n .opc-wrapper .shipping-address-item {\\n border-bottom: 1px solid #ccc;\\n margin: 0 0 15px;\\n padding: 0 0 15px;\\n width: 100%\\n }\\n .opc-wrapper .shipping-address-item.selected-item {\\n padding: 15px 35px 15px 18px;\\n border-bottom-width: 2px\\n }\\n .opc-wrapper .shipping-address-item.selected-item .edit-address-link {\\n right: 39px\\n }\\n .opc-wrapper .action-select-shipping-item {\\n float: none;\\n margin-top: 10px;\\n width: 100%\\n }\\n .opc-wrapper .action-show-popup {\\n width: 100%\\n }\\n .opc-wrapper .methods-shipping {\\n border-bottom: 1px solid #ccc;\\n padding-top: 30px\\n }\\n .opc-wrapper .edit-address-link {\\n display: inline-block;\\n text-decoration: none;\\n margin: 0;\\n position: absolute;\\n right: 0;\\n top: 5px\\n }\\n .opc-wrapper .edit-address-link>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .opc-wrapper .edit-address-link:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .opc-wrapper .edit-address-link:hover:before {\\n color: #333\\n }\\n .opc-wrapper .edit-address-link:active:before {\\n color: #757575\\n }\\n .shipping-policy-block.field-tooltip {\\n margin-bottom: 20px;\\n position: relative;\\n right: auto;\\n top: auto\\n }\\n .shipping-policy-block.field-tooltip .field-tooltip-content {\\n width: 300px;\\n right: auto\\n }\\n .shipping-policy-block.field-tooltip .field-tooltip-content:before,\\n .shipping-policy-block.field-tooltip .field-tooltip-content:after {\\n right: auto\\n }\\n .opc-block-summary>.title {\\n border-bottom: 0;\\n font-size: 18px;\\n margin-bottom: 20px;\\n padding-bottom: 0\\n }\\n .account .column.main,\\n .account .sidebar-additional {\\n margin: 0\\n }\\n .page-product-downloadable .product-options-wrapper {\\n margin-bottom: 25px\\n }\\n .table-downloadable-products .product-name {\\n display: block;\\n margin-bottom: 5px\\n }\\n .page-product-downloadable .product-info-price~*:last-child:after {\\n border-bottom: 1px solid #c1c1c1;\\n content: '';\\n display: block;\\n height: 0;\\n margin: 25px -10px;\\n overflow: hidden;\\n width: auto\\n }\\n .table-giftregistry-items .field.choice,\\n .table-giftregistry-items .field.qty {\\n display: inline-block\\n }\\n .form-giftregistry-search .fieldset {\\n margin-bottom: 20px\\n }\\n .block-giftregistry-results .block-title {\\n margin-bottom: 0\\n }\\n .block-giftregistry-results .table-wrapper {\\n border-top: none\\n }\\n .block-giftregistry-shared-items .block-title {\\n margin-bottom: 10px\\n }\\n .block-giftregistry-shared-items .table-wrapper {\\n border-top: 0\\n }\\n .table.grouped>thead>tr>th {\\n border-bottom: 1px solid #ccc;\\n display: table-cell\\n }\\n .table.grouped>tbody {\\n border-bottom: 1px solid #ccc\\n }\\n .table.grouped>tbody>tr>td {\\n padding: 11px 10px;\\n border: 0;\\n display: table-cell\\n }\\n .table-wrapper .table.grouped:not(.totals):not(.cart):not(.table-comparison)>tbody>tr>td:last-child {\\n border-bottom: 0\\n }\\n .page-product-grouped .minimal-price {\\n margin: 0\\n }\\n .page-product-grouped .product-info-price {\\n border: 0;\\n margin-bottom: 0\\n }\\n .page-product-grouped .product-info-price .price-box {\\n padding-bottom: 0\\n }\\n .form-add-invitations .action.remove {\\n display: inline-block;\\n text-decoration: none\\n }\\n .form-add-invitations .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .form-add-invitations .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E604';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .form-add-invitations .action.remove:hover:before {\\n color: inherit\\n }\\n .form-add-invitations .action.remove:active:before {\\n color: inherit\\n }\\n .customer-review .product-name {\\n margin-bottom: 5px\\n }\\n .customer-review .product-reviews-summary .rating-summary {\\n display: block;\\n margin-bottom: 5px\\n }\\n .form-create-return .additional .field:nth-last-child(2) {\\n margin-bottom: 0\\n }\\n .form-create-return .additional .field:last-child {\\n margin-top: 20px\\n }\\n .account .column.main .returns-details-items .block-returns-tracking .block-title>.action.track {\\n display: block;\\n float: none;\\n margin: 10px 0 0\\n }\\n .order-details-items thead {\\n display: block\\n }\\n .order-details-items thead tr {\\n display: block\\n }\\n .order-pager-wrapper {\\n display: block\\n }\\n .account .table-order-items tbody tr {\\n display: block\\n }\\n .account .table-order-items .product-item-name {\\n display: inline-block;\\n margin: 0\\n }\\n .account .table-order-items .action.show {\\n margin-top: 0\\n }\\n .order-details-items .order-title strong {\\n display: block\\n }\\n .order-details-items .action {\\n margin-top: 10px\\n }\\n .order-details-items .items-qty {\\n display: inline-block;\\n vertical-align: top\\n }\\n .order-details-items .col.price .price-including-tax,\\n .order-details-items .col.subtotal .price-including-tax,\\n .order-details-items .col.price .price-excluding-tax,\\n .order-details-items .col.subtotal .price-excluding-tax {\\n display: inline-block\\n }\\n .order-details-items .data.table .col.options {\\n padding: 0 10px 15px\\n }\\n .order-details-items .data.table .col.options:before {\\n display: none\\n }\\n .order-details-items .options-label+.item-options-container:before,\\n .order-details-items .item-options-container+.item-options-container:before {\\n content: attr(data-th) ':';\\n display: block;\\n font-weight: 700;\\n padding-left: 10px\\n }\\n .order-details-items .options-label+.item-options-container .col,\\n .order-details-items .item-options-container+.item-options-container .col {\\n font-size: 1.2rem;\\n padding: 0 10px\\n }\\n .order-details-items .options-label+.item-options-container .col:first-child,\\n .order-details-items .item-options-container+.item-options-container .col:first-child {\\n padding-top: 3px\\n }\\n .order-details-items .options-label+.item-options-container .col:last-child,\\n .order-details-items .item-options-container+.item-options-container .col:last-child {\\n padding-bottom: 20px\\n }\\n .logo {\\n margin-bottom: 13px;\\n margin-top: 4px\\n }\\n .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status {\\n display: none\\n }\\n .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status:before {\\n display: none\\n }\\n .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status._default {\\n display: block\\n }\\n .my-credit-cards .card-type img {\\n vertical-align: middle\\n }\\n .products-grid.wishlist .product-item {\\n border-bottom: 1px solid #e8e8e8\\n }\\n .products-grid.wishlist .product-item:first-child {\\n border-top: 1px solid #e8e8e8\\n }\\n}\\n\\n@media only screen and (max-width:767px) {\\n .abs-visually-hidden-mobile-m {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-add-clearfix-mobile-m:before,\\n .abs-add-clearfix-mobile-m:after,\\n .account .column.main .block:not(.widget) .block-title:before,\\n .account .column.main .block:not(.widget) .block-title:after {\\n content: '';\\n display: table\\n }\\n .abs-add-clearfix-mobile-m:after,\\n .account .column.main .block:not(.widget) .block-title:after {\\n clear: both\\n }\\n .abs-toggling-title-mobile,\\n .block-wishlist-management .wishlist-select .wishlist-name,\\n .block-collapsible-nav .title {\\n border-top: 1px solid #ccc;\\n cursor: pointer;\\n margin-bottom: 0;\\n position: relative;\\n border-bottom: 1px solid #ccc;\\n padding: 10px 40px 10px 15px;\\n display: block;\\n text-decoration: none\\n }\\n .block-wishlist-management .wishlist-select .wishlist-name:after,\\n .block-collapsible-nav .title:after {\\n position: absolute;\\n right: 20px;\\n top: 10px\\n }\\n .abs-toggling-title-mobile:after,\\n .block-wishlist-management .wishlist-select .wishlist-name:after,\\n .block-collapsible-nav .title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .abs-toggling-title-mobile.active:after,\\n .block-wishlist-management .wishlist-select .wishlist-name.active:after,\\n .block-collapsible-nav .title.active:after {\\n content: '\\\\E621'\\n }\\n .abs-icon-add-mobile,\\n .block-wishlist-management .wishlist-add.item .add {\\n display: block;\\n text-decoration: none\\n }\\n .abs-icon-add-mobile:before,\\n .block-wishlist-management .wishlist-add.item .add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 10px;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0 5px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .navigation,\\n .breadcrumbs,\\n .page-header .header.panel,\\n .header.content,\\n .footer.content,\\n .page-main,\\n .page-wrapper>.widget,\\n .page-wrapper>.page-bottom,\\n .block.category.event,\\n .top-container {\\n padding-left: 15px;\\n padding-right: 15px\\n }\\n .account .page-main,\\n .cms-privacy-policy .page-main {\\n padding-top: 41px;\\n position: relative\\n }\\n .navigation {\\n padding: 0\\n }\\n .navigation .parent .level-top {\\n position: relative;\\n display: block;\\n text-decoration: none\\n }\\n .navigation .parent .level-top:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 42px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .navigation .parent .level-top:after {\\n position: absolute;\\n right: 7px;\\n top: -8px\\n }\\n .navigation .parent .level-top.ui-state-active:after {\\n content: '\\\\E621'\\n }\\n .nav-sections {\\n -webkit-overflow-scrolling: touch;\\n -webkit-transition: left .3s;\\n -moz-transition: left .3s;\\n -ms-transition: left .3s;\\n transition: left .3s;\\n height: 100%;\\n left: -80%;\\n left: calc(-1 * (100% - 54px));\\n overflow: auto;\\n position: fixed;\\n top: 0;\\n width: 80%;\\n width: calc(100% - 54px)\\n }\\n .nav-sections .switcher {\\n border-top: 1px solid #d1d1d1;\\n font-size: 1.6rem;\\n font-weight: 700;\\n margin: 0;\\n padding: .8rem 3.5rem .8rem 2rem\\n }\\n .nav-sections .switcher .label {\\n display: block;\\n margin-bottom: 5px\\n }\\n .nav-sections .switcher:last-child {\\n border-bottom: 1px solid #d1d1d1\\n }\\n .nav-sections .switcher-trigger strong {\\n position: relative;\\n display: block;\\n text-decoration: none\\n }\\n .nav-sections .switcher-trigger strong:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 42px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .nav-sections .switcher-trigger strong:after {\\n position: absolute;\\n right: -40px;\\n top: -16px\\n }\\n .nav-sections .switcher-trigger.active strong:after {\\n content: '\\\\E621'\\n }\\n .nav-sections .switcher-dropdown {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n padding: 10px 0\\n }\\n .nav-sections .header.links {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n border-bottom: 1px solid #d1d1d1\\n }\\n .nav-sections .header.links li {\\n font-size: 1.6rem;\\n margin: 0\\n }\\n .nav-sections .header.links li.greet.welcome {\\n border-top: 1px solid #d1d1d1;\\n font-weight: 700;\\n padding: .8rem 20px\\n }\\n .nav-sections .header.links li>a {\\n border-top: 1px solid #d1d1d1\\n }\\n .nav-sections .header.links a,\\n .nav-sections .header.links a:hover {\\n color: #575757;\\n text-decoration: none;\\n display: block;\\n font-weight: 700;\\n padding: .8rem 20px\\n }\\n .nav-sections .header.links .header.links {\\n border: 0\\n }\\n .nav-before-open {\\n height: 100%;\\n overflow-x: hidden;\\n width: 100%\\n }\\n .nav-before-open .page-wrapper {\\n -webkit-transition: left .3s;\\n -moz-transition: left .3s;\\n -ms-transition: left .3s;\\n transition: left .3s;\\n height: 100%;\\n left: 0;\\n overflow: hidden;\\n position: relative\\n }\\n .nav-before-open body {\\n height: 100%;\\n overflow: hidden;\\n position: relative;\\n width: 100%\\n }\\n .nav-open .page-wrapper {\\n left: 80%;\\n left: calc(100% - 54px)\\n }\\n .nav-open .nav-sections {\\n -webkit-box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n -moz-box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n -ms-box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n left: 0;\\n z-index: 99\\n }\\n .nav-open .nav-toggle:after {\\n background: rgba(0, 0, 0, 0.7);\\n content: '';\\n display: block;\\n height: 100%;\\n position: fixed;\\n right: 0;\\n top: 0;\\n width: 100%;\\n z-index: 1\\n }\\n .nav-sections-items {\\n position: relative;\\n z-index: 1\\n }\\n .nav-sections-items:before,\\n .nav-sections-items:after {\\n content: '';\\n display: table\\n }\\n .nav-sections-items:after {\\n clear: both\\n }\\n .nav-sections-item-title {\\n background: #e3e3e3;\\n border: solid #d7d7d7;\\n border-width: 0 0 1px 1px;\\n box-sizing: border-box;\\n float: left;\\n height: 71px;\\n padding-top: 24px;\\n text-align: center;\\n width: 33.33%\\n }\\n .nav-sections-item-title.active {\\n background: transparent;\\n border-bottom: 0\\n }\\n .nav-sections-item-title .nav-sections-item-switch:hover {\\n text-decoration: none\\n }\\n .nav-sections-item-content {\\n box-sizing: border-box;\\n float: right;\\n margin-left: -100%;\\n margin-top: 71px;\\n width: 100%;\\n padding: 25px 0\\n }\\n .nav-sections-item-content:before,\\n .nav-sections-item-content:after {\\n content: '';\\n display: table\\n }\\n .nav-sections-item-content:after {\\n clear: both\\n }\\n .nav-sections-item-content.active {\\n display: block\\n }\\n .navigation {\\n background: #f0f0f0;\\n box-sizing: border-box\\n }\\n .navigation ul {\\n margin: 0;\\n padding: 0\\n }\\n .navigation li {\\n margin: 0\\n }\\n .navigation a {\\n display: block;\\n padding-top: 10px;\\n padding-right: 0;\\n padding-bottom: 10px;\\n padding-left: 15px\\n }\\n .navigation a,\\n .navigation a:hover {\\n color: #575757;\\n text-decoration: none\\n }\\n .navigation .level0 {\\n border-top: 1px solid #d1d1d1;\\n font-size: 1.6rem\\n }\\n .navigation .level0>.level-top {\\n font-weight: 700;\\n padding: 8px 40px 8px 15px;\\n text-transform: uppercase;\\n word-wrap: break-word\\n }\\n .navigation .level0.active .all-category .ui-state-focus {\\n border-color: #ff5501;\\n border-style: solid;\\n border-width: 0 0 0 8px;\\n color: #333;\\n padding-left: 7px;\\n display: inline-block\\n }\\n .navigation .level0>.level1 {\\n font-weight: 600\\n }\\n .navigation .level0.active>a:not(.ui-state-active),\\n .navigation .level0.has-active>a:not(.ui-state-active) {\\n border-color: #ff5501;\\n border-style: solid;\\n border-width: 0 0 0 8px;\\n color: #333\\n }\\n .navigation .level0.active>a:not(.ui-state-active) span:not(.ui-menu-icon),\\n .navigation .level0.has-active>a:not(.ui-state-active) span:not(.ui-menu-icon) {\\n margin-left: -8px\\n }\\n .navigation li.level0:last-child {\\n border-bottom: 1px solid #d1d1d1\\n }\\n .navigation .submenu>li {\\n word-wrap: break-word\\n }\\n .navigation .submenu:not(:first-child) {\\n font-weight: 400;\\n line-height: 1.3;\\n left: auto !important;\\n overflow-x: hidden;\\n padding: 0;\\n position: relative;\\n top: auto !important;\\n transition: left .3s ease-out\\n }\\n .navigation .submenu:not(:first-child)>li>a {\\n padding-left: 15px\\n }\\n .navigation .submenu:not(:first-child)>li:last-child {\\n margin-bottom: 0\\n }\\n .navigation .submenu:not(:first-child) ul {\\n display: block;\\n padding-left: 15px\\n }\\n .navigation .submenu:not(:first-child) ul>li {\\n margin: 0\\n }\\n .navigation .submenu:not(:first-child) ul>li a {\\n color: #575757;\\n display: block;\\n line-height: normal\\n }\\n .navigation .submenu:not(:first-child).expanded {\\n display: block !important;\\n padding-right: 0;\\n top: 0 !important\\n }\\n .navigation .submenu:not(:first-child) .active>a {\\n border-color: #ff5501;\\n border-style: solid;\\n border-width: 0 0 0 8px;\\n color: #333;\\n padding-left: 7px\\n }\\n .navigation .submenu:not(:first-child) .level1.active>a {\\n padding-left: 7px\\n }\\n .breadcrumbs {\\n display: none\\n }\\n .modal-popup.modal-slide {\\n left: 44px;\\n z-index: 900\\n }\\n .modal-popup.modal-slide._show .modal-inner-wrap {\\n -webkit-transform: translateX(0);\\n transform: translateX(0)\\n }\\n .modal-popup.modal-slide .modal-inner-wrap {\\n height: 100%;\\n overflow-y: auto;\\n position: static;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transition: -webkit-transform .3s ease-in-out;\\n transition: transform .3s ease-in-out;\\n width: auto\\n }\\n .modal-popup.modal-slide .modal-inner-wrap {\\n margin: 0;\\n max-height: none\\n }\\n .custom-slide {\\n bottom: 0;\\n left: 0;\\n min-width: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n visibility: hidden;\\n opacity: 0;\\n -webkit-transition: visibility 0s .3s, opacity .3s ease;\\n transition: visibility 0s .3s, opacity .3s ease;\\n left: 44px;\\n z-index: 900\\n }\\n .custom-slide._show {\\n visibility: visible;\\n opacity: 1;\\n -webkit-transition: opacity .3s ease;\\n transition: opacity .3s ease\\n }\\n .custom-slide._show .modal-inner-wrap {\\n -webkit-transform: translate(0, 0);\\n transform: translate(0, 0)\\n }\\n .custom-slide .modal-inner-wrap {\\n background-color: #fff;\\n box-shadow: 0 0 12px 2px rgba(0, 0, 0, 0.35);\\n opacity: 1;\\n pointer-events: auto\\n }\\n .custom-slide._show .modal-inner-wrap {\\n -webkit-transform: translateX(0);\\n transform: translateX(0)\\n }\\n .custom-slide .modal-inner-wrap {\\n height: 100%;\\n overflow-y: auto;\\n position: static;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transition: -webkit-transform .3s ease-in-out;\\n transition: transform .3s ease-in-out;\\n width: auto\\n }\\n .custom-slide._show {\\n -webkit-overflow-scrolling: touch;\\n overflow-x: hidden;\\n overflow-y: auto\\n }\\n .custom-slide .modal-inner-wrap {\\n background-color: #f4f4f4;\\n box-sizing: border-box;\\n height: auto;\\n min-height: 100%\\n }\\n body._has-modal-custom {\\n height: 100vh;\\n overflow: hidden;\\n width: 100vw\\n }\\n body._has-modal-custom .modal-custom-overlay {\\n background-color: rgba(51, 51, 51, 0.55)\\n }\\n .modal-popup.modal-slide .modal-inner-wrap[class] {\\n background-color: #f4f4f4\\n }\\n .modal-popup.modal-slide._inner-scroll._show {\\n -webkit-overflow-scrolling: touch;\\n overflow-y: auto\\n }\\n .modal-popup.modal-slide._inner-scroll .modal-inner-wrap {\\n height: auto;\\n min-height: 100%\\n }\\n .modal-popup .modal-title {\\n font-size: 14px;\\n font-weight: 700\\n }\\n .multishipping-checkout-success .nav-toggle {\\n display: block\\n }\\n .multishipping-checkout-success .logo {\\n margin-left: 40px\\n }\\n .block-cart-failed .block-title {\\n margin: 0 20px 20px\\n }\\n .catalog-product-view .column.main {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column\\n }\\n .catalog-product-view .product.media {\\n -ms-flex-order: -1;\\n -webkit-order: -1;\\n order: -1\\n }\\n .compare.wrapper,\\n [class*='block-compare'] {\\n display: none\\n }\\n .cart-container .form-cart .actions.main {\\n text-align: center\\n }\\n .cart-discount {\\n border-bottom: 1px solid #ccc\\n }\\n .cart.table-wrapper {\\n border-top: 1px solid #ccc\\n }\\n .cart.table-wrapper thead .col.item,\\n .cart.table-wrapper thead .col.qty,\\n .cart.table-wrapper thead .col.price,\\n .cart.table-wrapper thead .col.subtotal,\\n .cart.table-wrapper thead .col.msrp {\\n display: none\\n }\\n .cart.table-wrapper .col.qty,\\n .cart.table-wrapper .col.price,\\n .cart.table-wrapper .col.subtotal,\\n .cart.table-wrapper .col.msrp {\\n box-sizing: border-box;\\n display: block;\\n float: left;\\n white-space: nowrap;\\n width: 33%\\n }\\n .cart.table-wrapper .col.qty:before,\\n .cart.table-wrapper .col.price:before,\\n .cart.table-wrapper .col.subtotal:before,\\n .cart.table-wrapper .col.msrp:before {\\n content: attr(data-th);\\n display: block;\\n font-weight: 600;\\n padding-bottom: 10px\\n }\\n .cart.table-wrapper .col.msrp {\\n white-space: normal\\n }\\n .cart.table-wrapper .item .col.item {\\n padding-bottom: 0\\n }\\n .cart.table-wrapper tbody>tr>td:last-child {\\n border: 0\\n }\\n .cart-totals {\\n padding-left: 15px;\\n padding-right: 15px\\n }\\n .cart-totals .table-wrapper {\\n border-top: 0\\n }\\n .cart-totals .totals tbody>tr:not(:last-child)>td:last-child {\\n border: 0\\n }\\n .checkout-index-index .modal-popup .modal-footer .action-save-address {\\n width: 100%\\n }\\n .checkout-index-index .modal-popup .modal-footer .action-hide-popup {\\n margin-top: 20px\\n }\\n .checkout-payment-method .payment-methods {\\n margin: 0 -15px\\n }\\n .checkout-payment-method .payment-method-title {\\n padding: 15px\\n }\\n .checkout-payment-method .payment-method-content {\\n padding: 0 15px 20px\\n }\\n .checkout-payment-method .checkout-billing-address .action-cancel {\\n margin-top: 10px\\n }\\n .checkout-payment-method .payment-option {\\n margin: 0 -15px\\n }\\n .checkout-payment-method .payment-option .payment-option-title {\\n padding: 15px\\n }\\n .checkout-payment-method .payment-option .payment-option-content {\\n padding: 0 15px 20px\\n }\\n .login-container .fieldset:after {\\n text-align: center\\n }\\n .account .page.messages {\\n margin-bottom: 40px\\n }\\n .account .column.main .block:not(.widget) .block-title>.action {\\n float: right;\\n margin-top: 5px\\n }\\n .account .column.main .block:not(.widget) .block-content .box {\\n margin-bottom: 20px\\n }\\n .account .column.main .block:not(.widget) .block-content .box:last-child {\\n margin-bottom: 0\\n }\\n .control.captcha-image .captcha-img {\\n display: block;\\n margin-bottom: 10px\\n }\\n .customer-account-index .page-title-wrapper {\\n position: relative\\n }\\n .cart-discount .giftcard .content {\\n padding-bottom: 35px\\n }\\n .cart-discount .actions-toolbar .secondary {\\n bottom: 17px\\n }\\n .field.open-amount {\\n width: 100%\\n }\\n .page-product-giftcard .product-info-main .product-info-stock-sku {\\n display: block;\\n padding-left: 10px;\\n text-align: left\\n }\\n .gift-message .actions-toolbar .action-update {\\n font-size: 2rem;\\n padding: 15px;\\n width: 100%\\n }\\n .gift-item-block {\\n border-top: 1px solid #c1c1c1;\\n border-bottom: 0\\n }\\n .gift-item-block .title:after {\\n font-size: 1.2rem;\\n position: absolute;\\n right: 20px;\\n top: 10px\\n }\\n .gift-item-block .content {\\n padding-left: 1.5rem;\\n padding-right: 1.5rem\\n }\\n .gift-message-summary {\\n padding-right: 7rem\\n }\\n .cart.table-wrapper .gift-content {\\n border-top: 1px solid #c1c1c1;\\n margin-right: -15px;\\n overflow: hidden;\\n padding-left: 15px;\\n padding-right: 15px\\n }\\n .cart .action-gift {\\n display: inline-block;\\n text-decoration: none\\n }\\n .cart .action-gift>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .cart .action-gift:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E62A';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .cart .action-gift:hover:after {\\n color: #333\\n }\\n .cart .action-gift:active:after {\\n color: #757575\\n }\\n .cart .action-gift._active {\\n border: 1px solid #c1c1c1;\\n border-bottom-color: #fff;\\n margin: -5px 14px -1px -15px;\\n padding: 4px 10px 9px 14px\\n }\\n .cart .action-gift._active:after {\\n color: #333\\n }\\n .gift-options-cart-item+.action-towishlist {\\n left: 43px;\\n position: absolute\\n }\\n .cart.table-wrapper .action-giftregistry {\\n display: inline-block;\\n text-decoration: none\\n }\\n .cart.table-wrapper .action-giftregistry>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .cart.table-wrapper .action-giftregistry:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E62B';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .cart.table-wrapper .action-giftregistry:hover:before {\\n color: #333\\n }\\n .cart.table-wrapper .action-giftregistry:active:before {\\n color: #757575\\n }\\n .gift-options-cart-item .gift-wrapping,\\n .cart-gift-item .gift-wrapping {\\n border-bottom: 1px solid #c1c1c1;\\n margin-bottom: 20px;\\n padding-bottom: 10px\\n }\\n .gift-wrapping-list {\\n width: 100%\\n }\\n .gift-wrapping-summary+.gift-message-summary {\\n padding-right: 0\\n }\\n .gift-options-cart-item {\\n float: left;\\n width: 100%\\n }\\n .gift-wrapping-preview img {\\n width: 100%\\n }\\n .item-actions .actions-toolbar .gift-options .gift-wrapping,\\n .item-actions .actions-toolbar .gift-options .gift-message {\\n display: block\\n }\\n .table-wrapper.grouped {\\n margin-left: -15px;\\n margin-right: -15px\\n }\\n body.filter-active .page-header {\\n display: none\\n }\\n body.filter-active .page-wrapper {\\n height: 0;\\n margin-top: -999999em;\\n visibility: hidden\\n }\\n body.filter-active .columns {\\n z-index: 999\\n }\\n .filter.active {\\n position: relative;\\n visibility: visible;\\n z-index: 99\\n }\\n .filter.active .filter-options-item:last-child {\\n margin-bottom: 40px\\n }\\n .filter.active .filter-title {\\n border-bottom: 1px solid #ccc;\\n height: 48px;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 2\\n }\\n .filter.active .filter-title strong {\\n box-shadow: none;\\n background: none;\\n border: 0;\\n color: transparent;\\n left: auto;\\n right: 3px;\\n top: 10px;\\n display: inline-block;\\n text-decoration: none\\n }\\n .filter.active .filter-title strong:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #7d7d7d;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .filter.active .filter-subtitle {\\n background: transparent;\\n display: block;\\n height: 50px;\\n left: 0;\\n line-height: 32px;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 1\\n }\\n .filter.active .filter-options {\\n background: #fff;\\n bottom: 0;\\n display: block;\\n left: 0;\\n overflow: scroll;\\n position: fixed;\\n right: 0;\\n top: 50px;\\n z-index: 10\\n }\\n .filter .filter-subtitle {\\n font-size: 20px;\\n font-weight: 300\\n }\\n .filter-actions {\\n margin: -35px -10px 25px\\n }\\n .filter-options-content {\\n padding: 5px 10px\\n }\\n .filter .filter-current {\\n border: solid #ccc;\\n border-width: 1px 0;\\n margin: 5px -10px 0\\n }\\n .filter .filter-current .items {\\n display: none\\n }\\n .filter .filter-current-subtitle {\\n position: relative;\\n text-transform: uppercase;\\n z-index: 1;\\n display: block;\\n text-decoration: none\\n }\\n .filter .filter-current-subtitle:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 13px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .filter .filter-current-subtitle:before {\\n position: absolute;\\n right: 10px;\\n top: 10px\\n }\\n .filter .filter-current-subtitle:after {\\n color: #7d7d7d;\\n content: ' (' attr(data-count) ')';\\n font-size: .9em\\n }\\n .filter .filter-current.active {\\n padding-bottom: 30px\\n }\\n .filter .filter-current.active .block-subtitle:before {\\n content: '\\\\E621'\\n }\\n .filter .filter-current.active .items {\\n display: block\\n }\\n .filter .filter-current.active+.block-actions {\\n display: block\\n }\\n .filter .filter-current+.block-actions {\\n display: none\\n }\\n .filter-no-options .filter-title:before {\\n background: rgba(255, 255, 255, 0.5);\\n content: '';\\n display: block;\\n height: 40px;\\n left: -15px;\\n margin-top: -60px;\\n position: relative;\\n width: 100px;\\n z-index: 99\\n }\\n .filter-no-options .filter-content {\\n margin-bottom: 20px\\n }\\n .page-with-filter .columns .sidebar-main {\\n -ms-flex-order: 0;\\n -webkit-order: 0;\\n order: 0\\n }\\n .map-popup {\\n max-width: 100%\\n }\\n .map-old-price,\\n .map-show-info {\\n display: inline-block\\n }\\n .map-old-price:not(:last-child),\\n .map-show-info:not(:last-child) {\\n margin-bottom: 10px\\n }\\n .block-wishlist-management {\\n clear: both;\\n margin-top: -21px\\n }\\n .block-wishlist-management .wishlist-select {\\n margin: 0 -15px 20px\\n }\\n .block-wishlist-management .wishlist-select .wishlist-name {\\n font-size: 1.6rem\\n }\\n .block-wishlist-management .wishlist-select-items {\\n border-bottom: 1px solid #ccc;\\n background: #f5f5f5;\\n display: none;\\n padding: 15px 0\\n }\\n .block-wishlist-management .wishlist-select-items.active {\\n display: block\\n }\\n .block-wishlist-management .wishlist-select-items .item {\\n margin: 3px 0 0\\n }\\n .block-wishlist-management .wishlist-select-items .item:first-child {\\n margin-top: 0\\n }\\n .block-wishlist-management .wishlist-select-items .item.current {\\n display: none\\n }\\n .block-wishlist-management .wishlist-select-items .item a {\\n color: #333;\\n display: block;\\n padding: 5px 18px;\\n text-decoration: none\\n }\\n .block-wishlist-management .wishlist-select-items .item a:hover {\\n background: #e8e8e8\\n }\\n .block-wishlist-management .wishlist-title strong {\\n font-size: 2.6rem\\n }\\n .block-wishlist-management .wishlist-info {\\n margin-bottom: 15px\\n }\\n .block-wishlist-management .wishlist-toolbar-select,\\n .block-wishlist-management .wishlist-toolbar-actions {\\n margin-bottom: 15px\\n }\\n .products-grid.wishlist .product-item-checkbox {\\n left: 20px;\\n position: absolute;\\n top: 20px\\n }\\n .page-multiple-wishlist .products-grid.wishlist .product-item-photo {\\n margin-left: 25px\\n }\\n .page-multiple-wishlist .products-grid.wishlist .product-item-name,\\n .page-multiple-wishlist .products-grid.wishlist .product-item-description,\\n .page-multiple-wishlist .products-grid.wishlist .product-item .price-box,\\n .page-multiple-wishlist .products-grid.wishlist .product-item-tooltip {\\n margin-left: 115px\\n }\\n .products-grid.wishlist .wishlist-dropdown {\\n display: none\\n }\\n .order-pager-wrapper .toolbar-amount {\\n left: inherit;\\n position: relative;\\n text-align: center;\\n top: inherit\\n }\\n .order-pager-wrapper .pages {\\n text-align: center\\n }\\n .order-pager-wrapper .action.previous,\\n .order-pager-wrapper .action.next {\\n margin: 0\\n }\\n .block-collapsible-nav {\\n left: 0;\\n position: absolute;\\n top: -21px;\\n width: 100%;\\n z-index: 5\\n }\\n .block-collapsible-nav .content {\\n border-bottom: 1px solid #ccc;\\n display: none\\n }\\n .block-collapsible-nav .content.active {\\n display: block\\n }\\n .customer-name,\\n .customer-welcome+.authorization-link {\\n display: none\\n }\\n .nav-sections .switcher-trigger strong:after {\\n font-size: 1.6rem;\\n right: -25px;\\n top: -2px\\n }\\n .navigation .parent .level-top:after {\\n font-size: 1.6rem;\\n right: 10px;\\n top: 7px\\n }\\n .page-footer .footer.content .switcher-store {\\n background: #f4f4f4;\\n font-size: 1.6rem;\\n margin: 0 -15px\\n }\\n .page-footer .footer.content .switcher-store .switcher-options {\\n display: block\\n }\\n .page-footer .footer.content .switcher-store .switcher-options ul.dropdown {\\n background: none;\\n border: 0;\\n box-shadow: none;\\n margin: 0;\\n position: relative\\n }\\n .page-footer .footer.content .switcher-store .switcher-options ul.dropdown:before,\\n .page-footer .footer.content .switcher-store .switcher-options ul.dropdown:after {\\n display: none\\n }\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-trigger,\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-option {\\n border-top: 1px solid #cecece;\\n display: block;\\n padding: 10px 20px\\n }\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-trigger strong {\\n padding: 10px 0\\n }\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-option a {\\n padding: 0\\n }\\n .products-grid.wishlist {\\n margin-bottom: 30px;\\n margin-right: -10px\\n }\\n .products-grid.wishlist .product-item {\\n padding: 20px 10px 20px 20px;\\n position: relative\\n }\\n .products-grid.wishlist .product-item-photo {\\n float: left;\\n margin-right: 20px\\n }\\n .products-grid.wishlist .product-item-name {\\n font-size: 1.6rem\\n }\\n .products-grid.wishlist .product-item-actions {\\n display: block\\n }\\n .products-grid.wishlist .product-item-actions .action {\\n margin-right: 15px\\n }\\n .products-grid.wishlist .product-item-actions .action:last-child {\\n margin-right: 0\\n }\\n .products-grid.wishlist .product-item-actions .action.edit {\\n float: left\\n }\\n .products-grid.wishlist .product-item-actions .action.delete {\\n float: right\\n }\\n .products-grid.wishlist .product-item-actions .action.edit,\\n .products-grid.wishlist .product-item-actions .action.delete {\\n margin-top: 7px\\n }\\n .products-grid.wishlist .product-item-name,\\n .products-grid.wishlist .product-item-description,\\n .products-grid.wishlist .product-item .price-box,\\n .products-grid.wishlist .product-item-tooltip {\\n margin-left: 95px\\n }\\n .products-grid.wishlist .product-item .box-tocart {\\n float: left;\\n margin-right: 20px\\n }\\n .products-grid.wishlist .product-item .box-tocart .stock {\\n margin-top: 7px\\n }\\n .products-grid.wishlist .product-item .giftregisty-dropdown,\\n .products-grid.wishlist .product-item .field.qty {\\n display: none\\n }\\n .products-grid.wishlist .product-image-container {\\n max-width: 80px\\n }\\n .wishlist-index-index .product-item {\\n width: 100%\\n }\\n .wishlist-index-index .product-item-info {\\n width: auto\\n }\\n .cart.table-wrapper .action-towishlist {\\n display: inline-block;\\n text-decoration: none\\n }\\n .cart.table-wrapper .action-towishlist>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .cart.table-wrapper .action-towishlist:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E600';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .cart.table-wrapper .action-towishlist:hover:before {\\n color: #333\\n }\\n .cart.table-wrapper .action-towishlist:active:before {\\n color: #757575\\n }\\n}\\n\\n@media only screen and (max-width:768px) {\\n .abs-checkout-tooltip-content-position-top-mobile {\\n right: -10px;\\n top: 40px;\\n left: auto\\n }\\n}\\n\\n@media all and (min-width:640px) {\\n .abs-blocks-2columns-s {\\n width: 48%\\n }\\n .abs-reset-left-margin-desktop-s,\\n .column:not(.sidebar-main) .multicheckout .actions-toolbar,\\n .multicheckout .block-shipping .box-shipping-method .fieldset .legend {\\n margin-left: 0\\n }\\n .abs-visually-hidden-desktop-s,\\n .products-grid .product-item-info:not(:hover):not(.active) .product-item-inner {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-add-clearfix-desktop-s:before,\\n .abs-add-clearfix-desktop-s:after,\\n .multicheckout .block-billing:before,\\n .multicheckout .block-billing:after {\\n content: '';\\n display: table\\n }\\n .abs-add-clearfix-desktop-s:after,\\n .multicheckout .block-billing:after {\\n clear: both\\n }\\n .abs-add-box-sizing-desktop-s,\\n .multicheckout .block-shipping .box,\\n .multicheckout .block-billing .box-billing-address,\\n .multicheckout .block-billing .box-billing-method {\\n box-sizing: border-box\\n }\\n .abs-form-field-column-2-s .fieldset .field {\\n padding: 0 12px 0 0;\\n box-sizing: border-box;\\n display: inline-block;\\n width: 50%;\\n vertical-align: top\\n }\\n .abs-form-field-column-2-s .fieldset .field+.fieldset {\\n clear: both\\n }\\n .abs-form-field-column-2-s .fieldset .field .field {\\n padding: 0;\\n width: 100%\\n }\\n .abs-form-field-revert-column-1-s {\\n width: 100%\\n }\\n .abs-action-print-s {\\n display: inline-block;\\n text-decoration: none\\n }\\n .abs-action-print-s:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: inherit;\\n content: '\\\\E624';\\n font-family: 'luma-icons';\\n margin: 0 4px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .table>tbody>tr>th,\\n .table>tbody>tr>td {\\n border-top: 1px solid #ccc\\n }\\n .table>tbody+tbody {\\n border-top: 1px solid #ccc\\n }\\n .ui-dialog.popup {\\n width: 420px\\n }\\n .multicheckout .actions-toolbar .secondary {\\n float: none;\\n margin-top: 11px;\\n text-align: right\\n }\\n .multicheckout .actions-toolbar .secondary .action {\\n margin-left: 10px\\n }\\n .multicheckout .actions-toolbar .secondary .action.back {\\n display: block;\\n float: left\\n }\\n .multicheckout .item-options {\\n margin: 20px 0 0\\n }\\n .multicheckout .block-content .box {\\n margin-bottom: 0\\n }\\n .multicheckout .block-shipping .box {\\n float: left;\\n width: 25%\\n }\\n .multicheckout .block-shipping .box-shipping-method {\\n padding-left: 25px;\\n padding-right: 25px;\\n width: 50%\\n }\\n .multicheckout .block-shipping .box-shipping-method .fieldset .field:before {\\n display: none\\n }\\n .multicheckout .block-billing .box-billing-address {\\n float: left;\\n width: 25%\\n }\\n .multicheckout .block-billing .box-billing-method {\\n float: left;\\n padding-left: 25px;\\n width: 50%\\n }\\n .multicheckout.form.address .table-wrapper .applicable {\\n margin: 7px 0 0\\n }\\n .multicheckout.order-review .box-items {\\n clear: left;\\n float: none;\\n padding-top: 40px;\\n width: auto\\n }\\n .multicheckout.order-review .col.item {\\n width: 75%\\n }\\n .multicheckout .methods-payment .item-content>.fieldset {\\n width: auto\\n }\\n .multicheckout .methods-payment .item-content>.fieldset .field.cvv {\\n display: inline-block;\\n width: auto\\n }\\n .multicheckout .methods-payment .fieldset>.field:not(.choice)>.label {\\n float: none;\\n margin-bottom: 8px;\\n text-align: left;\\n width: auto\\n }\\n .multicheckout .methods-payment .fieldset>.field:not(.choice):not(.cvv) .control {\\n width: 100%\\n }\\n .column .block-addbysku .action.remove {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline;\\n margin-top: -4px\\n }\\n .column .block-addbysku .action.remove:focus,\\n .column .block-addbysku .action.remove:active {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove:hover {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove.disabled,\\n .column .block-addbysku .action.remove[disabled],\\n fieldset[disabled] .column .block-addbysku .action.remove {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n }\\n .column .block-addbysku .action.remove:visited {\\n color: #006bb4;\\n text-decoration: none\\n }\\n .column .block-addbysku .action.remove:hover {\\n color: #006bb4;\\n text-decoration: underline\\n }\\n .column .block-addbysku .action.remove:active {\\n color: #ff5501;\\n text-decoration: underline\\n }\\n .column .block-addbysku .action.remove:hover {\\n color: #006bb4\\n }\\n .column .block-addbysku .action.remove:hover,\\n .column .block-addbysku .action.remove:active,\\n .column .block-addbysku .action.remove:focus {\\n background: none;\\n border: 0\\n }\\n .column .block-addbysku .action.remove.disabled,\\n .column .block-addbysku .action.remove[disabled],\\n fieldset[disabled] .column .block-addbysku .action.remove {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n }\\n .catalogsearch-advanced-result .message.error {\\n margin-top: 0\\n }\\n .products-grid .product-item-info:hover,\\n .products-grid .product-item-info.active {\\n background: #fff;\\n box-shadow: 3px 3px 4px 0 rgba(0, 0, 0, 0.3);\\n border: 1px solid #bbb;\\n margin: -10px;\\n padding: 9px;\\n position: relative;\\n z-index: 2\\n }\\n .products-grid .product-item-info:hover .product-item-inner,\\n .products-grid .product-item-info.active .product-item-inner {\\n display: block\\n }\\n .sidebar .products-grid .product-item-info:hover .product-item-photo,\\n .sidebar .products-grid .product-item-info.active .product-item-photo {\\n top: 9px;\\n left: 9px\\n }\\n .products-grid .product-item-inner {\\n background: #fff;\\n box-shadow: 3px 3px 4px 0 rgba(0, 0, 0, 0.3);\\n border: 1px solid #bbb;\\n border-top: none;\\n left: 0;\\n margin: 9px 0 0 -1px;\\n padding: 0 9px 9px;\\n position: absolute;\\n right: -1px;\\n z-index: 2\\n }\\n .product-item-actions {\\n display: block\\n }\\n .products-grid .product-item-actions {\\n margin: -10px 0 10px\\n }\\n .product-item-actions .actions-primary+.actions-secondary {\\n display: table-cell;\\n padding-left: 10px;\\n width: 50%;\\n vertical-align: middle\\n }\\n .product-item-actions .actions-primary+.actions-secondary>.action {\\n margin-right: 10px\\n }\\n .product-item-actions .actions-primary+.actions-secondary>.action:last-child {\\n margin-right: 0\\n }\\n .product-item-actions .actions-primary {\\n display: table-cell\\n }\\n .page-products .products-grid .product-item-inner:before {\\n background: #fff;\\n content: '';\\n height: 3px;\\n left: 0;\\n position: absolute;\\n top: -2px;\\n width: 100%;\\n z-index: 1\\n }\\n .page-products .product-item-actions {\\n position: relative;\\n z-index: 1\\n }\\n .products-grid .product-item {\\n margin-bottom: 20px;\\n width: 33.33333333%\\n }\\n .page-products .products-grid .product-item,\\n .page-layout-1column .products-grid .product-item,\\n .page-layout-3columns .products-grid .product-item,\\n .page-products.page-layout-1column .products-grid .product-item,\\n .page-products.page-layout-3columns .products-grid .product-item {\\n width: 33.33333333%\\n }\\n .review-form {\\n max-width: 500px\\n }\\n .review-ratings {\\n float: left;\\n margin-bottom: 0;\\n max-width: 240px\\n }\\n .review-ratings~.review-content,\\n .review-ratings~.review-details {\\n margin-left: 280px\\n }\\n .review-toolbar {\\n margin: 0 0 30px\\n }\\n .review-toolbar .pages {\\n padding: 30px 0\\n }\\n .fieldset .review-legend.legend {\\n margin-bottom: 30px\\n }\\n .review-item {\\n padding: 30px 0\\n }\\n .review-title {\\n margin: 0 0 30px\\n }\\n .order-details-items .order-title .action {\\n margin: 12px 0 0 30px\\n }\\n .order-details-items .order-title .action.track {\\n float: right\\n }\\n .wishlist-index-index .products-grid .product-item-actions {\\n margin: 0\\n }\\n .block.widget .products-grid .product-item,\\n .page-layout-1column .block.widget .products-grid .product-item,\\n .page-layout-3columns .block.widget .products-grid .product-item {\\n width: 33.33333333%\\n }\\n}\", \"\"]);\n\n// exports\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjM2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL01hZ2VudG9Qcm9kdWN0LmNzcz84OTBjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikodW5kZWZpbmVkKTtcbi8vIGltcG9ydHNcblxuXG4vLyBtb2R1bGVcbmV4cG9ydHMucHVzaChbbW9kdWxlLmlkLCBcImJvZHkge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDBcXG59XFxuXFxuYXJ0aWNsZSxcXG5hc2lkZSxcXG5kZXRhaWxzLFxcbmZpZ2NhcHRpb24sXFxuZmlndXJlLFxcbm1haW4sXFxuZm9vdGVyLFxcbmhlYWRlcixcXG5uYXYsXFxuc2VjdGlvbixcXG5zdW1tYXJ5IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuYXVkaW8sXFxuY2FudmFzLFxcbnZpZGVvIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGhlaWdodDogMFxcbn1cXG5cXG5uYXYgdWwsXFxubmF2IG9sIHtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbmltZyB7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG5pbWcsXFxub2JqZWN0LFxcbnZpZGVvLFxcbmVtYmVkIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXgtd2lkdGg6IDEwMCVcXG59XFxuXFxuc3ZnOm5vdCg6cm9vdCkge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuXFxufVxcblxcbmZpZ3VyZSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG5odG1sIHtcXG4gICAgZm9udC1zaXplOiA2Mi41JTtcXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gICAgZm9udC1zaXplLWFkanVzdDogMTAwJVxcbn1cXG5cXG5ib2R5IHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxucCB7XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW1cXG59XFxuXFxuYWJiclt0aXRsZV0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7XFxuICAgIGN1cnNvcjogaGVscFxcbn1cXG5cXG5iLFxcbnN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuZW0sXFxuaSB7XFxuICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xcbn1cXG5cXG5tYXJrIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcXG4gICAgY29sb3I6ICMwMDBcXG59XFxuXFxuc21hbGwsXFxuLnNtYWxsIHtcXG4gICAgZm9udC1zaXplOiAxMnB4XFxufVxcblxcbmhyIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgbWFyZ2luLXRvcDogMjBweFxcbn1cXG5cXG5zdWIsXFxuc3VwIHtcXG4gICAgZm9udC1zaXplOiA3MS40Mjg1NzE0MzAwMDAwMSU7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxcbn1cXG5cXG5zdXAge1xcbiAgICB0b3A6IC0uNWVtXFxufVxcblxcbnN1YiB7XFxuICAgIGJvdHRvbTogLS4yNWVtXFxufVxcblxcbmRmbiB7XFxuICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xcbn1cXG5cXG5oMSB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAwcmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtXFxufVxcblxcbmgyIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG5oMyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtXFxufVxcblxcbmg0IHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIG1hcmdpbi10b3A6IDJyZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW1cXG59XFxuXFxuaDUge1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG5oNiB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMXJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG5oMSBzbWFsbCxcXG5oMiBzbWFsbCxcXG5oMyBzbWFsbCxcXG5oNCBzbWFsbCxcXG5oNSBzbWFsbCxcXG5oNiBzbWFsbCxcXG5oMSAuc21hbGwsXFxuaDIgLnNtYWxsLFxcbmgzIC5zbWFsbCxcXG5oNCAuc21hbGwsXFxuaDUgLnNtYWxsLFxcbmg2IC5zbWFsbCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDFcXG59XFxuXFxuYSxcXG4uYWxpbmsge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbmE6dmlzaXRlZCxcXG4uYWxpbms6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuYTpob3ZlcixcXG4uYWxpbms6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuYTphY3RpdmUsXFxuLmFsaW5rOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmY1NTAxO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG51bCxcXG5vbCB7XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbVxcbn1cXG5cXG51bD5saSxcXG5vbD5saSB7XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW1cXG59XFxuXFxudWwgdWwsXFxub2wgdWwsXFxudWwgb2wsXFxub2wgb2wge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbmRsIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG5kdCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG5kZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiAwXFxufVxcblxcbmNvZGUsXFxua2JkLFxcbnByZSxcXG5zYW1wIHtcXG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2VcXG59XFxuXFxuY29kZSB7XFxuICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XFxuICAgIGNvbG9yOiAjMTExO1xcbiAgICBwYWRkaW5nOiAycHggNHB4O1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG5rYmQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xcbiAgICBjb2xvcjogIzExMTtcXG4gICAgcGFkZGluZzogMnB4IDRweDtcXG4gICAgZm9udC1zaXplOiAxLjJyZW1cXG59XFxuXFxucHJlIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgY29sb3I6ICMxMTE7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xcbiAgICBwYWRkaW5nOiAxMHB4O1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZFxcbn1cXG5cXG5wcmUgY29kZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXBcXG59XFxuXFxuYmxvY2txdW90ZSB7XFxuICAgIGJvcmRlci1sZWZ0OiAwIHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogMCAwIDIwcHggNDBweDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxuYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQsXFxuYmxvY2txdW90ZSB1bDpsYXN0LWNoaWxkLFxcbmJsb2NrcXVvdGUgb2w6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuYmxvY2txdW90ZSBmb290ZXIsXFxuYmxvY2txdW90ZSBzbWFsbCxcXG5ibG9ja3F1b3RlIC5zbWFsbCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgZm9udC1zaXplOiAxcmVtO1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG5ibG9ja3F1b3RlIGZvb3RlcjpiZWZvcmUsXFxuYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUsXFxuYmxvY2txdW90ZSAuc21hbGw6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFwyMDE0ICAgXFxcXEEwJ1xcbn1cXG5cXG5ibG9ja3F1b3RlIGNpdGUge1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuYmxvY2txdW90ZTpiZWZvcmUsXFxuYmxvY2txdW90ZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnXFxufVxcblxcbnEge1xcbiAgICBxdW90ZXM6IG5vbmVcXG59XFxuXFxucTpiZWZvcmUsXFxucTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBjb250ZW50OiBub25lXFxufVxcblxcbmNpdGUge1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxudGFibGUge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJVxcbn1cXG5cXG50YWJsZSB0aCB7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxudGFibGU+dGJvZHk+dHI+dGgsXFxudGFibGU+dGZvb3Q+dHI+dGgsXFxudGFibGU+dGJvZHk+dHI+dGQsXFxudGFibGU+dGZvb3Q+dHI+dGQge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbnRhYmxlPnRoZWFkPnRyPnRoLFxcbnRhYmxlPnRoZWFkPnRyPnRkIHtcXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbVxcbn1cXG5cXG50YWJsZT50aGVhZD50cj50aCxcXG50YWJsZT50Ym9keT50cj50aCxcXG50YWJsZT50Zm9vdD50cj50aCxcXG50YWJsZT50aGVhZD50cj50ZCxcXG50YWJsZT50Ym9keT50cj50ZCxcXG50YWJsZT50Zm9vdD50cj50ZCB7XFxuICAgIHBhZGRpbmc6IDExcHggMTBweFxcbn1cXG5cXG5idXR0b24ge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiA3cHggMTVweDtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjZyZW07XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuYnV0dG9uOmZvY3VzLFxcbmJ1dHRvbjphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjZTJlMmUyO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG5idXR0b246aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZTFlMWUxO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG5idXR0b24uZGlzYWJsZWQsXFxuYnV0dG9uW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gYnV0dG9uIHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmVcXG59XFxuXFxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl0sXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXSB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmMyYzI7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGhlaWdodDogMzJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIHBhZGRpbmc6IDAgOXB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTpkaXNhYmxlZCxcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06ZGlzYWJsZWQsXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXTpkaXNhYmxlZCB7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTo6LW1vei1wbGFjZWhvbGRlcixcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06Oi1tb3otcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXTo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwicGFzc3dvcmRcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwidXJsXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG5pbnB1dFt0eXBlPVxcXCJzZWFyY2hcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImVtYWlsXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl0ge1xcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZFxcbn1cXG5cXG5pbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcXG5pbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdIHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcXG5pbnB1dFt0eXBlPVxcXCJzZWFyY2hcXFwiXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXFxufVxcblxcbnNlbGVjdCB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmMyYzI7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGhlaWdodDogMzJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIHBhZGRpbmc6IDVweCAxMHB4IDRweDtcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveFxcbn1cXG5cXG5zZWxlY3Q6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG5zZWxlY3RbbXVsdGlwbGU9XFxcIm11bHRpcGxlXFxcIl0ge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmVcXG59XFxuXFxudGV4dGFyZWEge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzJjMmMyO1xcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIHJlc2l6ZTogdmVydGljYWxcXG59XFxuXFxudGV4dGFyZWE6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG50ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbnRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxudGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuaW5wdXRbdHlwZT1cXFwiY2hlY2tib3hcXFwiXSB7XFxuICAgIG1hcmdpbjogMnB4IDVweCAwIDBcXG59XFxuXFxuaW5wdXRbdHlwZT1cXFwiY2hlY2tib3hcXFwiXTpkaXNhYmxlZCB7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0ge1xcbiAgICBtYXJnaW46IDJweCA1cHggMCAwXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl06ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG5pbnB1dC5tYWdlLWVycm9yLFxcbnNlbGVjdC5tYWdlLWVycm9yLFxcbnRleHRhcmVhLm1hZ2UtZXJyb3Ige1xcbiAgICBib3JkZXItY29sb3I6ICNlZDgzODBcXG59XFxuXFxuZGl2Lm1hZ2UtZXJyb3JbZ2VuZXJhdGVkXSB7XFxuICAgIGNvbG9yOiAjZTAyYjI3O1xcbiAgICBmb250LXNpemU6IDEuMnJlbVxcbn1cXG5cXG5pbnB1dFt0eXBlPVxcXCJidXR0b25cXFwiXSxcXG5pbnB1dFt0eXBlPVxcXCJyZXNldFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInN1Ym1pdFxcXCJdIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvblxcbn1cXG5cXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG5mb3JtIHtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXFxufVxcblxcbmFkZHJlc3Mge1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuKjpmb2N1cyB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIG91dGxpbmU6IDBcXG59XFxuXFxuLl9rZXlmb2N1cyAqOmZvY3VzLFxcbmlucHV0Om5vdChbZGlzYWJsZWRdKTpmb2N1cyxcXG50ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSk6Zm9jdXMsXFxuc2VsZWN0Om5vdChbZGlzYWJsZWRdKTpmb2N1cyB7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMXB4ICMwMDY5OWRcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJ1bmRsZS5pdGVtcyxcXG4ucHJvZHVjdC1pdGVtcyxcXG4ucHJpY2VzLXRpZXIsXFxuLnNlYXJjaC10ZXJtcyxcXG4uY2FydC1zdW1tYXJ5IC5jaGVja291dC1tZXRob2RzLWl0ZW1zLFxcbi5vcGMtd3JhcHBlciAub3BjLFxcbi5vcGMtcHJvZ3Jlc3MtYmFyLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW1zLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtcy1xdHksXFxuLmZvb3Rlci5jb250ZW50IHVsLFxcbi5ibG9jay1iYW5uZXJzIC5iYW5uZXItaXRlbXMsXFxuLmJsb2NrLWJhbm5lcnMtaW5saW5lIC5iYW5uZXItaXRlbXMsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5idW5kbGUuaXRlbXM+bGksXFxuLnByb2R1Y3QtaXRlbXM+bGksXFxuLnByaWNlcy10aWVyPmxpLFxcbi5zZWFyY2gtdGVybXM+bGksXFxuLmNhcnQtc3VtbWFyeSAuY2hlY2tvdXQtbWV0aG9kcy1pdGVtcz5saSxcXG4ub3BjLXdyYXBwZXIgLm9wYz5saSxcXG4ub3BjLXByb2dyZXNzLWJhcj5saSxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1pdGVtcz5saSxcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbXMtcXR5PmxpLFxcbi5mb290ZXIuY29udGVudCB1bD5saSxcXG4uYmxvY2stYmFubmVycyAuYmFubmVyLWl0ZW1zPmxpLFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSAuYmFubmVyLWl0ZW1zPmxpLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXI+bGkge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmFjdGlvbi1wcmltYXJ5OmZvY3VzLFxcbi5hY3Rpb24tcHJpbWFyeTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYWN0aW9uLXByaW1hcnk6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYWN0aW9uLXByaW1hcnkuZGlzYWJsZWQsXFxuLmFjdGlvbi1wcmltYXJ5W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFjdGlvbi1wcmltYXJ5IHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmVcXG59XFxuXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWwsXFxuLmJsb2NrLWNvbXBhcmUgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4XFxufVxcblxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6bm90KDpmb2N1cyksXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOm5vdCg6Zm9jdXMpLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTpub3QoOmZvY3VzKSxcXG4uY2FydC1zdW1tYXJ5IC5ibG9jayAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeTpub3QoOmZvY3VzKSxcXG4uY2FydC1zdW1tYXJ5IC5mb3JtLmdpZnRyZWdpc3RyeSAuZmllbGRzZXQgLmFjdGlvbi5wcmltYXJ5Om5vdCg6Zm9jdXMpLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5Om5vdCg6Zm9jdXMpLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6bm90KDpmb2N1cyksXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6bm90KDpmb2N1cyksXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpub3QoOmZvY3VzKSB7XFxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAjZmZmLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTphY3RpdmUsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmFjdGlvbnMtdG9vbGJhcj4ucHJpbWFyeSAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmFjdGl2ZSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeTphY3RpdmUsXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDphY3RpdmUge1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjgpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogN3B4IDE1cHg7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS42cmVtO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4XFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmZvY3VzLFxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmFjdGl2ZSxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6Zm9jdXMsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6ICNlMmUyZTI7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmhvdmVyLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudDpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlMWUxZTE7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uLmRpc2FibGVkLFxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFicy1hY3Rpb24tbGluay1idXR0b24sXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50LmRpc2FibGVkLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudCB7XFxuICAgIG9wYWNpdHk6IC41O1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lXFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmhvdmVyLFxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmFjdGl2ZSxcXG4uYWJzLWFjdGlvbi1saW5rLWJ1dHRvbjpmb2N1cyxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6aG92ZXIsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmFjdGl2ZSxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6Zm9jdXMge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1hY3Rpb24tcmVtb3ZlLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVjayxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b24sXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2ssXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3QsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbmssXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0LFxcbi5hY3Rpb24tYXV0aC10b2dnbGUsXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWwsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmFjdGlvbi1zaG93LFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbCxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdCxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlLFxcbi5hY3Rpb24tZ2lmdCxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24sXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2ssXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbi5jaGVjayxcXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0uc2VuZC5mcmllbmQgLmFjdGlvbi5yZW1vdmUge1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IDBcXG59XFxuXFxuLmFicy1hY3Rpb24tYnV0dG9uLWFzLWxpbms6dmlzaXRlZCxcXG4uYWJzLWFjdGlvbi1yZW1vdmU6dmlzaXRlZCxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6dmlzaXRlZCxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDp2aXNpdGVkLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjp2aXNpdGVkLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmFjdGlvbi5iYWNrOnZpc2l0ZWQsXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6dmlzaXRlZCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6dmlzaXRlZCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6dmlzaXRlZCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwOnZpc2l0ZWQsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazp2aXNpdGVkLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDp2aXNpdGVkLFxcbi5hY3Rpb24tYXV0aC10b2dnbGU6dmlzaXRlZCxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDp2aXNpdGVkLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzp2aXNpdGVkLFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbDp2aXNpdGVkLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OnZpc2l0ZWQsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTp2aXNpdGVkLFxcbi5hY3Rpb24tZ2lmdDp2aXNpdGVkLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOnZpc2l0ZWQsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOnZpc2l0ZWQsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOnZpc2l0ZWQsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazp2aXNpdGVkLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6dmlzaXRlZCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmFjdGlvbi5yZW1vdmU6dmlzaXRlZCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTp2aXNpdGVkLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTp2aXNpdGVkLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbi5yZW1vdmU6dmlzaXRlZCxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGluazpob3ZlcixcXG4uYWJzLWFjdGlvbi1yZW1vdmU6aG92ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmhvdmVyLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpob3ZlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazpob3ZlcixcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdDpob3ZlcixcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6aG92ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwOmhvdmVyLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6aG92ZXIsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpob3ZlcixcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6aG92ZXIsXFxuLmFjdGlvbi1hdXRoLXRvZ2dsZTpob3ZlcixcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDpob3ZlcixcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6aG92ZXIsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU6aG92ZXIsXFxuLmFjdGlvbi1naWZ0OmhvdmVyLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOmhvdmVyLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbjpob3ZlcixcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmU6aG92ZXIsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazpob3ZlcixcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6aG92ZXIsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGluazphY3RpdmUsXFxuLmFicy1hY3Rpb24tcmVtb3ZlOmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmFjdGl2ZSxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b246YWN0aXZlLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmFjdGlvbi5iYWNrOmFjdGl2ZSxcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdDphY3RpdmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlOmFjdGl2ZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6YWN0aXZlLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6YWN0aXZlLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbms6YWN0aXZlLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDphY3RpdmUsXFxuLmFjdGlvbi1hdXRoLXRvZ2dsZTphY3RpdmUsXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWw6YWN0aXZlLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzphY3RpdmUsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmFjdGl2ZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdDphY3RpdmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTphY3RpdmUsXFxuLmFjdGlvbi1naWZ0OmFjdGl2ZSxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZTphY3RpdmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmFjdGl2ZSxcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmU6YWN0aXZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbi5yZW1vdmU6YWN0aXZlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0uc2VuZC5mcmllbmQgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5hYnMtYWN0aW9uLWJ1dHRvbi1hcy1saW5rOmhvdmVyLFxcbi5hYnMtYWN0aW9uLXJlbW92ZTpob3ZlcixcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLnBvcHVwIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6aG92ZXIsXFxuLnBheXBhbC1idXR0b24td2lkZ2V0IC5wYXlwYWwtYnV0dG9uOmhvdmVyLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmFjdGlvbi5iYWNrOmhvdmVyLFxcbi5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0OmhvdmVyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpob3ZlcixcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6aG92ZXIsXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24taGlkZS1wb3B1cDpob3ZlcixcXG4ub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rOmhvdmVyLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDpob3ZlcixcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmhvdmVyLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzpob3ZlcixcXG4uZ2lmdC1vcHRpb25zIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi1jYW5jZWw6aG92ZXIsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWVkaXQ6aG92ZXIsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTpob3ZlcixcXG4uYWN0aW9uLWdpZnQ6aG92ZXIsXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6aG92ZXIsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmhvdmVyLFxcbi5hYnMtYWRkLWZpZWxkcyAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLmFicy1hY3Rpb24tYnV0dG9uLWFzLWxpbms6aG92ZXIsXFxuLmFicy1hY3Rpb24tYnV0dG9uLWFzLWxpbms6YWN0aXZlLFxcbi5hYnMtYWN0aW9uLWJ1dHRvbi1hcy1saW5rOmZvY3VzLFxcbi5hYnMtYWN0aW9uLXJlbW92ZTpob3ZlcixcXG4uYWJzLWFjdGlvbi1yZW1vdmU6YWN0aXZlLFxcbi5hYnMtYWN0aW9uLXJlbW92ZTpmb2N1cyxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrOmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6Zm9jdXMsXFxuLnBvcHVwIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6aG92ZXIsXFxuLnBvcHVwIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmZvY3VzLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpob3ZlcixcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b246YWN0aXZlLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpmb2N1cyxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazpob3ZlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazphY3RpdmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2s6Zm9jdXMsXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6aG92ZXIsXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6YWN0aXZlLFxcbi5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0OmZvY3VzLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpob3ZlcixcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6YWN0aXZlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpmb2N1cyxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6aG92ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwOmFjdGl2ZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6Zm9jdXMsXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24taGlkZS1wb3B1cDpob3ZlcixcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwOmFjdGl2ZSxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwOmZvY3VzLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbms6aG92ZXIsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazphY3RpdmUsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpmb2N1cyxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6aG92ZXIsXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0OmFjdGl2ZSxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6Zm9jdXMsXFxuLmFjdGlvbi1hdXRoLXRvZ2dsZTpob3ZlcixcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmFjdGl2ZSxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmZvY3VzLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmFjdGl2ZSxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDpmb2N1cyxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6aG92ZXIsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmFjdGlvbi1zaG93OmFjdGl2ZSxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6Zm9jdXMsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbDphY3RpdmUsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmZvY3VzLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmFjdGl2ZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdDpmb2N1cyxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlOmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU6YWN0aXZlLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU6Zm9jdXMsXFxuLmFjdGlvbi1naWZ0OmhvdmVyLFxcbi5hY3Rpb24tZ2lmdDphY3RpdmUsXFxuLmFjdGlvbi1naWZ0OmZvY3VzLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOmhvdmVyLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOmFjdGl2ZSxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZTpmb2N1cyxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246aG92ZXIsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmFjdGl2ZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246Zm9jdXMsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5hYnMtYWRkLWZpZWxkcyAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOmZvY3VzLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazphY3RpdmUsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazpmb2N1cyxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6Zm9jdXMsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOmZvY3VzLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTpmb2N1cyxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6aG92ZXIsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6Zm9jdXMsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmZvY3VzLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTpmb2N1cyB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGluay5kaXNhYmxlZCxcXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGlua1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5hYnMtYWN0aW9uLWJ1dHRvbi1hcy1saW5rLFxcbi5hYnMtYWN0aW9uLXJlbW92ZS5kaXNhYmxlZCxcXG4uYWJzLWFjdGlvbi1yZW1vdmVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYWJzLWFjdGlvbi1yZW1vdmUsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrLmRpc2FibGVkLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVja1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVjayxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbC5kaXNhYmxlZCxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbi5kaXNhYmxlZCxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b25bZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b24sXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2suZGlzYWJsZWQsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2tbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjayxcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdC5kaXNhYmxlZCxcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZS5kaXNhYmxlZCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwLmRpc2FibGVkLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwLmRpc2FibGVkLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXBbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbmsuZGlzYWJsZWQsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGlua1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbmssXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0LmRpc2FibGVkLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdCxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlLmRpc2FibGVkLFxcbi5hY3Rpb24tYXV0aC10b2dnbGVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYWN0aW9uLWF1dGgtdG9nZ2xlLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsLmRpc2FibGVkLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWwsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmFjdGlvbi1zaG93LmRpc2FibGVkLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvd1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdyxcXG4uZ2lmdC1vcHRpb25zIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi1jYW5jZWwuZGlzYWJsZWQsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0LmRpc2FibGVkLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWVkaXQsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZS5kaXNhYmxlZCxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZSxcXG4uYWN0aW9uLWdpZnQuZGlzYWJsZWQsXFxuLmFjdGlvbi1naWZ0W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFjdGlvbi1naWZ0LFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlLmRpc2FibGVkLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLmRpc2FibGVkLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbltkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbixcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2suZGlzYWJsZWQsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVja1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2ssXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbi5jaGVjay5kaXNhYmxlZCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmNhcnQtZGlzY291bnQgLmFjdGlvbi5jaGVjayxcXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbi5yZW1vdmVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0uc2VuZC5mcmllbmQgLmFjdGlvbi5yZW1vdmUge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5hYnMtYWN0aW9uLXJlbW92ZTphY3RpdmUsXFxuLmFicy1hY3Rpb24tcmVtb3ZlOm5vdCg6Zm9jdXMpLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVjazphY3RpdmUsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrOm5vdCg6Zm9jdXMpLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmFjdGl2ZSxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpub3QoOmZvY3VzKSxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b246YWN0aXZlLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpub3QoOmZvY3VzKSxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazphY3RpdmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2s6bm90KDpmb2N1cyksXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6YWN0aXZlLFxcbi5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0Om5vdCg6Zm9jdXMpLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTphY3RpdmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlOm5vdCg6Zm9jdXMpLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcDphY3RpdmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwOm5vdCg6Zm9jdXMpLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6YWN0aXZlLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6bm90KDpmb2N1cyksXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazphY3RpdmUsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpub3QoOmZvY3VzKSxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6YWN0aXZlLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDpub3QoOmZvY3VzKSxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmFjdGl2ZSxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOm5vdCg6Zm9jdXMpLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmFjdGl2ZSxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDpub3QoOmZvY3VzKSxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6YWN0aXZlLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzpub3QoOmZvY3VzKSxcXG4uZ2lmdC1vcHRpb25zIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi1jYW5jZWw6YWN0aXZlLFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbDpub3QoOmZvY3VzKSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdDphY3RpdmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWVkaXQ6bm90KDpmb2N1cyksXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTphY3RpdmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTpub3QoOmZvY3VzKSxcXG4uYWN0aW9uLWdpZnQ6YWN0aXZlLFxcbi5hY3Rpb24tZ2lmdDpub3QoOmZvY3VzKSxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZTphY3RpdmUsXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6bm90KDpmb2N1cyksXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmFjdGl2ZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246bm90KDpmb2N1cyksXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmU6bm90KDpmb2N1cyksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazphY3RpdmUsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazpub3QoOmZvY3VzKSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmFjdGl2ZSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOm5vdCg6Zm9jdXMpLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOm5vdCg6Zm9jdXMpLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTpub3QoOmZvY3VzKSxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6YWN0aXZlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTpub3QoOmZvY3VzKSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOm5vdCg6Zm9jdXMpLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTpub3QoOmZvY3VzKSB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmVcXG59XFxuXFxuLmFicy1yZXZlcnQtdG8tYWN0aW9uLXNlY29uZGFyeSxcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWwsXFxuLmJsb2NrLWNvbXBhcmUgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgYmFja2dyb3VuZDogI2VlZTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmFicy1yZXZlcnQtc2Vjb25kYXJ5LWNvbG9yOmZvY3VzLFxcbi5hYnMtcmV2ZXJ0LXNlY29uZGFyeS1jb2xvcjphY3RpdmUsXFxuLmFicy1yZXZlcnQtdG8tYWN0aW9uLXNlY29uZGFyeTpmb2N1cyxcXG4uYWJzLXJldmVydC10by1hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZSxcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6Zm9jdXMsXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpmb2N1cyxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTpmb2N1cyxcXG4uYmxvY2stY29tcGFyZSAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uY2FydC1zdW1tYXJ5IC5mb3JtLmdpZnRyZWdpc3RyeSAuZmllbGRzZXQgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmZvY3VzLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmZvY3VzLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogI2UyZTJlMjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmFicy1yZXZlcnQtc2Vjb25kYXJ5LWNvbG9yOmhvdmVyLFxcbi5hYnMtcmV2ZXJ0LXRvLWFjdGlvbi1zZWNvbmRhcnk6aG92ZXIsXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6aG92ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmhvdmVyLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTpob3ZlcixcXG4uY2FydC1zdW1tYXJ5IC5ibG9jayAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeTpob3ZlcixcXG4uY2FydC1zdW1tYXJ5IC5mb3JtLmdpZnRyZWdpc3RyeSAuZmllbGRzZXQgLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6aG92ZXIsXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6aG92ZXIsXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlMWUxZTE7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0gLmJveC10b2NhcnQgLnRvY2FydCB7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS42cmVtO1xcbiAgICBwYWRkaW5nOiA3cHggMTVweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9uLnByaW1hcnksXFxuLm9yZGVyLXJldmlldy1mb3JtIC5hY3Rpb24ucHJpbWFyeSxcXG4uYnVuZGxlLWFjdGlvbnMgLmFjdGlvbi5wcmltYXJ5LmN1c3RvbWl6ZSxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAuYm94LXRvY2FydCAuYWN0aW9uLnByaW1hcnksXFxuLmJveC10b2NhcnQgLmFjdGlvbi50b2NhcnQsXFxuLmNhcnQtc3VtbWFyeSAuY2hlY2tvdXQtbWV0aG9kcy1pdGVtcyAuYWN0aW9uLnByaW1hcnkuY2hlY2tvdXQsXFxuLmJsb2NrLW1pbmljYXJ0IC5ibG9jay1jb250ZW50Pi5hY3Rpb25zPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeSxcXG4ubWV0aG9kcy1zaGlwcGluZyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmFjdGlvbi5hY3Rpb24tcmVnaXN0ZXIsXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5hY3Rpb24uYWN0aW9uLWxvZ2luLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtY29udGVudD4uYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeSxcXG4uZm9ybS1hZGRyZXNzLWVkaXQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnkge1xcbiAgICBsaW5lLWhlaWdodDogMi4ycmVtO1xcbiAgICBwYWRkaW5nOiAxNHB4IDE3cHg7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMgZHQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zIGR0LFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnMgZHQge1xcbiAgICBjbGVhcjogbGVmdDtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbjogMCAxMHB4IDVweCAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMgZHQ6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zIGR0OmFmdGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnMgZHQ6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMgZGQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zIGRkLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnMgZGQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMCA1cHhcXG59XFxuXFxuLmFjdGlvbnMtdG9vbGJhcj4ucHJpbWFyeSAuYWN0aW9uLFxcbi5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uLFxcbi5idW5kbGUtYWN0aW9ucyAuYWN0aW9uLnByaW1hcnkuY3VzdG9taXplLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5ib3gtdG9jYXJ0IC5hY3Rpb24ucHJpbWFyeSxcXG4uYm94LXRvY2FydCAuYWN0aW9uLnRvY2FydCB7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWltYWdlLXdyYXBwZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAucHJvZHVjdC1pbWFnZS13cmFwcGVyLFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pbWFnZS13cmFwcGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0LWltYWdlLXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudFxcbn1cXG5cXG4ucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1pbWFnZS13cmFwcGVyIC5wcm9kdWN0LWltYWdlLXBob3RvLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciAucHJvZHVjdC1pbWFnZS1waG90byxcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciAucHJvZHVjdC1pbWFnZS1waG90byxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAucHJvZHVjdC1pbWFnZS13cmFwcGVyIC5wcm9kdWN0LWltYWdlLXBob3RvIHtcXG4gICAgcG9zaXRpb246IHN0YXRpY1xcbn1cXG5cXG4ucHJvZHVjdC5tZWRpYSAucHJvZHVjdC5waG90byAucGhvdG8uaW1hZ2Uge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXJnaW46IDAgYXV0bztcXG4gICAgbWF4LXdpZHRoOiAxMDAlXFxufVxcblxcbi5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5ibG9jay10aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEycHhcXG59XFxuXFxuLmxvZ2luLWNvbnRhaW5lciAuYmxvY2sgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDBcXG59XFxuXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duLFxcbi53aXNobGlzdC1kcm9wZG93biB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlOmJlZm9yZSxcXG4uYWJzLWRyb3Bkb3duLXNpbXBsZTphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd246YmVmb3JlLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93bjphZnRlcixcXG4ud2lzaGxpc3QtZHJvcGRvd246YmVmb3JlLFxcbi53aXNobGlzdC1kcm9wZG93bjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZTphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd246YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgLmFjdGlvbi50b2dnbGUsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgLmFjdGlvbi50b2dnbGU6YWZ0ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlOmFmdGVyLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwIDAgMCA1cHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSAuYWN0aW9uLnRvZ2dsZTpob3ZlcjphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gLmFjdGlvbi50b2dnbGU6aG92ZXI6YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZTphY3RpdmU6YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlOmFjdGl2ZTphZnRlciB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZSxcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gLmFjdGlvbi50b2dnbGUuYWN0aXZlLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWZ0ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphZnRlcixcXG4ud2lzaGxpc3QtZHJvcGRvd24gLmFjdGlvbi50b2dnbGUuYWN0aXZlOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDVweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTpob3ZlcjphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gLmFjdGlvbi50b2dnbGUuYWN0aXZlOmhvdmVyOmFmdGVyLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6aG92ZXI6YWZ0ZXIge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd24sXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duLFxcbi53aXNobGlzdC1kcm9wZG93biB1bC5kcm9wZG93biB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xcbiAgICBtYXJnaW4tdG9wOiA0cHg7XFxuICAgIG1pbi13aWR0aDogMjAwcHg7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpXFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIHVsLmRyb3Bkb3duIGxpLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biB1bC5kcm9wZG93biBsaSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd24gbGkge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDIzcHhcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd24gbGk6aG92ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duIGxpOmhvdmVyLFxcbi53aXNobGlzdC1kcm9wZG93biB1bC5kcm9wZG93biBsaTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd246YWZ0ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd246YmVmb3JlLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLndpc2hsaXN0LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSB7XFxuICAgIGJvcmRlcjogNnB4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk5XFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIHVsLmRyb3Bkb3duOmFmdGVyLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biB1bC5kcm9wZG93bjphZnRlcixcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXI6IDdweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYmJiIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OFxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd246YmVmb3JlIHtcXG4gICAgbGVmdDogMTBweDtcXG4gICAgdG9wOiAtMTJweFxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSB1bC5kcm9wZG93bjphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmFmdGVyIHtcXG4gICAgbGVmdDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlLmFjdGl2ZSxcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24uYWN0aXZlLFxcbi53aXNobGlzdC1kcm9wZG93bi5hY3RpdmUge1xcbiAgICBvdmVyZmxvdzogdmlzaWJsZVxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZS5hY3RpdmUgdWwuZHJvcGRvd24sXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duLmFjdGl2ZSB1bC5kcm9wZG93bixcXG4ud2lzaGxpc3QtZHJvcGRvd24uYWN0aXZlIHVsLmRyb3Bkb3duIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLml0ZW1zLFxcbi53aXNobGlzdC1kcm9wZG93biB1bC5pdGVtcyB7XFxuICAgIHBhZGRpbmc6IDZweCAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jb2wgLnF0eSAuaW5wdXQtdGV4dCxcXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAucXR5IC5xdHksXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuaW5wdXQtdGV4dC5xdHksXFxuLmJveC10b2NhcnQgLmlucHV0LXRleHQucXR5LFxcbi5hY2NvdW50IC5kYXRhLnRhYmxlLXJldHVybi1pdGVtcyAucXR5IC5pbnB1dC10ZXh0LFxcbi50YWJsZS1naWZ0cmVnaXN0cnktaXRlbXMgLmZpZWxkLnF0eSAucXR5LFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5xdHkgLnF0eSxcXG4udGFibGUuZ3JvdXBlZCAuY29sLnF0eSAuY29udHJvbC5xdHkgLnF0eSxcXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAuaW5wdXQtdGV4dC5xdHksXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmJveC10b2NhcnQgLnF0eSxcXG4ucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5ib3gtdG9jYXJ0IGlucHV0LnF0eSxcXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkLnF0eSAucXR5IHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICB3aWR0aDogNTRweFxcbn1cXG5cXG4uYmxvY2ssXFxuLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1kZXRhaWxzLFxcbi5ibG9jay1iYW5uZXJzLFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLmFjdGlvbi5kZWxldGUsXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwucmVtb3ZlIC5hY3Rpb24uZGVsZXRlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlLFxcbi5maWx0ZXItY3VycmVudCAuYWN0aW9uLnJlbW92ZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtcmVtb3ZlLWJ1dHRvbi1mb3ItYmxvY2tzPnNwYW4sXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLmFjdGlvbi5kZWxldGU+c3BhbixcXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGU+c3BhbixcXG4uYmxvY2stY29tcGFyZSAuYWN0aW9uLmRlbGV0ZT5zcGFuLFxcbi5maWx0ZXItY3VycmVudCAuYWN0aW9uLnJlbW92ZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmFicy1yZW1vdmUtYnV0dG9uLWZvci1ibG9ja3M6YmVmb3JlLFxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlOmJlZm9yZSxcXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGU6YmVmb3JlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlOmJlZm9yZSxcXG4uZmlsdGVyLWN1cnJlbnQgLmFjdGlvbi5yZW1vdmU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTYnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmFicy1yZW1vdmUtYnV0dG9uLWZvci1ibG9ja3M6aG92ZXI6YmVmb3JlLFxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlOmhvdmVyOmJlZm9yZSxcXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGU6aG92ZXI6YmVmb3JlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlOmhvdmVyOmJlZm9yZSxcXG4uZmlsdGVyLWN1cnJlbnQgLmFjdGlvbi5yZW1vdmU6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM0OTQ5NDlcXG59XFxuXFxuLmFicy1yZW1vdmUtYnV0dG9uLWZvci1ibG9ja3M6YWN0aXZlOmJlZm9yZSxcXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAuYWN0aW9uLmRlbGV0ZTphY3RpdmU6YmVmb3JlLFxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsLnJlbW92ZSAuYWN0aW9uLmRlbGV0ZTphY3RpdmU6YmVmb3JlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlOmFjdGl2ZTpiZWZvcmUsXFxuLmZpbHRlci1jdXJyZW50IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzk5OVxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLW5hbWUsXFxuLnByb2R1Y3QubmFtZSBhIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLW5hbWU+YSxcXG4ucHJvZHVjdC5uYW1lIGE+YSB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1wcm9kdWN0LWxpbms+YTp2aXNpdGVkLFxcbi5wcm9kdWN0LWl0ZW0tbmFtZT5hOnZpc2l0ZWQsXFxuLnByb2R1Y3QubmFtZSBhPmE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uYWJzLXByb2R1Y3QtbGluaz5hOmhvdmVyLFxcbi5wcm9kdWN0LWl0ZW0tbmFtZT5hOmhvdmVyLFxcbi5wcm9kdWN0Lm5hbWUgYT5hOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5hYnMtcHJvZHVjdC1saW5rPmE6YWN0aXZlLFxcbi5wcm9kdWN0LWl0ZW0tbmFtZT5hOmFjdGl2ZSxcXG4ucHJvZHVjdC5uYW1lIGE+YTphY3RpdmUge1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmFicy1saWtlLWxpbms6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1saWtlLWxpbms6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmFicy1saWtlLWxpbms6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5mb3JtLmdpZnRyZWdpc3RyeS5pdGVtcyAuYWN0aW9ucy10b29sYmFyLFxcbi5mb3JtLndpc2hsaXN0Lml0ZW1zIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gICAgbWFyZ2luLWxlZnQ6IDczJTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDM0cHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmZpZWxkIC5jb250cm9sLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuZmllbGRzZXQgLmZpZWxkIC5jb250cm9sLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wge1xcbiAgICB3aWR0aDogNzAlXFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5LFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnksXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnksXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5LFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnkge1xcbiAgICBmbG9hdDogbGVmdFxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uLmFkZCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYWRkLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYWRkLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uLmFkZCxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYWRkIHtcXG4gICAgbWFyZ2luLXRvcDogMzBweFxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmZpZWxkc2V0IC5maWVsZHMgLmFjdGlvbnMtdG9vbGJhcixcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmZpZWxkcyAuYWN0aW9ucy10b29sYmFyLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuZmllbGRzZXQgLmZpZWxkcyAuYWN0aW9ucy10b29sYmFyLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmZpZWxkc2V0IC5maWVsZHMgLmFjdGlvbnMtdG9vbGJhcixcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmZpZWxkcyAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWRkaXRpb25hbCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWRkaXRpb25hbCxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFkZGl0aW9uYWwsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWRkaXRpb25hbCxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWRkaXRpb25hbCB7XFxuICAgIG1hcmdpbi10b3A6IDU1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLm1lc3NhZ2Uubm90aWNlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5tZXNzYWdlLm5vdGljZSxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLm1lc3NhZ2Uubm90aWNlLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLm1lc3NhZ2Uubm90aWNlLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5tZXNzYWdlLm5vdGljZSB7XFxuICAgIG1hcmdpbjogMzBweCAwIDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWl0ZW1zIC5vcmRlci1naWZ0LW1lc3NhZ2U6bm90KC5leHBhbmRlZC1jb250ZW50KSB7XFxuICAgIGhlaWdodDogMDtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jb2wgLmxhYmVsLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jayAubWV0aG9kcy1zaGlwcGluZyAuaXRlbS1jb250ZW50IC5maWVsZHNldD4ubGVnZW5kLFxcbi5vcGMtd3JhcHBlciAuZm9ybS1kaXNjb3VudCAuZmllbGQgLmxhYmVsLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5wcm9kdWN0LWltYWdlLWNvbnRhaW5lcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC5uYW1lLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5zdG9jayxcXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb24gc3BhbixcXG4uc3BlY2lhbC1wcmljZSAucHJpY2UtbGFiZWwsXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwubGFiZWwucmVtb3ZlIHNwYW4sXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwubGFiZWwucHJvZHVjdCBzcGFuLFxcbi5ibG9jay5yZWxhdGVkIC5maWVsZC5jaG9pY2UgLmxhYmVsLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHkgLmxhYmVsLFxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQgLnRleHQsXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCAuY291bnRlci1sYWJlbCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLnBhZ2UtdGl0bGUtd3JhcHBlcixcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmZpZWxkLXNlbGVjdC1iaWxsaW5nPi5sYWJlbCxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnRzIC5sZWdlbmQsXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAubGVnZW5kLFxcbi5maWVsZHNldCAuZnVsbG5hbWU+LmxhYmVsLFxcbi5maWVsZC5zdHJlZXQgLmZpZWxkLmFkZGl0aW9uYWwgLmxhYmVsLFxcbi5ibG9jay1iYWxhbmNlIC5iYWxhbmNlLXByaWNlLWxhYmVsLFxcbi5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGRzZXQgLmxlZ2VuZC5saW5rcy10aXRsZSxcXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5maWVsZHNldC5naWZ0Y2FyZD4ubGVnZW5kLFxcbi5vcGMtd3JhcHBlciAuZm9ybS1naWZ0Y2FyZC1hY2NvdW50IC5maWVsZCAubGFiZWwsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5maWVsZHMgLmxhYmVsLFxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IC5maWx0ZXItY291bnQtbGFiZWwsXFxuLnRhYmxlLWNvbXBhcmlzb24gLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0IHNwYW4sXFxuLnByb2R1Y3QtaXRlbXMgLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0IHNwYW4sXFxuLnBhZ2UtbXVsdGlwbGUtd2lzaGxpc3QgLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLWZvcm0gLmZvcm0td2lzaGxpc3Qtc2VhcmNoIC5maWVsZHNldD4ubGVnZW5kLFxcbi5ibG9jay5uZXdzbGV0dGVyIC5sYWJlbCxcXG4ucmV2aWV3LWRhdGUgLnJldmlldy1kZXRhaWxzLWxhYmVsLFxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtZGV0YWlscyAucmF0aW5nLWF2ZXJhZ2UtbGFiZWwsXFxuLmJsb2NrLXJlb3JkZXIgLnByb2R1Y3QtaXRlbSAubGFiZWwsXFxuLmFjdGlvbi5za2lwOm5vdCg6Zm9jdXMpLFxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLmxhYmVsLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLmxhYmVsLFxcbi5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0gLmNvbW1lbnQtYm94IC5sYWJlbCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC5vcHRpb25zIC50b2dnbGU+c3BhbixcXG4uc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uIHNwYW4ge1xcbiAgICBjbGlwOiBhdXRvO1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1hcmdpbjogMDtcXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5hYnMtYWRkLWNsZWFyZml4OmJlZm9yZSxcXG4uYWJzLWFkZC1jbGVhcmZpeDphZnRlcixcXG4uYWJzLWFkZC1maWVsZHMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YmVmb3JlLFxcbi5hYnMtYWRkLWZpZWxkcyAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtZGF0ZS13cmFwOmJlZm9yZSxcXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtZGF0ZS13cmFwOmFmdGVyLFxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnM6YmVmb3JlLFxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrOmJlZm9yZSxcXG4ubXVsdGljaGVja291dCAuYmxvY2s6YWZ0ZXIsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQ6YmVmb3JlLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay1jb250ZW50OmFmdGVyLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZC5jaG9pY2UgLmxhYmVsOmJlZm9yZSxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5sYWJlbDphZnRlcixcXG4udG9vbGJhcjpiZWZvcmUsXFxuLnRvb2xiYXI6YWZ0ZXIsXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMtaW1hZ2VzOmJlZm9yZSxcXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXM6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zOmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0+LnByb2R1Y3Q6YmVmb3JlLFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtPi5wcm9kdWN0OmFmdGVyLFxcbi5jaGVja291dC1jb250YWluZXI6YmVmb3JlLFxcbi5jaGVja291dC1jb250YWluZXI6YWZ0ZXIsXFxuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzczpiZWZvcmUsXFxuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzczphZnRlcixcXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyOmJlZm9yZSxcXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyOmFmdGVyLFxcbi5vcGMtd3JhcHBlciAuZmllbGQuYWRkcmVzc2VzOmJlZm9yZSxcXG4ub3BjLXdyYXBwZXIgLmZpZWxkLmFkZHJlc3NlczphZnRlcixcXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1hZGQtZm9ybTpiZWZvcmUsXFxuLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3QtYWRkLWZvcm06YWZ0ZXIsXFxuLmdpZnQtaXRlbS1ibG9jayAuY29udGVudDpiZWZvcmUsXFxuLmdpZnQtaXRlbS1ibG9jayAuY29udGVudDphZnRlcixcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItZ2lmdC1tZXNzYWdlOmJlZm9yZSxcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItZ2lmdC1tZXNzYWdlOmFmdGVyLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZTpiZWZvcmUsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlOmFmdGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnM6YmVmb3JlLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLmdpZnQtd3JhcHBpbmctbGlzdDpiZWZvcmUsXFxuLmdpZnQtd3JhcHBpbmctbGlzdDphZnRlcixcXG4ub3BjLXdyYXBwZXIgLmRhdGEudGFibGUgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ6YmVmb3JlLFxcbi5vcGMtd3JhcHBlciAuZGF0YS50YWJsZSAuZ2lmdC13cmFwcGluZyAuY29udGVudDphZnRlcixcXG4udGFibGUtb3JkZXItaXRlbXMgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ6YmVmb3JlLFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyAuY29udGVudDphZnRlcixcXG4ub3JkZXItb3B0aW9ucyAucHJvZHVjdDpiZWZvcmUsXFxuLm9yZGVyLW9wdGlvbnMgLnByb2R1Y3Q6YWZ0ZXIsXFxuLm1hcC1wb3B1cCAubWFwLWluZm8tcHJpY2U6YmVmb3JlLFxcbi5tYXAtcG9wdXAgLm1hcC1pbmZvLXByaWNlOmFmdGVyLFxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtZGV0YWlsczpiZWZvcmUsXFxuLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1kZXRhaWxzOmFmdGVyLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbnMtdG9vbGJhcjpiZWZvcmUsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5oZWFkZXIuY29udGVudDpiZWZvcmUsXFxuLmhlYWRlci5jb250ZW50OmFmdGVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjpiZWZvcmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YmVmb3JlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uYWJzLWFkZC1jbGVhcmZpeDphZnRlcixcXG4uYWJzLWFkZC1maWVsZHMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWRhdGUtd3JhcDphZnRlcixcXG4ubXVsdGljaGVja291dCAuaXRlbS1vcHRpb25zOmFmdGVyLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jazphZnRlcixcXG4ubXVsdGljaGVja291dCAuYmxvY2stY29udGVudDphZnRlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5sYWJlbDphZnRlcixcXG4udG9vbGJhcjphZnRlcixcXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXM6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0tb3B0aW9uczphZnRlcixcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbT4ucHJvZHVjdDphZnRlcixcXG4uY2hlY2tvdXQtY29udGFpbmVyOmFmdGVyLFxcbi5jaGVja291dC1vbmVwYWdlLXN1Y2Nlc3M6YWZ0ZXIsXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlcjphZnRlcixcXG4ub3BjLXdyYXBwZXIgLmZpZWxkLmFkZHJlc3NlczphZnRlcixcXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1hZGQtZm9ybTphZnRlcixcXG4uZ2lmdC1pdGVtLWJsb2NrIC5jb250ZW50OmFmdGVyLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5vcmRlci1naWZ0LW1lc3NhZ2U6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlOmFmdGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLmdpZnQtd3JhcHBpbmctbGlzdDphZnRlcixcXG4ub3BjLXdyYXBwZXIgLmRhdGEudGFibGUgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ6YWZ0ZXIsXFxuLnRhYmxlLW9yZGVyLWl0ZW1zIC5naWZ0LXdyYXBwaW5nIC5jb250ZW50OmFmdGVyLFxcbi5vcmRlci1vcHRpb25zIC5wcm9kdWN0OmFmdGVyLFxcbi5tYXAtcG9wdXAgLm1hcC1pbmZvLXByaWNlOmFmdGVyLFxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtZGV0YWlsczphZnRlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLmhlYWRlci5jb250ZW50OmFmdGVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlciB7XFxuICAgIGNsZWFyOiBib3RoXFxufVxcblxcbi5hYnMtZmllbGQtZGF0ZSAuY29udHJvbCxcXG4uYWJzLWZpZWxkLXRvb2x0aXAsXFxuLmNvbHVtbnMgLmNvbHVtbi5tYWluLFxcbi5jb2x1bW5zIC5zaWRlYmFyLW1haW4sXFxuLmNvbHVtbnMgLnNpZGViYXItYWRkaXRpb25hbCxcXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuc2t1LFxcbi5wcm9kdWN0LWl0ZW0sXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMtaW1hZ2VzIC5wcm9kdWN0LWl0ZW0sXFxuLnNlYXJjaC1hdXRvY29tcGxldGUsXFxuLmNhcnQtc3VtbWFyeSxcXG4ub3BjLXdyYXBwZXIgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbSxcXG4uc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCxcXG4ub3BjLWJsb2NrLXN1bW1hcnksXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLnNob3csXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5maWVsZC5za3UsXFxuLmZvcm0uc2VhcmNoLmFkdmFuY2VkIC5maWVsZHMucmFuZ2UgLmZpZWxkLmRhdGUgLmNvbnRyb2wsXFxuLmZpZWxkIC5jb250cm9sLl93aXRoLXRvb2x0aXAsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmZpZWxkLmRhdGUgLmNvbnRyb2wge1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbi5hYnMtbmF2aWdhdGlvbi1pY29uOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMzRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbjpiZWZvcmUsXFxuLmFicy1zcGxpdC1idXR0b246YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgZGlzcGxheTogdGFibGVcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b246YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnNwbGl0IHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIGJ1dHRvbi5hY3Rpb24uc3BsaXQge1xcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gYnV0dG9uKy5hY3Rpb24udG9nZ2xlIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gICAgYm9yZGVyLWxlZnQ6IDA7XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnRvZ2dsZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5hY3Rpb24udG9nZ2xlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGUuYWN0aXZlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGUuYWN0aXZlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphY3RpdmU6YWZ0ZXIge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXMge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNHB4O1xcbiAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5pdGVtcyBsaSB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogM3B4IDVweFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXMgbGk6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xcbiAgICBjdXJzb3I6IHBvaW50ZXJcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLml0ZW1zOmJlZm9yZSxcXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLml0ZW1zOmJlZm9yZSB7XFxuICAgIGJvcmRlcjogNnB4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk5XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5pdGVtczphZnRlciB7XFxuICAgIGJvcmRlcjogN3B4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNiYmIgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk4XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5pdGVtczpiZWZvcmUge1xcbiAgICByaWdodDogMTBweDtcXG4gICAgdG9wOiAtMTJweFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICByaWdodDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uLmFjdGl2ZSB7XFxuICAgIG92ZXJmbG93OiB2aXNpYmxlXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uLmFjdGl2ZSAuaXRlbXMge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcz4uYWN0aW9uLFxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+LmFjdGlvbixcXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0LFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLm1haWx0by5mcmllbmQsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG93aXNobGlzdCxcXG4uYmxvY2stYnVuZGxlLXN1bW1hcnkgLmFjdGlvbi50b3dpc2hsaXN0LFxcbi5wcm9kdWN0LWl0ZW0gLmFjdGlvbi50b3dpc2hsaXN0LFxcbi50YWJsZS1jb21wYXJpc29uIC5hY3Rpb24udG93aXNobGlzdCB7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1ZW07XFxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtYWN0aW9ucy1hZGR0bzpiZWZvcmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLnByb2R1Y3QtYWRkdG8tbGlua3M+LmFjdGlvbjpiZWZvcmUsXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT4uYWN0aW9uOmJlZm9yZSxcXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmU6YmVmb3JlLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbi5zcGxpdDpiZWZvcmUsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24ubWFpbHRvLmZyaWVuZDpiZWZvcmUsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUsXFxuLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUsXFxuLnByb2R1Y3QtaXRlbSAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlLFxcbi50YWJsZS1jb21wYXJpc29uIC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogLTJweCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLnByb2R1Y3QtYWRkdG8tbGlua3M+LmFjdGlvbjpob3ZlcixcXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb246aG92ZXIsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG9jb21wYXJlOmhvdmVyLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbi5zcGxpdDpob3ZlcixcXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi5tYWlsdG8uZnJpZW5kOmhvdmVyLFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLnRvd2lzaGxpc3Q6aG92ZXIsXFxuLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5hY3Rpb24udG93aXNobGlzdDpob3ZlcixcXG4ucHJvZHVjdC1pdGVtIC5hY3Rpb24udG93aXNobGlzdDpob3ZlcixcXG4udGFibGUtY29tcGFyaXNvbiAuYWN0aW9uLnRvd2lzaGxpc3Q6aG92ZXIge1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5wcm9kdWN0LWFkZHRvLWxpbmtzPi5hY3Rpb246YmVmb3JlLFxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+LmFjdGlvbjpiZWZvcmUsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG9jb21wYXJlOmJlZm9yZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlLFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLm1haWx0by5mcmllbmQ6YmVmb3JlLFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlLFxcbi5ibG9jay1idW5kbGUtc3VtbWFyeSAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlLFxcbi5wcm9kdWN0LWl0ZW0gLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSxcXG4udGFibGUtY29tcGFyaXNvbiAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlIHtcXG4gICAgd2lkdGg6IDE4cHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJveC10b2NhcnQsXFxuLmJveC10b2NhcnQge1xcbiAgICBtYXJnaW46IDAgMCAzMHB4XFxufVxcblxcbi5hYnMtY2FydC1ibG9jaz4udGl0bGUsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0IC50b2dnbGUsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2s+LnRpdGxlLFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrPi50aXRsZSxcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYmxvY2s+LnRpdGxlLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jaz4udGl0bGUge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDE1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1jYXJ0LWJsb2NrPi50aXRsZTphZnRlcixcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QgLnRvZ2dsZTphZnRlcixcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDIwcHg7XFxuICAgIHRvcDogMTBweFxcbn1cXG5cXG4uYWJzLXRvZ2dsaW5nLXRpdGxlPnNwYW4sXFxuLmFicy1jYXJ0LWJsb2NrPi50aXRsZT5zcGFuLFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdCAudG9nZ2xlPnNwYW4sXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2s+LnRpdGxlPnNwYW4sXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlPnNwYW4sXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrPi50aXRsZT5zcGFuLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jaz4udGl0bGU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5hYnMtdG9nZ2xpbmctdGl0bGU6YWZ0ZXIsXFxuLmFicy1jYXJ0LWJsb2NrPi50aXRsZTphZnRlcixcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QgLnRvZ2dsZTphZnRlcixcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAzcHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2ssXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2ssXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jayB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZTphZnRlciB7XFxuICAgIGNvbG9yOiAjODU4NTg1XFxufVxcblxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmJsb2NrIC5jb250ZW50LFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5jb250ZW50LFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jayAuY29udGVudCxcXG4uY2FydC1kaXNjb3VudCAuYmxvY2sgLmNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBwYWRkaW5nOiA1cHggMTVweCAyM3B4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmFicy1jYXJ0LWJsb2NrLmFjdGl2ZT4udGl0bGU6YWZ0ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2suYWN0aXZlPi50aXRsZTphZnRlcixcXG4uY2FydC1zdW1tYXJ5IC5ibG9jay5hY3RpdmU+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jay5hY3RpdmU+LnRpdGxlOmFmdGVyLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jay5hY3RpdmU+LnRpdGxlOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jay5hY3RpdmUgLmNvbnRlbnQsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2suYWN0aXZlIC5jb250ZW50LFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jay5hY3RpdmUgLmNvbnRlbnQsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrLmFjdGl2ZSAuY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jYXJ0LXByaWNlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmFicy1hY2NvdW50LWJsb2NrcyAuYmxvY2stdGl0bGUsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLXRpdGxlLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay1jb250ZW50IC50aXRsZSxcXG4uYWNjb3VudCAubGVnZW5kLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zZWFyY2ggLmxlZ2VuZCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmJsb2NrLXRpdGxlLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5ibG9jay10aXRsZSxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLWZvcm0gLmJsb2NrLXRpdGxlLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuYmxvY2stdGl0bGUsXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLnRpdGxlLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZSxcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmJsb2NrLXRpdGxlLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGUsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uYWJzLWFjY291bnQtYmxvY2tzIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmFicy1hY2NvdW50LWJsb2NrcyAuYmxvY2stdGl0bGU+c3BhbixcXG4ubXVsdGljaGVja291dCAuYmxvY2stdGl0bGU+c3Ryb25nLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZT5zcGFuLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay1jb250ZW50IC50aXRsZT5zdHJvbmcsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLnRpdGxlPnNwYW4sXFxuLmFjY291bnQgLmxlZ2VuZD5zdHJvbmcsXFxuLmFjY291bnQgLmxlZ2VuZD5zcGFuLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zZWFyY2ggLmxlZ2VuZD5zdHJvbmcsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCAubGVnZW5kPnNwYW4sXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5ibG9jay10aXRsZT5zcGFuLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLmJsb2NrLXRpdGxlPnNwYW4sXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1mb3JtIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1mb3JtIC5ibG9jay10aXRsZT5zcGFuLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuYmxvY2stdGl0bGU+c3Ryb25nLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuYmxvY2stdGl0bGU+c3BhbixcXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAudGl0bGU+c3Ryb25nLFxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC50aXRsZT5zcGFuLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLXRpdGxlPnNwYW4sXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5ibG9jay10aXRsZT5zcGFuLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPnNwYW4sXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPnN0cm9uZyxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU+c3BhbixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU+c3Ryb25nLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZT5zcGFuLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPnNwYW4ge1xcbiAgICBmb250LXNpemU6IDIuMnJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgYWRkcmVzcyxcXG4uYm94LWJpbGxpbmctYWRkcmVzcyAuYm94LWNvbnRlbnQsXFxuLmJveC1zaGlwcGluZy1hZGRyZXNzIC5ib3gtY29udGVudCxcXG4uYm94LWFkZHJlc3MtYmlsbGluZyAuYm94LWNvbnRlbnQsXFxuLmJveC1hZGRyZXNzLXNoaXBwaW5nIC5ib3gtY29udGVudCxcXG4uYm94LWluZm9ybWF0aW9uIC5ib3gtY29udGVudCxcXG4uYm94LW5ld3NsZXR0ZXIgLmJveC1jb250ZW50IHtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgdGZvb3QgdGQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1XFxufVxcblxcbi5wYXlwYWwtcmV2aWV3IC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5wYXlwYWwtcmV2aWV3IC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnN1YnRvdGFsIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICBjb2xvcjogIzY2NjtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBsaW5lLWhlaWdodDogMTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggLnByaWNlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wubXNycCAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5zdWJ0b3RhbCAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5zdWJ0b3RhbCAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZHNldC1idW5kbGUtb3B0aW9ucyAuZmllbGQuY2hvaWNlIC5wcmljZS1ub3RpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LWJ1bmRsZS1vcHRpb25zIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5wcmljZS1ub3RpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAucHJpY2Utbm90aWNlIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5jYXJ0LXN1bW1hcnkgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmNhcnQtc3VtbWFyeSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uZ2lmdC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5naWZ0LXN1bW1hcnkgLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLmdpZnQtb3B0aW9ucyAucHJpY2UtaW5jbHVkaW5nLXRheCxcXG4uZ2lmdC1vcHRpb25zIC5wcmljZS1leGNsdWRpbmctdGF4IHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGRzZXQtYnVuZGxlLW9wdGlvbnMgLmZpZWxkLmNob2ljZSAucHJpY2Utbm90aWNlIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uY2FydC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5naWZ0LXN1bW1hcnkgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLmdpZnQtb3B0aW9ucyAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCB7XFxuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LWJ1bmRsZS1vcHRpb25zIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDpiZWZvcmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAucHJpY2Utbm90aWNlIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4uY2FydC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4uZ2lmdC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4uZ2lmdC1vcHRpb25zIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICcoJyBhdHRyKGRhdGEtbGFiZWwpICc6ICdcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LWJ1bmRsZS1vcHRpb25zIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDphZnRlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5wcmljZS1ub3RpY2UgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXg6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDphZnRlcixcXG4uZ2lmdC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmFmdGVyLFxcbi5naWZ0LW9wdGlvbnMgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXg6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnKSdcXG59XFxuXFxuLnByaWNlLWluY2x1ZGluZy10YXggLmNhcnQtdGF4LXRvdGFsLFxcbi5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbCxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY2FydC10YXgtdG90YWwsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY2FydC10YXgtdG90YWwsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNhcnQtdGF4LXRvdGFsIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtdGF4LXRvdGFsOmFmdGVyLFxcbi5wcmljZS1pbmNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbDphZnRlcixcXG4ucHJpY2UtZXhjbHVkaW5nLXRheCAuY2FydC10YXgtdG90YWw6YWZ0ZXIsXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNhcnQtdGF4LXRvdGFsOmFmdGVyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNhcnQtdGF4LXRvdGFsOmFmdGVyLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jYXJ0LXRheC10b3RhbDphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDhweDtcXG4gICAgbGluZS1oZWlnaHQ6IDhweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogM3B4IDAgMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnByaWNlLWluY2x1ZGluZy10YXggLmNhcnQtdGF4LXRvdGFsOmFmdGVyLFxcbi5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbDphZnRlcixcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY2FydC10YXgtdG90YWw6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY2FydC10YXgtdG90YWw6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNhcnQtdGF4LXRvdGFsOmFmdGVyIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogLTJweDtcXG4gICAgdG9wOiA0cHhcXG59XFxuXFxuLmFicy10YXgtdG90YWwtZXhwYW5kZWQ6YWZ0ZXIsXFxuLnByaWNlLWluY2x1ZGluZy10YXggLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkOmFmdGVyLFxcbi5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbC1leHBhbmRlZDphZnRlcixcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY2FydC10YXgtdG90YWwtZXhwYW5kZWQ6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY2FydC10YXgtdG90YWwtZXhwYW5kZWQ6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4uZ2lmdGNhcmQtYWNjb3VudCAuZm9ybS1naWZ0Y2FyZC1yZWRlZW0gLmZpZWxkc2V0LFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1jcmVhdGUgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3MgLnJhdGluZy1zdW1tYXJ5LFxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIC5yYXRpbmctc3VtbWFyeSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvd1xcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3MgLnJhdGluZy1sYWJlbCxcXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAuY3VzdG9tZXItcmV2aWV3LXJhdGluZyAucmF0aW5nLWxhYmVsIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcXG4gICAgcGFkZGluZy10b3A6IDFweDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3MgLnJhdGluZy1yZXN1bHQsXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcgLnJhdGluZy1yZXN1bHQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzIC5pdGVtLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG4uYWNjb3VudCAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG4uYmxvY2sgLmJveC1hY3Rpb25zIC5hY3Rpb246YWZ0ZXIge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNhNmE2YTY7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGhlaWdodDogMTJweDtcXG4gICAgbWFyZ2luOiAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiAtMXB4XFxufVxcblxcbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzIC5pdGVtLmFjdGlvbnMgLmFjdGlvbjpsYXN0LWNoaWxkOmFmdGVyLFxcbi5hY2NvdW50IC5kYXRhLnRhYmxlIC5jb2wuYWN0aW9ucyAuYWN0aW9uOmxhc3QtY2hpbGQ6YWZ0ZXIsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmRhdGEudGFibGUgLmNvbC5hY3Rpb25zIC5hY3Rpb246bGFzdC1jaGlsZDphZnRlcixcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjpsYXN0LWNoaWxkOmFmdGVyLFxcbi5ibG9jayAuYm94LWFjdGlvbnMgLmFjdGlvbjpsYXN0LWNoaWxkOmFmdGVyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYmxvY2stdGl0bGU+LmFjdGlvbixcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24ge1xcbiAgICBtYXJnaW4tbGVmdDogMTVweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LXRpdGxlLFxcbi5wYXlwYWwtcmV2aWV3IC5ibG9jayAuYm94LXRpdGxlLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGUsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZSxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYm94LXRpdGxlLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDEwcHhcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJveC10aXRsZT5zcGFuLFxcbi5wYXlwYWwtcmV2aWV3IC5ibG9jayAuYm94LXRpdGxlPnNwYW4sXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT5zcGFuLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGU+c3BhbixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYm94LXRpdGxlPnNwYW4sXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT5zcGFuIHtcXG4gICAgZm9udC1zaXplOiAxLjZyZW1cXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJveC10aXRsZT4uYWN0aW9uLFxcbi5wYXlwYWwtcmV2aWV3IC5ibG9jayAuYm94LXRpdGxlPi5hY3Rpb24sXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT4uYWN0aW9uLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGU+LmFjdGlvbixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYm94LXRpdGxlPi5hY3Rpb24sXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT4uYWN0aW9uIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHhcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5zdWJ0b3RhbCAubGFiZWw6YWZ0ZXIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5kZXRhaWxzLXF0eSAubGFiZWw6YWZ0ZXIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcmljZS1taW5pY2FydCAubGFiZWw6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAubGFiZWw6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlIC5sYWJlbDphZnRlcixcXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lLWxhYmVsOmFmdGVyIHtcXG4gICAgY29udGVudDogJzogJ1xcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLWl0ZW1zLW5ldyAuYWN0aW9uLm5ldyxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24ubmV3LFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLm5ldyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtaWNvbi1hZGQ6YmVmb3JlLFxcbi5hYnMtZHJvcGRvd24taXRlbXMtbmV3IC5hY3Rpb24ubmV3OmJlZm9yZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24ubmV3OmJlZm9yZSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gLmFjdGlvbi5uZXc6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUMnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXMgLml0ZW06bGFzdC1jaGlsZDpob3ZlcixcXG4ud2lzaGxpc3QtZHJvcGRvd24gLml0ZW1zIC5pdGVtOmxhc3QtY2hpbGQ6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4XFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi5uZXc6YmVmb3JlLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLm5ldzpiZWZvcmUge1xcbiAgICBtYXJnaW4tbGVmdDogLTE3cHg7XFxuICAgIG1hcmdpbi1yaWdodDogNXB4XFxufVxcblxcbi5hYnMtc2lkZWJhci10b3RhbHMgLnRhYmxlLWNhcHRpb24sXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrIC5tZXRob2RzLXNoaXBwaW5nIC5pdGVtLWNvbnRlbnQgLmZpZWxkc2V0Pi5sZWdlbmQrYnIsXFxuLm11bHRpY2hlY2tvdXQgLmhpZGRlbixcXG5bY2xhc3NePSdtdWx0aXNoaXBwaW5nLSddIC5uYXYtc2VjdGlvbnMsXFxuW2NsYXNzXj0nbXVsdGlzaGlwcGluZy0nXSAubmF2LXRvZ2dsZSxcXG4uc2lkZWJhciAuc3VidGl0bGUsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmZpZWxkc2V0LmVzdGltYXRlPi5sZWdlbmQsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmZpZWxkc2V0LmVzdGltYXRlPi5sZWdlbmQrYnIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyAud2VlZVtkYXRhLWxhYmVsXSAubGFiZWwsXFxuLnBhZ2UtcHJvZHVjdC1naWZ0Y2FyZCAuZmllbGRzZXQuZ2lmdGNhcmQ+LmxlZ2VuZCticixcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAuYWN0aW9uLmNsb3NlLFxcbi5uby1kaXNwbGF5LFxcbi5jYXJ0LXRvdGFscyAudGFibGUtY2FwdGlvbixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudGFibGUtY2FwdGlvbiB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnJldHVybi1zdGF0dXMsXFxuLm9yZGVyLXN0YXR1cyB7XFxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW46IDNweCAwIDA7XFxuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5tYWdlbnRvLXJtYS1yZXR1cm5zLXJldHVybnMgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbi5tYWdlbnRvLXJtYS1yZXR1cm5zLXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4uYWNjb3VudCAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHhcXG59XFxuXFxuLm1hZ2VudG8tcm1hLXJldHVybnMtcmV0dXJucyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUsXFxuLm1hZ2VudG8tcm1hLXJldHVybnMtdmlldyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlLFxcbi5hY2NvdW50IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSB7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ubWFnZW50by1ybWEtcmV0dXJucy1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSAubGFiZWwsXFxuLm1hZ2VudG8tcm1hLXJldHVybnMtdmlldyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUgLmxhYmVsLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSAubGFiZWwsXFxuLmFjY291bnQgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlIC5sYWJlbCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUgLmxhYmVsLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSAubGFiZWwsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlIC5sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZSxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUge1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLmFicy10YWJsZS1zdHJpcGVkPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50ZCxcXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRoLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGQsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50aCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRkLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGgsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50ZCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRoLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGQsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50aCxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLXJlc3VsdHMgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRkLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGgsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50ZCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRoIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNlxcbn1cXG5cXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGhlYWQ+dHI+dGgsXFxuLmFicy10YWJsZS1zdHJpcGVkPnRib2R5PnRyPnRoLFxcbi5hYnMtdGFibGUtc3RyaXBlZD50Zm9vdD50cj50aCxcXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGhlYWQ+dHI+dGQsXFxuLmFicy10YWJsZS1zdHJpcGVkPnRib2R5PnRyPnRkLFxcbi5hYnMtdGFibGUtc3RyaXBlZD50Zm9vdD50cj50ZCxcXG4uYWNjb3VudCAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uYWNjb3VudCAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCB7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGhlYWQ+dHI+dGgsXFxuLmFicy10YWJsZS1zdHJpcGVkPnRoZWFkPnRyPnRkLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50aGVhZD50cj50aCxcXG4uYWNjb3VudCAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRoLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50aGVhZD50cj50ZCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRkLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50aGVhZD50cj50aCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1yZXN1bHRzIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRoLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50aGVhZD50cj50ZCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRkIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmJsb2NrLWNvbXBhcmUgLmNvdW50ZXIsXFxuLmJsb2NrLXdpc2hsaXN0IC5jb3VudGVyIHtcXG4gICAgY29sb3I6ICM2ZDZkNmQ7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5jb3VudGVyOmJlZm9yZSxcXG4uYmxvY2std2lzaGxpc3QgLmNvdW50ZXI6YmVmb3JlIHtcXG4gICAgY29udGVudDogJygnXFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5jb3VudGVyOmFmdGVyLFxcbi5ibG9jay13aXNobGlzdCAuY291bnRlcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcpJ1xcbn1cXG5cXG4uYmxvY2stY29tcGFyZSAuYmxvY2stdGl0bGUsXFxuLmJsb2NrLXJlb3JkZXIgLmJsb2NrLXRpdGxlLFxcbi53aWRnZXQgLmJsb2NrLXRpdGxlLFxcbi5ibG9jay13aXNobGlzdCAuYmxvY2stdGl0bGUge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5ibG9jay10aXRsZSBzdHJvbmcsXFxuLmJsb2NrLXJlb3JkZXIgLmJsb2NrLXRpdGxlIHN0cm9uZyxcXG4ud2lkZ2V0IC5ibG9jay10aXRsZSBzdHJvbmcsXFxuLmJsb2NrLXdpc2hsaXN0IC5ibG9jay10aXRsZSBzdHJvbmcge1xcbiAgICBmb250LXNpemU6IDE4cHg7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLWNhcnQtZmFpbGVkLFxcbi5jYXJ0LWNvbnRhaW5lciAuZm9ybS1jYXJ0IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYmxvY2stY2FydC1mYWlsZWQgLmFjdGlvbnMubWFpbiAuY29udGludWUsXFxuLmJsb2NrLWNhcnQtZmFpbGVkIC5hY3Rpb25zLm1haW4gLmNsZWFyLFxcbi5jYXJ0LWNvbnRhaW5lciAuZm9ybS1jYXJ0IC5hY3Rpb25zLm1haW4gLmNvbnRpbnVlLFxcbi5jYXJ0LWNvbnRhaW5lciAuZm9ybS1jYXJ0IC5hY3Rpb25zLm1haW4gLmNsZWFyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQuZGF0ZSAuY29udHJvbCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGQuZGF0ZSAuY29udHJvbCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uYWJzLWZpZWxkLWRhdGUgaW5wdXQsXFxuLmZpZWxkLmRhdGUgLl9oYXMtZGF0ZXBpY2tlcixcXG4uZmllbGQtZG9iIC5faGFzLWRhdGVwaWNrZXIsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCAuZmllbGRzLXNwZWNpZmljLW9wdGlvbnMgLmRhdGV0aW1lLXBpY2tlcixcXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQuZGF0ZSBpbnB1dCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGQuZGF0ZSBpbnB1dCB7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMzcHgpXFxufVxcblxcbi5maWVsZCAuY29udHJvbC5fd2l0aC10b29sdGlwIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5maWVsZCAuY29udHJvbC5fd2l0aC10b29sdGlwIGlucHV0IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzZweClcXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50LFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcXG4gICAgcmlnaHQ6IC0xMHB4O1xcbiAgICB0b3A6IDQwcHg7XFxuICAgIGxlZnQ6IGF1dG9cXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIsXFxuLnNoaXBwaW5nLXBvbGljeS1ibG9jay5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcXG4gICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHdpZHRoOiAwO1xcbiAgICBtYXJnaW4tdG9wOiAtMjFweDtcXG4gICAgcmlnaHQ6IDEwcHg7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHRvcDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICM2NjZcXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyLFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2Y0ZjRmNDtcXG4gICAgdG9wOiAxcHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zdGVwLXRpdGxlLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlLFxcbi5vcGMtYmxvY2stc3VtbWFyeT4udGl0bGUsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtaXRlbXMgLmNoZWNrb3V0LWFncmVlbWVudHMtaXRlbS10aXRsZSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgZm9udC1zaXplOiAyLjZyZW1cXG59XFxuXFxuLmNhcnQtdG90YWxzLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmctdG9wOiAxMHB4XFxufVxcblxcbi5jYXJ0LXRvdGFscyB0Ym9keSAubWFyayxcXG4uY2FydC10b3RhbHMgdGZvb3QgLm1hcmssXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGJvZHkgLm1hcmssXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGZvb3QgLm1hcmsge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIHBhZGRpbmc6IDZweCAwXFxufVxcblxcbi5jYXJ0LXRvdGFscyB0Ym9keSAuYW1vdW50LFxcbi5jYXJ0LXRvdGFscyB0Zm9vdCAuYW1vdW50LFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIHRib2R5IC5hbW91bnQsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGZvb3QgLmFtb3VudCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgcGFkZGluZzogNnB4IDAgNnB4IDE0cHg7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi5jYXJ0LXRvdGFscyAuZ3JhbmQgdGgsXFxuLmNhcnQtdG90YWxzIC5ncmFuZCB0ZCxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAuZ3JhbmQgdGgsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgLmdyYW5kIHRkIHtcXG4gICAgcGFkZGluZzogMTFweCAwXFxufVxcblxcbi5jYXJ0LXRvdGFscyAuZ3JhbmQgc3Ryb25nLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC5ncmFuZCBzdHJvbmcge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIHBhZGRpbmc6IDNweCAwIDBcXG59XFxuXFxuLmNhcnQtdG90YWxzIC5ncmFuZCAubWFyayxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAuZ3JhbmQgLm1hcmsge1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHhcXG59XFxuXFxuLmNhcnQtdG90YWxzIC5ncmFuZCAuYW1vdW50LFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC5ncmFuZCAuYW1vdW50IHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjXFxufVxcblxcbi5jYXJ0LXRvdGFscyAubXNycCxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAubXNycCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLmNhcnQtdG90YWxzIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxOXB4XFxufVxcblxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5tYXJrLFxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAubWFyayxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZSxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQgLnByaWNlIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLXNpZGViYXItdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkgLmFtb3VudCAucHJpY2U+c3BhbixcXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZT5zcGFuLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkgLmFtb3VudCAucHJpY2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5hYnMtc2lkZWJhci10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZTphZnRlcixcXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZTphZnRlcixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQgLnByaWNlOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEycHg7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmNhcnQtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkgLmFtb3VudCAucHJpY2U6YWZ0ZXIsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDNweDtcXG4gICAgdG9wOiAzcHhcXG59XFxuXFxuLmNhcnQtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLm1hcmssXFxuLmNhcnQtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLmFtb3VudCxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5LmV4cGFuZGVkIC5tYXJrLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLmFtb3VudCB7XFxuICAgIGJvcmRlci1ib3R0b206IDBcXG59XFxuXFxuLmFicy1zaWRlYmFyLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5LmV4cGFuZGVkIC5hbW91bnQgLnByaWNlOmFmdGVyLFxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5LmV4cGFuZGVkIC5hbW91bnQgLnByaWNlOmFmdGVyLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLmFtb3VudCAucHJpY2U6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxufVxcblxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1kZXRhaWxzLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LWRldGFpbHMge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtZGV0YWlscy5zaG93bixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1kZXRhaWxzLnNob3duIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93XFxufVxcblxcbi5jYXJ0LXRvdGFscyAudGFibGUtd3JhcHBlcixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrPi50aXRsZSBzdHJvbmcsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZSBzdHJvbmcge1xcbiAgICBjb2xvcjogIzE5NzljMztcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aWR0aDogMSVcXG59XFxuXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcXG4gICAgbWFyZ2luOiAwIDAgMCAtMXB4O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5zZWNvbmRhcnksXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IHtcXG4gICAgYm90dG9tOiA1cHg7XFxuICAgIGxlZnQ6IDE1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxcbn1cXG5cXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9uLmNoZWNrLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2sge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5maWVsZHNldCxcXG4uY2FydC1kaXNjb3VudCAuZmllbGRzZXQge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmZpZWxkc2V0Pi5maWVsZD4ubGFiZWwsXFxuLmNhcnQtZGlzY291bnQgLmZpZWxkc2V0Pi5maWVsZD4ubGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5maWVsZCxcXG4uY2FydC1kaXNjb3VudCAuZmllbGQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsXFxufVxcblxcbkBmb250LWZhY2Uge1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XFxuICAgIHNyYzogdXJsKFwiICsgcmVxdWlyZShcIi4uL2ZvbnRzL29wZW5zYW5zL2xpZ2h0L29wZW5zYW5zLTMwMC53b2ZmMlwiKSArIFwiKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxcbn1cXG5cXG5AZm9udC1mYWNlIHtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xcbiAgICBzcmM6IHVybChcIiArIHJlcXVpcmUoXCIuLi9mb250cy9vcGVuc2Fucy9yZWd1bGFyL29wZW5zYW5zLTQwMC53b2ZmMlwiKSArIFwiKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxcbn1cXG5cXG5AZm9udC1mYWNlIHtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xcbiAgICBzcmM6IHVybChcIiArIHJlcXVpcmUoXCIuLi9mb250cy9vcGVuc2Fucy9zZW1pYm9sZC9vcGVuc2Fucy02MDAud29mZjJcIikgKyBcIikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuQGZvbnQtZmFjZSB7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJztcXG4gICAgc3JjOiB1cmwoXCIgKyByZXF1aXJlKFwiLi4vZm9udHMvb3BlbnNhbnMvYm9sZC9vcGVuc2Fucy03MDAud29mZjJcIikgKyBcIikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuLml0ZW1zIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBsaXN0LXN0eWxlOiBub25lIG5vbmVcXG59XFxuXFxuLmNvbHVtbnMge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcXG4gICAgZmxleC13cmFwOiB3cmFwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbi5jb2x1bW5zOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIGNvbnRlbnQ6ICcgJztcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGhlaWdodDogMDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuXFxufVxcblxcbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XFxuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIGZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xcbiAgICBmbGV4LWdyb3c6IDE7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgICAtd2Via2l0LW9yZGVyOiAxO1xcbiAgICBvcmRlcjogMTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmNvbHVtbnMgLnNpZGViYXItbWFpbiB7XFxuICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xcbiAgICBmbGV4LWdyb3c6IDE7XFxuICAgIC13ZWJraXQtZmxleC1iYXNpczogMTAwJTtcXG4gICAgZmxleC1iYXNpczogMTAwJTtcXG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICAgIC13ZWJraXQtb3JkZXI6IDE7XFxuICAgIG9yZGVyOiAxXFxufVxcblxcbi5jb2x1bW5zIC5zaWRlYmFyLWFkZGl0aW9uYWwge1xcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcXG4gICAgZmxleC1ncm93OiAxO1xcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIGZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xcbiAgICAtd2Via2l0LW9yZGVyOiAyO1xcbiAgICBvcmRlcjogMlxcbn1cXG5cXG4udGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxudGFibGU+Y2FwdGlvbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi50YWJsZSB0Zm9vdCB7XFxuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjVcXG59XFxuXFxuLnRhYmxlIHRmb290PnRyOmZpcnN0LWNoaWxkIHRoLFxcbi50YWJsZSB0Zm9vdD50cjpmaXJzdC1jaGlsZCB0ZCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4udGFibGUgdGZvb3QgdGgsXFxuLnRhYmxlIHRmb290IHRkIHtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbi50YWJsZSB0Zm9vdCAubWFyayB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0XFxufVxcblxcbi5tZXNzYWdlLmluZm8ge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggMTJweCAyNXB4O1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxLjNyZW07XFxuICAgIGJhY2tncm91bmQ6ICNmZGYwZDU7XFxuICAgIGNvbG9yOiAjNmY0NDAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubWVzc2FnZS5pbmZvIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5pbmZvIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5pbmZvIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1lc3NhZ2UuaW5mbz4qOmZpcnN0LWNoaWxkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgICBjb2xvcjogI2MwNzYwMDtcXG4gICAgY29udGVudDogJ1xcXFxFNjAyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAtMTJweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHRvcDogMjJweDtcXG4gICAgd2lkdGg6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tZXNzYWdlLmVycm9yIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcXG4gICAgcGFkZGluZzogMTJweCAyMHB4IDEycHggMjVweDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xcbiAgICBiYWNrZ3JvdW5kOiAjZmFlNWU1O1xcbiAgICBjb2xvcjogI2UwMmIyNztcXG4gICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLm1lc3NhZ2UuZXJyb3IgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmVycm9yIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5lcnJvciBhOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmVycm9yPio6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICAgIGNvbG9yOiAjYjMwMDAwO1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUYnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IC0xMnB4IDAgMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgbGVmdDogMDtcXG4gICAgdG9wOiAyMnB4O1xcbiAgICB3aWR0aDogNDVweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1lc3NhZ2Uud2FybmluZyB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHBhZGRpbmc6IDEycHggMjBweCAxMnB4IDI1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuM3JlbTtcXG4gICAgYmFja2dyb3VuZDogI2ZkZjBkNTtcXG4gICAgY29sb3I6ICM2ZjQ0MDA7XFxuICAgIHBhZGRpbmctbGVmdDogNDVweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5tZXNzYWdlLndhcm5pbmcgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLndhcm5pbmcgYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLndhcm5pbmcgYTphY3RpdmUge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS53YXJuaW5nPio6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICAgIGNvbG9yOiAjYzA3NjAwO1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IC0xMnB4IDAgMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgbGVmdDogMDtcXG4gICAgdG9wOiAyMnB4O1xcbiAgICB3aWR0aDogNDVweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1lc3NhZ2Uubm90aWNlIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcXG4gICAgcGFkZGluZzogMTJweCAyMHB4IDEycHggMjVweDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xcbiAgICBiYWNrZ3JvdW5kOiAjZmRmMGQ1O1xcbiAgICBjb2xvcjogIzZmNDQwMDtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLm1lc3NhZ2Uubm90aWNlIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5ub3RpY2UgYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLm5vdGljZSBhOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLm5vdGljZT4qOmZpcnN0LWNoaWxkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgICBjb2xvcjogI2MwNzYwMDtcXG4gICAgY29udGVudDogJ1xcXFxFNjAyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAtMTJweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHRvcDogMjJweDtcXG4gICAgd2lkdGg6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tZXNzYWdlLnN1Y2Nlc3Mge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggMTJweCAyNXB4O1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxLjNyZW07XFxuICAgIGJhY2tncm91bmQ6ICNlNWVmZTU7XFxuICAgIGNvbG9yOiAjMDA2NDAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubWVzc2FnZS5zdWNjZXNzIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5zdWNjZXNzIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5zdWNjZXNzIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1lc3NhZ2Uuc3VjY2Vzcz4qOmZpcnN0LWNoaWxkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgICBjb2xvcjogIzAwNjQwMDtcXG4gICAgY29udGVudDogJ1xcXFxFNjBFJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAtMTJweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHRvcDogMjJweDtcXG4gICAgd2lkdGg6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYW5lbC5oZWFkZXIgLmxpbmtzLFxcbi5wYW5lbC5oZWFkZXIgLnN3aXRjaGVyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubmF2LXNlY3Rpb25zIHtcXG4gICAgYmFja2dyb3VuZDogI2YwZjBmMFxcbn1cXG5cXG4ubmF2LXRvZ2dsZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIGxlZnQ6IDE1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxNXB4O1xcbiAgICB6LWluZGV4OiAxNFxcbn1cXG5cXG4ubmF2LXRvZ2dsZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyOHB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwOSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubmF2LXRvZ2dsZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4ubmF2LXRvZ2dsZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xcbiAgICBtaW4td2lkdGg6IDIxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNXB4O1xcbiAgICBsZWZ0OiAwO1xcbiAgICB0b3A6IDEwMCVcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50OmFmdGVyLFxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAwXFxufVxcblxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudDphZnRlciB7XFxuICAgIGJvcmRlci13aWR0aDogNXB4O1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50XFxufVxcblxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXItd2lkdGg6IDZweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQ6YWZ0ZXIsXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvdHRvbTogMTAwJVxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xcbiAgICBsZWZ0OiAxNXB4O1xcbiAgICBtYXJnaW4tbGVmdDogLTVweFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQ6YmVmb3JlIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2JiYjtcXG4gICAgbGVmdDogMTVweDtcXG4gICAgbWFyZ2luLWxlZnQ6IC02cHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciB0b29sdGlwLnRvZ2dsZSB7XFxuICAgIGN1cnNvcjogaGVscFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIHRvb2x0aXAudG9nZ2xlOmhvdmVyKy50b29sdGlwLmNvbnRlbnQsXFxuLnRvb2x0aXAud3JhcHBlciB0b29sdGlwLnRvZ2dsZTpmb2N1cysudG9vbHRpcC5jb250ZW50LFxcbi50b29sdGlwLndyYXBwZXI6aG92ZXIgLnRvb2x0aXAuY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudCBkbCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IGRkIHtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQgLnN1YnRpdGxlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IDE2cHg7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDE1cHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IC5sYWJlbCB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IC5sYWJlbDpmaXJzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi10b3A6IDBcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IC52YWx1ZXMge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnVpLXRvb2x0aXAge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHotaW5kZXg6IDk5OTlcXG59XFxuXFxuLmxvYWQuaW5kaWNhdG9yIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xcbiAgICB6LWluZGV4OiA5OTk5O1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlXFxufVxcblxcbi5sb2FkLmluZGljYXRvcjpiZWZvcmUge1xcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICAgIGhlaWdodDogMTYwcHg7XFxuICAgIHdpZHRoOiAxNjBweDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgbGVmdDogMDtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDBcXG59XFxuXFxuLmxvYWQuaW5kaWNhdG9yPnNwYW4ge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5sb2FkaW5nLW1hc2sge1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIG1hcmdpbjogYXV0bztcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwO1xcbiAgICB6LWluZGV4OiAxMDA7XFxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KVxcbn1cXG5cXG4ubG9hZGluZy1tYXNrIC5sb2FkZXI+aW1nIHtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgei1pbmRleDogMTAwXFxufVxcblxcbi5sb2FkaW5nLW1hc2sgLmxvYWRlcj5wIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG5ib2R5Pi5sb2FkaW5nLW1hc2sge1xcbiAgICB6LWluZGV4OiA5OTk5XFxufVxcblxcbi5fYmxvY2stY29udGVudC1sb2FkaW5nIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5maWVsZHNldCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgbWFyZ2luOiAwIDAgNDBweDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0uMzFlbVxcbn1cXG5cXG4uZmllbGRzZXQ+KiB7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWxcXG59XFxuXFxuLmZpZWxkc2V0Pi5sZWdlbmQge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xcbiAgICBwYWRkaW5nOiAwIDAgMTBweDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4yO1xcbiAgICBmb250LXNpemU6IDEuOHJlbVxcbn1cXG5cXG4uZmllbGRzZXQ+LmxlZ2VuZCticiB7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW5cXG59XFxuXFxuLmZpZWxkc2V0Omxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkPi5sYWJlbCxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQ+LmxhYmVsIHtcXG4gICAgbWFyZ2luOiAwIDAgOHB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZDpsYXN0LWNoaWxkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZDpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkPi5sYWJlbCxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQ+LmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkPi5sYWJlbCticixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQ+LmxhYmVsK2JyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5jaG9pY2UgaW5wdXQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5jaG9pY2UgaW5wdXQge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cDpiZWZvcmUsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXA6YmVmb3JlLFxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cDphZnRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmZpZWxkcy5ncm91cDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXA6YWZ0ZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXA6YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXAgLmZpZWxkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuZmllbGRzLmdyb3VwIC5maWVsZCB7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cC5ncm91cC0yIC5maWVsZCxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmZpZWxkcy5ncm91cC5ncm91cC0yIC5maWVsZCB7XFxuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtMyAuZmllbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtMyAuZmllbGQge1xcbiAgICB3aWR0aDogMzMuMyUgIWltcG9ydGFudFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtNCAuZmllbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtNCAuZmllbGQge1xcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnRcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuZmllbGRzLmdyb3VwLmdyb3VwLTUgLmZpZWxkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuZmllbGRzLmdyb3VwLmdyb3VwLTUgLmZpZWxkIHtcXG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50XFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmFkZG9uLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24ge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gdGV4dGFyZWEsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiB0ZXh0YXJlYSxcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiBzZWxlY3QsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiBzZWxlY3QsXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gaW5wdXQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiBpbnB1dCB7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xcbiAgICAtd2Via2l0LW9yZGVyOiAyO1xcbiAgICBvcmRlcjogMjtcXG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlO1xcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZSxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmFkZG9uIC5hZGRiZWZvcmUsXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gLmFkZGFmdGVyLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGFmdGVyIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MyYzJjMjtcXG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgcGFkZGluZzogMCA5cHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAzO1xcbiAgICAtd2Via2l0LW9yZGVyOiAzO1xcbiAgICBvcmRlcjogMztcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOmRpc2FibGVkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZTpkaXNhYmxlZCxcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6ZGlzYWJsZWQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOjotbW96LXBsYWNlaG9sZGVyLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZTo6LW1vei1wbGFjZWhvbGRlcixcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi1tb3otcGxhY2Vob2xkZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgICBjb2xvcjogIzU3NTc1N1xcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgICBjb2xvcjogIzU3NTc1N1xcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmFkZG9uIC5hZGRiZWZvcmU6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbi5maWVsZHNldD4uZmllbGQgLmFkZG9uIC5hZGRhZnRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZSxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmFkZG9uIC5hZGRiZWZvcmUge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICAgIC13ZWJraXQtb3JkZXI6IDE7XFxuICAgIG9yZGVyOiAxXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmFkZGl0aW9uYWwsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRpdGlvbmFsIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkLnJlcXVpcmVkPi5sYWJlbDphZnRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQucmVxdWlyZWQ+LmxhYmVsOmFmdGVyLFxcbi5maWVsZHNldD4uZmllbGQuX3JlcXVpcmVkPi5sYWJlbDphZnRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQuX3JlcXVpcmVkPi5sYWJlbDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcqJztcXG4gICAgY29sb3I6ICNlMDJiMjc7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBtYXJnaW46IDAgMCAwIDVweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5ub3RlLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAubm90ZSB7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBtYXJnaW46IDNweCAwIDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLm5vdGU6YmVmb3JlLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAubm90ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICBsaW5lLWhlaWdodDogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQubm8tbGFiZWw+LmxhYmVsLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZC5uby1sYWJlbD4ubGFiZWwge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkLmNob2ljZSAubGFiZWwsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkLmNob2ljZSAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uY29sdW1uOm5vdCgubWFpbikgLmZpZWxkc2V0Pi5maWVsZCAubGFiZWwsXFxuLmNvbHVtbjpub3QoLm1haW4pIC5maWVsZHNldD4uZmllbGRzPi5maWVsZCAubGFiZWwge1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkLmNob2ljZSxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmZpZWxkLmNob2ljZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuZmllbGQuY2hvaWNlOmxhc3QtY2hpbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZC5jaG9pY2U6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmxlZ2VuZCsuZmllbGRzZXQsXFxuLmxlZ2VuZCtkaXYge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ubGVnZW5kPnNwYW4ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweFxcbn1cXG5cXG5maWVsZHNldC5maWVsZCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uZmllbGQuZGF0ZSAudGltZS1waWNrZXIge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi10b3A6IDEwcHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmZpZWxkIC5tZXNzYWdlLndhcm5pbmcge1xcbiAgICBtYXJnaW4tdG9wOiAxMHB4XFxufVxcblxcbnNlbGVjdCB7XFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIgKyByZXF1aXJlKFwiLi4vaW1hZ2VzL3NlbGVjdC1iZy5zdmdcIikgKyBcIikgbm8tcmVwZWF0IDEwMCUgNDUlO1xcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggNjBweDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xcbiAgICB0ZXh0LWluZGVudDogLjAxZW07XFxuICAgIHRleHQtb3ZlcmZsb3c6ICcnXFxufVxcblxcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmx0LWllMTAgc2VsZWN0IHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgcGFkZGluZy1yaWdodDogNHB4XFxufVxcblxcbi5maWVsZC1lcnJvcixcXG5kaXYubWFnZS1lcnJvcltnZW5lcmF0ZWRdIHtcXG4gICAgbWFyZ2luLXRvcDogN3B4XFxufVxcblxcbi5maWVsZC1lcnJvciB7XFxuICAgIGNvbG9yOiAjZTAyYjI3O1xcbiAgICBmb250LXNpemU6IDEuMnJlbVxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmZpZWxkIC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xcbiAgICBtaW4td2lkdGg6IDIxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50OmFmdGVyLFxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLmZpZWxkIC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBib3JkZXItd2lkdGg6IDVweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXItd2lkdGg6IDZweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDphZnRlcixcXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDpiZWZvcmUge1xcbiAgICByaWdodDogMTAwJVxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDphZnRlciB7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2ZmZjtcXG4gICAgbWFyZ2luLXRvcDogLTVweDtcXG4gICAgdG9wOiAxNXB4XFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogLTZweDtcXG4gICAgdG9wOiAxNXB4XFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC10b2dnbGUge1xcbiAgICBjdXJzb3I6IGhlbHBcXG59XFxuXFxuLmZpZWxkIC50b29sdGlwIC50b29sdGlwLXRvZ2dsZTpob3ZlcisudG9vbHRpcC1jb250ZW50LFxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC10b2dnbGU6Zm9jdXMrLnRvb2x0aXAtY29udGVudCxcXG4uZmllbGQgLnRvb2x0aXA6aG92ZXIgLnRvb2x0aXAtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50IHtcXG4gICAgbWluLXdpZHRoOiAyMDBweDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG5pbnB1dDpmb2N1c34udG9vbHRpcCAudG9vbHRpcC1jb250ZW50LFxcbnNlbGVjdDpmb2N1c34udG9vbHRpcCAudG9vbHRpcC1jb250ZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyIHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcjpmb2N1cyxcXG4uX2hhcy1kYXRlcGlja2Vyfi51aS1kYXRlcGlja2VyLXRyaWdnZXI6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcjpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uX2hhcy1kYXRlcGlja2Vyfi51aS1kYXRlcGlja2VyLXRyaWdnZXIuZGlzYWJsZWQsXFxuLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcj5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDIzcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xcbiAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgY29udGVudDogJ1xcXFxFNjEyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcjpmb2N1cyB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIG91dGxpbmU6IDBcXG59XFxuXFxuLnNpZGViYXIgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5zaWRlYmFyIC5maWVsZHNldD4uZmllbGQ6bm90KC5jaG9pY2UpOm5vdCg6bGFzdC1jaGlsZCksXFxuLnNpZGViYXIgLmZpZWxkc2V0IC5maWVsZHM+LmZpZWxkOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5zaWRlYmFyIC5maWVsZHNldD4uZmllbGQ6bm90KC5jaG9pY2UpIC5sYWJlbCxcXG4uc2lkZWJhciAuZmllbGRzZXQgLmZpZWxkcz4uZmllbGQgLmxhYmVsIHtcXG4gICAgbWFyZ2luOiAwIDAgNHB4O1xcbiAgICBwYWRkaW5nOiAwIDAgNXB4O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uc2lkZWJhciAuZmllbGRzZXQ+LmZpZWxkOm5vdCguY2hvaWNlKSAuY29udHJvbCxcXG4uc2lkZWJhciAuZmllbGRzZXQgLmZpZWxkcz4uZmllbGQgLmNvbnRyb2wge1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG5AZm9udC1mYWNlIHtcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgc3JjOiB1cmwoXCIgKyByZXF1aXJlKFwiLi4vZm9udHMvTHVtYS1JY29ucy53b2ZmMlwiKSArIFwiKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxcbn1cXG5cXG5idXR0b24sXFxuYS5hY3Rpb24ucHJpbWFyeSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweFxcbn1cXG5cXG5idXR0b246bm90KC5wcmltYXJ5KSB7XFxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAjZmZmLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG5idXR0b246bm90KC5wcmltYXJ5KTphY3RpdmUge1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjgpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG5ib2R5Om5vdCguX2tleWZvY3VzKSBidXR0b246Zm9jdXMge1xcbiAgICBib3gtc2hhZG93OiBub25lXFxufVxcblxcbmEuYWN0aW9uLnByaW1hcnkge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG5hLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbmEuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbmEuYWN0aW9uLnByaW1hcnk6Zm9jdXMge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFjdGlvbi5wcmltYXJ5IHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogIzE5NzljMztcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzE5NzljMztcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIHBhZGRpbmc6IDdweCAxNXB4O1xcbiAgICBmb250LXNpemU6IDEuNHJlbTtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4uYWN0aW9uLnByaW1hcnk6Zm9jdXMsXFxuLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6ICMwMDZiYjQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDZiYjQ7XFxuICAgIGNvbG9yOiAjZmZmXFxufVxcblxcbi5hY3Rpb24ucHJpbWFyeTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICMwMDZiYjQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDZiYjQ7XFxuICAgIGNvbG9yOiAjZmZmXFxufVxcblxcbi5hY3Rpb24ucHJpbWFyeS5kaXNhYmxlZCxcXG4uYWN0aW9uLnByaW1hcnlbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYWN0aW9uLnByaW1hcnkge1xcbiAgICBvcGFjaXR5OiAuNTtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4XFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUge1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZT4uc3dpdGNoIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50IHtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZsb2F0OiBub25lO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50OmJlZm9yZSxcXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLmNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgZGlzcGxheTogdGFibGVcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50OmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50LmFjdGl2ZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZT4uc3dpdGNoIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGhlaWdodDogNDBweDtcXG4gICAgcGFkZGluZzogMXB4IDEwcHggMXB4IDEwcHg7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgICBmb250LXNpemU6IDEuNHJlbTtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlPi5zd2l0Y2g6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZT4uc3dpdGNoOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlPi5zd2l0Y2g6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlOm5vdCguZGlzYWJsZWQpPi5zd2l0Y2g6YWN0aXZlLFxcbi5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUuYWN0aXZlPi5zd2l0Y2gsXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZS5hY3RpdmU+LnN3aXRjaDpmb2N1cyxcXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlLmFjdGl2ZT4uc3dpdGNoOmhvdmVyIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDFweFxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLmNvbnRlbnQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHggMTBweCAzMHB4XFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUgYSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUgYTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUgYTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDEwcHg7XFxuICAgIHRvcDogMXB4XFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUuYWN0aXZlIGE6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLnZhbHVlIHA6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcyAudGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ucGFnZXM+LmxhYmVsIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnBhZ2VzIC5pdGVtcyB7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5wYWdlcyAuaXRlbSB7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xcbiAgICBtYXJnaW46IDAgOHB4IDAgMDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5wYWdlcyAuaXRlbSAubGFiZWwge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcGFkZGluZzogMCA1cHg7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlOnZpc2l0ZWQge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmY1NTAxXFxufVxcblxcbi5wYWdlcyBzdHJvbmcucGFnZSB7XFxuICAgIGJhY2tncm91bmQ6ICNlNWU1ZTU7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBwYWRkaW5nOiAwIDVweFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbiB7XFxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbjp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb246aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZGVkZWRlO1xcbiAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uLm5leHQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5uZXh0OnZpc2l0ZWQ6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dD5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwOCc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uLm5leHQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ucHJldmlvdXMge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91czp2aXNpdGVkOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uLnByZXZpb3VzOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzdkN2Q3ZFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91cz5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ucHJldmlvdXM6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTcnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91czpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzdkN2Q3ZFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91czphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ge1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgI2ZmZiwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuMyk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgcGFkZGluZzogMCA4cHhcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ucHJldmlvdXMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5uZXh0IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweFxcbn1cXG5cXG4uYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5LFxcbi5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24sXFxuLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbjpsYXN0LWNoaWxkLFxcbi5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnk6bGFzdC1jaGlsZCxcXG4uYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnk6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIHtcXG4gICAgbWFyZ2luOiAwIDAgMTVweFxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgLml0ZW1zIHtcXG4gICAgZm9udC1zaXplOiAxLjJyZW07XFxuICAgIGNvbG9yOiAjNzA3MDcwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZVxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgLml0ZW1zPmxpIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5icmVhZGNydW1icyAuaXRlbSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5icmVhZGNydW1icyAuaXRlbTpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwOCc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMCAxMHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnVpLWRpYWxvZy5wb3B1cCAuYWN0aW9uLmNsb3NlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHdpZHRoOiA0MHB4O1xcbiAgICB6LWluZGV4OiAxMDAxO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29sb3I6ICM4YzhjOGM7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzczNzM3M1xcbn1cXG5cXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2U6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzM3MzczXFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpmb2N1cyxcXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2U6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2UuZGlzYWJsZWQsXFxuLnVpLWRpYWxvZy5wb3B1cCAuYWN0aW9uLmNsb3NlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLnVpLWRpYWxvZy5wb3B1cCAuYWN0aW9uLmNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ucG9wdXAtcG9pbnRlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTRweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5wb3B1cC1wb2ludGVyOmJlZm9yZSxcXG4ucG9wdXAtcG9pbnRlcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aWR0aDogMDtcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZFxcbn1cXG5cXG4ucG9wdXAtcG9pbnRlcjpiZWZvcmUge1xcbiAgICBsZWZ0OiAycHg7XFxuICAgIHRvcDogMnB4O1xcbiAgICBib3JkZXI6IHNvbGlkIDZweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OVxcbn1cXG5cXG4ucG9wdXAtcG9pbnRlcjphZnRlciB7XFxuICAgIGxlZnQ6IDFweDtcXG4gICAgdG9wOiAwcHg7XFxuICAgIGJvcmRlcjogc29saWQgN3B4O1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNhZWFlYWUgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk4XFxufVxcblxcbi5wcmljZS10aWVyX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5wcmljZS10aWVyX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5wcmljZS1leGNsdWRpbmctdGF4IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMVxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXFxuLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ud2VlZVtkYXRhLWxhYmVsXSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuOHJlbVxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDpiZWZvcmUsXFxuLndlZWVbZGF0YS1sYWJlbF06YmVmb3JlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSAnOiAnO1xcbiAgICBmb250LXNpemU6IDEuMXJlbVxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLndlZWVbZGF0YS1sYWJlbF0gLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjFyZW1cXG59XFxuXFxuYm9keS5faGFzLW1vZGFsIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4ubW9kYWxzLW92ZXJsYXkge1xcbiAgICB6LWluZGV4OiA4OTlcXG59XFxuXFxuLm1vZGFsLXNsaWRlLFxcbi5tb2RhbC1wb3B1cCB7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIC4zcywgb3BhY2l0eSAuM3MgZWFzZTtcXG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyAuM3MsIG9wYWNpdHkgLjNzIGVhc2VcXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9zaG93LFxcbi5tb2RhbC1wb3B1cC5fc2hvdyB7XFxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZVxcbn1cXG5cXG4ubW9kYWwtc2xpZGUuX3Nob3cgLm1vZGFsLWlubmVyLXdyYXAsXFxuLm1vZGFsLXBvcHVwLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMClcXG59XFxuXFxuLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwLFxcbi5tb2RhbC1wb3B1cCAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICBwb2ludGVyLWV2ZW50czogYXV0b1xcbn1cXG5cXG4ubW9kYWwtc2xpZGUge1xcbiAgICBsZWZ0OiA0NHB4O1xcbiAgICB6LWluZGV4OiA5MDBcXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKVxcbn1cXG5cXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4ubW9kYWwtc2xpZGUuX2lubmVyLXNjcm9sbCAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9pbm5lci1zY3JvbGwgLm1vZGFsLWhlYWRlcixcXG4ubW9kYWwtc2xpZGUuX2lubmVyLXNjcm9sbCAubW9kYWwtZm9vdGVyIHtcXG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6IDA7XFxuICAgIGZsZXgtZ3JvdzogMDtcXG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcXG4gICAgZmxleC1zaHJpbms6IDBcXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9pbm5lci1zY3JvbGwgLm1vZGFsLWNvbnRlbnQge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvXFxufVxcblxcbi5tb2RhbC1zbGlkZS5faW5uZXItc2Nyb2xsIC5tb2RhbC1mb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvXFxufVxcblxcbi5tb2RhbC1zbGlkZSAubW9kYWwtaGVhZGVyLFxcbi5tb2RhbC1zbGlkZSAubW9kYWwtY29udGVudCxcXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciB7XFxuICAgIHBhZGRpbmc6IDAgMi42cmVtIDIuNnJlbVxcbn1cXG5cXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWhlYWRlciB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyLjFyZW07XFxuICAgIHBhZGRpbmctdG9wOiAyLjFyZW1cXG59XFxuXFxuLm1vZGFsLXBvcHVwIHtcXG4gICAgei1pbmRleDogOTAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvXFxufVxcblxcbi5tb2RhbC1wb3B1cC5fc2hvdyAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMClcXG59XFxuXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgbWFyZ2luOiA1cmVtIGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMCUpO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMCUpO1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIC4ycyBlYXNlO1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2VcXG59XFxuXFxuLm1vZGFsLXBvcHVwLl9pbm5lci1zY3JvbGwge1xcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlXFxufVxcblxcbi5pZTExIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsLFxcbi5pZTEwIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsLFxcbi5pZTkgLm1vZGFsLXBvcHVwLl9pbm5lci1zY3JvbGwge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvXFxufVxcblxcbi5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgbWF4LWhlaWdodDogOTAlXFxufVxcblxcbi5pZTExIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1pbm5lci13cmFwLFxcbi5pZTEwIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1pbm5lci13cmFwLFxcbi5pZTkgLm1vZGFsLXBvcHVwLl9pbm5lci1zY3JvbGwgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICBtYXgtaGVpZ2h0OiBub25lXFxufVxcblxcbi5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1jb250ZW50IHtcXG4gICAgb3ZlcmZsb3cteTogYXV0b1xcbn1cXG5cXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlcixcXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWNvbnRlbnQsXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW1cXG59XFxuXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1oZWFkZXIsXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIge1xcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogMDtcXG4gICAgZmxleC1ncm93OiAwO1xcbiAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xcbiAgICBmbGV4LXNocmluazogMFxcbn1cXG5cXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlciB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtXFxufVxcblxcbi5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIHtcXG4gICAgbWFyZ2luLXRvcDogYXV0bztcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtXFxufVxcblxcbi5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyLWFjdGlvbnMge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodFxcbn1cXG5cXG4ubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2UsXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2UsXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2Uge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZTpmb2N1cyxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZTpmb2N1cyxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTpmb2N1cyxcXG4ubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2U6YWN0aXZlLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlOmFjdGl2ZSxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmhvdmVyLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlOmhvdmVyLFxcbi5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZS5kaXNhYmxlZCxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZS5kaXNhYmxlZCxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZS5kaXNhYmxlZCxcXG4ubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2VbZGlzYWJsZWRdLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlW2Rpc2FibGVkXSxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2UsXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZT5zcGFuLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlPnNwYW4sXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZTpiZWZvcmUsXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YmVmb3JlLFxcbi5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgY29udGVudDogJ1xcXFxFNjE2JztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmhvdmVyOmJlZm9yZSxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZTpob3ZlcjpiZWZvcmUsXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2U6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmFjdGl2ZTpiZWZvcmUsXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YWN0aXZlOmJlZm9yZSxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmhvdmVyOmJlZm9yZSxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZTpob3ZlcjpiZWZvcmUsXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2U6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMxYTFhMWFcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlIHtcXG4gICAgbWFyZ2luOiAyNXB4XFxufVxcblxcbi5tb2RhbC1wb3B1cCAubW9kYWwtdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgIGZvbnQtc2l6ZTogMjZweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgbWluLWhlaWdodDogMWVtO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2Uge1xcbiAgICBwYWRkaW5nOiAyMHB4XFxufVxcblxcbi5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHtcXG4gICAgcGFkZGluZzogMi4xcmVtIDNyZW1cXG59XFxuXFxuLm1vZGFsLXNsaWRlIC5wYWdlLW1haW4tYWN0aW9ucyB7XFxuICAgIG1hcmdpbi1ib3R0b206IC0xMi45cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAyLjFyZW1cXG59XFxuXFxuLm1vZGFscy1vdmVybGF5IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjU1KTtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDBcXG59XFxuXFxuYm9keS5faGFzLW1vZGFsLWN1c3RvbSAubW9kYWwtY3VzdG9tLW92ZXJsYXkge1xcbiAgICBoZWlnaHQ6IDEwMHZoO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMHZ3O1xcbiAgICB6LWluZGV4OiA4OTlcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzJjMmMyO1xcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBwYWRkaW5nOiAwIDlweDtcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB3aWR0aDogMjI1cHhcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2w6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbi5wYXltZW50LW1ldGhvZC1icmFpbnRyZWUgLmhvc3RlZC1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2w6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtZm9jdXNlZCB7XFxuICAgIGJvcmRlci1jb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtY29udHJvbC5icmFpbnRyZWUtaG9zdGVkLWZpZWxkcy1pbnZhbGlkOm5vdCguYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtZm9jdXNlZCkge1xcbiAgICBib3JkZXItY29sb3I6ICNlMDJiMjdcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtaW52YWxpZDpub3QoLmJyYWludHJlZS1ob3N0ZWQtZmllbGRzLWZvY3VzZWQpfi5ob3N0ZWQtZXJyb3Ige1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG9wYWNpdHk6IDFcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtdmFsaWQge1xcbiAgICBib3JkZXItY29sb3I6ICMwMDY0MDBcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuaG9zdGVkLWNpZCB7XFxuICAgIHdpZHRoOiA1cmVtXFxufVxcblxcbi5wYXltZW50LW1ldGhvZC1icmFpbnRyZWUgLmhvc3RlZC1jb250cm9sLmhvc3RlZC1kYXRlIHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDdweDtcXG4gICAgd2lkdGg6IDZyZW1cXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuaG9zdGVkLWRhdGU6Zmlyc3Qtb2YtdHlwZSB7XFxuICAgIG1hcmdpbi1yaWdodDogNTBweFxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtY29udHJvbC5ob3N0ZWQtZGF0ZTpmaXJzdC1vZi10eXBlOmFmdGVyIHtcXG4gICAgY29udGVudDogJy8nO1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIHBhZGRpbmctYm90dG9tOiBpbmhlcml0O1xcbiAgICBwYWRkaW5nLXRvcDogaW5oZXJpdDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogLTI1cHg7XFxuICAgIHRvcDogNXB4XFxufVxcblxcbi5wYXltZW50LW1ldGhvZC1icmFpbnRyZWUgLmZpZWxkLXRvb2x0aXAge1xcbiAgICByaWdodDogMFxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtZXJyb3Ige1xcbiAgICBjbGVhcjogYm90aDtcXG4gICAgY29sb3I6ICNlMDJiMjc7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIG1hcmdpbi10b3A6IDdweDtcXG4gICAgb3BhY2l0eTogMFxcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1sb2dvIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5icmFpbnRyZWUtcGF5cGFsLWFjY291bnQge1xcbiAgICBwYWRkaW5nOiAxNXB4IDAgMTVweCA1MHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1hY2NvdW50OmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogMDtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwO1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICB3aWR0aDogMTZweDtcXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1hY2NvdW50OmJlZm9yZSB7XFxuICAgIGxlZnQ6IDE3cHg7XFxuICAgIG1hcmdpbi10b3A6IC04cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiA1MCVcXG59XFxuXFxuLmJyYWludHJlZS1wYXlwYWwtYWNjb3VudCAucGF5bWVudC1tZXRob2QtdHlwZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmJyYWludHJlZS1wYXlwYWwtYWNjb3VudCAucGF5bWVudC1tZXRob2QtZGVzY3JpcHRpb24ge1xcbiAgICBjb2xvcjogIzU3NTc1N1xcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1maWVsZHNldCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvIHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvOmZvY3VzLFxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvOmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uYWN0aW9uLWJyYWludHJlZS1wYXlwYWwtbG9nbzpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uYWN0aW9uLWJyYWludHJlZS1wYXlwYWwtbG9nby5kaXNhYmxlZCxcXG4uYWN0aW9uLWJyYWludHJlZS1wYXlwYWwtbG9nb1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvIGltZyB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgd2lkdGg6IDExNHB4XFxufVxcblxcbi5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtY29udGVudCAuYWN0aW9ucy10b29sYmFyLmJyYWludHJlZS1wYXlwYWwtYWN0aW9ucyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwXFxufVxcblxcbi5hY2NvdW50IC50YWJsZSAuY29sLnBheXBhbC1hY2NvdW50IGltZyB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlIC5jb2wucGF5cGFsLWFjY291bnQrLmFjdGlvbnMge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCB7XFxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBwYWRkaW5nOiAxMHB4IDAgMTVweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudC5ibG9jazpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLmJsb2NrLXRpdGxlIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAudGlja2VyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBsaXN0LXN0eWxlOiBub25lIG5vbmVcXG59XFxuXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC50aWNrZXIgbGkge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBtYXJnaW46IDAgMTVweFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLnRpY2tlciAudmFsdWUge1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLnRpY2tlciAubGFiZWwge1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAuZGF0ZXMge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgbWFyZ2luOiAwIGF1dG9cXG59XFxuXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC5kYXRlcyAuc3RhcnQsXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC5kYXRlcyAuZW5kIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLmRhdGVzIC5kYXRlIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW1cXG59XFxuXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC5kYXRlcyAudGltZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAuZGF0ZXMgLnN0YXJ0IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAuZGF0ZXMgLnN0YXJ0OmFmdGVyIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGNvbnRlbnQ6ICdcXFxcMjAxMyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAxNXB4O1xcbiAgICB0b3A6IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLnRpdGxlIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAudGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAudGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5kZWxldGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLnRhYmxlLXdyYXBwZXIgLmNvbCAucXR5IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jb2wuaXRlbSAuYWN0aW9uLmVkaXQge1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBtYXJnaW4tbGVmdDogMTBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dDpub3QoLmFkZHJlc3MpIC50YWJsZS13cmFwcGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubXVsdGljaGVja291dD4uYWN0aW9ucy10b29sYmFyIHtcXG4gICAgbWFyZ2luLXRvcDogNDBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnkge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnkgLmFjdGlvbiB7XFxuICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW46IDEwcHggMCAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jayAubWV0aG9kcy1zaGlwcGluZyAuaXRlbS1jb250ZW50IC5maWVsZHNldD4uZmllbGQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYmxvY2sgLm1ldGhvZHMtc2hpcHBpbmcgLml0ZW0tY29udGVudCAuZmllbGRzZXQ+LmZpZWxkIC5jb250cm9sIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZSxcXG4ubXVsdGljaGVja291dCAuYmxvY2stY29udGVudCAudGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLXRpdGxlIHN0cm9uZyxcXG4ubXVsdGljaGVja291dCAuYmxvY2stY29udGVudCAudGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYmxvY2stdGl0bGUgc3Ryb25nIHNwYW4sXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLnRpdGxlIHN0cm9uZyBzcGFuIHtcXG4gICAgY29sb3I6ICNhNmE2YTZcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLnRpdGxlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gICAgcGFkZGluZy1ib3R0b206IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5ibG9jay10aXRsZT5zdHJvbmcge1xcbiAgICBmb250LXNpemU6IDIuNHJlbVxcbn1cXG5cXG4ubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmJsb2NrLXNoaXBwaW5nIC5ibG9jay1jb250ZW50Om5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5ib3gtdGl0bGUgc3BhbiB7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LXRpdGxlPi5hY3Rpb24ge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJveC1zaGlwcGluZy1tZXRob2QgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LWJpbGxpbmctbWV0aG9kIC5maWVsZHNldCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LWJpbGxpbmctbWV0aG9kIC5maWVsZHNldCAubGVnZW5kLmJveC10aXRsZSB7XFxuICAgIG1hcmdpbjogMCAwIDVweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuY2hlY2tvdXQtcmV2aWV3IC5ncmFuZC50b3RhbHMge1xcbiAgICBmb250LXNpemU6IDIuMXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuY2hlY2tvdXQtcmV2aWV3IC5ncmFuZC50b3RhbHMgLm1hcmsge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbltjbGFzc149J211bHRpc2hpcHBpbmctJ10gLmxvZ28ge1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4ubXVsdGlzaGlwcGluZy1jaGVja291dC1zdWNjZXNzIC5uYXYtc2VjdGlvbnMge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4udGFibGUtd3JhcHBlci5iaWxsaW5nLWFncmVlbWVudHMge1xcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxufVxcblxcbi5wYXlwYWwge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5wYXlwYWwsXFxuLmNhcnQtc3VtbWFyeSAucGF5cGFsIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnBheXBhbCBpbWcge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiA1cHggYXV0byAwXFxufVxcblxcbi5vcGMgLnBheXBhbCB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLnBheXBhbC5hY2NlcHRhbmNlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm1hcC1mb3JtLWFkZHRvY2FydCAucGF5cGFsIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMTBweCBhdXRvIDVweFxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5wYXlwYWwrLnBheXBhbCB7XFxuICAgIG1hcmdpbi10b3A6IDI1cHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLnBheXBhbC1yZXZpZXctdGl0bGUge1xcbiAgICBwYWRkaW5nOiAwIDAgMTBweFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAucGF5cGFsLXJldmlldy10aXRsZT5zdHJvbmcge1xcbiAgICBmb250LXNpemU6IDIuNHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAucGF5cGFsLXJldmlldy10aXRsZSAuYWN0aW9uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW46IDEycHggMCAwIDMwcHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNvbC5uYW1lIHtcXG4gICAgcGFkZGluZy10b3A6IDE2cHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNvbC5xdHkge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLml0ZW0tb3B0aW9ucyBkdCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAuaXRlbS1vcHRpb25zIGR0OmFmdGVyIHtcXG4gICAgY29udGVudDogJzogJ1xcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAuaXRlbS1vcHRpb25zIGRkIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogMCAwIDQwcHg7XFxuICAgIHBhZGRpbmc6IDEwcHggMCAwXFxufVxcblxcbi5mb3RvcmFtYS12aWRlby1jb250YWluZXI6YWZ0ZXIge1xcbiAgICBib3R0b206IDA7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBoZWlnaHQ6IDEwMHB4O1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMTJweDtcXG4gICAgd2lkdGg6IDEwMHB4XFxufVxcblxcbi5mb3RvcmFtYS12aWRlby1jb250YWluZXIgLm1hZ25pZnktbGVucyB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudFxcbn1cXG5cXG4uZm90b3JhbWEtdmlkZW8tY29udGFpbmVyLnZpZGVvLXVucGxheWVkOmhvdmVyIGltZyB7XFxuICAgIG9wYWNpdHk6IC42XFxufVxcblxcbi5mb3RvcmFtYS12aWRlby1jb250YWluZXIudmlkZW8tdW5wbGF5ZWQ6aG92ZXI6YWZ0ZXIge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpXFxufVxcblxcbi52aWRlby10aHVtYi1pY29uOmFmdGVyIHtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMTBweDtcXG4gICAgd2lkdGg6IDQ5cHhcXG59XFxuXFxuLnByb2R1Y3QtdmlkZW8ge1xcbiAgICBib3R0b206IDA7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnByb2R1Y3QtdmlkZW8gaWZyYW1lIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDk5OTlcXG59XFxuXFxuLmZvdG9yYW1hX19zdGFnZV9fc2hhZnQ6Zm9jdXMgLmZvdG9yYW1hX19zdGFnZV9fZnJhbWUuZm90b3JhbWFfX2FjdGl2ZTphZnRlciB7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGhlaWdodDogMTAwcHg7XFxuICAgIGxlZnQ6IDA7XFxuICAgIG1hcmdpbjogYXV0bztcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAxMnB4O1xcbiAgICB3aWR0aDogMTAwcHhcXG59XFxuXFxuLmZvdG9yYW1hX19wcm9kdWN0LXZpZGVvLS1sb2FkaW5nOmFmdGVyIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuXFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6MzIwcHgpIGFuZCAobWF4LWRldmljZS13aWR0aDo3ODBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpIHtcXG4gICAgLnByb2R1Y3QtdmlkZW8ge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgd2lkdGg6IDgxJVxcbiAgICB9XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZm9ybS1kaXNjb3VudCB7XFxuICAgIG1heC13aWR0aDogNTAwcHhcXG59XFxuXFxuLm1pbmlsaXN0IC53ZWVlIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93O1xcbiAgICBmb250LXNpemU6IDEuMXJlbVxcbn1cXG5cXG4ubWluaWxpc3QgLndlZWU6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ucHJpY2UtY29udGFpbmVyLndlZWU6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuZmllbGRzZXQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDdweFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuc2t1IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtMTU1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2MHB4O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAucXR5IC5xdHkrLm1hZ2UtZXJyb3Ige1xcbiAgICB3aWR0aDogODBweFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhcjpiZWZvcmUsXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ibG9jay1jb250ZW50IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnksXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ibG9jay1jb250ZW50IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkgYS5hY3Rpb24sXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IGEuYWN0aW9uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ibG9jay1jb250ZW50IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkgLmFjdGlvbiB7XFxuICAgIG1hcmdpbjogMCAxNXB4IDAgMFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyIC5zZWNvbmRhcnkgYS5hY3Rpb24ge1xcbiAgICBtYXJnaW4tdG9wOiA2cHhcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSxcXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyIC5zZWNvbmRhcnkge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZmxvYXQ6IG5vbmVcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IHtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLmFkZCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLmFkZDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMHB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxQyc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAucmVzZXQge1xcbiAgICBtYXJnaW46IDdweCAwXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ub3RlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAxMHB4XFxufVxcblxcbi5ibG9jay1jYXJ0LWZhaWxlZCB7XFxuICAgIG1hcmdpbjogNDBweCAwXFxufVxcblxcbi5ibG9jay1jYXJ0LWZhaWxlZCAuYmxvY2stdGl0bGUge1xcbiAgICBmb250LXNpemU6IDIuNnJlbVxcbn1cXG5cXG4uYmxvY2stY2FydC1mYWlsZWQgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLWNhcnQtZmFpbGVkIC5hY3Rpb25zIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1jYXJ0LWZhaWxlZCAuYWN0aW9ucyAuYWN0aW9uIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCBhdXRvIDEwcHhcXG59XFxuXFxuLmNhdGFsb2dzZWFyY2gtYWR2YW5jZWQtcmVzdWx0IC5tZXNzYWdlLmVycm9yIHtcXG4gICAgbWFyZ2luLXRvcDogLTYwcHhcXG59XFxuXFxuLmJ1bmRsZS1hY3Rpb25zIHtcXG4gICAgbWFyZ2luOiAwIDAgMzBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAubGVnZW5kLnRpdGxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LWFkZC1mb3JtIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0Pi5maWVsZCB7XFxuICAgIGJvcmRlci10b3A6IDFweCAjZTRlNGU0IHNvbGlkO1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGRzZXQ+LmZpZWxkOmZpcnN0LW9mLXR5cGUge1xcbiAgICBib3JkZXItdG9wOiAwO1xcbiAgICBwYWRkaW5nLXRvcDogMFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIGlucHV0IHtcXG4gICAgZmxvYXQ6IGxlZnRcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luLWxlZnQ6IDI0cHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjayB7XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnk+LnRpdGxlIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeT4udGl0bGU+c3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeT4udGl0bGUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJ1bmRsZS1zdW1tYXJ5IC5zdWJ0aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCAjZTRlNGU0IHNvbGlkO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJpY2UtYm94IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tYm90dG9tOiA1cHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJ1bmRsZS1zdW1tYXJ5IHtcXG4gICAgbWFyZ2luLXRvcDogMzBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAuYnVuZGxlLXN1bW1hcnkuZW1wdHkge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5idW5kbGUtc3VtbWFyeT4uc3VidGl0bGUge1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDIuNnJlbTtcXG4gICAgbWFyZ2luLXRvcDogMi41cmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAuYnVuZGxlLml0ZW1zPmxpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcyB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcz4uYWN0aW9uIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA1JVxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcz4uYWN0aW9uLnRvY29tcGFyZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUUnXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgcC5yZXF1aXJlZCB7XFxuICAgIGNvbG9yOiAjZTAyYjI3XFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLm5lc3RlZCAuZmllbGQucXR5IHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcXG4gICAgbWFyZ2luLXRvcDogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5uZXN0ZWQgLmZpZWxkLnF0eT4ubGFiZWwge1xcbiAgICBtYXJnaW46IDAgMCA4cHg7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5uZXN0ZWQgLmZpZWxkLnF0eSAubGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLm5lc3RlZCAuZmllbGQucXR5Omxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNsZWFyOiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMCA0MHB4O1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4ucHJvZHVjdHMge1xcbiAgICBtYXJnaW46IDMwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtIHtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB3aWR0aDogNTAlXFxufVxcblxcbi5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIC1tb3otaHlwaGVuczogYXV0bztcXG4gICAgLW1zLWh5cGhlbnM6IGF1dG87XFxuICAgIC13ZWJraXQtaHlwaGVuczogYXV0bztcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGh5cGhlbnM6IGF1dG87XFxuICAgIG1hcmdpbjogNXB4IDA7XFxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLWluZm8ge1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgIHdpZHRoOiAxNTJweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0cyAucHJvZHVjdC1pdGVtLWluZm8ge1xcbiAgICB3aWR0aDogMjQwcHhcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5PmJ1dHRvbi5hY3Rpb24ge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT5idXR0b24uYWN0aW9uOmZvY3VzLFxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+YnV0dG9uLmFjdGlvbjphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT5idXR0b24uYWN0aW9uOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+YnV0dG9uLmFjdGlvbi5kaXNhYmxlZCxcXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5PmJ1dHRvbi5hY3Rpb25bZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5PmJ1dHRvbi5hY3Rpb24ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT4uYWN0aW9uOmJlZm9yZSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLWRlc2NyaXB0aW9uIHtcXG4gICAgbWFyZ2luOiAyNXB4IDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJhdGluZy1zdW1tYXJ5IHtcXG4gICAgbWFyZ2luOiAwIDRweCAwIDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJldmlld3MtYWN0aW9ucyB7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbWFyZ2luLXRvcDogNXB4O1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlXFxufVxcblxcbi5wcm9kdWN0LWl0ZW0gLnByaWNlLWJveCB7XFxuICAgIG1hcmdpbjogMTBweCAwIDI1cHhcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJpY2UtYm94IC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgICBmb250LXNpemU6IDEycHhcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAub2xkLXByaWNlIHtcXG4gICAgbWFyZ2luOiA1cHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtIC5vbGQtcHJpY2UgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtIC5yZWd1bGFyLXByaWNlIC5wcmljZS1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAubWluaW1hbC1wcmljZSAucHJpY2UtY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAubWluaW1hbC1wcmljZS1saW5rIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5wcm9kdWN0LWl0ZW0gLnByaWNlLWZyb20sXFxuLnByb2R1Y3QtaXRlbSAucHJpY2UtdG8ge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAudG9jb21wYXJlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxRSdcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAudG9jYXJ0IHtcXG4gICAgZm9udC1zaXplOiAxLjNyZW07XFxuICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmNvbHVtbi5tYWluIC5wcm9kdWN0LWl0ZW1zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4XFxufVxcblxcbi5jb2x1bW4ubWFpbiAucHJvZHVjdC1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4XFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxuLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLnByaWNlLWNvbnRhaW5lciAud2VlZSxcXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlIC5wcmljZSxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlKy5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlKy5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMS4xcmVtXFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLndlZWU6YmVmb3JlIHtcXG4gICAgY29udGVudDogJygnIGF0dHIoZGF0YS1sYWJlbCkgJzogJ1xcbn1cXG5cXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlOmFmdGVyIHtcXG4gICAgY29udGVudDogJyknXFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXg6YmVmb3JlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSAnOiAnXFxufVxcblxcbi5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWl0ZW0ge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbS1pbmZvIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93XFxufVxcblxcbi5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICBwYWRkaW5nOiAwIDMwcHggMzBweCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aWR0aDogMSVcXG59XFxuXFxuLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0cyAuY29sdW1ucyB7XFxuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLnRvb2xiYXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnRvb2xiYXIgc2VsZWN0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICNmZmYsIGluc2V0IDAgLTFweCAwIDAgcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjMpO1xcbiAgICBib3JkZXItcmFkaXVzOiAzcHhcXG59XFxuXFxuLnRvb2xiYXItYW1vdW50IHtcXG4gICAgbGVmdDogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogN3B4IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgdG9wOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5wcm9kdWN0cy53cmFwcGVyfi50b29sYmFyIC50b29sYmFyLWFtb3VudCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnBhZ2Utd2l0aC1maWx0ZXIgLnRvb2xiYXItYW1vdW50IHtcXG4gICAgcG9zaXRpb246IHN0YXRpY1xcbn1cXG5cXG4udG9vbGJhci1wcm9kdWN0cyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XFxufVxcblxcbi50b29sYmFyLXByb2R1Y3RzIC5wYWdlcyB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3RzLndyYXBwZXJ+LnRvb2xiYXItcHJvZHVjdHMgLnBhZ2VzIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnRvb2xiYXIgLnBhZ2VzIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweFxcbn1cXG5cXG4uc29ydGVyIHtcXG4gICAgZmxvYXQ6IHJpZ2h0XFxufVxcblxcbi5wYWdlLXByb2R1Y3RzIC5zb3J0ZXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAxMHB4O1xcbiAgICB0b3A6IDA7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLnByb2R1Y3RzLndyYXBwZXJ+LnRvb2xiYXIgLnNvcnRlciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnNvcnRlci1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwIDVweCAwIDdweDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLnNvcnRlci1hY3Rpb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uc29ydGVyLWFjdGlvbjpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMyc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uc29ydGVyLWFjdGlvbjpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uc29ydGVyLWFjdGlvbj5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnNvcnRlci1hY3Rpb24uc29ydC1kZXNjOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNCdcXG59XFxuXFxuLm1vZGVzIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubGltaXRlci1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwIDVweCAwIDdweDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmxpbWl0ZXItbGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5wYWdlLXByb2R1Y3RzIC50b29sYmFyIC5saW1pdGVyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubGltaXRlciAuY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ub2xkLXByaWNlLFxcbi5vbGQucHJpY2Uge1xcbiAgICBjb2xvcjogIzY2Nlxcbn1cXG5cXG4ucHJpY2VzLXRpZXIgLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnKCcgYXR0cihkYXRhLWxhYmVsKSAnOidcXG59XFxuXFxuLnByaWNlcy10aWVyIC5wcmljZS1jb250YWluZXIgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXg6bGFzdC1jaGlsZDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcpJ1xcbn1cXG5cXG4ucHJpY2VzLXRpZXIgLnByaWNlLWNvbnRhaW5lciAud2VlZVtkYXRhLWxhYmVsXSB7XFxuICAgIGRpc3BsYXk6IGlubGluZVxcbn1cXG5cXG4ucHJpY2VzLXRpZXIgLnByaWNlLWNvbnRhaW5lciAud2VlZVtkYXRhLWxhYmVsXTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnICsnIGF0dHIoZGF0YS1sYWJlbCkgJzonXFxufVxcblxcbi5hY3R1YWwtcHJpY2Uge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5jYXRlZ29yeS1pbWFnZSAuaW1hZ2Uge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXgtd2lkdGg6IDEwMCVcXG59XFxuXFxuLmNhdGVnb3J5LWNtcyxcXG4uY2F0ZWdvcnktaW1hZ2UsXFxuLmNhdGVnb3J5LWRlc2NyaXB0aW9uIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1heC13aWR0aDogMTAwJVxcbn1cXG5cXG4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGhlaWdodDogMDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5wcm9kdWN0LWltYWdlLXBob3RvIHtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5wbGFjZWhvbGRlciAucGhvdG8uY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5ub3RpY2Uge1xcbiAgICBtYXJnaW46IDEwcHggMDtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5wcm9kdWN0LnRodW1icyB7XFxuICAgIG1hcmdpbjogMTBweCAwIDI1cHhcXG59XFxuXFxuLnByb2R1Y3QubWVkaWEgLml0ZW1zLnRodW1icyB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5pdGVtcy50aHVtYnM+bGkge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLnByb2R1Y3QubWVkaWEgLml0ZW1zLnRodW1icz5saSB7XFxuICAgIG1hcmdpbjogMXJlbSAwIDBcXG59XFxuXFxuLnByb2R1Y3QubWVkaWEgLml0ZW1zLnRodW1icyBpbWcge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ucHJvZHVjdC5tZWRpYSAuaXRlbXMudGh1bWJzIC5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbGluZS1oZWlnaHQ6IDFcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCB7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRoLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50aCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGgsXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRkLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50ZCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGQge1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRkLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50ZCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGQge1xcbiAgICBwYWRkaW5nOiA1LjVweCA1cHggMTBweCA1cHhcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRoLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50aCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGgge1xcbiAgICBwYWRkaW5nOiA1LjVweCAzMHB4IDEwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSB7XFxuICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3gge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lcj5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXI+c3BhbjpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAud2VlZSsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAud2VlZSB7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAud2VlZSsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LWluZm8tcHJpY2UgLndlZWUgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS13cmFwcGVyIC5wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMjJweFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIC5wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMnJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAuc3BlY2lhbC1wcmljZSAucHJpY2UtbGFiZWw6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZSB7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LWluZm8tc3RvY2stc2t1IHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgIHBhZGRpbmctbGVmdDogMTAlO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnN0b2NrIHtcXG4gICAgbWFyZ2luOiAwIDAgM3B4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAuc3RvY2suYXZhaWxhYmxlLFxcbi5wcm9kdWN0LWluZm8tbWFpbiAuc3RvY2sudW5hdmFpbGFibGUge1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC5hdHRyaWJ1dGUuc2t1IHtcXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LmF0dHJpYnV0ZS5za3UgLnR5cGUge1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QuYXR0cmlidXRlLnNrdSAudHlwZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcjOidcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LmF0dHJpYnV0ZS5za3UgLnZhbHVlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC5hdHRyaWJ1dGUub3ZlcnZpZXcge1xcbiAgICBtYXJnaW46IDIwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QuYWxlcnQge1xcbiAgICBtYXJnaW46IDEwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtYWRkLWZvcm0ge1xcbiAgICBjbGVhcjogYm90aDtcXG4gICAgcGFkZGluZy10b3A6IDE1cHhcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAuYm94LXRvY2FydCB7XFxuICAgIG1hcmdpbi10b3A6IDIwcHhcXG59XFxuXFxuLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZHNldC1wcm9kdWN0LW9wdGlvbnMtaW5uZXIgLmxlZ2VuZCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZmxvYXQ6IG5vbmU7XFxuICAgIG1hcmdpbjogMCAwIDhweDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LXByb2R1Y3Qtb3B0aW9ucy1pbm5lciBpbnB1dC5kYXRldGltZS1waWNrZXJ+c2VsZWN0LmRhdGV0aW1lLXBpY2tlciB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZHNldC1wcm9kdWN0LW9wdGlvbnMtaW5uZXIucmVxdWlyZWQgLmxlZ2VuZDphZnRlcixcXG4ucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LXByb2R1Y3Qtb3B0aW9ucy1pbm5lci5fcmVxdWlyZWQgLmxlZ2VuZDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcqJztcXG4gICAgY29sb3I6ICNlMDJiMjc7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtXFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQgLm5vdGUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3gsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IHtcXG4gICAgY29sb3I6ICM1NzU3NTc7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLm9sZC1wcmljZSxcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWNvbnRhaW5lcj5zcGFuLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1jb250YWluZXI+c3BhbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXI+c3BhbixcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lcj5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXI+c3BhbjpsYXN0LWNoaWxkLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyPnNwYW46bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnByb2R1Y3Qtb3B0aW9ucy1ib3R0b20gLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZSxcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2Uge1xcbiAgICBmb250LXNpemU6IDIycHg7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLnByb2R1Y3Qtb3B0aW9ucy1ib3R0b20gLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC53ZWVlLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC53ZWVlIHtcXG4gICAgZm9udC1zaXplOiAxLjJyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxNHB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlLFxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAud2VlZSsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlLFxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAud2VlZSAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjJyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmJveC10b2NhcnQgLmFjdGlvbi50b2NhcnQge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5ib3gtdG9jYXJ0IC5hY3Rpb24udG9jYXJ0Om5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxufVxcblxcbi5wcm9kdWN0LWFkZHRvLWxpbmtzIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5wcm9kdWN0LWFkZHRvLWxpbmtzIC5hY3Rpb24ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDUlXFxufVxcblxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmU6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjFFJ1xcbn1cXG5cXG4ucHJpY2VzLXRpZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxufVxcblxcbi5wcmljZXMtdGllciAuaXRlbSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnByaWNlcy10aWVyIC5pdGVtOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5wcmljZXMtdGllciAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJpY2VzLXRpZXIgLnByaWNlLWluY2x1ZGluZy10YXgge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLm1pbmltYWwtcHJpY2UtbGluayxcXG4ucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJpY2UtaW5jbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Uge1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGRpc3BsYXk6IGlubGluZVxcbn1cXG5cXG4udWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlOnZpc2l0ZWQge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2U6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2U6aG92ZXIsXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTphY3RpdmUsXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpmb2N1cyB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4udWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlLmRpc2FibGVkLFxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2VbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIG9wYWNpdHk6IC41O1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0taW5mbyB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1pbmZvIC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICBtYXJnaW4tdG9wOiAwXFxufVxcblxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyB7XFxuICAgIG1hcmdpbjogMCAwIDAgODVweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWFjdGlvbnMge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJpY2UtYm94IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogN3B4IDBcXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLnRleHQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAuY291bnRlciB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLm1pbmlsaXN0IC5wcmljZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZTtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAubWluaWxpc3QgLndlZWU6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5zaWRlYmFyIC5hY3Rpb24udG9jYXJ0IHtcXG4gICAgYm9yZGVyLXJhZGl1czogMFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXMge1xcbiAgICBtYXJnaW4tbGVmdDogLTVweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXMgLnByb2R1Y3QtaXRlbSB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDVweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1uYW1lcyAucHJvZHVjdC1pdGVtIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1uYW1lcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuYm9keS5jYXRhbG9nLXByb2R1Y3QtY29tcGFyZS1pbmRleCAuYWN0aW9uLnByaW50IHtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICBtYXJnaW46IDE1cHggMFxcbn1cXG5cXG4udGFibGUtd3JhcHBlci5jb21wYXJpc29uIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgb3ZlcmZsb3cteDogYXV0bztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi50YWJsZS13cmFwcGVyLmNvbXBhcmlzb24gLnRhYmxlLWNvbXBhcmlzb24+dGJvZHk+dHI+dGgsXFxuLnRhYmxlLXdyYXBwZXIuY29tcGFyaXNvbiAudGFibGUtY29tcGFyaXNvbj50Ym9keT50cj50ZCB7XFxuICAgIGJvcmRlci10b3A6IDBcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24ge1xcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsIHtcXG4gICAgcGFkZGluZzogMTVweDtcXG4gICAgd2lkdGg6IDE4MHB4XFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsLmxhYmVsIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5sYWJlbCAuYXR0cmlidXRlLmxhYmVsIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwucHJvZHVjdC5pbmZvLFxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsLnByb2R1Y3QubGFiZWwge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5hdHRyaWJ1dGUge1xcbiAgICBmb250LXNpemU6IDEuM3JlbVxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5hdHRyaWJ1dGUgaW1nIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXgtd2lkdGg6IDEwMCVcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwucmVtb3ZlIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDA7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodFxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IC42cmVtXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsIC5hdHRyaWJ1dGUudmFsdWUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiB0ZDpsYXN0LWNoaWxkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1pdGVtLXBob3RvIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCBhdXRvIDE1cHhcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByb2R1Y3QtaW1hZ2UtcGhvdG8ge1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1pdGVtLWFjdGlvbnMsXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByaWNlLWJveCxcXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC5yYXRpbmcsXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMTVweCAwXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5wcm9kdWN0LWFkZHRvLWxpbmtzIHtcXG4gICAgbWFyZ2luLXRvcDogMTVweFxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1hZGR0by1saW5rcyAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIHBhZGRpbmc6IDBcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByb2R1Y3QtYWRkdG8tbGlua3MgLmFjdGlvbi5zcGxpdCxcXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1hZGR0by1saW5rcyAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XFxuICAgIHBhZGRpbmc6IDVweCA4cHg7XFxuICAgIGZvbnQtc2l6ZTogMS4xcmVtXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5hY3Rpb24udG9jYXJ0IHtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4uY29tcGFyaXNvbi5oZWFkaW5ncyB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgei1pbmRleDogMlxcbn1cXG5cXG4uYmxvY2stY29tcGFyZSAucHJvZHVjdC1pdGVtIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyMnB4XFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlIHtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDBcXG59XFxuXFxuLmJsb2NrLWNvbXBhcmUgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbjogMTdweCAwIDBcXG59XFxuXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Qge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5ibG9jay5yZWxhdGVkIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgei1pbmRleDogMVxcbn1cXG5cXG4uYmxvY2sucmVsYXRlZCAucmVsYXRlZC1hdmFpbGFibGUgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHhcXG59XFxuXFxuLmJsb2NrLnJlbGF0ZWQgLmZpZWxkLmNob2ljZSB7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAycHhcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCAuYmxvY2stdGl0bGUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5ibG9jay1zZWFyY2ggLmJsb2NrLWNvbnRlbnQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jay1zZWFyY2ggLmxhYmVsIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZsb2F0OiByaWdodFxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5sYWJlbD5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCAubGFiZWw6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMjJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTUnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMTBweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5sYWJlbDpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5sYWJlbDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCAubGFiZWwuYWN0aXZlKy5jb250cm9sIGlucHV0IHtcXG4gICAgcG9zaXRpb246IHN0YXRpY1xcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5hY3Rpb24uc2VhcmNoIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5jb250cm9sIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBtYXJnaW46IDAgLTE1cHggLTFweDtcXG4gICAgcGFkZGluZzogMCAxNXB4XFxufVxcblxcbi5ibG9jay1zZWFyY2ggaW5wdXQge1xcbiAgICBsZWZ0OiAtMzAwJTtcXG4gICAgbWFyZ2luOiAxNXB4IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5uZXN0ZWQge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgbWFyZ2luLXRvcDogLTE1cHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgei1pbmRleDogM1xcbn1cXG5cXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHVsOm5vdCg6ZW1wdHkpIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MyYzJjMjtcXG4gICAgYm9yZGVyLXRvcDogMFxcbn1cXG5cXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogNXB4IDQwcHggNXB4IDEwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaTpmaXJzdC1jaGlsZCB7XFxuICAgIGJvcmRlci10b3A6IG5vbmVcXG59XFxuXFxuLnNlYXJjaC1hdXRvY29tcGxldGUgdWwgbGk6aG92ZXIsXFxuLnNlYXJjaC1hdXRvY29tcGxldGUgdWwgbGkuc2VsZWN0ZWQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4XFxufVxcblxcbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHVsIGxpIC5hbW91bnQge1xcbiAgICBjb2xvcjogIzk5OTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogN3B4O1xcbiAgICB0b3A6IDVweFxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6Zmlyc3QtY2hpbGQge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmZvcm0uc2VhcmNoLmFkdmFuY2VkIC5maWVsZHMucmFuZ2UgLmZpZWxkOmZpcnN0LWNoaWxkIC5jb250cm9sIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjVweFxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6Zmlyc3QtY2hpbGQgLmNvbnRyb2w6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnIFxcXFwyMDEzICAgJztcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHRvcDogNnB4O1xcbiAgICB3aWR0aDogMjVweFxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6bGFzdC1jaGlsZCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6bGFzdC1jaGlsZCBkaXYubWFnZS1lcnJvcltnZW5lcmF0ZWRdIHtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDMycHhcXG59XFxuXFxuLmZvcm0uc2VhcmNoLmFkdmFuY2VkIC5maWVsZHMucmFuZ2UgLmZpZWxkLndpdGgtYWRkb24gLmNvbnRyb2wge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NXB4XFxufVxcblxcbi5mb3JtLnNlYXJjaC5hZHZhbmNlZCAuZ3JvdXAucHJpY2UgLmFkZG9uIC5hZGRhZnRlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZy10b3A6IDZweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5zZWFyY2gtdGVybXMge1xcbiAgICBsaW5lLWhlaWdodDogMmVtXFxufVxcblxcbi5zZWFyY2gtdGVybXM+bGkge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweFxcbn1cXG5cXG4uc2VhcmNoLmZvdW5kIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uY2hlY2tvdXQtY2FydC1pbmRleCAucGFnZS1tYWluIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwXFxufVxcblxcbi5jaGVja291dC1jYXJ0LWluZGV4IC5wYWdlLXRpdGxlLXdyYXBwZXIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHhcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSB7XFxuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XFxuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XFxuICAgIHBhZGRpbmc6IDFweCAwIDI1cHhcXG59XFxuXFxuLmNhcnQtc3VtbWFyeT4udGl0bGUge1xcbiAgICBmb250LXNpemU6IDIuNHJlbTtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbWFyZ2luOiAxMnB4IDBcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgZm9ybTpub3QoOmxhc3Qtb2YtdHlwZSkgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAwIDAgMjVweFxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5ibG9jayAucHJpY2Uge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5maWVsZCB7XFxuICAgIG1hcmdpbjogMCAwIDE2cHhcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmZpZWxkLm5vdGUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5IHtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLnRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW46IDAgMCAxNnB4XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5pdGVtLW9wdGlvbnMgLmZpZWxkIC5yYWRpbyB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5pdGVtLW9wdGlvbnMgLmZpZWxkIC5yYWRpbysubGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuXFxufVxcblxcbi5wYWdlLW1haW4gLmNhcnQtc3VtbWFyeSAuYmxvY2sge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMge1xcbiAgICBtYXJnaW46IDIwcHggMCAwO1xcbiAgICBwYWRkaW5nOiAwIDE1cHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5jaGVja291dC1tZXRob2RzLWl0ZW1zIC5hY3Rpb24ucHJpbWFyeS5jaGVja291dCB7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMgLml0ZW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMgLml0ZW06bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAubWVzc2FnZSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjBweFxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5tZXNzYWdlPio6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5hY3Rpb24ubXVsdGljaGVja291dCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5jYXJ0LXRvdGFscyB0Ym9keSAubWFyayxcXG4uY2FydC10b3RhbHMgdGZvb3QgLm1hcmsge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNhcnQgdGhlYWQgdHIgdGguY29sIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xcbiAgICBwYWRkaW5nLXRvcDogMjRweFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5jYXJ0IHRib2R5IHRkIHtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNhcnQ+Lml0ZW0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbCB7XFxuICAgIHBhZGRpbmctdG9wOiAxNXB4XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAge1xcbiAgICBwYWRkaW5nOiAyMHB4IDExcHggMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHkge1xcbiAgICBwYWRkaW5nOiAyMHB4IDExcHggMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHkgLmlucHV0LXRleHQge1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuICAgIG1hcmdpbi10b3A6IC03cHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgd2lkdGg6IDQ1cHhcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sPi5wcmljZSB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5pdGVtLWFjdGlvbnMgdGQge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0gLmNvbC5pdGVtIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1pbi1oZWlnaHQ6IDc1cHg7XFxuICAgIHBhZGRpbmc6IDE1cHggMTVweCAxMHB4IDkwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWVkaXQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMTZweDtcXG4gICAgdG9wOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1lZGl0PnNwYW4sXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1lZGl0OmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDEnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZWRpdDpob3ZlcjpiZWZvcmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWVkaXQ6YWN0aXZlOmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzU3NTc1XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZSB7XFxuICAgIHJpZ2h0OiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbiB7XFxuICAgIG1hcmdpbi1yaWdodDogMjVweFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb246bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1yaWdodDogMFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXAge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBsZWZ0OiAxNXB4O1xcbiAgICBtYXgtd2lkdGg6IDY1cHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxNXB4O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAtM3B4IDAgNXB4XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmdpZnQtcmVnaXN0cnktbmFtZS1sYWJlbDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICc6J1xcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLnByb2R1Y3QtaXRlbS1uYW1lKy5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW4tdG9wOiAyMHB4XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5jb25maWd1cmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMTBweCAwIDBcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbSAubWVzc2FnZSB7XFxuICAgIG1hcmdpbi10b3A6IDIwcHhcXG59XFxuXFxuLmNhcnQtcHJvZHVjdHMtdG9vbGJhciAudG9vbGJhci1hbW91bnQge1xcbiAgICBsZWZ0OiBpbmhlcml0O1xcbiAgICBtYXJnaW46IDI1cHggMCAxNXB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiBpbmhlcml0XFxufVxcblxcbi5jYXJ0LXByb2R1Y3RzLXRvb2xiYXItdG9wIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmNhcnQtZGlzY291bnQge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgY2xlYXI6IGxlZnRcXG59XFxuXFxuLmNhcnQtZW1wdHkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHhcXG59XFxuXFxuLmNhcnQtdGF4LWluZm8rLmNhcnQtdGF4LXRvdGFsLFxcbi5jYXJ0IC5jYXJ0LXRheC1pbmZvKy5jYXJ0LXRheC10b3RhbCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSxcXG4ub3JkZXItaXRlbXMudGFibGUtd3JhcHBlciAuY29sLnByaWNlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHksXFxuLm9yZGVyLWl0ZW1zLnRhYmxlLXdyYXBwZXIgLmNvbC5xdHksXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnN1YnRvdGFsLFxcbi5vcmRlci1pdGVtcy50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAsXFxuLm9yZGVyLWl0ZW1zLnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHRcXG59XFxuXFxuLmJsb2NrLmNyb3Nzc2VsbCB7XFxuICAgIHBhZGRpbmc6IDAgMTVweDtcXG4gICAgbWFyZ2luLXRvcDogNzBweFxcbn1cXG5cXG4uYmxvY2suY3Jvc3NzZWxsIC5wcm9kdWN0LWl0ZW0taW5mbyB7XFxuICAgIHdpZHRoOiAyMDBweFxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLml0ZW1zLXRvdGFsIHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbjogMCAxMHB4XFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuaXRlbXMtdG90YWwgLmNvdW50IHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLnN1YnRvdGFsIHtcXG4gICAgbWFyZ2luOiAwIDEwcHggMTBweDtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHRcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5hbW91bnQgLnByaWNlLXdyYXBwZXI6Zmlyc3QtY2hpbGQgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuc3VidGl0bGUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuc3VidGl0bGUuZW1wdHkge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBwYWRkaW5nOiAzMHB4IDAgMjBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAudGV4dC5lbXB0eSB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbnMge1xcbiAgICBtYXJnaW4tdG9wOiAxNXB4XFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stY29udGVudD4uYWN0aW9ucz4uc2Vjb25kYXJ5IHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stY29udGVudD4uYWN0aW9ucz4ucHJpbWFyeSB7XFxuICAgIG1hcmdpbjogMCAxMHB4IDE1cHhcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5ibG9jay1jb250ZW50Pi5hY3Rpb25zPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbnMgLnBheXBhbC1sb2dvIHtcXG4gICAgbWFyZ2luLXRvcDogMTVweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stY2F0ZWdvcnktbGluayxcXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLXByb2R1Y3QtbGluayxcXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLWNtcy1saW5rLFxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stYmFubmVycyB7XFxuICAgIG1hcmdpbjogMTVweCAwIDA7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBmbG9hdDogcmlnaHRcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXI6YmVmb3JlLFxcbi5taW5pY2FydC13cmFwcGVyOmFmdGVyIHtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IHRhYmxlXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMjhweDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3NTc1NzVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydC5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0LmFjdGl2ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMjhweDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQuYWN0aXZlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQuYWN0aXZlOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYmxvY2stbWluaWNhcnQge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNHB4O1xcbiAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydCBsaSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYmxvY2stbWluaWNhcnQgbGk6aG92ZXIge1xcbiAgICBjdXJzb3I6IHBvaW50ZXJcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmJlZm9yZSxcXG4ubWluaWNhcnQtd3JhcHBlciAuYmxvY2stbWluaWNhcnQ6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmJlZm9yZSB7XFxuICAgIGJvcmRlcjogNnB4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk5XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydDphZnRlciB7XFxuICAgIGJvcmRlcjogN3B4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNiYmIgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydDpiZWZvcmUge1xcbiAgICBsZWZ0OiAxMHB4O1xcbiAgICB0b3A6IC0xMnB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydDphZnRlciB7XFxuICAgIGxlZnQ6IDlweDtcXG4gICAgdG9wOiAtMTRweFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlci5hY3RpdmUge1xcbiAgICBvdmVyZmxvdzogdmlzaWJsZVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlci5hY3RpdmUgLmJsb2NrLW1pbmljYXJ0IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0IHtcXG4gICAgcGFkZGluZzogMjVweCAyMHB4O1xcbiAgICByaWdodDogMDtcXG4gICAgd2lkdGg6IDMyMHB4O1xcbiAgICB6LWluZGV4OiAxMDFcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0IC5ibG9jay10aXRsZSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmFmdGVyIHtcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IDI1cHhcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmJlZm9yZSB7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiAyNnB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5wcm9kdWN0IC5hY3Rpb25zIHtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICBtYXJnaW46IC0yNHB4IDAgMFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAucHJvZHVjdCAuYWN0aW9ucz4ucHJpbWFyeSxcXG4ubWluaWNhcnQtd3JhcHBlciAucHJvZHVjdCAuYWN0aW9ucz4uc2Vjb25kYXJ5IHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5wcm9kdWN0IC5hY3Rpb25zPi5wcmltYXJ5Om5vdCg6bGFzdC1jaGlsZCksXFxuLm1pbmljYXJ0LXdyYXBwZXIgLnByb2R1Y3QgLmFjdGlvbnM+LnNlY29uZGFyeTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2Uge1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U6Zm9jdXMsXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5jbG9zZTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5jbG9zZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLmNsb3NlLmRpc2FibGVkLFxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2VbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLmNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTYnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLmNsb3NlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQge1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQgLmNvdW50ZXIucXR5IHtcXG4gICAgYmFja2dyb3VuZDogI2ZmNTUwMTtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGhlaWdodDogMjRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW46IDNweCAwIDA7XFxuICAgIG1pbi13aWR0aDogMThweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMCAzcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0IC5jb3VudGVyLnF0eS5lbXB0eSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCAuY291bnRlci5xdHkgLmxvYWRlcj5pbWcge1xcbiAgICBtYXgtd2lkdGg6IDI0cHhcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCAuY291bnRlci1udW1iZXIge1xcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDdweCAjMDAwXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5taW5pY2FydC13aWRnZXRzIHtcXG4gICAgbWFyZ2luLXRvcDogMTVweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMtd3JhcHBlciB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogMCAtMjBweDtcXG4gICAgYm9yZGVyLWxlZnQ6IDA7XFxuICAgIGJvcmRlci1yaWdodDogMDtcXG4gICAgb3ZlcmZsb3cteDogYXV0bztcXG4gICAgcGFkZGluZzogMTVweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbSB7XFxuICAgIHBhZGRpbmc6IDIwcHggMFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gICAgcGFkZGluZy10b3A6IDBcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tcHJpY2luZyAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiA0LjVyZW1cXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcmljZS1taW5pY2FydCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luOiAwIDAgMTBweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4OHB4XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICBtYXJnaW46IDVweCAwXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLndlZWVbZGF0YS1sYWJlbF0ge1xcbiAgICBmb250LXNpemU6IDEuMXJlbVxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5kZXRhaWxzLXF0eSB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Pi5wcm9kdWN0LWl0ZW0tcGhvdG8sXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Pi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lciB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdCAudG9nZ2xlIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBwYWRkaW5nOiAwIDQwcHggNXB4IDBcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0IC50b2dnbGU6YWZ0ZXIge1xcbiAgICBjb2xvcjogIzhmOGY4ZjtcXG4gICAgbWFyZ2luOiAwIDAgMCA1cHg7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWNcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0IC5hY3RpdmU+LnRvZ2dsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LnByaWNpbmcge1xcbiAgICBtYXJnaW4tdG9wOiAzcHhcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Lm9wdGlvbnMgLnRvZ2dsZS50b29sdGlwIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Lm9wdGlvbnMgLnRvZ2dsZS50b29sdGlwPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3Qub3B0aW9ucyAudG9nZ2xlLnRvb2x0aXA6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTJweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogLTNweCAwIDAgN3B4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Lm9wdGlvbnMgLmRldGFpbHMge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAuaXRlbS1xdHkge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgd2lkdGg6IDQwcHhcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC51cGRhdGUtY2FydC1pdGVtIHtcXG4gICAgZm9udC1zaXplOiAxLjFyZW07XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5zdWJ0aXRsZSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZWRpdCxcXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5kZWxldGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5lZGl0PnNwYW4sXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5lZGl0OmJlZm9yZSxcXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5kZWxldGU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDEnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZWRpdDpob3ZlcjpiZWZvcmUsXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAuYWN0aW9uLmVkaXQ6YWN0aXZlOmJlZm9yZSxcXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5kZWxldGU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzU3NTc1XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAuYWN0aW9uLmRlbGV0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnXFxufVxcblxcbi5jaGVja291dC1jb250YWluZXIge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zdGVwLXRpdGxlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zdGVwLWNvbnRlbnQge1xcbiAgICBtYXJnaW46IDAgMCA0MHB4XFxufVxcblxcbi5jaGVja291dC1pbmRleC1pbmRleCAubmF2LXNlY3Rpb25zLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubmF2LXRvZ2dsZSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5sb2dvIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDBcXG59XFxuXFxuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzcyAucHJpbnQge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogLTIxcHggLTE1cHggMTVweDtcXG4gICAgcGFkZGluZzogMThweCAxNXB4XFxufVxcblxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmVzdGltYXRlZC1ibG9jayB7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuZXN0aW1hdGVkLWJsb2NrIC5lc3RpbWF0ZWQtbGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwIDAgNXB4XFxufVxcblxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLm1pbmljYXJ0LXdyYXBwZXIgYnV0dG9uLmFjdGlvbi5zaG93Y2FydCB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyIC5taW5pY2FydC13cmFwcGVyIGJ1dHRvbi5hY3Rpb24uc2hvd2NhcnQ6Zm9jdXMsXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAubWluaWNhcnQtd3JhcHBlciBidXR0b24uYWN0aW9uLnNob3djYXJ0OmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyIC5taW5pY2FydC13cmFwcGVyIGJ1dHRvbi5hY3Rpb24uc2hvd2NhcnQ6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAubWluaWNhcnQtd3JhcHBlciBidXR0b24uYWN0aW9uLnNob3djYXJ0LmRpc2FibGVkLFxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLm1pbmljYXJ0LXdyYXBwZXIgYnV0dG9uLmFjdGlvbi5zaG93Y2FydFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLm1pbmljYXJ0LXdyYXBwZXIgYnV0dG9uLmFjdGlvbi5zaG93Y2FydCB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyIC5taW5pY2FydC13cmFwcGVyIGJ1dHRvbi5hY3Rpb24uc2hvd2NhcnQ6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLm9wYy1wcm9ncmVzcy1iYXIge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5maWVsZC5jaG9pY2UgLmZpZWxkLXRvb2x0aXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRvcDogLTNweFxcbn1cXG5cXG4uZmllbGQuY2hvaWNlIC5maWVsZC10b29sdGlwLWFjdGlvbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMXB4XFxufVxcblxcbi5maWVsZC5fZXJyb3IgLmNvbnRyb2wgaW5wdXQsXFxuLmZpZWxkLl9lcnJvciAuY29udHJvbCBzZWxlY3QsXFxuLmZpZWxkLl9lcnJvciAuY29udHJvbCB0ZXh0YXJlYSB7XFxuICAgIGJvcmRlci1jb2xvcjogI2VkODM4MFxcbn1cXG5cXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5maWVsZHNldCAuZmllbGQgLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwIHtcXG4gICAgbWFyZ2luLXRvcDogOHB4XFxufVxcblxcbi5maWVsZC10b29sdGlwIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDFweFxcbn1cXG5cXG4uZmllbGQtdG9vbHRpcC5fYWN0aXZlIHtcXG4gICAgei1pbmRleDogMTAwXFxufVxcblxcbi5maWVsZC10b29sdGlwLl9hY3RpdmUgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5maWVsZC10b29sdGlwLl9hY3RpdmUgLmZpZWxkLXRvb2x0aXAtYWN0aW9uOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbj5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDIxcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogI2JiYjtcXG4gICAgY29udGVudDogJ1xcXFxFNjIzJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbjpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uX2tleWZvY3VzIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbjpmb2N1cyB7XFxuICAgIHotaW5kZXg6IDEwMFxcbn1cXG5cXG4uX2tleWZvY3VzIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbjpmb2N1cysuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLl9rZXlmb2N1cyAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb246Zm9jdXM6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICB3aWR0aDogMjcwcHg7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGxlZnQ6IDM4cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICAgIHRvcDogLTlweDtcXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBib3JkZXI6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGhlaWdodDogMDtcXG4gICAgd2lkdGg6IDA7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2Y0ZjRmNDtcXG4gICAgbGVmdDogLTIxcHg7XFxuICAgIHRvcDogMTJweDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHotaW5kZXg6IDNcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICM2NjZcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2Y0ZjRmNDtcXG4gICAgd2lkdGg6IDFweDtcXG4gICAgei1pbmRleDogNFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmZvcm0tbG9naW4sXFxuLm9wYy13cmFwcGVyIC5mb3JtLXNoaXBwaW5nLWFkZHJlc3Mge1xcbiAgICBtYXJnaW4tdG9wOiAyOHB4O1xcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZm9ybS1sb2dpbiAuZmllbGRzZXQgLmZpZWxkIC5sYWJlbCxcXG4ub3BjLXdyYXBwZXIgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRzZXQgLmZpZWxkIC5sYWJlbCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5mb3JtLWxvZ2luIC5maWVsZHNldCAubm90ZSxcXG4ub3BjLXdyYXBwZXIgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRzZXQgLm5vdGUge1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIHtcXG4gICAgZm9udC1zaXplOiAwXFxufVxcblxcbi5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtIHtcXG4gICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHBhZGRpbmc6IDIwcHggMzVweCAyMHB4IDIwcHg7XFxuICAgIHRyYW5zaXRpb246IC4zcyBib3JkZXItY29sb3I7XFxuICAgIHdpZHRoOiA1MCU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zaGlwcGluZy1hZGRyZXNzLWl0ZW0uc2VsZWN0ZWQtaXRlbSB7XFxuICAgIGJvcmRlci1jb2xvcjogI2ZmNTUwMVxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbS5zZWxlY3RlZC1pdGVtOmFmdGVyIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmNTUwMTtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMCc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIGhlaWdodDogMjdweDtcXG4gICAgd2lkdGg6IDI5cHg7XFxuICAgIGZvbnQtc2l6ZTogMTlweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIxcHg7XFxuICAgIHBhZGRpbmctdG9wOiAycHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0gLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbSB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlblxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmFjdGlvbi1zaG93LXBvcHVwIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmFjdGlvbi1zaG93LXBvcHVwPnNwYW46YmVmb3JlIHtcXG4gICAgY29udGVudDogJysnO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0ge1xcbiAgICBmbG9hdDogcmlnaHQ7XFxuICAgIG1hcmdpbjogMjBweCAwIDBcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluayB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luOiAyNnB4IDVweCAwIDBcXG59XFxuXFxuLmNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAuc3RlcC10aXRsZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAubm8tcXVvdGVzLWJsb2NrIHtcXG4gICAgbWFyZ2luOiAyMHB4IDBcXG59XFxuXFxuLm1ldGhvZHMtc2hpcHBpbmcgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnkge1xcbiAgICBtYXJnaW46IDIwcHggMCAwXFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGhlYWQgdGgge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgdGQge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAyMHB4XFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgIHdpZHRoOiAyMHB4XFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQge1xcbiAgICBib3JkZXItdG9wOiBub25lXFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgLmNvbC1wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDBcXG59XFxuXFxuLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCB0Ym9keSAucm93LWVycm9yIHRkIHtcXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAwXFxufVxcblxcbi5jaGVja291dC1zaGlwcGluZy1tZXRob2Qge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLnNoaXBwaW5nLXBvbGljeS1ibG9jay5maWVsZC10b29sdGlwIHtcXG4gICAgdG9wOiAxMnB4XFxufVxcblxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgY3Vyc29yOiBwb2ludGVyXFxufVxcblxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb246YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgIHdpZHRoOiA0MjBweDtcXG4gICAgdG9wOiAzMHB4XFxufVxcblxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24ge1xcbiAgICBwYWRkaW5nOiAwIDMwcHhcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdCB7XFxuICAgIHRvcDogMTBweDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0OmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi1jb250ZW50IHtcXG4gICAgbGluZS1oZWlnaHQ6IDI3cHhcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tY29udGVudCAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDBcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcC10byxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwLXZpYSB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IHtcXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcXG4gICAgcGFkZGluZzogMjJweCAzMHB4XFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeT4udGl0bGUge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLm1hcmsgLnZhbHVlIHtcXG4gICAgY29sb3I6ICM2NjY7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuZ3JhbmQuaW5jbCsuZ3JhbmQuZXhjbCAubWFyayxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLmdyYW5kLmluY2wrLmdyYW5kLmV4Y2wgLmFtb3VudCB7XFxuICAgIGJvcmRlci10b3A6IDA7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBwYWRkaW5nLXRvcDogMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLmdyYW5kLmluY2wrLmdyYW5kLmV4Y2wgLm1hcmsgc3Ryb25nLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAuZ3JhbmQuaW5jbCsuZ3JhbmQuZXhjbCAuYW1vdW50IHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5ub3QtY2FsY3VsYXRlZCB7XFxuICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLml0ZW1zLWluLWNhcnQ+LnRpdGxlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDA7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydD4udGl0bGU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydD4udGl0bGU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTJweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogM3B4IDAgMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydD4udGl0bGU6YWZ0ZXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDEwcHhcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5pdGVtcy1pbi1jYXJ0Pi50aXRsZSBzdHJvbmcge1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydC5hY3RpdmU+LnRpdGxlOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLml0ZW1zLWluLWNhcnQgLnByb2R1Y3Qge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5taW5pY2FydC1pdGVtcy13cmFwcGVyIHtcXG4gICAgbWFyZ2luOiAwIC0xNXB4IDAgMDtcXG4gICAgbWF4LWhlaWdodDogMzcwcHg7XFxuICAgIHBhZGRpbmc6IDE1cHggMTVweCAwIDA7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4uY29sdW1uLm1haW4gLm9wYy1ibG9jay1zdW1tYXJ5IC5wcm9kdWN0LWl0ZW0ge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmctbGVmdDogMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1pdGVtLWlubmVyIHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAucHJvZHVjdC1pdGVtIC5wcm9kdWN0LWl0ZW0tbmFtZS1ibG9jayB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAuc3VidG90YWwge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAucHJpY2Uge1xcbiAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xcbiAgICBmb250LXNpemU6IDFyZW1cXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAtMXB4IDAgMDtcXG4gICAgcGFkZGluZzogMTVweCAwIDA7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSAuYWN0aW9uIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5hdXRoZW50aWNhdGlvbi1kcm9wZG93biB7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3hcXG59XFxuXFxuLmF1dGhlbnRpY2F0aW9uLWRyb3Bkb3duIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgcGFkZGluZzogMjVweFxcbn1cXG5cXG4uYXV0aGVudGljYXRpb24td3JhcHBlciB7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgbWFyZ2luLXRvcDogLTYwcHg7XFxuICAgIG1heC13aWR0aDogNTAlO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLl9oYXMtYXV0aC1zaG93biAuYXV0aGVudGljYXRpb24td3JhcHBlciB7XFxuICAgIHotaW5kZXg6IDkwMFxcbn1cXG5cXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmJsb2NrLXRpdGxlIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGJvcmRlci1ib3R0b206IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9jay10aXRsZSBzdHJvbmcge1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1hdXRoZW50aWNhdGlvbiAuZmllbGQgLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IHtcXG4gICAgcGFkZGluZy10b3A6IDI1cHg7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10ge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10gdWwge1xcbiAgICBsaXN0LXN0eWxlOiBub25lO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10gLmZpZWxkIC5jb250cm9sLFxcbi5ibG9jay1hdXRoZW50aWNhdGlvbiAuYmxvY2tbY2xhc3NdIC5maWVsZCAubGFiZWwge1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10rLmJsb2NrIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjMWMxYzE7XFxuICAgIG1hcmdpbi10b3A6IDQwcHg7XFxuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10rLmJsb2NrOjpiZWZvcmUge1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xcbiAgICBtYXJnaW46IC0xOXB4IDAgMCAtMThweDtcXG4gICAgbWluLXdpZHRoOiAzNnB4O1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGNvbG9yOiAjYzFjMWMxO1xcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gICAgcGFkZGluZzogMCAuMnJlbTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICAgIHRvcDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnN0ZXAtdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2Q6Zmlyc3QtY2hpbGQgLnBheW1lbnQtbWV0aG9kLXRpdGxlIHtcXG4gICAgYm9yZGVyLXRvcDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLl9hY3RpdmUgLnBheW1lbnQtbWV0aG9kLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kKy5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIHtcXG4gICAgcGFkZGluZzogMjBweCAwO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAucGF5bWVudC1pY29uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5hY3Rpb24taGVscCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luLWxlZnQ6IDVweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBwYWRkaW5nOiAwIDAgMjBweCAyMnB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtY29udGVudCAuZmllbGRzZXQ6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LWdyb3VwKy5wYXltZW50LWdyb3VwIC5zdGVwLXRpdGxlIHtcXG4gICAgbWFyZ2luOiAyMHB4IDAgMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmZpZWxkLXNlbGVjdC1iaWxsaW5nLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuYmlsbGluZy1hZGRyZXNzLWZvcm0ge1xcbiAgICBtYXgtd2lkdGg6IDUwMHB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAucHJpbWFyeSAuYWN0aW9uLXVwZGF0ZSB7XFxuICAgIG1hcmdpbi1yaWdodDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYmlsbGluZy1hZGRyZXNzLWRldGFpbHMge1xcbiAgICBsaW5lLWhlaWdodDogMjdweDtcXG4gICAgcGFkZGluZzogMCAwIDAgMjNweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLW5vdGUrLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyB7XFxuICAgIG1hcmdpbi10b3A6IDIwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC1pZnJhbWUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5uby1wYXltZW50cy1ibG9jayB7XFxuICAgIG1hcmdpbjogMjBweCAwXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24uX2FjdGl2ZSAucGF5bWVudC1vcHRpb24tdGl0bGUgLmFjdGlvbi10b2dnbGU6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24uX2NvbGxhcHNpYmxlIC5wYXltZW50LW9wdGlvbi10aXRsZSB7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLl9jb2xsYXBzaWJsZSAucGF5bWVudC1vcHRpb24tY29udGVudCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbi10aXRsZSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBwYWRkaW5nOiAyMHB4IDBcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbi10aXRsZSAuYWN0aW9uLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLXRpdGxlIC5hY3Rpb24tdG9nZ2xlOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLXRpdGxlIC5hY3Rpb24tdG9nZ2xlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbi10aXRsZSAuYWN0aW9uLXRvZ2dsZTphY3RpdmU6YWZ0ZXIge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nOiAwIDAgMjBweCAyMnB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24taW5uZXIge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgLml0ZW0ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICAgIG1hcmdpbjogMCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgLml0ZW0uX2FjdGl2ZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jcmVkaXQtY2FyZC10eXBlcyAuaXRlbS5fYWN0aXZlIGltZyB7XFxuICAgIC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMCUpXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgLml0ZW0uX2luYWN0aXZlIHtcXG4gICAgb3BhY2l0eTogLjRcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jcmVkaXQtY2FyZC10eXBlcyAuaXRlbSBzcGFuIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgaW1nIHtcXG4gICAgLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjZzIGVhc2VcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAuZmllbGRzPi55ZWFyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1cHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAuZmllbGRzIC5zZWxlY3Qge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcXG4gICAgcGFkZGluZy1yaWdodDogNXB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2NhcmQgLm1vbnRoIC5zZWxlY3Qge1xcbiAgICB3aWR0aDogMTQwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAueWVhciAuc2VsZWN0IHtcXG4gICAgd2lkdGg6IDgwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAubnVtYmVyIC5pbnB1dC10ZXh0IHtcXG4gICAgd2lkdGg6IDIyNXB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2NhcmQ+LmZpZWxkLmN2dj4uY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcGFkZGluZy1yaWdodDogMjBweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNjYXJkIC5jdnYgLmxhYmVsIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAuY3Z2IC5pbnB1dC10ZXh0IHtcXG4gICAgd2lkdGg6IDU1cHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZC5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cC5ncm91cC0yIC5maWVsZCB7XFxuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnRcXG59XFxuXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmNoZWNrb3V0LWFncmVlbWVudHMge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdyB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxcbn1cXG5cXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1pdGVtcyB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4XFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW1zIC5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW1zIC5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW0tdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAwXFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnQtaXRlbS1jb250ZW50IHtcXG4gICAgb3ZlcmZsb3c6IGF1dG9cXG59XFxuXFxuLmxvZ2luLWNvbnRhaW5lciAuYmxvY2stbmV3LWN1c3RvbWVyIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtYXJnaW4tdG9wOiAyNXB4XFxufVxcblxcbi5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5ibG9jay10aXRsZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtXFxufVxcblxcbi5sb2dpbi1jb250YWluZXIgLmZpZWxkc2V0OmFmdGVyIHtcXG4gICAgbWFyZ2luOiAxMHB4IDAgMDtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWhhc3JlcXVpcmVkKTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICAgIHdvcmQtc3BhY2luZzogbm9ybWFsO1xcbiAgICBjb2xvcjogI2UwMmIyNztcXG4gICAgZm9udC1zaXplOiAxLjJyZW1cXG59XFxuXFxuLmxvZ2luLWNvbnRhaW5lciAuZmllbGRzZXQ6YWZ0ZXIge1xcbiAgICBtYXJnaW4tdG9wOiAzNXB4XFxufVxcblxcbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzPi5pdGVtIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3Nlcz4uaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyAuaXRlbS5hY3Rpb25zIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5mb3JtLWFkZHJlc3MtZWRpdCAjcmVnaW9uX2lkIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS1lZGl0LWFjY291bnQgLmZpZWxkc2V0LnBhc3N3b3JkIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS1jcmVhdGUtYWNjb3VudCAuZmllbGRzZXQtZnVsbG5hbWUgLmZpZWxkcyAuZmllbGQge1xcbiAgICBmbG9hdDogbm9uZVxcbn1cXG5cXG4uYWNjb3VudCAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5hY2NvdW50IC5tZXNzYWdlcyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweFxcbn1cXG5cXG4uYWNjb3VudCAuY29sdW1uLm1haW4gaDIge1xcbiAgICBtYXJnaW4tdG9wOiAwXFxufVxcblxcbi5hY2NvdW50IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xcbiAgICBtYXJnaW4tdG9wOiA0MHB4XFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTRcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXI6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmFjY291bnQgLmRhdGEudGFibGUgLmNvbC5hY3Rpb25zIC5hY3Rpb24uZGVsZXRlLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5kYXRhLnRhYmxlIC5jb2wuYWN0aW9ucyAuYWN0aW9uLmRlbGV0ZSxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbi5kZWxldGUge1xcbiAgICBjb2xvcjogI2QxMDAyOVxcbn1cXG5cXG4uY29sdW1uLm1haW4gLmJsb2NrOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jayAudGl0bGUge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5ibG9jayAudGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIG1hcmdpbi10b3A6IDJyZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW1cXG59XFxuXFxuLmJsb2NrIHA6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYmxvY2sgLmJveC1hY3Rpb25zIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cXG59XFxuXFxuLmZpZWxkLnBhc3N3b3JkIC5jb250cm9sIC5tYWdlLWVycm9yIHtcXG4gICAgLW1zLWZsZXgtb3JkZXI6IDI7XFxuICAgIC13ZWJraXQtb3JkZXI6IDI7XFxuICAgIG9yZGVyOiAyXFxufVxcblxcbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCAuaW5wdXQtdGV4dCB7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xcbiAgICAtd2Via2l0LW9yZGVyOiAwO1xcbiAgICBvcmRlcjogMDtcXG4gICAgei1pbmRleDogMlxcbn1cXG5cXG4ucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nOiAwIDlweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5wYXNzd29yZC1zdHJlbmd0aC1tZXRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgei1pbmRleDogLTFcXG59XFxuXFxuLnBhc3N3b3JkLW5vbmUgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyOmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5wYXNzd29yZC13ZWFrIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlcjpiZWZvcmUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZmFlO1xcbiAgICB3aWR0aDogMjUlXFxufVxcblxcbi5wYXNzd29yZC1tZWRpdW0gLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyOmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmQ2YjM7XFxuICAgIHdpZHRoOiA1MCVcXG59XFxuXFxuLnBhc3N3b3JkLXN0cm9uZyAucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXI6YmVmb3JlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M1ZWVhYztcXG4gICAgd2lkdGg6IDc1JVxcbn1cXG5cXG4ucGFzc3dvcmQtdmVyeS1zdHJvbmcgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyOmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM4MWI1NjI7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5jb250cm9sLmNhcHRjaGEtaW1hZ2Uge1xcbiAgICBtYXJnaW4tdG9wOiAxMHB4XFxufVxcblxcbi5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4ub3JkZXItcHJvZHVjdHMtdG9vbGJhciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ub3JkZXItcHJvZHVjdHMtdG9vbGJhciAudG9vbGJhci1hbW91bnQge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2stYmFsYW5jZSAucHJpY2Uge1xcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcXG4gICAgZm9udC1zaXplOiAzLjJyZW07XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbGluZS1oZWlnaHQ6IDMycHhcXG59XFxuXFxuLnRhYmxlLWRvd25sb2FkYWJsZS1wcm9kdWN0cyAucHJvZHVjdC1uYW1lIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4XFxufVxcblxcbi50YWJsZS1kb3dubG9hZGFibGUtcHJvZHVjdHMgLmFjdGlvbi5kb3dubG9hZCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi50YWJsZS1kb3dubG9hZGFibGUtcHJvZHVjdHMgLmFjdGlvbi5kb3dubG9hZDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3QtYWRkLWZvcm0ge1xcbiAgICBjbGVhcjogYm90aDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAuZmllbGQucXR5IHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uc2FtcGxlcy1pdGVtLXRpdGxlIHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIG1hcmdpbjogMCAwIDEwcHhcXG59XFxuXFxuLnNhbXBsZXMtaXRlbSB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHhcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3QtYWRkLWZvcm0gLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZC5kb3dubG9hZHM+LmNvbnRyb2wge1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzIC5wcmljZS1jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAucHJpY2UtY29udGFpbmVyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICcgKyAnO1xcbiAgICBkaXNwbGF5OiBpbmxpbmVcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAucHJpY2UtZXhjbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGlubGluZVxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzIC5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICcgKCcgYXR0cihkYXRhLWxhYmVsKSAnOiAnXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMgLnByaWNlLWV4Y2x1ZGluZy10YXg6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnKSdcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAucHJpY2UtaW5jbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGlubGluZTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAuZmllbGQuY2hvaWNlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAuZmllbGQuY2hvaWNlIGlucHV0IHtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDJweFxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzIC5maWVsZC5kb3dubG9hZHMtYWxsIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMgLnNhbXBsZS5saW5rIHtcXG4gICAgZmxvYXQ6IHJpZ2h0XFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMtYWxsIC5sYWJlbCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzLWFsbCAubGFiZWw6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmZpZWxkLmRvd25sb2Fkcy1hbGwgLmxhYmVsOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMtYWxsIC5sYWJlbDphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmZpZWxkLmRvd25sb2Fkcy1hbGwgaW5wdXQge1xcbiAgICBvcGFjaXR5OiAwXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMuZG93bmxvYWRzLW5vLXNlcGFyYXRlbHkgLmZpZWxkLmNob2ljZSB7XFxuICAgIHBhZGRpbmctbGVmdDogMFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5naWZ0Y2FyZC1hbW91bnQge1xcbiAgICBib3JkZXItdG9wOiAxcHggI2MxYzFjMSBzb2xpZDtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLmdpZnRjYXJkLWFtb3VudCAuZmllbGQ6bGFzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4ICFpbXBvcnRhbnRcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1naWZ0Y2FyZCAucHJvZHVjdC1pbmZvLW1haW4gLnByaWNlLWJveCAub2xkLXByaWNlIHtcXG4gICAgZm9udC1zaXplOiAyMHB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1tYWluIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lci5wcmljZS1maW5hbD5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWw+c3BhbjpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWwgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMjJweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJpY2UtYm94Ky5naWZ0Y2FyZC5mb3JtIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4ICNjMWMxYzEgc29saWQ7XFxuICAgIHBhZGRpbmctdG9wOiAxNXB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1tYWluIC5hbGVydCB7XFxuICAgIGNsZWFyOiBsZWZ0XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1zdG9jay1za3Uge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWFkZC1mb3JtIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGVhcjogbm9uZTtcXG4gICAgcGFkZGluZy10b3A6IDBcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1naWZ0Y2FyZCAucHJvZHVjdC1hZGQtZm9ybSAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkOm5vdCgudGV4dCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICBtYXJnaW4tdG9wOiAyMHB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLmdpZnRjYXJkLmZvcm0ge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcmljZS1ib3gge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1wcmljZSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmdpZnRjYXJkLWFjY291bnQgLnBsZWFzZS13YWl0IHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZ2lmdGNhcmQtYWNjb3VudCAuZm9ybS1naWZ0Y2FyZC1yZWRlZW0gLmdpZnRjYXJkLmluZm8ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZm9ybS1naWZ0Y2FyZC1hY2NvdW50IHtcXG4gICAgbWF4LXdpZHRoOiA1MDBweFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmZvcm0tZ2lmdGNhcmQtYWNjb3VudCAuZmllbGQge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZ2lmdGNhcmQtYWNjb3VudC1pbmZvIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmdpZnRjYXJkLWFjY291bnQtaW5mbyAuZ2lmdGNhcmQtYWNjb3VudC1udW1iZXIge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5naWZ0LW1lc3NhZ2UgLmZpZWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uZ2lmdC1tZXNzYWdlIC5maWVsZCAubGFiZWwge1xcbiAgICBjb2xvcjogIzY2NjtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uZ2lmdC1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAyMHB4IDBcXG59XFxuXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZ2lmdC1vcHRpb25zLXRpdGxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uZ2lmdC1vcHRpb25zLWNvbnRlbnQgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uZ2lmdC1zdW1tYXJ5IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBtYXJnaW4tdG9wOiAxMHB4XFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24ge1xcbiAgICBtYXJnaW46IDAgMCAwIDIwcHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0LFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdD5zcGFuLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmJlZm9yZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE4cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgY29udGVudDogJ1xcXFxFNjAxJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmhvdmVyOmJlZm9yZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmFjdGl2ZTpiZWZvcmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3NTc1NzVcXG59XFxuXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnXFxufVxcblxcbi5hY3Rpb24tZ2lmdCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hY3Rpb24tZ2lmdDphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWN0aW9uLWdpZnQ6aG92ZXI6YWZ0ZXIge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uYWN0aW9uLWdpZnQ6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6ICM3NTc1NzVcXG59XFxuXFxuLmFjdGlvbi1naWZ0LmFjdGl2ZTphZnRlcixcXG4uYWN0aW9uLWdpZnQuX2FjdGl2ZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9ucy10b29sYmFyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmdpZnQtc3VtbWFyeSAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmdpZnQtY29udGVudCB7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGNsZWFyOiBsZWZ0O1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcXG4gICAgcGFkZGluZzogMjBweCAwO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5naWZ0LWNvbnRlbnQuX2FjdGl2ZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0tZ2lmdC5fYWN0aXZlIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjMWMxYzFcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1naWZ0IC5hY3Rpb24ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDBcXG59XFxuXFxuLmdpZnQtaXRlbS1ibG9jayB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmdpZnQtaXRlbS1ibG9jay5fYWN0aXZlIC50aXRsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLmdpZnQtaXRlbS1ibG9jayAudGl0bGUge1xcbiAgICBjb2xvcjogIzE5NzljMztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDE1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZ2lmdC1pdGVtLWJsb2NrIC50aXRsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjODU4NTg1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uZ2lmdC1pdGVtLWJsb2NrIC50aXRsZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5naWZ0LWl0ZW0tYmxvY2sgLmNvbnRlbnQge1xcbiAgICBwYWRkaW5nOiAxMHB4IDAgMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5vcmRlci1naWZ0LW1lc3NhZ2UgZHQ6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlIGR0OmFmdGVyIHtcXG4gICAgY29udGVudDogJydcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAuaXRlbS1tZXNzYWdlLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZSAuaXRlbS1tZXNzYWdlIHtcXG4gICAgY2xlYXI6IGxlZnRcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAuaXRlbS1vcHRpb25zIGR0LFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZSAuaXRlbS1vcHRpb25zIGR0IHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmdpZnQtbWVzc2FnZXMtb3JkZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9ucy10b29sYmFyOm5vdCg6bGFzdC1jaGlsZCksXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbnMtdG9vbGJhcjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweFxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmZpZWxkc2V0IC5uZXN0ZWQgLmZpZWxkOm5vdCguY2hvaWNlKSAuY29udHJvbCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLm5lc3RlZCAuZmllbGQ6bm90KC5jaG9pY2UpIC5jb250cm9sIHtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLnRhYmxlLWdpZnRyZWdpc3RyeS1pdGVtcyAucHJvZHVjdC1pbWFnZSB7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcXG4gICAgZmxvYXQ6IGxlZnRcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuZm9ybS5naWZ0cmVnaXN0cnkgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAxNXB4IDAgNXB4O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuZmllbGQge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wge1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDYwcHhcXG59XFxuXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCAuZmllbGRzLXNwZWNpZmljLW9wdGlvbnMgLmZpZWxkOm50aC1sYXN0LW9mLXR5cGUoMSkge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jay1naWZ0cmVnaXN0cnkgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbjogMTdweCAwIDBcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQgLml0ZW0tb3B0aW9ucyAuaXRlbS12YWx1ZSB7XFxuICAgIG1hcmdpbjogMCAwIDI1cHhcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLml0ZW0gLmNvbCB7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyB0aCB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjXFxufVxcblxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5jb2wge1xcbiAgICBwYWRkaW5nOiAyMHB4IDExcHggMTBweFxcbn1cXG5cXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAuY29sIC5wcmljZS1ib3gge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLmNvbCAucHJpY2Utd3JhcHBlciB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAucHJvZHVjdCAuaXRlbS1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWF4LXdpZHRoOiA2NXB4O1xcbiAgICBwYWRkaW5nOiAxMHB4IDBcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDAgMCA1cHhcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmcgLmxhYmVsIHtcXG4gICAgbWFyZ2luOiAwIDAgOHB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmcgLmZpZWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1pbmZvIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICBtYXJnaW46IDIwcHggMFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1saXN0IHtcXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG4gICAgbWFyZ2luOiAyMHB4IDAgMTBweDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1saXN0IC5uby1pbWFnZSB7XFxuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWxpc3QgLm5vLWltYWdlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1saXN0IC5uby1pbWFnZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDIycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xcbiAgICBjb2xvcjogIzQ5NDk0OTtcXG4gICAgY29udGVudDogJ1xcXFxFNjJBJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWxpc3QgLm5vLWltYWdlOmFmdGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctcHJldmlldyxcXG4uZ2lmdC13cmFwcGluZy1pdGVtPnNwYW4ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctaXRlbSB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMTBweCAxMHB4IDBcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWl0ZW0uX2FjdGl2ZSBzcGFuOmJlZm9yZSB7XFxuICAgIGJvcmRlcjogM3B4IHNvbGlkICMzMzM7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWl0ZW0+c3BhbiB7XFxuICAgIGhlaWdodDogNHJlbTtcXG4gICAgd2lkdGg6IDRyZW1cXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUge1xcbiAgICBtYXJnaW46IDEwcHggMFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZSB7XFxuICAgIG1hcmdpbjogLTVweCAwIDAgNXB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzU3NTc1XFxufVxcblxcbi5naWZ0LW9wdGlvbnMtY29udGVudCAuZmllbGRzZXQgLmZpZWxkIHtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctc3VtbWFyeSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDdyZW1cXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctc3VtbWFyeSAuZ2lmdC13cmFwcGluZy10aXRsZSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5vcGMtd3JhcHBlciAuZmllbGRzZXQuZ2lmdC1tZXNzYWdlIC5maWVsZC5naWZ0LXdyYXBwaW5nIHtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5kYXRhLnRhYmxlIC5naWZ0LXdyYXBwaW5nLFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyB7XFxuICAgIG1hcmdpbjogMjBweCAwIDBcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5kYXRhLnRhYmxlIC5naWZ0LXdyYXBwaW5nIC50aXRsZSxcXG4udGFibGUtb3JkZXItaXRlbXMgLmdpZnQtd3JhcHBpbmcgLnRpdGxlIHtcXG4gICAgZmxvYXQ6IG5vbmVcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5kYXRhLnRhYmxlIC5naWZ0LXdyYXBwaW5nIC5jb250ZW50LFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyAuY29udGVudCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmRhdGEudGFibGUgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ+aW1nLFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyAuY29udGVudD5pbWcge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luOiAwIDEwcHggMCAwO1xcbiAgICBtYXgtaGVpZ2h0OiA1MHB4O1xcbiAgICBtYXgtd2lkdGg6IDUwcHhcXG59XFxuXFxuLmdpZnQtc3VtbWFyeSAucHJpY2UtYm94LFxcbi5naWZ0LW9wdGlvbnMgLnByaWNlLWJveCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyMnB4XFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLnJlZ3VsYXItcHJpY2U6YmVmb3JlLFxcbi5naWZ0LW9wdGlvbnMgLnJlZ3VsYXItcHJpY2U6YmVmb3JlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSAnOiAnXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLnJlZ3VsYXItcHJpY2UgLnByaWNlLFxcbi5naWZ0LW9wdGlvbnMgLnJlZ3VsYXItcHJpY2UgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ub3JkZXItb3B0aW9ucyAuaXRlbSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4XFxufVxcblxcbi5vcmRlci1vcHRpb25zIC5wcm9kdWN0IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ub3JkZXItb3B0aW9ucyAucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgcGFkZGluZy1yaWdodDogMTBweFxcbn1cXG5cXG4ub3JkZXItb3B0aW9ucyAuZ2lmdC13cmFwcGluZyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCB7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi50YWJsZS5ncm91cGVkIC5yb3ctdGllci1wcmljZT50ZCB7XFxuICAgIGJvcmRlci10b3A6IDBcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLmNvbC5pdGVtIHtcXG4gICAgd2lkdGg6IDkwJVxcbn1cXG5cXG4udGFibGUuZ3JvdXBlZCAuY29sLnF0eSB7XFxuICAgIHdpZHRoOiAxMCVcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi50YWJsZS5ncm91cGVkIC5wcmljZS1ib3ggcCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4udGFibGUuZ3JvdXBlZCAucHJpY2UtYm94IC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWxcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLnN0b2NrLnVuYXZhaWxhYmxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnByb2R1Y3QtaW5mby1tYWluIC5hbGVydCB7XFxuICAgIGNsZWFyOiBsZWZ0XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWRkaXRpb25hbCxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmZpZWxkLm1lc3NhZ2Uge1xcbiAgICBtYXJnaW4tdG9wOiAyMHB4XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSB7XFxuICAgIHRvcDogNHB4XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLmFkZCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLmFkZD5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24uYWRkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE4cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjFDJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24uYWRkOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLmFkZDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmZpbHRlci5ibG9jayB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmZpbHRlci10aXRsZSBzdHJvbmcge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgI2ZmZiwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuMyk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGVmdDogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIHBhZGRpbmc6IDdweCAxMHB4O1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiAwO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5maWx0ZXItdGl0bGUgc3Ryb25nW2RhdGEtY291bnRdOmFmdGVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQ6ICNmZjU1MDE7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWNvdW50KTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IC44ZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcbiAgICBtYXJnaW46IDAgNXB4O1xcbiAgICBtaW4td2lkdGg6IDFlbTtcXG4gICAgcGFkZGluZzogMnB4XFxufVxcblxcbi5maWx0ZXItdGl0bGUgc3Ryb25nLmRpc2FibGVkIHtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLmZpbHRlciAuYmxvY2stc3VidGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMWVtO1xcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggMjBweFxcbn1cXG5cXG4uZmlsdGVyLXN1YnRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZmlsdGVyLWN1cnJlbnQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmZpbHRlci1jdXJyZW50IC5pdGVtcyB7XFxuICAgIHBhZGRpbmc6IDVweCAxMHB4XFxufVxcblxcbi5maWx0ZXItY3VycmVudCAuaXRlbSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTdweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlIHtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG59XFxuXFxuLmZpbHRlci1jdXJyZW50IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgbGVmdDogLTJweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IC0xcHhcXG59XFxuXFxuLmZpbHRlci1hY3Rpb25zIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcXG4gICAgcGFkZGluZzogMCAxMHB4XFxufVxcblxcbi5maWx0ZXItbGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5maWx0ZXItbGFiZWw6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5maWx0ZXItdmFsdWUge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLWl0ZW0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLXRpdGxlIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAwIDEwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbiAgICB6LWluZGV4OiAxO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy10aXRsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEzcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy10aXRsZTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDEzcHg7XFxuICAgIHRvcDogMTJweFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtdGl0bGU6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwMFxcbn1cXG5cXG4uYWN0aXZlPi5maWx0ZXItb3B0aW9ucy10aXRsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLWNvbnRlbnQge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHhcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLWNvbnRlbnQgLml0ZW0ge1xcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XFxuICAgIG1hcmdpbjogMTBweCAwXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IGEge1xcbiAgICBjb2xvcjogIzQ5NDk0OTtcXG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XFxuICAgIG1hcmdpbi1yaWdodDogLTVweDtcXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDdweFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtY29udGVudCBhOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IGE6aG92ZXIrLmNvdW50IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlOFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtY29udGVudCAuY291bnQge1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDVweFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtY29udGVudCAuY291bnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJygnXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IC5jb3VudDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcpJ1xcbn1cXG5cXG4ubWFwLXBvcHVwLXdyYXBwZXIucG9wdXAgLmFjdGlvbi5jbG9zZSB7XFxuICAgIHRvcDogMTBweFxcbn1cXG5cXG4ubWFwLXBvcHVwIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FkYWRhZDtcXG4gICAgcGFkZGluZzogMjJweDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBsaW5lYXI7XFxuICAgIGxlZnQ6IDA7XFxuICAgIG1hcmdpbi10b3A6IDEwcHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICB6LWluZGV4OiAxMDAxO1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWhlYWRlciB7XFxuICAgIG1hcmdpbjogMCAwIDI1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHhcXG59XFxuXFxuLm1hcC1wb3B1cCAucG9wdXAtaGVhZGVyIC50aXRsZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW1cXG59XFxuXFxuLm1hcC1wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgcmlnaHQ6IDEwcHg7XFxuICAgIHRvcDogMTBweFxcbn1cXG5cXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29sb3I6ICM4YzhjOGM7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzczNzM3M1xcbn1cXG5cXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2U6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzM3MzczXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpmb2N1cyxcXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2U6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2UuZGlzYWJsZWQsXFxuLm1hcC1wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm1hcC1wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5tYXAtcG9wdXAuYWN0aXZlIHtcXG4gICAgb3BhY2l0eTogMVxcbn1cXG5cXG4ubWFwLXBvcHVwIC5tYXAtaW5mby1wcmljZSB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm1hcC1wb3B1cCAubWFwLWluZm8tcHJpY2UgLnByaWNlLWJveCB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm1hcC1wb3B1cCAubWFwLWluZm8tcHJpY2UgLnByaWNlLWJveCAubGFiZWw6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5tYXAtcG9wdXAgLmFjdGlvbi5wcmltYXJ5IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi5tYXAtcG9wdXAgLm1hcC1tc3JwIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ubWFwLXBvcHVwIC5hY3R1YWwtcHJpY2Uge1xcbiAgICBtYXJnaW46IDNweCAwIDE1cHhcXG59XFxuXFxuLm1hcC1wb3B1cCAucmVndWxhci1wcmljZSAucHJpY2UtbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWhlYWRlciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1hcC1vbGQtcHJpY2Uge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1hcC1vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaFxcbn1cXG5cXG4ubWFwLW9sZC1wcmljZSxcXG4ucHJvZHVjdC1pdGVtIC5tYXAtb2xkLXByaWNlLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLm1hcC1zaG93LWluZm8ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1pbi13aWR0aDogMTByZW1cXG59XFxuXFxuLm1hcC1vbGQtcHJpY2U6bm90KDpsYXN0LWNoaWxkKSxcXG4ucHJvZHVjdC1pdGVtIC5tYXAtb2xkLXByaWNlOm5vdCg6bGFzdC1jaGlsZCksXFxuLnByb2R1Y3QtaW5mby1wcmljZSAubWFwLXNob3ctaW5mbzpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtY29udGFpbmVyPnNwYW4sXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWNvbnRhaW5lcj5zcGFuIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5tYXAtZm9ybS1hZGR0b2NhcnQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubWFwLWZvcm0tYWRkdG9jYXJ0IGltZyB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDAgYXV0b1xcbn1cXG5cXG5idXR0b24ubWFwLXNob3ctaW5mbyB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86Zm9jdXMsXFxuYnV0dG9uLm1hcC1zaG93LWluZm86YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvLmRpc2FibGVkLFxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gYnV0dG9uLm1hcC1zaG93LWluZm8ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86aG92ZXIsXFxuYnV0dG9uLm1hcC1zaG93LWluZm86YWN0aXZlLFxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvOmZvY3VzIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvLmRpc2FibGVkLFxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gYnV0dG9uLm1hcC1zaG93LWluZm8ge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgbWFyZ2luLXJpZ2h0OiA1JTtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uOmJlZm9yZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uOmFmdGVyIHtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IHRhYmxlXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b246YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24uc3BsaXQge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi50b2dnbGUge1xcbiAgICBmbG9hdDogcmlnaHQ7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24udG9nZ2xlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogIzY2NjtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM2NjY7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi50b2dnbGUuYWN0aXZlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXMge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNHB4O1xcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xcbiAgICB6LWluZGV4OiAxMDA7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxMDAlO1xcbiAgICBib3gtc2hhZG93OiAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE1KVxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtcyBsaSB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogNXB4IDVweCA1cHggMjNweFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtcyBsaTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtczpiZWZvcmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXM6YmVmb3JlIHtcXG4gICAgYm9yZGVyOiA2cHggc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDtcXG4gICAgei1pbmRleDogOTlcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICBib3JkZXI6IDdweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYmJiIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtczpiZWZvcmUge1xcbiAgICBsZWZ0OiAxMHB4O1xcbiAgICB0b3A6IC0xMnB4XFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLml0ZW1zOmFmdGVyIHtcXG4gICAgbGVmdDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24uYWN0aXZlIHtcXG4gICAgb3ZlcmZsb3c6IHZpc2libGVcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbi5hY3RpdmUgLml0ZW1zIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXMge1xcbiAgICBwYWRkaW5nOiA2cHggMDtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjAwJ1xcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB3aWR0aDogMThweFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246YWN0aXZlLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbjpmb2N1cyxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246aG92ZXIge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24udG9nZ2xlOmJlZm9yZSB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzY2NjtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBoZWlnaHQ6IDE1cHg7XFxuICAgIG1hcmdpbjogM3B4IDRweCAwIDBcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uIHtcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0IHtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmVcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24udG9nZ2xlOmFmdGVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24udG9nZ2xlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnRvZ2dsZTpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWRhZGFkO1xcbiAgICBwYWRkaW5nOiAyMnB4O1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm94LXNoYWRvdzogMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGxpbmVhcjtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHotaW5kZXg6IDEwMDE7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3hcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtaGVhZGVyIHtcXG4gICAgbWFyZ2luOiAwIDAgMjVweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTZweFxcbn1cXG5cXG4ud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1oZWFkZXIgLnRpdGxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG4ud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2Uge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICByaWdodDogMTBweDtcXG4gICAgdG9wOiAxMHB4XFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICBjb2xvcjogIzhjOGM4YztcXG4gICAgY29udGVudDogJ1xcXFxFNjE2JztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzM3MzczXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3MzczNzNcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmZvY3VzLFxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZS5kaXNhYmxlZCxcXG4ud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2VbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2Uge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cC5hY3RpdmUge1xcbiAgICBvcGFjaXR5OiAxXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAuYWN0aXZlIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLndpc2hsaXN0Lm92ZXJsYXkge1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgbGluZWFyO1xcbiAgICBiYWNrZ3JvdW5kOiAjOGM4YzhjO1xcbiAgICB6LWluZGV4OiA4OTk7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi53aXNobGlzdC5vdmVybGF5LmFjdGl2ZSB7XFxuICAgIG9wYWNpdHk6IC43O1xcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NzApXFxufVxcblxcbi53aXNobGlzdC5vdmVybGF5LmFjdGl2ZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi53aXNobGlzdC1kcm9wZG93bi5tb3ZlIC5hY3Rpb24udG9nZ2xlLFxcbi53aXNobGlzdC1kcm9wZG93bi5jb3B5IC5hY3Rpb24udG9nZ2xlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLnBhZ2UtbXVsdGlwbGUtd2lzaGxpc3QgLmFjdGlvbnMtdG9vbGJhcj4ucHJpbWFyeSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4ucGFnZS1tdWx0aXBsZS13aXNobGlzdCAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgZmxvYXQ6IHJpZ2h0XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QgLndpc2hsaXN0LW5hbWUtbGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC10aXRsZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweFxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtbm90aWNlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1ub3RpY2UucHJpdmF0ZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1ub3RpY2UucHJpdmF0ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICNhM2EzYTM7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyOSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtdG9vbGJhci1zZWxlY3QsXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXItYWN0aW9ucyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtdG9vbGJhci1zZWxlY3Qge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHhcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXIgLmNvcHkgLmRyb3Bkb3duIHtcXG4gICAgcmlnaHQ6IDBcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXIgLmNvcHkgLmRyb3Bkb3duOmJlZm9yZSB7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiAxMXB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC10b29sYmFyIC5jb3B5IC5kcm9wZG93bjphZnRlciB7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiAxMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1kcm9wZG93bi5tb3ZlIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtZm9ybSAuZm9ybS13aXNobGlzdC1zZWFyY2gge1xcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xcbiAgICBtYXgtd2lkdGg6IDUwMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAudGFibGUtd3JhcHBlciB7XFxuICAgIGJvcmRlci10b3A6IG5vbmVcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LWluZm8taXRlbXMgLmJsb2NrLXRpdGxlIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgZm9udC1zaXplOiAyLjJyZW1cXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LWluZm8taXRlbXMgLmJsb2NrLXRpdGxlPnN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LWluZm8taXRlbXMgLnByb2R1Y3QtaXRlbSB7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1pbmZvLWl0ZW1zIC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBtYXJnaW4tbGVmdDogMjBweFxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm8ge1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm86aG92ZXIgLnNwbGl0IHtcXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZVxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAucHJpY2Utd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1pbmZvLWl0ZW1zIC5zcGxpdCB7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBwYWRkaW5nOiAxMHB4IDA7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlblxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAud2lzaGxpc3QtZHJvcGRvd24gLmNoYW5nZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1pbmZvLWl0ZW1zIC5hY3Rpb24udG93aXNobGlzdCB7XFxuICAgIHBhZGRpbmc6IDEwcHggMFxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAuaW5wdXQtdGV4dC5xdHkge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHhcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5ibG9jay5uZXdzbGV0dGVyIC5mb3JtLnN1YnNjcmliZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuZmllbGRzZXQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIgLmZpZWxkIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay5uZXdzbGV0dGVyIC5maWVsZCAuY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuZmllbGQgLmNvbnRyb2w6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUQnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDhweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay5uZXdzbGV0dGVyIC5maWVsZCAuY29udHJvbDpiZWZvcmUge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGVcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIgaW5wdXQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM1cHhcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIgLnRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuYWN0aW9ucyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIHdpZHRoOiAxJVxcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuYWN0aW9uLnN1YnNjcmliZSB7XFxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMXB4XFxufVxcblxcbi5kYXRhLnN3aXRjaCAuY291bnRlciB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkXFxufVxcblxcbi5kYXRhLnN3aXRjaCAuY291bnRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnKCdcXG59XFxuXFxuLmRhdGEuc3dpdGNoIC5jb3VudGVyOmFmdGVyIHtcXG4gICAgY29udGVudDogJyknXFxufVxcblxcbi5yYXRpbmctc3VtbWFyeSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnJhdGluZy1zdW1tYXJ5IC5yYXRpbmctcmVzdWx0IHtcXG4gICAgd2lkdGg6IDg4cHg7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5yYXRpbmctc3VtbWFyeSAucmF0aW5nLXJlc3VsdDpiZWZvcmUge1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDE7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBjb2xvcjogI2M3YzdjNztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNSc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIHNwZWFrOiBub25lXFxufVxcblxcbi5yYXRpbmctc3VtbWFyeSAucmF0aW5nLXJlc3VsdD5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW5cXG59XFxuXFxuLnJhdGluZy1zdW1tYXJ5IC5yYXRpbmctcmVzdWx0PnNwYW46YmVmb3JlIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAyO1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29udGVudDogJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBzcGVhazogbm9uZVxcbn1cXG5cXG4ucmF0aW5nLXN1bW1hcnkgLnJhdGluZy1yZXN1bHQ+c3BhbiBzcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yYXRpbmctc3VtbWFyeSAubGFiZWwsXFxuLnRhYmxlLXJldmlld3MgLnJhdGluZy1zdW1tYXJ5IC5sYWJlbCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogI2M3YzdjNztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgY29udGVudDogJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdOmZvY3VzK2xhYmVsOmJlZm9yZSxcXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdOmNoZWNrZWQrbGFiZWw6YmVmb3JlIHtcXG4gICAgb3BhY2l0eTogMVxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCBzcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWw6YmVmb3JlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIG9wYWNpdHk6IDBcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWw6aG92ZXI6YmVmb3JlIHtcXG4gICAgb3BhY2l0eTogMVxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbDpob3Zlcn5sYWJlbDpiZWZvcmUge1xcbiAgICBvcGFjaXR5OiAwXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNSB7XFxuICAgIHotaW5kZXg6IDJcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1J1xcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQge1xcbiAgICB6LWluZGV4OiAzXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNDpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMyB7XFxuICAgIHotaW5kZXg6IDRcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0zOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMiB7XFxuICAgIHotaW5kZXg6IDVcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwNScgJ1xcXFxFNjA1J1xcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTEge1xcbiAgICB6LWluZGV4OiA2XFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDUnXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyNScgJ1xcXFxFNjI1JyAnXFxcXEU2MjUnICdcXFxcRTYyNScgJ1xcXFxFNjI1J1xcbn1cXG5cXG4ucHJvZHVjdHMtcmV2aWV3cy10b29sYmFyIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5wcm9kdWN0cy1yZXZpZXdzLXRvb2xiYXIgLnRvb2xiYXItYW1vdW50IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnJldmlldy10b29sYmFyIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjOWM5Yzk7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ucmV2aWV3LXRvb2xiYXI6Zmlyc3QtY2hpbGQge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5yZXZpZXctdG9vbGJhciAucGFnZXMge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M5YzljOTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBhZGRpbmc6IDIwcHggMDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5yZXZpZXctdG9vbGJhciAubGltaXRlciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnJldmlldy1hZGQgLmJsb2NrLXRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeSB7XFxuICAgIGJhY2tncm91bmQ6ICNlZWU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBmb250LXNpemU6IDEuNHJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNnJlbTtcXG4gICAgcGFkZGluZzogN3B4IDE1cHg7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeTpmb2N1cyxcXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjZTJlMmUyO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlMWUxZTE7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5yZXZpZXctZm9ybSAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb25zLXByaW1hcnkge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5maWVsZHNldCAucmV2aWV3LWxlZ2VuZC5sZWdlbmQge1xcbiAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4zO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5maWVsZHNldCAucmV2aWV3LWxlZ2VuZC5sZWdlbmQgc3BhbiB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uZmllbGRzZXQgLnJldmlldy1sZWdlbmQubGVnZW5kIHN0cm9uZyB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5maWVsZHNldCAucmV2aWV3LWZpZWxkLXJhdGluZ3M+LmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbDpiZWZvcmUsXFxuLnJldmlldy1jb250cm9sLXZvdGU6YmVmb3JlIHtcXG4gICAgZm9udC1zaXplOiAzMnB4O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiAxMHB4O1xcbiAgICBsaW5lLWhlaWdodDogMzJweFxcbn1cXG5cXG4ucmV2aWV3LWZpZWxkLXJhdGluZyAubGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5yZXZpZXctZmllbGQtcmF0aW5nIC5jb250cm9sIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4ucmV2aWV3LWxpc3Qge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5yZXZpZXctbGlzdCAuYmxvY2stdGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG4ucmV2aWV3LWl0ZW0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M5YzljOTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAyMHB4IDBcXG59XFxuXFxuLnJldmlldy1pdGVtOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4ucmV2aWV3LWl0ZW06bGFzdC1jaGlsZCB7XFxuICAgIGJvcmRlci13aWR0aDogMFxcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3Mge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlXFxufVxcblxcbi5yZXZpZXctYXV0aG9yIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5yZXZpZXctYXV0aG9yIC5yZXZpZXctZGV0YWlscy12YWx1ZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLnJldmlldy1kYXRlIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5yZXZpZXctdGl0bGUge1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4ucmV2aWV3LWNvbnRlbnQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5wYWdlLW1haW4gLmNvbHVtbiAucmV2aWV3LWFkZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmRhdGEudGFibGUucmV2aWV3cyAucmF0aW5nLXN1bW1hcnkge1xcbiAgICBtYXJnaW4tdG9wOiAtNHB4XFxufVxcblxcbi5jdXN0b21lci5yZXZpZXcudmlldyAucmV2aWV3LnRpdGxlLFxcbi5jdXN0b21lci5yZXZpZXcudmlldyAucmF0aW5ncy5zdW1tYXJ5Lml0ZW1zLFxcbi5jdXN0b21lci5yZXZpZXcudmlldyAucHJvZHVjdC5kZXRhaWxzIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkge1xcbiAgICBtYXJnaW4tYm90dG9tOiA1cHhcXG59XFxuXFxuLnByb2R1Y3RzLndyYXBwZXIubGlzdCAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkge1xcbiAgICBtYXJnaW46IDAgYXV0b1xcbn1cXG5cXG4ucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJhdGluZy1zdW1tYXJ5IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmV2aWV3cy1hY3Rpb25zIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IDExcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yZXZpZXdzLWFjdGlvbnMgYTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucmF0aW5nLXN1bW1hcnksXFxuLmN1c3RvbWVyLXJldmlldyAucmF0aW5nLXN1bW1hcnkge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHhcXG59XFxuXFxuLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIC5pdGVtcyAuaXRlbSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIC5pdGVtcyAuaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4uYmxvY2stcmV2aWV3cy1kYXNoYm9hcmQgLnByb2R1Y3QtbmFtZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYmxvY2stcmV2aWV3cy1kYXNoYm9hcmQgLnByb2R1Y3QtbmFtZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4XFxufVxcblxcbi5ibG9jay1yZXZpZXdzLWRhc2hib2FyZCAucmF0aW5nLXN1bW1hcnkgLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi50YWJsZS1yZXZpZXdzIC5wcm9kdWN0LW5hbWUsXFxuLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIC5wcm9kdWN0LW5hbWUge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi50YWJsZS1yZXZpZXdzIC5yYXRpbmctc3VtbWFyeSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXFxufVxcblxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtbWVkaWEge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzJTtcXG4gICAgbWF4LXdpZHRoOiAyODVweDtcXG4gICAgd2lkdGg6IDMwJVxcbn1cXG5cXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAuY3VzdG9tZXItcmV2aWV3LXJhdGluZyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcgLml0ZW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIC5pdGVtOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5yZXZpZXctdGl0bGUge1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LWNvbnRlbnQge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLnJldmlldy1kYXRlIHtcXG4gICAgY29sb3I6ICNhNmE2YTZcXG59XFxuXFxuLmJsb2NrLXJld2FyZC1pbmZvIC5yZXdhcmQtYmFsYW5jZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5ibG9jay1yZXdhcmQtaW5mbyAucmV3YXJkLXJhdGVzOm5vdCg6bGFzdC1jaGlsZCksXFxuLmJsb2NrLXJld2FyZC1pbmZvIC5yZXdhcmQtbGltaXQ6bm90KDpsYXN0LWNoaWxkKSxcXG4uYmxvY2stcmV3YXJkLWluZm8gLnJld2FyZC1leHBpcmluZzpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweFxcbn1cXG5cXG4uYmxvY2stcmV3YXJkLWluZm8gLnJld2FyZC1yYXRlcyAudGl0bGUsXFxuLmJsb2NrLXJld2FyZC1pbmZvIC5yZXdhcmQtbGltaXQgLnRpdGxlLFxcbi5ibG9jay1yZXdhcmQtaW5mbyAucmV3YXJkLWV4cGlyaW5nIC50aXRsZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcy5ybWEgLm9yZGVyLXRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcy5ybWEgLm9yZGVyLXRpdGxlKy50b29sYmFyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hZGRpdGlvbmFsOmZpcnN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5maWVsZC5jb21tZW50IHtcXG4gICAgbWFyZ2luLXRvcDogNTVweFxcbn1cXG5cXG4uYmxvY2stcmV0dXJucy1jb21tZW50cyAucmV0dXJucy1jb21tZW50cyBkdCxcXG4uYmxvY2stcmV0dXJucy1jb21tZW50cyAucmV0dXJucy1jb21tZW50cyBkZCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYmxvY2stcmV0dXJucy1jb21tZW50cyAucmV0dXJucy1jb21tZW50cyBkdCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLmJsb2NrLXJldHVybnMtY29tbWVudHMgLnJldHVybnMtY29tbWVudHMgZGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxufVxcblxcbi5ibG9jay1yZXR1cm5zLWNvbW1lbnRzIC5yZXR1cm5zLWNvbW1lbnRzIGRkOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jay1yZXR1cm5zLWNvbW1lbnRzIC5maWVsZHNldCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYSB7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBtYXJnaW46IDAgMzBweCAwIDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5tYWdlbnRvLXJtYS1ndWVzdC1jcmVhdGUgLm9yZGVyLWxpbmtzIC5pdGVtIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmY1NTAxO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYTpob3ZlcixcXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmFjdGl2ZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmZvY3VzIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbi5tYWdlbnRvLXJtYS1ndWVzdC1jcmVhdGUgLm9yZGVyLWxpbmtzIC5pdGVtIGEuZGlzYWJsZWQsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5tYWdlbnRvLXJtYS1ndWVzdC1jcmVhdGUgLm9yZGVyLWxpbmtzIC5pdGVtIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5vcmRlci1saW5rcyAuaXRlbSB7XFxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgICBtYXJnaW46IDAgMCAtMXB4XFxufVxcblxcbi5vcmRlci1saW5rcyAuaXRlbSBzdHJvbmcge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgcGFkZGluZzogMCAyMHB4XFxufVxcblxcbi5vcmRlci1saW5rcyAuaXRlbSBhIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcXG4gICAgY29sb3I6ICM2ZDZkNmQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBwYWRkaW5nOiAwIDIwcHhcXG59XFxuXFxuLm9yZGVyLWxpbmtzIC5pdGVtIGE6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xcbiAgICBwYWRkaW5nOiAxMHB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5vcmRlci10aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgICBwYWRkaW5nOiAwIDAgMTBweFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItdGl0bGU+c3Ryb25nIHtcXG4gICAgZm9udC1zaXplOiAyLjRyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLXRpdGxlIC5hY3Rpb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIrLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXI6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zPnRoZWFkPnRyPnRoIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5K3Rib2R5IHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmFjY291bnQgLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmVcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5IHRkIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAyMHB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keSAuY29sLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcXG4gICAgcGFkZGluZy10b3A6IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5IC5jb2wub3B0aW9ucyB7XFxuICAgIHBhZGRpbmc6IDAgMCAxNXB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keT4uaXRlbS1wYXJlbnQgdGQge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keT4uaXRlbS1wYXJlbnQrdHIgdGQge1xcbiAgICBwYWRkaW5nLXRvcDogNXB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keSAuaXRlbS1vcHRpb25zLWNvbnRhaW5lciB0ZCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xcbiAgICBwYWRkaW5nLXRvcDogMFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtb3JkZXItaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtLW9wdGlvbnMgZHQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLml0ZW0tb3B0aW9ucyBkZCB7XFxuICAgIG1hcmdpbjogMCAwIDE1cHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLml0ZW0tb3B0aW9ucyBkZDpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLmxpbmtzIGR0IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtLW9wdGlvbnMubGlua3MgZHQ6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtLW9wdGlvbnMubGlua3MgZGQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgdGhlYWQgLmNvbC5xdHkge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5uYW1lIHtcXG4gICAgcGFkZGluZy10b3A6IDE2cHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmFjdGlvbi5zaG93IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5hY3Rpb24uc2hvdz5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmFjdGlvbi5zaG93OmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmFjdGlvbi5zaG93LmV4cGFuZGVkOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICBmb250LXNpemU6IDEuOHJlbVxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbXMtcXR5IC5pdGVtIHtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbXMtcXR5IC50aXRsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICc6ICdcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnBhZ2VzLWl0ZW1zIC5pdGVtOmZpcnN0LWNoaWxkLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5wYWdlcy1pdGVtcyAuaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLWNvbW1lbnRzIHtcXG4gICAgbWFyZ2luOiAwIDAgNDBweFxcbn1cXG5cXG4uYmxvY2stb3JkZXItZGV0YWlscy1jb21tZW50cyAuY29tbWVudC1kYXRlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uYmxvY2stb3JkZXItZGV0YWlscy1jb21tZW50cyAuY29tbWVudC1jb250ZW50IHtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uYmxvY2stb3JkZXItZGV0YWlscy12aWV3IC5ibG9jay1jb250ZW50IC5ib3gge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcgLmJveC10aXRsZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDBcXG59XFxuXFxuLmJsb2NrLW9yZGVyLWRldGFpbHMtdmlldyAuYm94LWNvbnRlbnQgLnBheW1lbnQtbWV0aG9kIC50aXRsZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLmJsb2NrLW9yZGVyLWRldGFpbHMtdmlldyAuYm94LWNvbnRlbnQgLnBheW1lbnQtbWV0aG9kIC5jb250ZW50IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcgLmJveC1jb250ZW50IC5wYXltZW50LW1ldGhvZCAuY29udGVudD5zdHJvbmcge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcgLmJveC1jb250ZW50IC5wYXltZW50LW1ldGhvZCAuY29udGVudD5zdHJvbmc6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAuYmxvY2stb3JkZXItZGV0YWlscy1naWZ0LW1lc3NhZ2Uge1xcbiAgICBtYXJnaW46IDQwcHggMCAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZSsuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ub3JkZXItdHJhY2tpbmcge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDIwcHggMFxcbn1cXG5cXG4ub3JkZXItdGl0bGUrLm9yZGVyLXRyYWNraW5nIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLm9yZGVyLXRyYWNraW5nIC50cmFja2luZy10aXRsZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ub3JkZXItdHJhY2tpbmcgLnRyYWNraW5nLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDAgNXB4XFxufVxcblxcbi5vcmRlci1hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5vcmRlci1hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbiB7XFxuICAgIG1hcmdpbi1yaWdodDogMzBweFxcbn1cXG5cXG4ub3JkZXItYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbnQge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmZvcm0tb3JkZXJzLXNlYXJjaCAuZmllbGQ6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLXJlb3JkZXIgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbjogMTdweCAwXFxufVxcblxcbi5ibG9jay1yZW9yZGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYmxvY2stcmVvcmRlciAucHJvZHVjdC1pdGVtIC5maWVsZC5pdGVtIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLm1haWx0by5mcmllbmQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjFEJ1xcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5jb250ZW50IHtcXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG4gICAgcGFkZGluZzogMTVweCAwXFxufVxcblxcbi5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLml0ZW0ge1xcbiAgICBtYXJnaW46IDNweCAwIDBcXG59XFxuXFxuLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuaXRlbTpmaXJzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi10b3A6IDBcXG59XFxuXFxuLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuaXRlbSBhLFxcbi5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLml0ZW0+c3Ryb25nIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6ICM1NzU3NTc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBwYWRkaW5nOiA1cHggMThweCA1cHggMTVweFxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtIGEge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuaXRlbSBhOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogI2U4ZThlOFxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtLmN1cnJlbnQgYSxcXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtLmN1cnJlbnQ+c3Ryb25nIHtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZmY1NTAxO1xcbiAgICBjb2xvcjogIzAwMDtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtLmN1cnJlbnQgYSB7XFxuICAgIGJvcmRlci1jb2xvcjogI2ZmNTUwMVxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtIC5kZWxpbWl0ZXIge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDFkMTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMTBweCAxLjhyZW1cXG59XFxuXFxuYm9keSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZcXG59XFxuXFxuLmllOSAucGFnZS13cmFwcGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgbWluLWhlaWdodDogMFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnBhbmVsLndyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmU3MTZlO1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3Mge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHhcXG59XFxuXFxuLmhlYWRlci5wYW5lbD4uaGVhZGVyLmxpbmtzPmxpIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5oZWFkZXIucGFuZWw+LmhlYWRlci5saW5rcz5saSB7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbWFyZ2luOiAwIDAgMCAxNXB4XFxufVxcblxcbi5oZWFkZXIucGFuZWw+LmhlYWRlci5saW5rcz5saT5hIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3M+bGk+YTp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3M+bGk+YTpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3M+bGk+YTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmhlYWRlci5jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubG9nbyB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMCAxMHB4IDQwcHg7XFxuICAgIG1heC13aWR0aDogNTAlO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDVcXG59XFxuXFxuLmxvZ28gaW1nIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnBhZ2UtcHJpbnQgLmxvZ28ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZsb2F0OiBub25lXFxufVxcblxcbi5wYWdlLW1haW4+LnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSsuYWN0aW9uIHtcXG4gICAgbWFyZ2luLXRvcDogMzBweFxcbn1cXG5cXG4uYWN0aW9uLnNraXA6Zm9jdXMge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xcbiAgICBwYWRkaW5nOiAxMHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiAwO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgei1pbmRleDogMTVcXG59XFxuXFxuLmFjdGlvbi1za2lwLXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwgcCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwubm9zY3JpcHQsXFxuLm1lc3NhZ2UuZ2xvYmFsLmNvb2tpZSB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHBhZGRpbmc6IDEycHggMjBweCAxMnB4IDI1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuM3JlbTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZWU5YztcXG4gICAgYm9yZGVyLWNvbG9yOiAjZDZjYThlO1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5ub3NjcmlwdCBhLFxcbi5tZXNzYWdlLmdsb2JhbC5jb29raWUgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5ub3NjcmlwdCBhOmhvdmVyLFxcbi5tZXNzYWdlLmdsb2JhbC5jb29raWUgYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5ub3NjcmlwdCBhOmFjdGl2ZSxcXG4ubWVzc2FnZS5nbG9iYWwuY29va2llIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDFcXG59XFxuXFxuLm1lc3NhZ2UuZ2xvYmFsLmNvb2tpZSB7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICByaWdodDogMDtcXG4gICAgei1pbmRleDogM1xcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwuY29va2llIC5hY3Rpb25zIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwuZGVtbyB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHBhZGRpbmc6IDEycHggMjBweCAxMnB4IDI1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuM3JlbTtcXG4gICAgYmFja2dyb3VuZDogI2ZmMDEwMTtcXG4gICAgYm9yZGVyLWNvbG9yOiBub25lO1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5kZW1vIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwuZGVtbyBhOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1lc3NhZ2UuZ2xvYmFsLmRlbW8gYTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMVxcbn1cXG5cXG4ucGFnZS1mb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiAyNXB4XFxufVxcblxcbi5mb290ZXIuY29udGVudCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2VjZWNlO1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4uZm9vdGVyLmNvbnRlbnQgLmxpbmtzPmxpIHtcXG4gICAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcXG4gICAgZm9udC1zaXplOiAxLjZyZW07XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2VjZWNlO1xcbiAgICBtYXJnaW46IDAgLTE1cHg7XFxuICAgIHBhZGRpbmc6IDAgMTVweFxcbn1cXG5cXG4uZm9vdGVyLmNvbnRlbnQgLmxpbmtzIGEsXFxuLmZvb3Rlci5jb250ZW50IC5saW5rcyBzdHJvbmcge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcGFkZGluZzogMTBweCAwXFxufVxcblxcbi5mb290ZXIuY29udGVudCAubGlua3Mgc3Ryb25nIHtcXG4gICAgY29sb3I6ICNhNmE2YTY7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWxcXG59XFxuXFxuLmZvb3Rlci5jb250ZW50IC5saW5rcyBhIHtcXG4gICAgY29sb3I6ICM1NzU3NTc7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZm9vdGVyLmNvbnRlbnQgLmxpbmtzIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmZvb3Rlci5jb250ZW50IC5saW5rcyBhOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5mb290ZXIuY29udGVudCAubGlua3MgYTphY3RpdmUge1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmNvcHlyaWdodCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM2ZTcxNmU7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcGFkZGluZzogMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnM6YmVmb3JlLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnM6YmVmb3JlLFxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnM6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9uczphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnM6YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGUge1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU+c3BhbixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMHB4O1xcbiAgICBsaW5lLWhlaWdodDogMjJweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6aG92ZXI6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZT5zcGFuLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGUuYWN0aXZlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphZnRlcixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6aG92ZXI6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6aG92ZXI6YWZ0ZXIge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphY3RpdmU6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBsaXN0LXN0eWxlOiBub25lIG5vbmU7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XFxuICAgIG1hcmdpbi10b3A6IDRweDtcXG4gICAgbWluLXdpZHRoOiAxNjBweDtcXG4gICAgei1pbmRleDogMTAwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMTAwJTtcXG4gICAgYm94LXNoYWRvdzogMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNSlcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBsaSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGxpIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd24gbGk6aG92ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBsaTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bjpiZWZvcmUge1xcbiAgICBib3JkZXI6IDZweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXI6IDdweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYmJiIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSB7XFxuICAgIGxlZnQ6IDEwcHg7XFxuICAgIHRvcDogLTEycHhcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bjphZnRlcixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmFmdGVyIHtcXG4gICAgbGVmdDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMuYWN0aXZlLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMuYWN0aXZlIHtcXG4gICAgb3ZlcmZsb3c6IHZpc2libGVcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucy5hY3RpdmUgdWwuZHJvcGRvd24sXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucy5hY3RpdmUgdWwuZHJvcGRvd24ge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGEsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBhIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBhZGRpbmc6IDhweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGE6dmlzaXRlZCxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBhOmhvdmVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd24gYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBhOmFjdGl2ZSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIHN0cm9uZyxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLnNpZGViYXIgLndpZGdldC5ibG9jazpub3QoOmxhc3QtY2hpbGQpLFxcbi5zaWRlYmFyIC53aWRnZXQ6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG59XFxuXFxuLndpZGdldCB7XFxuICAgIGNsZWFyOiBib3RoXFxufVxcblxcbi5wYWdlLWhlYWRlciAud2lkZ2V0LmJsb2NrLFxcbi5wYWdlLWZvb3RlciAud2lkZ2V0LmJsb2NrIHtcXG4gICAgbWFyZ2luOiAyMHB4IDBcXG59XFxuXFxuLnVpLWRhdGVwaWNrZXIgdGQge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi51aS10b29sdGlwIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgcGFkZGluZzogMTBweFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5zdGF0dXMge1xcbiAgICBmb250LXN0eWxlOiBpdGFsaWNcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZSB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZTpmb2N1cyxcXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGUuZGlzYWJsZWQsXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGUge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZTp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmhvdmVyLFxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6YWN0aXZlLFxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6Zm9jdXMge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IDBcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZS5kaXNhYmxlZCxcXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICBvcGFjaXR5OiAuNTtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAubW9kYWwtZm9vdGVyIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHRcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeSB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIG1hcmdpbi1yaWdodDogMjBweFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5OmZvY3VzLFxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeS5kaXNhYmxlZCxcXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeSB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5OnZpc2l0ZWQge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6aG92ZXIsXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTphY3RpdmUsXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTpmb2N1cyB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5LmRpc2FibGVkLFxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5IHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIG9wYWNpdHk6IC41O1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSxcXG4uYmxvY2stYnVuZGxlLXN1bW1hcnkgLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSxcXG4ucHJvZHVjdC1pdGVtIC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUsXFxuLnRhYmxlLWNvbXBhcmlzb24gLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwMCdcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGhlYWQ+dHI+dGgsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGJvZHk+dHI+dGgsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGZvb3Q+dHI+dGgsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGhlYWQ+dHI+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGJvZHk+dHI+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGZvb3Q+dHI+dGQge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdD5jYXB0aW9uK3RoZWFkPnRyOmZpcnN0LWNoaWxkPnRoLFxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PmNvbGdyb3VwK3RoZWFkPnRyOmZpcnN0LWNoaWxkPnRoLFxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkPnRoLFxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PmNhcHRpb24rdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+Y29sZ3JvdXArdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQ+dGQge1xcbiAgICBib3JkZXItdG9wOiAwXFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PnRib2R5K3Rib2R5IHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgdGhlYWQ+dHI+dGgge1xcbiAgICBib3JkZXItYm90dG9tOiAwXFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IHRib2R5PnRyOmxhc3QtY2hpbGQ+dGQge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAucHJvZHVjdC5uYW1lIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IC5ib3gtdG9jYXJ0IHtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmJveC10b2NhcnQgLnF0eSB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmNvbC5pdGVtIHtcXG4gICAgd2lkdGg6IDUwJVxcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAuY29sLnBob3RvIHtcXG4gICAgbWF4LXdpZHRoOiAxNTBweFxcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAuY29sLnNlbGVjdG9yIHtcXG4gICAgbWF4LXdpZHRoOiAxNXB4XFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IHRleHRhcmVhIHtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmlucHV0LXRleHQucXR5IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAuYWN0aW9uLnByaW1hcnkge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmxpbmsud2lzaGxpc3QgLmNvdW50ZXIge1xcbiAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ubGluay53aXNobGlzdCAuY291bnRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnKCdcXG59XFxuXFxuLmxpbmsud2lzaGxpc3QgLmNvdW50ZXI6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnKSdcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIG1hcmdpbi1yaWdodDogMjVweFxcbn1cXG5cXG4ucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLXBob3RvIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG4ucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5wcmljZS1ib3gge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1jb21tZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGhlaWdodDogNDJweDtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1hY3Rpb25zPioge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHhcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1hY3Rpb25zPio6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1yaWdodDogMFxcbn1cXG5cXG4uYmxvY2stYmFubmVycyAuYmFubmVyLWl0ZW0sXFxuLmJsb2NrLWJhbm5lcnMtaW5saW5lIC5iYW5uZXItaXRlbSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1iYW5uZXJzIC5iYW5uZXItaXRlbS1jb250ZW50LFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSAuYmFubmVyLWl0ZW0tY29udGVudCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLWJhbm5lcnMgLmJhbm5lci1pdGVtLWNvbnRlbnQgaW1nLFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSAuYmFubmVyLWl0ZW0tY29udGVudCBpbWcge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwIGF1dG9cXG59XFxuXFxuLmJsb2NrLXByb2R1Y3QtbGluay53aWRnZXQsXFxuLmJsb2NrLWNhdGVnb3J5LWxpbmsud2lkZ2V0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLXByb2R1Y3QtbGluay1pbmxpbmUud2lkZ2V0IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay53aWRnZXQgLnByb2R1Y3QtaXRlbS1pbmZvIHtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmJsb2NrLndpZGdldCAucGFnZXIge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5ibG9jay53aWRnZXQgLnBhZ2VyIC50b29sYmFyLWFtb3VudCB7XFxuICAgIGZsb2F0OiBub25lO1xcbiAgICBmb250LXNpemU6IDEuMnJlbVxcbn1cXG5cXG4uYmxvY2sud2lkZ2V0IC5wYWdlciAucGFnZXMtaXRlbS1wcmV2aW91cyB7XFxuICAgIHBhZGRpbmctbGVmdDogMFxcbn1cXG5cXG4uYmxvY2sud2lkZ2V0IC5wYWdlciAucGFnZXMtaXRlbS1uZXh0IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5ibG9jay53aWRnZXQgLnBhZ2VyIC5pdGVtcyB7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmNvbHVtbnMgLmJsb2NrLWV2ZW50IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbiB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgbWFyZ2luLXRvcDogLTZweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDUwJTtcXG4gICAgei1pbmRleDogM1xcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5iYWNrd2FyZCxcXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkIHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5iYWNrd2FyZD5zcGFuLFxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmZvcndhcmQ+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmJhY2t3YXJkOmJlZm9yZSxcXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDU1cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjE3JztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmJhY2t3YXJkOmJlZm9yZSxcXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkOmJlZm9yZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTVweFxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5iYWNrd2FyZCB7XFxuICAgIGxlZnQ6IDBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5ibG9jay1jb250ZW50Pi5hY3Rpb24uZm9yd2FyZCB7XFxuICAgIHJpZ2h0OiAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmZvcndhcmQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjA4J1xcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkOmJlZm9yZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMjBweFxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5pbmFjdGl2ZSB7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbjpob3ZlciB7XFxuICAgIG9wYWNpdHk6IDFcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDJcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciB7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSB7XFxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICB3aWR0aDogMTYuMzUlXFxufVxcblxcbi5zaWRlYmFyLW1haW4gLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSxcXG4uc2lkZWJhci1hZGRpdGlvbmFsIC5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0ge1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIGltZyB7XFxuICAgIG1heC13aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5jYXRlZ29yeS1uYW1lIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgcGFkZGluZzogMTVweCA1cHggMDtcXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLnRpY2tlciB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLnRpY2tlciBsaSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIG1hcmdpbjogMCA1cHhcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAudGlja2VyIC52YWx1ZSB7XFxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLnRpY2tlciAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxLjNyZW1cXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuZGF0ZXMge1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmRhdGVzIC5zdGFydCxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5kYXRlcyAuZW5kLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmRhdGVzIC5kYXRlIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuZGF0ZXMgLnN0YXJ0OmFmdGVyIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGNvbnRlbnQ6ICdcXFxcMjAxMyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmRhdGVzIC5kYXRlIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuZGF0ZXMgLnRpbWUge1xcbiAgICBmb250LXNpemU6IDEuM3JlbVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5ib3gtZXZlbnQgLmJveC1jb250ZW50IHtcXG4gICAgcGFkZGluZzogNXB4IDAgMTBweFxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5ib3gtZXZlbnQgLmJveC10aXRsZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBtYXJnaW46IDEwcHggMCAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5zaG93IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBhZGRpbmc6IDBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLnNob3cgLmNhdGVnb3J5Lm5hbWUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBhZGRpbmc6IDMwcHggMTBweCAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5zaG93IGltZyB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudCB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6ICMxOTc5YzM7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxOTc5YzM7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBwYWRkaW5nOiA3cHggMTVweDtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIG1hcmdpbi10b3A6IDE1cHhcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmZvY3VzLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudDphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQuZGlzYWJsZWQsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50IHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmVcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5ibG9jay1zdGF0aWMtYmxvY2sud2lkZ2V0LFxcbi5ibG9jay1jbXMtbGluay53aWRnZXQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5saW5rcyAuYmxvY2stc3RhdGljLWJsb2NrLndpZGdldCxcXG4ubGlua3MgLmJsb2NrLWNtcy1saW5rLndpZGdldCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmJsb2NrLWNtcy1saW5rLWlubGluZS53aWRnZXQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaCAuZm9ybS13aXNobGlzdC1zZWFyY2gge1xcbiAgICBtYXJnaW46IDIwcHggMCAwXFxufVxcblxcbi5ibG9jay1jbXMtaGllcmFyY2h5LWxpbmsud2lkZ2V0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLWNtcy1oaWVyYXJjaHktbGluay1pbmxpbmUud2lkZ2V0IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuZmllbGRzZXQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuZmllbGRzZXQgLmZpZWxkcyAuZmllbGQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5maWVsZC5za3Uge1xcbiAgICBtYXJnaW4tcmlnaHQ6IC04NXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5MHB4O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkLnF0eSAucXR5Ky5tYWdlLWVycm9yIHtcXG4gICAgd2lkdGg6IDgwcHhcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDdweFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZvcm0tYWRkYnlza3UgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5mb3JtLWFkZGJ5c2t1IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuZm9ybS1hZGRieXNrdSAuYWN0aW9ucy10b29sYmFyIC5wcmltYXJ5IC5hY3Rpb24ge1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZvcm0tYWRkYnlza3UgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IHtcXG4gICAgZmxvYXQ6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5hZGQ6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUMnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5hZGQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5saW5rcyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luOiAyMHB4IDAgMFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZXNldCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDEwcHggMFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM5OTk7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpmb2N1cyxcXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0NzlweCkge1xcbiAgICAudG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQge1xcbiAgICAgICAgbWluLXdpZHRoOiAxMHJlbVxcbiAgICB9XFxuICAgIC5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydCB7XFxuICAgICAgICB3aWR0aDogMjkwcHhcXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgICAgICB3aWR0aDogMjAwcHhcXG4gICAgfVxcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjM5cHgpIHtcXG4gICAgLmFicy12aXN1YWxseS1oaWRkZW4tbW9iaWxlLFxcbiAgICAudGFibGUtZG93bmxvYWRhYmxlLXByb2R1Y3RzIC5jb2wudGl0bGU6YmVmb3JlLFxcbiAgICAudGFibGUtZ2lmdHJlZ2lzdHJ5LWl0ZW1zIC5jb2wucHJvZHVjdDpiZWZvcmUge1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgICAgIGhlaWdodDogMXB4O1xcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB3aWR0aDogMXB4XFxuICAgIH1cXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtbW9iaWxlOmJlZm9yZSxcXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtbW9iaWxlOmFmdGVyLFxcbiAgICAuYWJzLWNoZWNrb3V0LW9yZGVyLXJldmlldyB0Ym9keT50cjpiZWZvcmUsXFxuICAgIC5hYnMtY2hlY2tvdXQtb3JkZXItcmV2aWV3IHRib2R5PnRyOmFmdGVyLFxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHI6YmVmb3JlLFxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHI6YWZ0ZXIsXFxuICAgIC50YWJsZS1naWZ0cmVnaXN0cnktaXRlbXMgLmNvbC5wcm9kdWN0OmJlZm9yZSxcXG4gICAgLnRhYmxlLWdpZnRyZWdpc3RyeS1pdGVtcyAuY29sLnByb2R1Y3Q6YWZ0ZXIsXFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cjpiZWZvcmUsXFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cjphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXFxuICAgIH1cXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtbW9iaWxlOmFmdGVyLFxcbiAgICAuYWJzLWNoZWNrb3V0LW9yZGVyLXJldmlldyB0Ym9keT50cjphZnRlcixcXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRmb290IHRyOmFmdGVyLFxcbiAgICAudGFibGUtZ2lmdHJlZ2lzdHJ5LWl0ZW1zIC5jb2wucHJvZHVjdDphZnRlcixcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyOmFmdGVyIHtcXG4gICAgICAgIGNsZWFyOiBib3RoXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgdGJvZHk+dHI+dGQuY29sLml0ZW06YmVmb3JlIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgdGJvZHk+dHI+dGQuY29sLnF0eSxcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyPnRkLmNvbC5wcmljZSxcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyPnRkLmNvbC5zdWJ0b3RhbCB7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICAgICAgd2lkdGg6IDMzJVxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cj50ZC5jb2wucXR5OmJlZm9yZSxcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyPnRkLmNvbC5wcmljZTpiZWZvcmUsXFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cj50ZC5jb2wuc3VidG90YWw6YmVmb3JlIHtcXG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgJzonO1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgdGJvZHk+dHI+dGQuY29sOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyOiAwXFxuICAgIH1cXG4gICAgLmFicy1jaGVja291dC1vcmRlci1yZXZpZXcgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgICAgIG1hcmdpbjogMFxcbiAgICB9XFxuICAgIC5hYnMtcHJvZHVjdC1pdGVtcy1zdW1tYXJ5IHRib2R5IC5jb2wge1xcbiAgICAgICAgcGFkZGluZzogMTBweCAwIDBcXG4gICAgfVxcbiAgICAuYWJzLXByb2R1Y3QtaXRlbXMtc3VtbWFyeSB0Zm9vdCAubWFyayB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxcbiAgICB9XFxuICAgIC5hYnMtcHJvZHVjdC1pdGVtcy1zdW1tYXJ5IHRmb290IC5hbW91bnQge1xcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0XFxuICAgIH1cXG4gICAgLmFicy1wcm9kdWN0LWl0ZW1zLXN1bW1hcnkgdGZvb3QgLmdyYW5kLnRvdGFscyB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbVxcbiAgICB9XFxuICAgIC5hYnMtcHJvZHVjdC1pdGVtcy1zdW1tYXJ5IHRmb290IC5ncmFuZC50b3RhbHMgLm1hcmsge1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XFxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4XFxuICAgIH1cXG4gICAgLmFicy1wcm9kdWN0LWl0ZW1zLXN1bW1hcnkgdGZvb3QgLmdyYW5kLnRvdGFscyAuYW1vdW50IHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICAgICAgcGFkZGluZy10b3A6IDBcXG4gICAgfVxcbiAgICAuYWJzLXByb2R1Y3QtaXRlbXMtc3VtbWFyeSB0Zm9vdCAuZ3JhbmQudG90YWxzIC5hbW91bnQgc3Ryb25nIHtcXG4gICAgICAgIGJvcmRlci10b3A6IG5vbmVcXG4gICAgfVxcbiAgICAuYWJzLWFjY291bnQtdGFibGUtbWFyZ2luLW1vYmlsZSxcXG4gICAgLnRhYmxlLXdyYXBwZXIuYmFsYW5jZS1oaXN0b3J5LFxcbiAgICAudGFibGUtd3JhcHBlci5yZXdhcmQtaGlzdG9yeSxcXG4gICAgLnRhYmxlLXdyYXBwZXIub3JkZXJzLXJlY2VudCB7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtMjBweFxcbiAgICB9XFxuICAgIC5hYnMtc2lkZWJhci10b3RhbHMtbW9iaWxlIHRoOmJlZm9yZSxcXG4gICAgLmFicy1zaWRlYmFyLXRvdGFscy1tb2JpbGUgdGQ6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAudGFibGUtYmlsbGluZy1hZ3JlZW1lbnRzIC5jb2wuYWN0aW9uczpiZWZvcmUsXFxuICAgIC5hY2NvdW50IC50YWJsZS1iaWxsaW5nLWFncmVlbWVudHMtcmVsYXRlZCAuY29sLmFjdGlvbnM6YmVmb3JlLFxcbiAgICAudGFibGUtd3JhcHBlci5jb21wYXJpc29uIC50YWJsZS1jb21wYXJpc29uPnRib2R5PnRyPnRoOmJlZm9yZSxcXG4gICAgLnRhYmxlLXdyYXBwZXIuY29tcGFyaXNvbiAudGFibGUtY29tcGFyaXNvbj50Ym9keT50cj50ZDpiZWZvcmUsXFxuICAgIC5jYXJ0IC50YWJsZS5pdGVtcyAuY29sLml0ZW06YmVmb3JlLFxcbiAgICAuY2FydCAudGFibGUuaXRlbXMgLml0ZW0tYWN0aW9ucyB0ZDpiZWZvcmUsXFxuICAgIC5hY2NvdW50IC50YWJsZS1naWZ0cmVnaXN0cnkgLmNvbC5hY3Rpb25zOmJlZm9yZSxcXG4gICAgLnRhYmxlLmdyb3VwZWQ+dGJvZHk+dHI+dGQ6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAudGFibGUtcmV2aWV3cyAuY29sLmFjdGlvbnM6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAudGFibGUtb3JkZXItaXRlbXMgLmNvbC5hY3Rpb25zOmJlZm9yZSxcXG4gICAgLmFjY291bnQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5jb2wub3B0aW9uczpiZWZvcmUsXFxuICAgIC5jYXJ0LXRvdGFscyAudG90YWxzIHRoOmJlZm9yZSxcXG4gICAgLmNhcnQtdG90YWxzIC50b3RhbHMgdGQ6YmVmb3JlLFxcbiAgICAub3BjLWJsb2NrLXN1bW1hcnkgLnRvdGFscyB0aDpiZWZvcmUsXFxuICAgIC5vcGMtYmxvY2stc3VtbWFyeSAudG90YWxzIHRkOmJlZm9yZSB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuYWJzLW5vLWRpc3BsYXktcyxcXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLmNhcnQpOm5vdCgudGFibGUtY29tcGFyaXNvbikuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHRib2R5IHRoLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtb3JkZXItaXRlbXMgLm9wdGlvbnMtbGFiZWwsXFxuICAgIC5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0gLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbSB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmFicy10aXRsZS1vcmRlcnMtbW9iaWxlIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4gICAgLm1hZ2VudG8tcm1hLXJldHVybnMtcmV0dXJucyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUsXFxuICAgIC5tYWdlbnRvLXJtYS1yZXR1cm5zLXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbiAgICAuYWNjb3VudCAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUsXFxuICAgIFtjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4gICAgLnNhbGVzLWd1ZXN0LXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmFicy10aXRsZS1vcmRlcnMtbW9iaWxlIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzLFxcbiAgICAubWFnZW50by1ybWEtcmV0dXJucy1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzLFxcbiAgICAubWFnZW50by1ybWEtcmV0dXJucy12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzLFxcbiAgICAuYWNjb3VudCAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLXN0YXR1cyxcXG4gICAgW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1zdGF0dXMsXFxuICAgIC5zYWxlcy1ndWVzdC12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzIHtcXG4gICAgICAgIG1hcmdpbjogLTEwcHggMCAxMHB4XFxuICAgIH1cXG4gICAgLmFicy10YWJsZS1zdHJpcGVkLW1vYmlsZT50Ym9keT50cj50ZDpsYXN0LWNoaWxkLFxcbiAgICAuYWNjb3VudCAuZGF0YS50YWJsZT50Ym9keT50cj50ZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlcjogMFxcbiAgICB9XFxuICAgIC5hYnMtbm8tYm9yZGVyLXRvcCxcXG4gICAgLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzLXdyYXBwZXIsXFxuICAgIC50YWJsZS13cmFwcGVyLmJhbGFuY2UtaGlzdG9yeSxcXG4gICAgLnRhYmxlLXdyYXBwZXIudGFibGUtcmV0dXJucyxcXG4gICAgLnRhYmxlLXdyYXBwZXIub3JkZXJzLXJlY2VudCxcXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMFxcbiAgICB9XFxuICAgIC5hYnMtbm8tYm9yZGVyLWJvdHRvbSB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmFicy1zaWRlYmFyLXRvdGFscy1tb2JpbGUgLmFtb3VudCxcXG4gICAgLmNhcnQtdG90YWxzIC50b3RhbHMgLmFtb3VudCxcXG4gICAgLm9wYy1ibG9jay1zdW1tYXJ5IC50b3RhbHMgLmFtb3VudCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcXG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XFxuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKSB7XFxuICAgICAgICBib3JkZXI6IG5vbmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRoZWFkPnRyPnRoIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKT50Ym9keSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLmNhcnQpOm5vdCgudGFibGUtY29tcGFyaXNvbik+dGJvZHk+dHIgdGQsXFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyIHRoIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4XFxuICAgIH1cXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLmNhcnQpOm5vdCgudGFibGUtY29tcGFyaXNvbik+dGJvZHk+dHIgdGQ6YmVmb3JlLFxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKT50Ym9keT50ciB0aDpiZWZvcmUge1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcXG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgJzogJztcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGNvbG9yOiAjMTExO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyPnRoIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjZcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Ym9keT50cj50ZDpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogMTVweFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRib2R5PnRyPnRkOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTVweFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRib2R5PnRyPnRkLmNvbC5xdHkge1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSB0ZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlcjogbm9uZTtcXG4gICAgICAgIHBhZGRpbmc6IDAgMCA1cHhcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3Qge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHIge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGgsXFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0ZCB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogMjBweFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCAubWFyayB7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgd2lkdGg6IDcwJVxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCAuYW1vdW50IHtcXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICBmbG9hdDogbGVmdDtcXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICAgICAgd2lkdGg6IDMwJVxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCAuZ3JhbmQudG90YWxzIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtXFxuICAgIH1cXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRmb290IC5ncmFuZC50b3RhbHMgLmFtb3VudCB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5kYXRhLXRhYmxlLWRlZmluaXRpb24tbGlzdCB0aGVhZCB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRoIHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRoLFxcbiAgICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3QgdGJvZHkgdGQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwXFxuICAgIH1cXG4gICAgLnBhZ2VzIC5wYWdlcy1pdGVtcyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmc6IDJweCA0MHB4IDA7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICAgICAgei1pbmRleDogMVxcbiAgICB9XFxuICAgIC5wYWdlcy1pdGVtLXByZXZpb3VzIHtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDA7XFxuICAgICAgICB6LWluZGV4OiAxXFxuICAgIH1cXG4gICAgLnBhZ2VzLWl0ZW0tbmV4dCB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHotaW5kZXg6IDFcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuZGF0YS50YWJsZSAuYWRkcmVzczpiZWZvcmUge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4XFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAubXVsdGljaGVja291dCAucHJpY2UtaW5jbHVkaW5nLXRheCxcXG4gICAgLm11bHRpY2hlY2tvdXQgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLmJveDpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stY29udGVudCAuYm94Omxhc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMFxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuYm94LWl0ZW1zIC5kYXRhLnRhYmxlIHRoZWFkIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5ib3gtaXRlbXMgLmRhdGEudGFibGUgdGhlYWQgdHIge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmJveC1pdGVtcyAuZGF0YS50YWJsZSB0aGVhZCAuY29sLml0ZW0ge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBwYWRkaW5nOiAwXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBcXG4gICAgfVxcbiAgICAuZm9ybS1uZXctYWdyZWVtZW50IHNlbGVjdCB7XFxuICAgICAgICB3aWR0aDogYXV0b1xcbiAgICB9XFxuICAgIC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5jb2wuc3VidG90YWwge1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxcbiAgICB9XFxuICAgIC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuc2t1IHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTg1cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA5MHB4XFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMFxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlPnNwYW4ge1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgICAgIGhlaWdodDogMXB4O1xcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB3aWR0aDogMXB4XFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YmVmb3JlIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MDQnO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIG1hcmdpbjogLTRweCAwIDA7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmhvdmVyOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogaW5oZXJpdFxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZTpiZWZvcmUge1xcbiAgICAgICAgY29sb3I6IGluaGVyaXRcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpmb2N1cyxcXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IG5vbmVcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAgICAgYm9yZGVyOiBub25lXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgICAgIG9wYWNpdHk6IC41XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbSB7XFxuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkXFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgICAgICBwYWRkaW5nOiAwIDEwcHggMTBweCAwO1xcbiAgICAgICAgd2lkdGg6IDMwJVxcbiAgICB9XFxuICAgIC50b29sYmFyLXByb2R1Y3RzIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBcXG4gICAgfVxcbiAgICAucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmUge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5wcm9kdWN0LWluZm8tcHJpY2Uge1xcbiAgICAgICAgbWFyZ2luOiAwIC0xMHB4IDA7XFxuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMioxMHB4KSAhaW1wb3J0YW50XFxuICAgIH1cXG4gICAgLnByb2R1Y3QtaW5mby1wcmljZT4qOmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0LWluZm8tcHJpY2U+KjpsYXN0LWNoaWxkIHtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHhcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlci5jb21wYXJpc29uIC50YWJsZS1jb21wYXJpc29uPnRib2R5PnRyPnRoLFxcbiAgICAudGFibGUtd3JhcHBlci5jb21wYXJpc29uIC50YWJsZS1jb21wYXJpc29uPnRib2R5PnRyPnRkIHtcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGxcXG4gICAgfVxcbiAgICAuYmxvY2stc2VhcmNoIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHhcXG4gICAgfVxcbiAgICAuY2FydCAudGFibGUuaXRlbXMgLmNvbC5xdHkge1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweFxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuc3RlcC10aXRsZSB7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLnN0ZXAtY29udGVudCB7XFxuICAgICAgICBtYXJnaW46IDAgMCAxNXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5mb3JtLWxvZ2luLFxcbiAgICAub3BjLXdyYXBwZXIgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyxcXG4gICAgLm9wYy13cmFwcGVyIC5tZXRob2RzLXNoaXBwaW5nIHtcXG4gICAgICAgIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XFxuICAgICAgICBtYXJnaW46IDIwcHggLTE1cHggMTVweDtcXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTVweFxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuZm9ybS1sb2dpbisuZm9ybS1zaGlwcGluZy1hZGRyZXNzIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IC0xNXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5zaGlwcGluZy1hZGRyZXNzLWl0ZW0ge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBtYXJnaW46IDAgMCAxNXB4O1xcbiAgICAgICAgcGFkZGluZzogMCAwIDE1cHg7XFxuICAgICAgICB3aWR0aDogMTAwJVxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0ge1xcbiAgICAgICAgcGFkZGluZzogMTVweCAzNXB4IDE1cHggMThweDtcXG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweFxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0gLmVkaXQtYWRkcmVzcy1saW5rIHtcXG4gICAgICAgIHJpZ2h0OiAzOXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0ge1xcbiAgICAgICAgZmxvYXQ6IG5vbmU7XFxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmFjdGlvbi1zaG93LXBvcHVwIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5tZXRob2RzLXNoaXBwaW5nIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgICAgICAgcGFkZGluZy10b3A6IDMwcHhcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rIHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHJpZ2h0OiAwO1xcbiAgICAgICAgdG9wOiA1cHhcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rPnNwYW4ge1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgICAgIGhlaWdodDogMXB4O1xcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB3aWR0aDogMXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpiZWZvcmUge1xcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYwMSc7XFxuICAgICAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgc3BlYWs6IG5vbmU7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rOmhvdmVyOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogIzMzM1xcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbms6YWN0aXZlOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogIzc1NzU3NVxcbiAgICB9XFxuICAgIC5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgcmlnaHQ6IGF1dG87XFxuICAgICAgICB0b3A6IGF1dG9cXG4gICAgfVxcbiAgICAuc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgICAgICB3aWR0aDogMzAwcHg7XFxuICAgICAgICByaWdodDogYXV0b1xcbiAgICB9XFxuICAgIC5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcXG4gICAgLnNoaXBwaW5nLXBvbGljeS1ibG9jay5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICAgICAgcmlnaHQ6IGF1dG9cXG4gICAgfVxcbiAgICAub3BjLWJsb2NrLXN1bW1hcnk+LnRpdGxlIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4sXFxuICAgIC5hY2NvdW50IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xcbiAgICAgICAgbWFyZ2luOiAwXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG4gICAgfVxcbiAgICAudGFibGUtZG93bmxvYWRhYmxlLXByb2R1Y3RzIC5wcm9kdWN0LW5hbWUge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHhcXG4gICAgfVxcbiAgICAucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1pbmZvLXByaWNlfio6bGFzdC1jaGlsZDphZnRlciB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBoZWlnaHQ6IDA7XFxuICAgICAgICBtYXJnaW46IDI1cHggLTEwcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgd2lkdGg6IGF1dG9cXG4gICAgfVxcbiAgICAudGFibGUtZ2lmdHJlZ2lzdHJ5LWl0ZW1zIC5maWVsZC5jaG9pY2UsXFxuICAgIC50YWJsZS1naWZ0cmVnaXN0cnktaXRlbXMgLmZpZWxkLnF0eSB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG4gICAgfVxcbiAgICAuZm9ybS1naWZ0cmVnaXN0cnktc2VhcmNoIC5maWVsZHNldCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxuICAgIH1cXG4gICAgLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5ibG9jay10aXRsZSB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAuYmxvY2stdGl0bGUge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IDBcXG4gICAgfVxcbiAgICAudGFibGUuZ3JvdXBlZD50aGVhZD50cj50aCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGxcXG4gICAgfVxcbiAgICAudGFibGUuZ3JvdXBlZD50Ym9keSB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbiAgICB9XFxuICAgIC50YWJsZS5ncm91cGVkPnRib2R5PnRyPnRkIHtcXG4gICAgICAgIHBhZGRpbmc6IDExcHggMTBweDtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGxcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGUuZ3JvdXBlZDpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyPnRkOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMFxcbiAgICB9XFxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCAubWluaW1hbC1wcmljZSB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnByb2R1Y3QtaW5mby1wcmljZSB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIC5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMFxcbiAgICB9XFxuICAgIC5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU+c3BhbiB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6YmVmb3JlIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MDQnO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlOmhvdmVyOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogaW5oZXJpdFxcbiAgICB9XFxuICAgIC5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0XFxuICAgIH1cXG4gICAgLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1uYW1lIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweFxcbiAgICB9XFxuICAgIC5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yYXRpbmctc3VtbWFyeSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweFxcbiAgICB9XFxuICAgIC5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFkZGl0aW9uYWwgLmZpZWxkOm50aC1sYXN0LWNoaWxkKDIpIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuZm9ybS1jcmVhdGUtcmV0dXJuIC5hZGRpdGlvbmFsIC5maWVsZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHhcXG4gICAgfVxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLnJldHVybnMtZGV0YWlscy1pdGVtcyAuYmxvY2stcmV0dXJucy10cmFja2luZyAuYmxvY2stdGl0bGU+LmFjdGlvbi50cmFjayB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZsb2F0OiBub25lO1xcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMFxcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIHRoZWFkIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgdGhlYWQgdHIge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAub3JkZXItcGFnZXItd3JhcHBlciB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5hY2NvdW50IC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keSB0ciB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5hY2NvdW50IC50YWJsZS1vcmRlci1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgbWFyZ2luOiAwXFxuICAgIH1cXG4gICAgLmFjY291bnQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5hY3Rpb24uc2hvdyB7XFxuICAgICAgICBtYXJnaW4tdG9wOiAwXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLXRpdGxlIHN0cm9uZyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5hY3Rpb24ge1xcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweFxcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtcy1xdHkge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcFxcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLmRhdGEudGFibGUgLmNvbC5vcHRpb25zIHtcXG4gICAgICAgIHBhZGRpbmc6IDAgMTBweCAxNXB4XFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLmRhdGEudGFibGUgLmNvbC5vcHRpb25zOmJlZm9yZSB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9wdGlvbnMtbGFiZWwrLml0ZW0tb3B0aW9ucy1jb250YWluZXI6YmVmb3JlLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLWNvbnRhaW5lcisuaXRlbS1vcHRpb25zLWNvbnRhaW5lcjpiZWZvcmUge1xcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSAnOic7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcXG4gICAgfVxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAub3B0aW9ucy1sYWJlbCsuaXRlbS1vcHRpb25zLWNvbnRhaW5lciAuY29sLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLWNvbnRhaW5lcisuaXRlbS1vcHRpb25zLWNvbnRhaW5lciAuY29sIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICAgICAgcGFkZGluZzogMCAxMHB4XFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9wdGlvbnMtbGFiZWwrLml0ZW0tb3B0aW9ucy1jb250YWluZXIgLmNvbDpmaXJzdC1jaGlsZCxcXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLml0ZW0tb3B0aW9ucy1jb250YWluZXIrLml0ZW0tb3B0aW9ucy1jb250YWluZXIgLmNvbDpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogM3B4XFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9wdGlvbnMtbGFiZWwrLml0ZW0tb3B0aW9ucy1jb250YWluZXIgLmNvbDpsYXN0LWNoaWxkLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLWNvbnRhaW5lcisuaXRlbS1vcHRpb25zLWNvbnRhaW5lciAuY29sOmxhc3QtY2hpbGQge1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHhcXG4gICAgfVxcbiAgICAubG9nbyB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxM3B4O1xcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4XFxuICAgIH1cXG4gICAgLm15LWNyZWRpdC1jYXJkcyAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKSAuc3RhdHVzIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXktY3JlZGl0LWNhcmRzIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIC5zdGF0dXM6YmVmb3JlIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXktY3JlZGl0LWNhcmRzIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIC5zdGF0dXMuX2RlZmF1bHQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAubXktY3JlZGl0LWNhcmRzIC5jYXJkLXR5cGUgaW1nIHtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbTpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U4ZThlOFxcbiAgICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjdweCkge1xcbiAgICAuYWJzLXZpc3VhbGx5LWhpZGRlbi1tb2JpbGUtbSB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuYWJzLWFkZC1jbGVhcmZpeC1tb2JpbGUtbTpiZWZvcmUsXFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LW1vYmlsZS1tOmFmdGVyLFxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU6YWZ0ZXIge1xcbiAgICAgICAgY29udGVudDogJyc7XFxuICAgICAgICBkaXNwbGF5OiB0YWJsZVxcbiAgICB9XFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LW1vYmlsZS1tOmFmdGVyLFxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU6YWZ0ZXIge1xcbiAgICAgICAgY2xlYXI6IGJvdGhcXG4gICAgfVxcbiAgICAuYWJzLXRvZ2dsaW5nLXRpdGxlLW1vYmlsZSxcXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXNlbGVjdCAud2lzaGxpc3QtbmFtZSxcXG4gICAgLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAudGl0bGUge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBwYWRkaW5nOiAxMHB4IDQwcHggMTBweCAxNXB4O1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lOmFmdGVyLFxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IC50aXRsZTphZnRlciB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogMjBweDtcXG4gICAgICAgIHRvcDogMTBweFxcbiAgICB9XFxuICAgIC5hYnMtdG9nZ2xpbmctdGl0bGUtbW9iaWxlOmFmdGVyLFxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lOmFmdGVyLFxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IC50aXRsZTphZnRlciB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDNweCAwIDAgMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLmFicy10b2dnbGluZy10aXRsZS1tb2JpbGUuYWN0aXZlOmFmdGVyLFxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lLmFjdGl2ZTphZnRlcixcXG4gICAgLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAudGl0bGUuYWN0aXZlOmFmdGVyIHtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG4gICAgfVxcbiAgICAuYWJzLWljb24tYWRkLW1vYmlsZSxcXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LWFkZC5pdGVtIC5hZGQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYWJzLWljb24tYWRkLW1vYmlsZTpiZWZvcmUsXFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1hZGQuaXRlbSAuYWRkOmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDEwcHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjFDJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDAgNXB4IDAgMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24sXFxuICAgIC5icmVhZGNydW1icyxcXG4gICAgLnBhZ2UtaGVhZGVyIC5oZWFkZXIucGFuZWwsXFxuICAgIC5oZWFkZXIuY29udGVudCxcXG4gICAgLmZvb3Rlci5jb250ZW50LFxcbiAgICAucGFnZS1tYWluLFxcbiAgICAucGFnZS13cmFwcGVyPi53aWRnZXQsXFxuICAgIC5wYWdlLXdyYXBwZXI+LnBhZ2UtYm90dG9tLFxcbiAgICAuYmxvY2suY2F0ZWdvcnkuZXZlbnQsXFxuICAgIC50b3AtY29udGFpbmVyIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHhcXG4gICAgfVxcbiAgICAuYWNjb3VudCAucGFnZS1tYWluLFxcbiAgICAuY21zLXByaXZhY3ktcG9saWN5IC5wYWdlLW1haW4ge1xcbiAgICAgICAgcGFkZGluZy10b3A6IDQxcHg7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiB7XFxuICAgICAgICBwYWRkaW5nOiAwXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnBhcmVudCAubGV2ZWwtdG9wIHtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnBhcmVudCAubGV2ZWwtdG9wOmFmdGVyIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogNDJweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnBhcmVudCAubGV2ZWwtdG9wOmFmdGVyIHtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHJpZ2h0OiA3cHg7XFxuICAgICAgICB0b3A6IC04cHhcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAucGFyZW50IC5sZXZlbC10b3AudWktc3RhdGUtYWN0aXZlOmFmdGVyIHtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIHtcXG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAuM3M7XFxuICAgICAgICAtbW96LXRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgLW1zLXRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAuM3M7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBsZWZ0OiAtODAlO1xcbiAgICAgICAgbGVmdDogY2FsYygtMSAqICgxMDAlIC0gNTRweCkpO1xcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICB0b3A6IDA7XFxuICAgICAgICB3aWR0aDogODAlO1xcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDU0cHgpXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuc3dpdGNoZXIge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMWQxZDE7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICBwYWRkaW5nOiAuOHJlbSAzLjVyZW0gLjhyZW0gMnJlbVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyIC5sYWJlbCB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweFxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQxZDFcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5zd2l0Y2hlci10cmlnZ2VyIHN0cm9uZyB7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyLXRyaWdnZXIgc3Ryb25nOmFmdGVyIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogNDJweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuc3dpdGNoZXItdHJpZ2dlciBzdHJvbmc6YWZ0ZXIge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgcmlnaHQ6IC00MHB4O1xcbiAgICAgICAgdG9wOiAtMTZweFxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyLXRyaWdnZXIuYWN0aXZlIHN0cm9uZzphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuc3dpdGNoZXItZHJvcGRvd24ge1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMFxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLmhlYWRlci5saW5rcyB7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSBub25lO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQxZDFcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5oZWFkZXIubGlua3MgbGkge1xcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5oZWFkZXIubGlua3MgbGkuZ3JlZXQud2VsY29tZSB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDFkMTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nOiAuOHJlbSAyMHB4XFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuaGVhZGVyLmxpbmtzIGxpPmEge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMWQxZDFcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5oZWFkZXIubGlua3MgYSxcXG4gICAgLm5hdi1zZWN0aW9ucyAuaGVhZGVyLmxpbmtzIGE6aG92ZXIge1xcbiAgICAgICAgY29sb3I6ICM1NzU3NTc7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nOiAuOHJlbSAyMHB4XFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuaGVhZGVyLmxpbmtzIC5oZWFkZXIubGlua3Mge1xcbiAgICAgICAgYm9yZGVyOiAwXFxuICAgIH1cXG4gICAgLm5hdi1iZWZvcmUtb3BlbiB7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICAgICAgICB3aWR0aDogMTAwJVxcbiAgICB9XFxuICAgIC5uYXYtYmVmb3JlLW9wZW4gLnBhZ2Utd3JhcHBlciB7XFxuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgLW1vei10cmFuc2l0aW9uOiBsZWZ0IC4zcztcXG4gICAgICAgIC1tcy10cmFuc2l0aW9uOiBsZWZ0IC4zcztcXG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgbGVmdDogMDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG4gICAgfVxcbiAgICAubmF2LWJlZm9yZS1vcGVuIGJvZHkge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLm5hdi1vcGVuIC5wYWdlLXdyYXBwZXIge1xcbiAgICAgICAgbGVmdDogODAlO1xcbiAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gNTRweClcXG4gICAgfVxcbiAgICAubmF2LW9wZW4gLm5hdi1zZWN0aW9ucyB7XFxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcXG4gICAgICAgIC1tcy1ib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xcbiAgICAgICAgbGVmdDogMDtcXG4gICAgICAgIHotaW5kZXg6IDk5XFxuICAgIH1cXG4gICAgLm5hdi1vcGVuIC5uYXYtdG9nZ2xlOmFmdGVyIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgei1pbmRleDogMVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMtaXRlbXMge1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgei1pbmRleDogMVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMtaXRlbXM6YmVmb3JlLFxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW1zOmFmdGVyIHtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgZGlzcGxheTogdGFibGVcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW1zOmFmdGVyIHtcXG4gICAgICAgIGNsZWFyOiBib3RoXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLXRpdGxlIHtcXG4gICAgICAgIGJhY2tncm91bmQ6ICNlM2UzZTM7XFxuICAgICAgICBib3JkZXI6IHNvbGlkICNkN2Q3ZDc7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMXB4O1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xcbiAgICAgICAgaGVpZ2h0OiA3MXB4O1xcbiAgICAgICAgcGFkZGluZy10b3A6IDI0cHg7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICB3aWR0aDogMzMuMzMlXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLXRpdGxlLmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDBcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tdGl0bGUgLm5hdi1zZWN0aW9ucy1pdGVtLXN3aXRjaDpob3ZlciB7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tY29udGVudCB7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMDAlO1xcbiAgICAgICAgbWFyZ2luLXRvcDogNzFweDtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgcGFkZGluZzogMjVweCAwXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLWNvbnRlbnQ6YmVmb3JlLFxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tY29udGVudDphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICAgICAgY2xlYXI6IGJvdGhcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tY29udGVudC5hY3RpdmUge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIHVsIHtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHBhZGRpbmc6IDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiBsaSB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiBhIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHhcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiBhLFxcbiAgICAubmF2aWdhdGlvbiBhOmhvdmVyIHtcXG4gICAgICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMCB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDFkMTtcXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMD4ubGV2ZWwtdG9wIHtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nOiA4cHggNDBweCA4cHggMTVweDtcXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAubGV2ZWwwLmFjdGl2ZSAuYWxsLWNhdGVnb3J5IC51aS1zdGF0ZS1mb2N1cyB7XFxuICAgICAgICBib3JkZXItY29sb3I6ICNmZjU1MDE7XFxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCA4cHg7XFxuICAgICAgICBjb2xvcjogIzMzMztcXG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMD4ubGV2ZWwxIHtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAubGV2ZWwwLmFjdGl2ZT5hOm5vdCgudWktc3RhdGUtYWN0aXZlKSxcXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMC5oYXMtYWN0aXZlPmE6bm90KC51aS1zdGF0ZS1hY3RpdmUpIHtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmNTUwMTtcXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAwIDhweDtcXG4gICAgICAgIGNvbG9yOiAjMzMzXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMC5hY3RpdmU+YTpub3QoLnVpLXN0YXRlLWFjdGl2ZSkgc3Bhbjpub3QoLnVpLW1lbnUtaWNvbiksXFxuICAgIC5uYXZpZ2F0aW9uIC5sZXZlbDAuaGFzLWFjdGl2ZT5hOm5vdCgudWktc3RhdGUtYWN0aXZlKSBzcGFuOm5vdCgudWktbWVudS1pY29uKSB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogLThweFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIGxpLmxldmVsMDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDFkMWQxXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU+bGkge1xcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XFxuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IC4zcyBlYXNlLW91dFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIC5zdWJtZW51Om5vdCg6Zmlyc3QtY2hpbGQpPmxpPmEge1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4XFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCk+bGk6bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkgdWwge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHhcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAuc3VibWVudTpub3QoOmZpcnN0LWNoaWxkKSB1bD5saSB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAuc3VibWVudTpub3QoOmZpcnN0LWNoaWxkKSB1bD5saSBhIHtcXG4gICAgICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkuZXhwYW5kZWQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgICAgICB0b3A6IDAgIWltcG9ydGFudFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIC5zdWJtZW51Om5vdCg6Zmlyc3QtY2hpbGQpIC5hY3RpdmU+YSB7XFxuICAgICAgICBib3JkZXItY29sb3I6ICNmZjU1MDE7XFxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCA4cHg7XFxuICAgICAgICBjb2xvcjogIzMzMztcXG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4XFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkgLmxldmVsMS5hY3RpdmU+YSB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDdweFxcbiAgICB9XFxuICAgIC5icmVhZGNydW1icyB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIHtcXG4gICAgICAgIGxlZnQ6IDQ0cHg7XFxuICAgICAgICB6LWluZGV4OiA5MDBcXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUuX3Nob3cgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMClcXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dDtcXG4gICAgICAgIHdpZHRoOiBhdXRvXFxuICAgIH1cXG4gICAgLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmVcXG4gICAgfVxcbiAgICAuY3VzdG9tLXNsaWRlIHtcXG4gICAgICAgIGJvdHRvbTogMDtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBtaW4td2lkdGg6IDA7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgICAgIG9wYWNpdHk6IDA7XFxuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgLjNzLCBvcGFjaXR5IC4zcyBlYXNlO1xcbiAgICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyAuM3MsIG9wYWNpdHkgLjNzIGVhc2U7XFxuICAgICAgICBsZWZ0OiA0NHB4O1xcbiAgICAgICAgei1pbmRleDogOTAwXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZS5fc2hvdyB7XFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcXG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2VcXG4gICAgfVxcbiAgICAuY3VzdG9tLXNsaWRlLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKVxcbiAgICB9XFxuICAgIC5jdXN0b20tc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xcbiAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZS5fc2hvdyAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKVxcbiAgICB9XFxuICAgIC5jdXN0b20tc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dDtcXG4gICAgICAgIHdpZHRoOiBhdXRvXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZS5fc2hvdyB7XFxuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZSAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgIGhlaWdodDogYXV0bztcXG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCVcXG4gICAgfVxcbiAgICBib2R5Ll9oYXMtbW9kYWwtY3VzdG9tIHtcXG4gICAgICAgIGhlaWdodDogMTAwdmg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgd2lkdGg6IDEwMHZ3XFxuICAgIH1cXG4gICAgYm9keS5faGFzLW1vZGFsLWN1c3RvbSAubW9kYWwtY3VzdG9tLW92ZXJsYXkge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjU1KVxcbiAgICB9XFxuICAgIC5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcFtjbGFzc10ge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNFxcbiAgICB9XFxuICAgIC5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZS5faW5uZXItc2Nyb2xsLl9zaG93IHtcXG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG9cXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUuX2lubmVyLXNjcm9sbCAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgICAgICBoZWlnaHQ6IGF1dG87XFxuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlXFxuICAgIH1cXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC10aXRsZSB7XFxuICAgICAgICBmb250LXNpemU6IDE0cHg7XFxuICAgICAgICBmb250LXdlaWdodDogNzAwXFxuICAgIH1cXG4gICAgLm11bHRpc2hpcHBpbmctY2hlY2tvdXQtc3VjY2VzcyAubmF2LXRvZ2dsZSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5tdWx0aXNoaXBwaW5nLWNoZWNrb3V0LXN1Y2Nlc3MgLmxvZ28ge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHhcXG4gICAgfVxcbiAgICAuYmxvY2stY2FydC1mYWlsZWQgLmJsb2NrLXRpdGxlIHtcXG4gICAgICAgIG1hcmdpbjogMCAyMHB4IDIwcHhcXG4gICAgfVxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNvbHVtbi5tYWluIHtcXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtblxcbiAgICB9XFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC5tZWRpYSB7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAtd2Via2l0LW9yZGVyOiAtMTtcXG4gICAgICAgIG9yZGVyOiAtMVxcbiAgICB9XFxuICAgIC5jb21wYXJlLndyYXBwZXIsXFxuICAgIFtjbGFzcyo9J2Jsb2NrLWNvbXBhcmUnXSB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmNhcnQtY29udGFpbmVyIC5mb3JtLWNhcnQgLmFjdGlvbnMubWFpbiB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuY2FydC1kaXNjb3VudCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIHRoZWFkIC5jb2wuaXRlbSxcXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciB0aGVhZCAuY29sLnF0eSxcXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciB0aGVhZCAuY29sLnByaWNlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIHRoZWFkIC5jb2wuc3VidG90YWwsXFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgdGhlYWQgLmNvbC5tc3JwIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wucXR5LFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wucHJpY2UsXFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5zdWJ0b3RhbCxcXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAge1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICAgICAgd2lkdGg6IDMzJVxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHk6YmVmb3JlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wucHJpY2U6YmVmb3JlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWw6YmVmb3JlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wubXNycDpiZWZvcmUge1xcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKTtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4XFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAge1xcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0gLmNvbC5pdGVtIHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciB0Ym9keT50cj50ZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlcjogMFxcbiAgICB9XFxuICAgIC5jYXJ0LXRvdGFscyB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4XFxuICAgIH1cXG4gICAgLmNhcnQtdG90YWxzIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IDBcXG4gICAgfVxcbiAgICAuY2FydC10b3RhbHMgLnRvdGFscyB0Ym9keT50cjpub3QoOmxhc3QtY2hpbGQpPnRkOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyOiAwXFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2F2ZS1hZGRyZXNzIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24taGlkZS1wb3B1cCB7XFxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZHMge1xcbiAgICAgICAgbWFyZ2luOiAwIC0xNXB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSB7XFxuICAgICAgICBwYWRkaW5nOiAxNXB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC1jb250ZW50IHtcXG4gICAgICAgIHBhZGRpbmc6IDAgMTVweCAyMHB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWwge1xcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweFxcbiAgICB9XFxuICAgIC5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24ge1xcbiAgICAgICAgbWFyZ2luOiAwIC0xNXB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbiAucGF5bWVudC1vcHRpb24tdGl0bGUge1xcbiAgICAgICAgcGFkZGluZzogMTVweFxcbiAgICB9XFxuICAgIC5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24gLnBheW1lbnQtb3B0aW9uLWNvbnRlbnQge1xcbiAgICAgICAgcGFkZGluZzogMCAxNXB4IDIwcHhcXG4gICAgfVxcbiAgICAubG9naW4tY29udGFpbmVyIC5maWVsZHNldDphZnRlciB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuYWNjb3VudCAucGFnZS5tZXNzYWdlcyB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxuICAgIH1cXG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24ge1xcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4XFxuICAgIH1cXG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLWNvbnRlbnQgLmJveCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxuICAgIH1cXG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLWNvbnRlbnQgLmJveDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG4gICAgfVxcbiAgICAuY3VzdG9tZXItYWNjb3VudC1pbmRleCAucGFnZS10aXRsZS13cmFwcGVyIHtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbiAgICB9XFxuICAgIC5jYXJ0LWRpc2NvdW50IC5naWZ0Y2FyZCAuY29udGVudCB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzVweFxcbiAgICB9XFxuICAgIC5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSB7XFxuICAgICAgICBib3R0b206IDE3cHhcXG4gICAgfVxcbiAgICAuZmllbGQub3Blbi1hbW91bnQge1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXN0b2NrLXNrdSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnRcXG4gICAgfVxcbiAgICAuZ2lmdC1tZXNzYWdlIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi11cGRhdGUge1xcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xcbiAgICAgICAgcGFkZGluZzogMTVweDtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmdpZnQtaXRlbS1ibG9jayB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuZ2lmdC1pdGVtLWJsb2NrIC50aXRsZTphZnRlciB7XFxuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHJpZ2h0OiAyMHB4O1xcbiAgICAgICAgdG9wOiAxMHB4XFxuICAgIH1cXG4gICAgLmdpZnQtaXRlbS1ibG9jayAuY29udGVudCB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbVxcbiAgICB9XFxuICAgIC5naWZ0LW1lc3NhZ2Utc3VtbWFyeSB7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA3cmVtXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuZ2lmdC1jb250ZW50IHtcXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4XFxuICAgIH1cXG4gICAgLmNhcnQgLmFjdGlvbi1naWZ0IHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdD5zcGFuIHtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgICAgICBoZWlnaHQ6IDFweDtcXG4gICAgICAgIG1hcmdpbjogLTFweDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgd2lkdGg6IDFweFxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdDphZnRlciB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjJBJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdDpob3ZlcjphZnRlciB7XFxuICAgICAgICBjb2xvcjogIzMzM1xcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdDphY3RpdmU6YWZ0ZXIge1xcbiAgICAgICAgY29sb3I6ICM3NTc1NzVcXG4gICAgfVxcbiAgICAuY2FydCAuYWN0aW9uLWdpZnQuX2FjdGl2ZSB7XFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcXG4gICAgICAgIG1hcmdpbjogLTVweCAxNHB4IC0xcHggLTE1cHg7XFxuICAgICAgICBwYWRkaW5nOiA0cHggMTBweCA5cHggMTRweFxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdC5fYWN0aXZlOmFmdGVyIHtcXG4gICAgICAgIGNvbG9yOiAjMzMzXFxuICAgIH1cXG4gICAgLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0rLmFjdGlvbi10b3dpc2hsaXN0IHtcXG4gICAgICAgIGxlZnQ6IDQzcHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tZ2lmdHJlZ2lzdHJ5IHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi1naWZ0cmVnaXN0cnk+c3BhbiB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tZ2lmdHJlZ2lzdHJ5OmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjJCJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi1naWZ0cmVnaXN0cnk6aG92ZXI6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiAjMzMzXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLWdpZnRyZWdpc3RyeTphY3RpdmU6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1XFxuICAgIH1cXG4gICAgLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0gLmdpZnQtd3JhcHBpbmcsXFxuICAgIC5jYXJ0LWdpZnQtaXRlbSAuZ2lmdC13cmFwcGluZyB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5naWZ0LXdyYXBwaW5nLWxpc3Qge1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAuZ2lmdC13cmFwcGluZy1zdW1tYXJ5Ky5naWZ0LW1lc3NhZ2Utc3VtbWFyeSB7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwXFxuICAgIH1cXG4gICAgLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0ge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB3aWR0aDogMTAwJVxcbiAgICB9XFxuICAgIC5naWZ0LXdyYXBwaW5nLXByZXZpZXcgaW1nIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLml0ZW0tYWN0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5naWZ0LW9wdGlvbnMgLmdpZnQtd3JhcHBpbmcsXFxuICAgIC5pdGVtLWFjdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuZ2lmdC1vcHRpb25zIC5naWZ0LW1lc3NhZ2Uge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlci5ncm91cGVkIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHhcXG4gICAgfVxcbiAgICBib2R5LmZpbHRlci1hY3RpdmUgLnBhZ2UtaGVhZGVyIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICBib2R5LmZpbHRlci1hY3RpdmUgLnBhZ2Utd3JhcHBlciB7XFxuICAgICAgICBoZWlnaHQ6IDA7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtOTk5OTk5ZW07XFxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW5cXG4gICAgfVxcbiAgICBib2R5LmZpbHRlci1hY3RpdmUgLmNvbHVtbnMge1xcbiAgICAgICAgei1pbmRleDogOTk5XFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUge1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgICAgIHotaW5kZXg6IDk5XFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUgLmZpbHRlci1vcHRpb25zLWl0ZW06bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUgLmZpbHRlci10aXRsZSB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgICAgIGhlaWdodDogNDhweDtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHotaW5kZXg6IDJcXG4gICAgfVxcbiAgICAuZmlsdGVyLmFjdGl2ZSAuZmlsdGVyLXRpdGxlIHN0cm9uZyB7XFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGxlZnQ6IGF1dG87XFxuICAgICAgICByaWdodDogM3B4O1xcbiAgICAgICAgdG9wOiAxMHB4O1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUgLmZpbHRlci10aXRsZSBzdHJvbmc6YWZ0ZXIge1xcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgICAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgc3BlYWs6IG5vbmU7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuZmlsdGVyLmFjdGl2ZSAuZmlsdGVyLXN1YnRpdGxlIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBoZWlnaHQ6IDUwcHg7XFxuICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHotaW5kZXg6IDFcXG4gICAgfVxcbiAgICAuZmlsdGVyLmFjdGl2ZSAuZmlsdGVyLW9wdGlvbnMge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgIGJvdHRvbTogMDtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgbGVmdDogMDtcXG4gICAgICAgIG92ZXJmbG93OiBzY3JvbGw7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogNTBweDtcXG4gICAgICAgIHotaW5kZXg6IDEwXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLXN1YnRpdGxlIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG4gICAgfVxcbiAgICAuZmlsdGVyLWFjdGlvbnMge1xcbiAgICAgICAgbWFyZ2luOiAtMzVweCAtMTBweCAyNXB4XFxuICAgIH1cXG4gICAgLmZpbHRlci1vcHRpb25zLWNvbnRlbnQge1xcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHhcXG4gICAgfVxcbiAgICAuZmlsdGVyIC5maWx0ZXItY3VycmVudCB7XFxuICAgICAgICBib3JkZXI6IHNvbGlkICNjY2M7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwO1xcbiAgICAgICAgbWFyZ2luOiA1cHggLTEwcHggMFxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50IC5pdGVtcyB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLWN1cnJlbnQtc3VidGl0bGUge1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gICAgICAgIHotaW5kZXg6IDE7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlOmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDEzcHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlOmJlZm9yZSB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogMTBweDtcXG4gICAgICAgIHRvcDogMTBweFxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlOmFmdGVyIHtcXG4gICAgICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICAgICAgY29udGVudDogJyAoJyBhdHRyKGRhdGEtY291bnQpICcpJztcXG4gICAgICAgIGZvbnQtc2l6ZTogLjllbVxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LmFjdGl2ZSB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzBweFxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LmFjdGl2ZSAuYmxvY2stc3VidGl0bGU6YmVmb3JlIHtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG4gICAgfVxcbiAgICAuZmlsdGVyIC5maWx0ZXItY3VycmVudC5hY3RpdmUgLml0ZW1zIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLWN1cnJlbnQuYWN0aXZlKy5ibG9jay1hY3Rpb25zIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLWN1cnJlbnQrLmJsb2NrLWFjdGlvbnMge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5maWx0ZXItbm8tb3B0aW9ucyAuZmlsdGVyLXRpdGxlOmJlZm9yZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xcbiAgICAgICAgbGVmdDogLTE1cHg7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtNjBweDtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHdpZHRoOiAxMDBweDtcXG4gICAgICAgIHotaW5kZXg6IDk5XFxuICAgIH1cXG4gICAgLmZpbHRlci1uby1vcHRpb25zIC5maWx0ZXItY29udGVudCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxuICAgIH1cXG4gICAgLnBhZ2Utd2l0aC1maWx0ZXIgLmNvbHVtbnMgLnNpZGViYXItbWFpbiB7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgIC13ZWJraXQtb3JkZXI6IDA7XFxuICAgICAgICBvcmRlcjogMFxcbiAgICB9XFxuICAgIC5tYXAtcG9wdXAge1xcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLm1hcC1vbGQtcHJpY2UsXFxuICAgIC5tYXAtc2hvdy1pbmZvIHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbiAgICB9XFxuICAgIC5tYXAtb2xkLXByaWNlOm5vdCg6bGFzdC1jaGlsZCksXFxuICAgIC5tYXAtc2hvdy1pbmZvOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IHtcXG4gICAgICAgIGNsZWFyOiBib3RoO1xcbiAgICAgICAgbWFyZ2luLXRvcDogLTIxcHhcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IHtcXG4gICAgICAgIG1hcmdpbjogMCAtMTVweCAyMHB4XFxuICAgIH1cXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXNlbGVjdCAud2lzaGxpc3QtbmFtZSB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbVxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QtaXRlbXMge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIHBhZGRpbmc6IDE1cHggMFxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QtaXRlbXMuYWN0aXZlIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXNlbGVjdC1pdGVtcyAuaXRlbSB7XFxuICAgICAgICBtYXJnaW46IDNweCAwIDBcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0LWl0ZW1zIC5pdGVtOmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IDBcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0LWl0ZW1zIC5pdGVtLmN1cnJlbnQge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QtaXRlbXMgLml0ZW0gYSB7XFxuICAgICAgICBjb2xvcjogIzMzMztcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgcGFkZGluZzogNXB4IDE4cHg7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0LWl0ZW1zIC5pdGVtIGE6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlOFxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC10aXRsZSBzdHJvbmcge1xcbiAgICAgICAgZm9udC1zaXplOiAyLjZyZW1cXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtaW5mbyB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxuICAgIH1cXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXItc2VsZWN0LFxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtdG9vbGJhci1hY3Rpb25zIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWNoZWNrYm94IHtcXG4gICAgICAgIGxlZnQ6IDIwcHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDIwcHhcXG4gICAgfVxcbiAgICAucGFnZS1tdWx0aXBsZS13aXNobGlzdCAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLXBob3RvIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4XFxuICAgIH1cXG4gICAgLnBhZ2UtbXVsdGlwbGUtd2lzaGxpc3QgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAucGFnZS1tdWx0aXBsZS13aXNobGlzdCAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWRlc2NyaXB0aW9uLFxcbiAgICAucGFnZS1tdWx0aXBsZS13aXNobGlzdCAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5wcmljZS1ib3gsXFxuICAgIC5wYWdlLW11bHRpcGxlLXdpc2hsaXN0IC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tdG9vbHRpcCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMTE1cHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAud2lzaGxpc3QtZHJvcGRvd24ge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5vcmRlci1wYWdlci13cmFwcGVyIC50b29sYmFyLWFtb3VudCB7XFxuICAgICAgICBsZWZ0OiBpbmhlcml0O1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgdG9wOiBpbmhlcml0XFxuICAgIH1cXG4gICAgLm9yZGVyLXBhZ2VyLXdyYXBwZXIgLnBhZ2VzIHtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5vcmRlci1wYWdlci13cmFwcGVyIC5hY3Rpb24ucHJldmlvdXMsXFxuICAgIC5vcmRlci1wYWdlci13cmFwcGVyIC5hY3Rpb24ubmV4dCB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IHtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IC0yMXB4O1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICB6LWluZGV4OiA1XFxuICAgIH1cXG4gICAgLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuY29udGVudCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IC5jb250ZW50LmFjdGl2ZSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5jdXN0b21lci1uYW1lLFxcbiAgICAuY3VzdG9tZXItd2VsY29tZSsuYXV0aG9yaXphdGlvbi1saW5rIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5zd2l0Y2hlci10cmlnZ2VyIHN0cm9uZzphZnRlciB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgICAgIHJpZ2h0OiAtMjVweDtcXG4gICAgICAgIHRvcDogLTJweFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIC5wYXJlbnQgLmxldmVsLXRvcDphZnRlciB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgICAgIHJpZ2h0OiAxMHB4O1xcbiAgICAgICAgdG9wOiA3cHhcXG4gICAgfVxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XFxuICAgICAgICBtYXJnaW46IDAgLTE1cHhcXG4gICAgfVxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSAuc3dpdGNoZXItb3B0aW9ucyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5wYWdlLWZvb3RlciAuZm9vdGVyLmNvbnRlbnQgLnN3aXRjaGVyLXN0b3JlIC5zd2l0Y2hlci1vcHRpb25zIHVsLmRyb3Bkb3duIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXFxuICAgIH1cXG4gICAgLnBhZ2UtZm9vdGVyIC5mb290ZXIuY29udGVudCAuc3dpdGNoZXItc3RvcmUgLnN3aXRjaGVyLW9wdGlvbnMgdWwuZHJvcGRvd246YmVmb3JlLFxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSAuc3dpdGNoZXItb3B0aW9ucyB1bC5kcm9wZG93bjphZnRlciB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLnBhZ2UtZm9vdGVyIC5mb290ZXIuY29udGVudCAuc3dpdGNoZXItc3RvcmUgLnN3aXRjaGVyLW9wdGlvbnMgLnN3aXRjaGVyLXRyaWdnZXIsXFxuICAgIC5wYWdlLWZvb3RlciAuZm9vdGVyLmNvbnRlbnQgLnN3aXRjaGVyLXN0b3JlIC5zd2l0Y2hlci1vcHRpb25zIC5zd2l0Y2hlci1vcHRpb24ge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjZWNlY2U7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweFxcbiAgICB9XFxuICAgIC5wYWdlLWZvb3RlciAuZm9vdGVyLmNvbnRlbnQgLnN3aXRjaGVyLXN0b3JlIC5zd2l0Y2hlci1vcHRpb25zIC5zd2l0Y2hlci10cmlnZ2VyIHN0cm9uZyB7XFxuICAgICAgICBwYWRkaW5nOiAxMHB4IDBcXG4gICAgfVxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSAuc3dpdGNoZXItb3B0aW9ucyAuc3dpdGNoZXItb3B0aW9uIGEge1xcbiAgICAgICAgcGFkZGluZzogMFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbSB7XFxuICAgICAgICBwYWRkaW5nOiAyMHB4IDEwcHggMjBweCAyMHB4O1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgICAgICBmbG9hdDogbGVmdDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbVxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9uIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9uOmxhc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwXFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb24uZWRpdCB7XFxuICAgICAgICBmbG9hdDogbGVmdFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9uLmRlbGV0ZSB7XFxuICAgICAgICBmbG9hdDogcmlnaHRcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbi5lZGl0LFxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbi5kZWxldGUge1xcbiAgICAgICAgbWFyZ2luLXRvcDogN3B4XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWRlc2NyaXB0aW9uLFxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5wcmljZS1ib3gsXFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tdG9vbHRpcCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogOTVweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0gLmJveC10b2NhcnQge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5ib3gtdG9jYXJ0IC5zdG9jayB7XFxuICAgICAgICBtYXJnaW4tdG9wOiA3cHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5naWZ0cmVnaXN0eS1kcm9wZG93bixcXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbSAuZmllbGQucXR5IHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xcbiAgICAgICAgbWF4LXdpZHRoOiA4MHB4XFxuICAgIH1cXG4gICAgLndpc2hsaXN0LWluZGV4LWluZGV4IC5wcm9kdWN0LWl0ZW0ge1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXggLnByb2R1Y3QtaXRlbS1pbmZvIHtcXG4gICAgICAgIHdpZHRoOiBhdXRvXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLXRvd2lzaGxpc3Qge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLXRvd2lzaGxpc3Q+c3BhbiB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tdG93aXNobGlzdDpiZWZvcmUge1xcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYwMCc7XFxuICAgICAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgc3BlYWs6IG5vbmU7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tdG93aXNobGlzdDpob3ZlcjpiZWZvcmUge1xcbiAgICAgICAgY29sb3I6ICMzMzNcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tdG93aXNobGlzdDphY3RpdmU6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1XFxuICAgIH1cXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2OHB4KSB7XFxuICAgIC5hYnMtY2hlY2tvdXQtdG9vbHRpcC1jb250ZW50LXBvc2l0aW9uLXRvcC1tb2JpbGUge1xcbiAgICAgICAgcmlnaHQ6IC0xMHB4O1xcbiAgICAgICAgdG9wOiA0MHB4O1xcbiAgICAgICAgbGVmdDogYXV0b1xcbiAgICB9XFxufVxcblxcbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6NjQwcHgpIHtcXG4gICAgLmFicy1ibG9ja3MtMmNvbHVtbnMtcyB7XFxuICAgICAgICB3aWR0aDogNDglXFxuICAgIH1cXG4gICAgLmFicy1yZXNldC1sZWZ0LW1hcmdpbi1kZXNrdG9wLXMsXFxuICAgIC5jb2x1bW46bm90KC5zaWRlYmFyLW1haW4pIC5tdWx0aWNoZWNrb3V0IC5hY3Rpb25zLXRvb2xiYXIsXFxuICAgIC5tdWx0aWNoZWNrb3V0IC5ibG9jay1zaGlwcGluZyAuYm94LXNoaXBwaW5nLW1ldGhvZCAuZmllbGRzZXQgLmxlZ2VuZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMFxcbiAgICB9XFxuICAgIC5hYnMtdmlzdWFsbHktaGlkZGVuLWRlc2t0b3AtcyxcXG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvOm5vdCg6aG92ZXIpOm5vdCguYWN0aXZlKSAucHJvZHVjdC1pdGVtLWlubmVyIHtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgICAgICBoZWlnaHQ6IDFweDtcXG4gICAgICAgIG1hcmdpbjogLTFweDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgd2lkdGg6IDFweFxcbiAgICB9XFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LWRlc2t0b3AtczpiZWZvcmUsXFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LWRlc2t0b3AtczphZnRlcixcXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWJpbGxpbmc6YmVmb3JlLFxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZzphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXFxuICAgIH1cXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtZGVza3RvcC1zOmFmdGVyLFxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZzphZnRlciB7XFxuICAgICAgICBjbGVhcjogYm90aFxcbiAgICB9XFxuICAgIC5hYnMtYWRkLWJveC1zaXppbmctZGVza3RvcC1zLFxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stc2hpcHBpbmcgLmJveCxcXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWJpbGxpbmcgLmJveC1iaWxsaW5nLWFkZHJlc3MsXFxuICAgIC5tdWx0aWNoZWNrb3V0IC5ibG9jay1iaWxsaW5nIC5ib3gtYmlsbGluZy1tZXRob2Qge1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveFxcbiAgICB9XFxuICAgIC5hYnMtZm9ybS1maWVsZC1jb2x1bW4tMi1zIC5maWVsZHNldCAuZmllbGQge1xcbiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgMDtcXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICB3aWR0aDogNTAlO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcFxcbiAgICB9XFxuICAgIC5hYnMtZm9ybS1maWVsZC1jb2x1bW4tMi1zIC5maWVsZHNldCAuZmllbGQrLmZpZWxkc2V0IHtcXG4gICAgICAgIGNsZWFyOiBib3RoXFxuICAgIH1cXG4gICAgLmFicy1mb3JtLWZpZWxkLWNvbHVtbi0yLXMgLmZpZWxkc2V0IC5maWVsZCAuZmllbGQge1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmFicy1mb3JtLWZpZWxkLXJldmVydC1jb2x1bW4tMS1zIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmFicy1hY3Rpb24tcHJpbnQtcyB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYWJzLWFjdGlvbi1wcmludC1zOmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDE2cHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjI0JztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDAgNHB4IDAgMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLnRhYmxlPnRib2R5PnRyPnRoLFxcbiAgICAudGFibGU+dGJvZHk+dHI+dGQge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAudGFibGU+dGJvZHkrdGJvZHkge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAudWktZGlhbG9nLnBvcHVwIHtcXG4gICAgICAgIHdpZHRoOiA0MjBweFxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSB7XFxuICAgICAgICBmbG9hdDogbm9uZTtcXG4gICAgICAgIG1hcmdpbi10b3A6IDExcHg7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodFxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSAuYWN0aW9uIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4XFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZsb2F0OiBsZWZ0XFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLml0ZW0tb3B0aW9ucyB7XFxuICAgICAgICBtYXJnaW46IDIwcHggMCAwXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLmJveCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLXNoaXBwaW5nIC5ib3gge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB3aWR0aDogMjUlXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLXNoaXBwaW5nIC5ib3gtc2hpcHBpbmctbWV0aG9kIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XFxuICAgICAgICB3aWR0aDogNTAlXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLXNoaXBwaW5nIC5ib3gtc2hpcHBpbmctbWV0aG9kIC5maWVsZHNldCAuZmllbGQ6YmVmb3JlIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZyAuYm94LWJpbGxpbmctYWRkcmVzcyB7XFxuICAgICAgICBmbG9hdDogbGVmdDtcXG4gICAgICAgIHdpZHRoOiAyNSVcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZyAuYm94LWJpbGxpbmctbWV0aG9kIHtcXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbiAgICAgICAgd2lkdGg6IDUwJVxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0LmZvcm0uYWRkcmVzcyAudGFibGUtd3JhcHBlciAuYXBwbGljYWJsZSB7XFxuICAgICAgICBtYXJnaW46IDdweCAwIDBcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmJveC1pdGVtcyB7XFxuICAgICAgICBjbGVhcjogbGVmdDtcXG4gICAgICAgIGZsb2F0OiBub25lO1xcbiAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7XFxuICAgICAgICB3aWR0aDogYXV0b1xcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuY29sLml0ZW0ge1xcbiAgICAgICAgd2lkdGg6IDc1JVxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5tZXRob2RzLXBheW1lbnQgLml0ZW0tY29udGVudD4uZmllbGRzZXQge1xcbiAgICAgICAgd2lkdGg6IGF1dG9cXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAubWV0aG9kcy1wYXltZW50IC5pdGVtLWNvbnRlbnQ+LmZpZWxkc2V0IC5maWVsZC5jdnYge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgd2lkdGg6IGF1dG9cXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAubWV0aG9kcy1wYXltZW50IC5maWVsZHNldD4uZmllbGQ6bm90KC5jaG9pY2UpPi5sYWJlbCB7XFxuICAgICAgICBmbG9hdDogbm9uZTtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICB3aWR0aDogYXV0b1xcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5tZXRob2RzLXBheW1lbnQgLmZpZWxkc2V0Pi5maWVsZDpub3QoLmNob2ljZSk6bm90KC5jdnYpIC5jb250cm9sIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgICAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4XFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6Zm9jdXMsXFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAgICAgYm9yZGVyOiBub25lXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgICAgIGJvcmRlcjogbm9uZVxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZVtkaXNhYmxlZF0sXFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZSB7XFxuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgICAgICBvcGFjaXR5OiAuNVxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOnZpc2l0ZWQge1xcbiAgICAgICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgICAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgICAgIGNvbG9yOiAjZmY1NTAxO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgICAgICBjb2xvcjogIzAwNmJiNFxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmZvY3VzIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IDBcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZS5kaXNhYmxlZCxcXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmVbZGlzYWJsZWRdLFxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICAgICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgICAgICBvcGFjaXR5OiAuNTtcXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG4gICAgfVxcbiAgICAuY2F0YWxvZ3NlYXJjaC1hZHZhbmNlZC1yZXN1bHQgLm1lc3NhZ2UuZXJyb3Ige1xcbiAgICAgICAgbWFyZ2luLXRvcDogMFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0taW5mbzpob3ZlcixcXG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvLmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICAgICAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xcbiAgICAgICAgbWFyZ2luOiAtMTBweDtcXG4gICAgICAgIHBhZGRpbmc6IDlweDtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHotaW5kZXg6IDJcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtLWluZm86aG92ZXIgLnByb2R1Y3QtaXRlbS1pbm5lcixcXG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvLmFjdGl2ZSAucHJvZHVjdC1pdGVtLWlubmVyIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLnNpZGViYXIgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvOmhvdmVyIC5wcm9kdWN0LWl0ZW0tcGhvdG8sXFxuICAgIC5zaWRlYmFyIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0taW5mby5hY3RpdmUgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgICAgICB0b3A6IDlweDtcXG4gICAgICAgIGxlZnQ6IDlweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0taW5uZXIge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XFxuICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgbWFyZ2luOiA5cHggMCAwIC0xcHg7XFxuICAgICAgICBwYWRkaW5nOiAwIDlweCA5cHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogLTFweDtcXG4gICAgICAgIHotaW5kZXg6IDJcXG4gICAgfVxcbiAgICAucHJvZHVjdC1pdGVtLWFjdGlvbnMge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtLWFjdGlvbnMge1xcbiAgICAgICAgbWFyZ2luOiAtMTBweCAwIDEwcHhcXG4gICAgfVxcbiAgICAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtcHJpbWFyeSsuYWN0aW9ucy1zZWNvbmRhcnkge1xcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcXG4gICAgICAgIHdpZHRoOiA1MCU7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxuICAgIH1cXG4gICAgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXByaW1hcnkrLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb24ge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxuICAgIH1cXG4gICAgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXByaW1hcnkrLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb246bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBcXG4gICAgfVxcbiAgICAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtcHJpbWFyeSB7XFxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdHMgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbm5lcjpiZWZvcmUge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgaGVpZ2h0OiAzcHg7XFxuICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiAtMnB4O1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICB6LWluZGV4OiAxXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdHMgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIHtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHotaW5kZXg6IDFcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XFxuICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMlXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdHMgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtbGF5b3V0LTNjb2x1bW5zIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0sXFxuICAgIC5wYWdlLXByb2R1Y3RzLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtcHJvZHVjdHMucGFnZS1sYXlvdXQtM2NvbHVtbnMgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSB7XFxuICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMlXFxuICAgIH1cXG4gICAgLnJldmlldy1mb3JtIHtcXG4gICAgICAgIG1heC13aWR0aDogNTAwcHhcXG4gICAgfVxcbiAgICAucmV2aWV3LXJhdGluZ3Mge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgICAgbWF4LXdpZHRoOiAyNDBweFxcbiAgICB9XFxuICAgIC5yZXZpZXctcmF0aW5nc34ucmV2aWV3LWNvbnRlbnQsXFxuICAgIC5yZXZpZXctcmF0aW5nc34ucmV2aWV3LWRldGFpbHMge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4MHB4XFxuICAgIH1cXG4gICAgLnJldmlldy10b29sYmFyIHtcXG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHhcXG4gICAgfVxcbiAgICAucmV2aWV3LXRvb2xiYXIgLnBhZ2VzIHtcXG4gICAgICAgIHBhZGRpbmc6IDMwcHggMFxcbiAgICB9XFxuICAgIC5maWVsZHNldCAucmV2aWV3LWxlZ2VuZC5sZWdlbmQge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweFxcbiAgICB9XFxuICAgIC5yZXZpZXctaXRlbSB7XFxuICAgICAgICBwYWRkaW5nOiAzMHB4IDBcXG4gICAgfVxcbiAgICAucmV2aWV3LXRpdGxlIHtcXG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHhcXG4gICAgfVxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItdGl0bGUgLmFjdGlvbiB7XFxuICAgICAgICBtYXJnaW46IDEycHggMCAwIDMwcHhcXG4gICAgfVxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItdGl0bGUgLmFjdGlvbi50cmFjayB7XFxuICAgICAgICBmbG9hdDogcmlnaHRcXG4gICAgfVxcbiAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXggLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIHtcXG4gICAgICAgIG1hcmdpbjogMFxcbiAgICB9XFxuICAgIC5ibG9jay53aWRnZXQgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLmJsb2NrLndpZGdldCAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtLFxcbiAgICAucGFnZS1sYXlvdXQtM2NvbHVtbnMgLmJsb2NrLndpZGdldCAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtIHtcXG4gICAgICAgIHdpZHRoOiAzMy4zMzMzMzMzMyVcXG4gICAgfVxcbn1cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyIS4vc3JjL01hZ2VudG9Qcm9kdWN0LmNzc1xuLy8gbW9kdWxlIGlkID0gMjM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///236\n"); +eval("exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/lib/css-base.js */ 237)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"body {\\n margin: 0;\\n padding: 0\\n}\\n\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nmain,\\nfooter,\\nheader,\\nnav,\\nsection,\\nsummary {\\n display: block\\n}\\n\\naudio,\\ncanvas,\\nvideo {\\n display: inline-block\\n}\\n\\naudio:not([controls]) {\\n display: none;\\n height: 0\\n}\\n\\nnav ul,\\nnav ol {\\n list-style: none none\\n}\\n\\nimg {\\n border: 0\\n}\\n\\nimg,\\nobject,\\nvideo,\\nembed {\\n height: auto;\\n max-width: 100%\\n}\\n\\nsvg:not(:root) {\\n overflow: hidden\\n}\\n\\nfigure {\\n margin: 0\\n}\\n\\nhtml {\\n font-size: 62.5%;\\n -webkit-text-size-adjust: 100%;\\n -ms-text-size-adjust: 100%;\\n font-size-adjust: 100%\\n}\\n\\nbody {\\n color: #333;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1.42857143;\\n font-size: 1.4rem\\n}\\n\\np {\\n margin-top: 0rem;\\n margin-bottom: 1rem\\n}\\n\\nabbr[title] {\\n border-bottom: 1px dotted #ccc;\\n cursor: help\\n}\\n\\nb,\\nstrong {\\n font-weight: 700\\n}\\n\\nem,\\ni {\\n font-style: italic\\n}\\n\\nmark {\\n background: #f6f6f6;\\n color: #000\\n}\\n\\nsmall,\\n.small {\\n font-size: 12px\\n}\\n\\nhr {\\n border: 0;\\n border-top: 1px solid #ccc;\\n margin-bottom: 20px;\\n margin-top: 20px\\n}\\n\\nsub,\\nsup {\\n font-size: 71.42857143000001%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline\\n}\\n\\nsup {\\n top: -.5em\\n}\\n\\nsub {\\n bottom: -.25em\\n}\\n\\ndfn {\\n font-style: italic\\n}\\n\\nh1 {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 0rem;\\n margin-bottom: 2rem\\n}\\n\\nh2 {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\nh3 {\\n font-weight: 600;\\n line-height: 1.1;\\n font-size: 1.8rem;\\n margin-top: 2rem;\\n margin-bottom: 1rem\\n}\\n\\nh4 {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1.4rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\nh5 {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1.2rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\nh6 {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\nh1 small,\\nh2 small,\\nh3 small,\\nh4 small,\\nh5 small,\\nh6 small,\\nh1 .small,\\nh2 .small,\\nh3 .small,\\nh4 .small,\\nh5 .small,\\nh6 .small {\\n color: #333;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1\\n}\\n\\na,\\n.alink {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\na:visited,\\n.alink:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\na:hover,\\n.alink:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\na:active,\\n.alink:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\nul,\\nol {\\n margin-top: 0rem;\\n margin-bottom: 2.5rem\\n}\\n\\nul>li,\\nol>li {\\n margin-top: 0rem;\\n margin-bottom: 1rem\\n}\\n\\nul ul,\\nol ul,\\nul ol,\\nol ol {\\n margin-bottom: 0\\n}\\n\\ndl {\\n margin-bottom: 20px;\\n margin-top: 0\\n}\\n\\ndt {\\n font-weight: 700;\\n margin-bottom: 5px;\\n margin-top: 0\\n}\\n\\ndd {\\n margin-bottom: 10px;\\n margin-top: 0;\\n margin-left: 0\\n}\\n\\ncode,\\nkbd,\\npre,\\nsamp {\\n font-family: Menlo, Monaco, Consolas, 'Courier New', monospace\\n}\\n\\ncode {\\n background: #f6f6f6;\\n color: #111;\\n padding: 2px 4px;\\n font-size: 1.2rem;\\n white-space: nowrap\\n}\\n\\nkbd {\\n background: #f6f6f6;\\n color: #111;\\n padding: 2px 4px;\\n font-size: 1.2rem\\n}\\n\\npre {\\n background: #f6f6f6;\\n border: 1px solid #ccc;\\n color: #111;\\n line-height: 1.42857143;\\n margin: 0 0 10px;\\n padding: 10px;\\n font-size: 1.2rem;\\n display: block;\\n word-wrap: break-word\\n}\\n\\npre code {\\n background-color: transparent;\\n border-radius: 0;\\n color: inherit;\\n font-size: inherit;\\n padding: 0;\\n white-space: pre-wrap\\n}\\n\\nblockquote {\\n border-left: 0 solid #ccc;\\n margin: 0 0 20px 40px;\\n padding: 0;\\n color: #333;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-style: italic;\\n font-weight: 400;\\n line-height: 1.42857143;\\n font-size: 1.4rem\\n}\\n\\nblockquote p:last-child,\\nblockquote ul:last-child,\\nblockquote ol:last-child {\\n margin-bottom: 0\\n}\\n\\nblockquote footer,\\nblockquote small,\\nblockquote .small {\\n color: #333;\\n line-height: 1.42857143;\\n font-size: 1rem;\\n display: block\\n}\\n\\nblockquote footer:before,\\nblockquote small:before,\\nblockquote .small:before {\\n content: '\\\\2014 \\\\A0'\\n}\\n\\nblockquote cite {\\n font-style: normal\\n}\\n\\nblockquote:before,\\nblockquote:after {\\n content: ''\\n}\\n\\nq {\\n quotes: none\\n}\\n\\nq:before,\\nq:after {\\n content: '';\\n content: none\\n}\\n\\ncite {\\n font-style: normal\\n}\\n\\ntable {\\n width: 100%;\\n border-collapse: collapse;\\n border-spacing: 0;\\n max-width: 100%\\n}\\n\\ntable th {\\n text-align: left\\n}\\n\\ntable>tbody>tr>th,\\ntable>tfoot>tr>th,\\ntable>tbody>tr>td,\\ntable>tfoot>tr>td {\\n vertical-align: top\\n}\\n\\ntable>thead>tr>th,\\ntable>thead>tr>td {\\n vertical-align: bottom\\n}\\n\\ntable>thead>tr>th,\\ntable>tbody>tr>th,\\ntable>tfoot>tr>th,\\ntable>thead>tr>td,\\ntable>tbody>tr>td,\\ntable>tfoot>tr>td {\\n padding: 11px 10px\\n}\\n\\nbutton {\\n background-image: none;\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333;\\n cursor: pointer;\\n display: inline-block;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n margin: 0;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n box-sizing: border-box;\\n vertical-align: middle\\n}\\n\\nbutton:focus,\\nbutton:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\nbutton:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\nbutton.disabled,\\nbutton[disabled],\\nfieldset[disabled] button {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\nbutton::-moz-focus-inner {\\n border: 0;\\n padding: 0\\n}\\n\\ninput[type=\\\"text\\\"],\\ninput[type=\\\"password\\\"],\\ninput[type=\\\"url\\\"],\\ninput[type=\\\"tel\\\"],\\ninput[type=\\\"search\\\"],\\ninput[type=\\\"number\\\"],\\ninput[type=\\\"datetime\\\"],\\ninput[type=\\\"email\\\"] {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 0 9px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box\\n}\\n\\ninput[type=\\\"text\\\"]:disabled,\\ninput[type=\\\"password\\\"]:disabled,\\ninput[type=\\\"url\\\"]:disabled,\\ninput[type=\\\"tel\\\"]:disabled,\\ninput[type=\\\"search\\\"]:disabled,\\ninput[type=\\\"number\\\"]:disabled,\\ninput[type=\\\"datetime\\\"]:disabled,\\ninput[type=\\\"email\\\"]:disabled {\\n opacity: .5\\n}\\n\\ninput[type=\\\"text\\\"]::-moz-placeholder,\\ninput[type=\\\"password\\\"]::-moz-placeholder,\\ninput[type=\\\"url\\\"]::-moz-placeholder,\\ninput[type=\\\"tel\\\"]::-moz-placeholder,\\ninput[type=\\\"search\\\"]::-moz-placeholder,\\ninput[type=\\\"number\\\"]::-moz-placeholder,\\ninput[type=\\\"datetime\\\"]::-moz-placeholder,\\ninput[type=\\\"email\\\"]::-moz-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"text\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"password\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"url\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"tel\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"search\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"number\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"datetime\\\"]::-webkit-input-placeholder,\\ninput[type=\\\"email\\\"]::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"text\\\"]:-ms-input-placeholder,\\ninput[type=\\\"password\\\"]:-ms-input-placeholder,\\ninput[type=\\\"url\\\"]:-ms-input-placeholder,\\ninput[type=\\\"tel\\\"]:-ms-input-placeholder,\\ninput[type=\\\"search\\\"]:-ms-input-placeholder,\\ninput[type=\\\"number\\\"]:-ms-input-placeholder,\\ninput[type=\\\"datetime\\\"]:-ms-input-placeholder,\\ninput[type=\\\"email\\\"]:-ms-input-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"number\\\"] {\\n -moz-appearance: textfield\\n}\\n\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0\\n}\\n\\ninput[type=\\\"search\\\"] {\\n -webkit-appearance: none\\n}\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration,\\ninput[type=\\\"search\\\"]::-webkit-search-results-button,\\ninput[type=\\\"search\\\"]::-webkit-search-results-decoration {\\n -webkit-appearance: none\\n}\\n\\nselect {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 5px 10px 4px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box\\n}\\n\\nselect:disabled {\\n opacity: .5\\n}\\n\\nselect[multiple=\\\"multiple\\\"] {\\n height: auto;\\n background-image: none\\n}\\n\\ntextarea {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: auto;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 10px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box;\\n resize: vertical\\n}\\n\\ntextarea:disabled {\\n opacity: .5\\n}\\n\\ntextarea::-moz-placeholder {\\n color: #575757\\n}\\n\\ntextarea::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\ntextarea:-ms-input-placeholder {\\n color: #575757\\n}\\n\\ninput[type=\\\"checkbox\\\"] {\\n margin: 2px 5px 0 0\\n}\\n\\ninput[type=\\\"checkbox\\\"]:disabled {\\n opacity: .5\\n}\\n\\ninput[type=\\\"radio\\\"] {\\n margin: 2px 5px 0 0\\n}\\n\\ninput[type=\\\"radio\\\"]:disabled {\\n opacity: .5\\n}\\n\\ninput.mage-error,\\nselect.mage-error,\\ntextarea.mage-error {\\n border-color: #ed8380\\n}\\n\\ndiv.mage-error[generated] {\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\ninput[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n cursor: pointer;\\n -webkit-appearance: button\\n}\\n\\ninput::-moz-focus-inner {\\n border: 0;\\n padding: 0\\n}\\n\\nform {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0)\\n}\\n\\naddress {\\n font-style: normal\\n}\\n\\n*:focus {\\n box-shadow: none;\\n outline: 0\\n}\\n\\n._keyfocus *:focus,\\ninput:not([disabled]):focus,\\ntextarea:not([disabled]):focus,\\nselect:not([disabled]):focus {\\n box-shadow: 0 0 3px 1px #00699d\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle.items,\\n.product-items,\\n.prices-tier,\\n.search-terms,\\n.cart-summary .checkout-methods-items,\\n.opc-wrapper .opc,\\n.opc-progress-bar,\\n.checkout-agreements-items,\\n.order-details-items .items-qty,\\n.footer.content ul,\\n.block-banners .banner-items,\\n.block-banners-inline .banner-items,\\n.block-event .slider-panel .slider {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle.items>li,\\n.product-items>li,\\n.prices-tier>li,\\n.search-terms>li,\\n.cart-summary .checkout-methods-items>li,\\n.opc-wrapper .opc>li,\\n.opc-progress-bar>li,\\n.checkout-agreements-items>li,\\n.order-details-items .items-qty>li,\\n.footer.content ul>li,\\n.block-banners .banner-items>li,\\n.block-banners-inline .banner-items>li,\\n.block-event .slider-panel .slider>li {\\n margin: 0\\n}\\n\\n.action-primary:focus,\\n.action-primary:active {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action-primary:hover {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action-primary.disabled,\\n.action-primary[disabled],\\nfieldset[disabled] .action-primary {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.abs-discount-block .actions-toolbar .action.primary,\\n.abs-discount-block .actions-toolbar .action.cancel,\\n.block-compare .action.primary,\\n.cart-summary .block .actions-toolbar>.primary .action.primary,\\n.cart-summary .form.giftregistry .fieldset .action.primary,\\n.paypal-review-discount .actions-toolbar .action.primary,\\n.paypal-review-discount .actions-toolbar .action.cancel,\\n.cart-discount .actions-toolbar .action.primary,\\n.cart-discount .actions-toolbar .action.cancel {\\n border-radius: 3px\\n}\\n\\n.abs-discount-block .actions-toolbar .action.primary:not(:focus),\\n.abs-discount-block .actions-toolbar .action.cancel:not(:focus),\\n.block-compare .action.primary:not(:focus),\\n.cart-summary .block .actions-toolbar>.primary .action.primary:not(:focus),\\n.cart-summary .form.giftregistry .fieldset .action.primary:not(:focus),\\n.paypal-review-discount .actions-toolbar .action.primary:not(:focus),\\n.paypal-review-discount .actions-toolbar .action.cancel:not(:focus),\\n.cart-discount .actions-toolbar .action.primary:not(:focus),\\n.cart-discount .actions-toolbar .action.cancel:not(:focus) {\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\n.abs-discount-block .actions-toolbar .action.primary:active,\\n.abs-discount-block .actions-toolbar .action.cancel:active,\\n.block-compare .action.primary:active,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:active,\\n.cart-summary .form.giftregistry .fieldset .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.cancel:active,\\n.cart-discount .actions-toolbar .action.primary:active,\\n.cart-discount .actions-toolbar .action.cancel:active {\\n box-shadow: inset 0 1px 0 0 rgba(204, 204, 204, 0.8), inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\n.block-event .slider-panel .slider .item .action.event {\\n background-image: none;\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333;\\n cursor: pointer;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n margin: 0;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n box-sizing: border-box;\\n vertical-align: middle;\\n display: inline-block;\\n text-decoration: none;\\n border-radius: 3px\\n}\\n\\n.abs-action-link-button:focus,\\n.abs-action-link-button:active,\\n.block-event .slider-panel .slider .item .action.event:focus,\\n.block-event .slider-panel .slider .item .action.event:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-action-link-button:hover,\\n.block-event .slider-panel .slider .item .action.event:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-action-link-button.disabled,\\n.abs-action-link-button[disabled],\\nfieldset[disabled] .abs-action-link-button,\\n.block-event .slider-panel .slider .item .action.event.disabled,\\n.block-event .slider-panel .slider .item .action.event[disabled],\\nfieldset[disabled] .block-event .slider-panel .slider .item .action.event {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.abs-action-link-button:hover,\\n.abs-action-link-button:active,\\n.abs-action-link-button:focus,\\n.block-event .slider-panel .slider .item .action.event:hover,\\n.block-event .slider-panel .slider .item .action.event:active,\\n.block-event .slider-panel .slider .item .action.event:focus {\\n text-decoration: none\\n}\\n\\n.abs-action-remove,\\n.abs-discount-block .action.check,\\n.popup .actions-toolbar .action.cancel,\\n.paypal-button-widget .paypal-button,\\n.bundle-options-container .action.back,\\n.block.related .action.select,\\n.cart.table-wrapper .actions-toolbar>.action-delete,\\n.cart.table-wrapper .action.help.map,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup,\\n.opc-wrapper .edit-address-link,\\n.opc-block-shipping-information .shipping-information-title .action-edit,\\n.action-auth-toggle,\\n.checkout-payment-method .checkout-billing-address .action-cancel,\\n.checkout-agreements-block .action-show,\\n.gift-options .actions-toolbar .action-cancel,\\n.gift-summary .action-edit,\\n.gift-summary .action-delete,\\n.action-gift,\\n.gift-wrapping-title .action-remove,\\n.wishlist.split.button>.action,\\n.abs-add-fields .action.remove,\\n.paypal-review-discount .action.check,\\n.cart-discount .action.check,\\n.form-giftregistry-share .action.remove,\\n.form-giftregistry-edit .action.remove,\\n.form-add-invitations .action.remove,\\n.form-create-return .action.remove,\\n.form.send.friend .action.remove {\\n line-height: 1.42857143;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline;\\n font-weight: 400;\\n border-radius: 0\\n}\\n\\n.abs-action-button-as-link:visited,\\n.abs-action-remove:visited,\\n.abs-discount-block .action.check:visited,\\n.popup .actions-toolbar .action.cancel:visited,\\n.paypal-button-widget .paypal-button:visited,\\n.bundle-options-container .action.back:visited,\\n.block.related .action.select:visited,\\n.cart.table-wrapper .actions-toolbar>.action-delete:visited,\\n.cart.table-wrapper .action.help.map:visited,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:visited,\\n.opc-wrapper .edit-address-link:visited,\\n.opc-block-shipping-information .shipping-information-title .action-edit:visited,\\n.action-auth-toggle:visited,\\n.checkout-payment-method .checkout-billing-address .action-cancel:visited,\\n.checkout-agreements-block .action-show:visited,\\n.gift-options .actions-toolbar .action-cancel:visited,\\n.gift-summary .action-edit:visited,\\n.gift-summary .action-delete:visited,\\n.action-gift:visited,\\n.gift-wrapping-title .action-remove:visited,\\n.wishlist.split.button>.action:visited,\\n.abs-add-fields .action.remove:visited,\\n.paypal-review-discount .action.check:visited,\\n.cart-discount .action.check:visited,\\n.form-giftregistry-share .action.remove:visited,\\n.form-giftregistry-edit .action.remove:visited,\\n.form-add-invitations .action.remove:visited,\\n.form-create-return .action.remove:visited,\\n.form.send.friend .action.remove:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.abs-action-button-as-link:hover,\\n.abs-action-remove:hover,\\n.abs-discount-block .action.check:hover,\\n.popup .actions-toolbar .action.cancel:hover,\\n.paypal-button-widget .paypal-button:hover,\\n.bundle-options-container .action.back:hover,\\n.block.related .action.select:hover,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover,\\n.cart.table-wrapper .action.help.map:hover,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:hover,\\n.opc-wrapper .edit-address-link:hover,\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover,\\n.action-auth-toggle:hover,\\n.checkout-payment-method .checkout-billing-address .action-cancel:hover,\\n.checkout-agreements-block .action-show:hover,\\n.gift-options .actions-toolbar .action-cancel:hover,\\n.gift-summary .action-edit:hover,\\n.gift-summary .action-delete:hover,\\n.action-gift:hover,\\n.gift-wrapping-title .action-remove:hover,\\n.wishlist.split.button>.action:hover,\\n.abs-add-fields .action.remove:hover,\\n.paypal-review-discount .action.check:hover,\\n.cart-discount .action.check:hover,\\n.form-giftregistry-share .action.remove:hover,\\n.form-giftregistry-edit .action.remove:hover,\\n.form-add-invitations .action.remove:hover,\\n.form-create-return .action.remove:hover,\\n.form.send.friend .action.remove:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.abs-action-button-as-link:active,\\n.abs-action-remove:active,\\n.abs-discount-block .action.check:active,\\n.popup .actions-toolbar .action.cancel:active,\\n.paypal-button-widget .paypal-button:active,\\n.bundle-options-container .action.back:active,\\n.block.related .action.select:active,\\n.cart.table-wrapper .actions-toolbar>.action-delete:active,\\n.cart.table-wrapper .action.help.map:active,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:active,\\n.opc-wrapper .edit-address-link:active,\\n.opc-block-shipping-information .shipping-information-title .action-edit:active,\\n.action-auth-toggle:active,\\n.checkout-payment-method .checkout-billing-address .action-cancel:active,\\n.checkout-agreements-block .action-show:active,\\n.gift-options .actions-toolbar .action-cancel:active,\\n.gift-summary .action-edit:active,\\n.gift-summary .action-delete:active,\\n.action-gift:active,\\n.gift-wrapping-title .action-remove:active,\\n.wishlist.split.button>.action:active,\\n.abs-add-fields .action.remove:active,\\n.paypal-review-discount .action.check:active,\\n.cart-discount .action.check:active,\\n.form-giftregistry-share .action.remove:active,\\n.form-giftregistry-edit .action.remove:active,\\n.form-add-invitations .action.remove:active,\\n.form-create-return .action.remove:active,\\n.form.send.friend .action.remove:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.abs-action-button-as-link:hover,\\n.abs-action-remove:hover,\\n.abs-discount-block .action.check:hover,\\n.popup .actions-toolbar .action.cancel:hover,\\n.paypal-button-widget .paypal-button:hover,\\n.bundle-options-container .action.back:hover,\\n.block.related .action.select:hover,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover,\\n.cart.table-wrapper .action.help.map:hover,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:hover,\\n.opc-wrapper .edit-address-link:hover,\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover,\\n.action-auth-toggle:hover,\\n.checkout-payment-method .checkout-billing-address .action-cancel:hover,\\n.checkout-agreements-block .action-show:hover,\\n.gift-options .actions-toolbar .action-cancel:hover,\\n.gift-summary .action-edit:hover,\\n.gift-summary .action-delete:hover,\\n.action-gift:hover,\\n.gift-wrapping-title .action-remove:hover,\\n.wishlist.split.button>.action:hover,\\n.abs-add-fields .action.remove:hover,\\n.paypal-review-discount .action.check:hover,\\n.cart-discount .action.check:hover,\\n.form-giftregistry-share .action.remove:hover,\\n.form-giftregistry-edit .action.remove:hover,\\n.form-add-invitations .action.remove:hover,\\n.form-create-return .action.remove:hover,\\n.form.send.friend .action.remove:hover {\\n color: #006bb4\\n}\\n\\n.abs-action-button-as-link:hover,\\n.abs-action-button-as-link:active,\\n.abs-action-button-as-link:focus,\\n.abs-action-remove:hover,\\n.abs-action-remove:active,\\n.abs-action-remove:focus,\\n.abs-discount-block .action.check:hover,\\n.abs-discount-block .action.check:active,\\n.abs-discount-block .action.check:focus,\\n.popup .actions-toolbar .action.cancel:hover,\\n.popup .actions-toolbar .action.cancel:active,\\n.popup .actions-toolbar .action.cancel:focus,\\n.paypal-button-widget .paypal-button:hover,\\n.paypal-button-widget .paypal-button:active,\\n.paypal-button-widget .paypal-button:focus,\\n.bundle-options-container .action.back:hover,\\n.bundle-options-container .action.back:active,\\n.bundle-options-container .action.back:focus,\\n.block.related .action.select:hover,\\n.block.related .action.select:active,\\n.block.related .action.select:focus,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover,\\n.cart.table-wrapper .actions-toolbar>.action-delete:active,\\n.cart.table-wrapper .actions-toolbar>.action-delete:focus,\\n.cart.table-wrapper .action.help.map:hover,\\n.cart.table-wrapper .action.help.map:active,\\n.cart.table-wrapper .action.help.map:focus,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:hover,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:active,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:focus,\\n.opc-wrapper .edit-address-link:hover,\\n.opc-wrapper .edit-address-link:active,\\n.opc-wrapper .edit-address-link:focus,\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover,\\n.opc-block-shipping-information .shipping-information-title .action-edit:active,\\n.opc-block-shipping-information .shipping-information-title .action-edit:focus,\\n.action-auth-toggle:hover,\\n.action-auth-toggle:active,\\n.action-auth-toggle:focus,\\n.checkout-payment-method .checkout-billing-address .action-cancel:hover,\\n.checkout-payment-method .checkout-billing-address .action-cancel:active,\\n.checkout-payment-method .checkout-billing-address .action-cancel:focus,\\n.checkout-agreements-block .action-show:hover,\\n.checkout-agreements-block .action-show:active,\\n.checkout-agreements-block .action-show:focus,\\n.gift-options .actions-toolbar .action-cancel:hover,\\n.gift-options .actions-toolbar .action-cancel:active,\\n.gift-options .actions-toolbar .action-cancel:focus,\\n.gift-summary .action-edit:hover,\\n.gift-summary .action-edit:active,\\n.gift-summary .action-edit:focus,\\n.gift-summary .action-delete:hover,\\n.gift-summary .action-delete:active,\\n.gift-summary .action-delete:focus,\\n.action-gift:hover,\\n.action-gift:active,\\n.action-gift:focus,\\n.gift-wrapping-title .action-remove:hover,\\n.gift-wrapping-title .action-remove:active,\\n.gift-wrapping-title .action-remove:focus,\\n.wishlist.split.button>.action:hover,\\n.wishlist.split.button>.action:active,\\n.wishlist.split.button>.action:focus,\\n.abs-add-fields .action.remove:hover,\\n.abs-add-fields .action.remove:active,\\n.abs-add-fields .action.remove:focus,\\n.paypal-review-discount .action.check:hover,\\n.paypal-review-discount .action.check:active,\\n.paypal-review-discount .action.check:focus,\\n.cart-discount .action.check:hover,\\n.cart-discount .action.check:active,\\n.cart-discount .action.check:focus,\\n.form-giftregistry-share .action.remove:hover,\\n.form-giftregistry-share .action.remove:active,\\n.form-giftregistry-share .action.remove:focus,\\n.form-giftregistry-edit .action.remove:hover,\\n.form-giftregistry-edit .action.remove:active,\\n.form-giftregistry-edit .action.remove:focus,\\n.form-add-invitations .action.remove:hover,\\n.form-add-invitations .action.remove:active,\\n.form-add-invitations .action.remove:focus,\\n.form-create-return .action.remove:hover,\\n.form-create-return .action.remove:active,\\n.form-create-return .action.remove:focus,\\n.form.send.friend .action.remove:hover,\\n.form.send.friend .action.remove:active,\\n.form.send.friend .action.remove:focus {\\n background: none;\\n border: 0\\n}\\n\\n.abs-action-button-as-link.disabled,\\n.abs-action-button-as-link[disabled],\\nfieldset[disabled] .abs-action-button-as-link,\\n.abs-action-remove.disabled,\\n.abs-action-remove[disabled],\\nfieldset[disabled] .abs-action-remove,\\n.abs-discount-block .action.check.disabled,\\n.abs-discount-block .action.check[disabled],\\nfieldset[disabled] .abs-discount-block .action.check,\\n.popup .actions-toolbar .action.cancel.disabled,\\n.popup .actions-toolbar .action.cancel[disabled],\\nfieldset[disabled] .popup .actions-toolbar .action.cancel,\\n.paypal-button-widget .paypal-button.disabled,\\n.paypal-button-widget .paypal-button[disabled],\\nfieldset[disabled] .paypal-button-widget .paypal-button,\\n.bundle-options-container .action.back.disabled,\\n.bundle-options-container .action.back[disabled],\\nfieldset[disabled] .bundle-options-container .action.back,\\n.block.related .action.select.disabled,\\n.block.related .action.select[disabled],\\nfieldset[disabled] .block.related .action.select,\\n.cart.table-wrapper .actions-toolbar>.action-delete.disabled,\\n.cart.table-wrapper .actions-toolbar>.action-delete[disabled],\\nfieldset[disabled] .cart.table-wrapper .actions-toolbar>.action-delete,\\n.cart.table-wrapper .action.help.map.disabled,\\n.cart.table-wrapper .action.help.map[disabled],\\nfieldset[disabled] .cart.table-wrapper .action.help.map,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup.disabled,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup[disabled],\\nfieldset[disabled] .checkout-index-index .modal-popup .modal-footer .action-hide-popup,\\n.opc-wrapper .edit-address-link.disabled,\\n.opc-wrapper .edit-address-link[disabled],\\nfieldset[disabled] .opc-wrapper .edit-address-link,\\n.opc-block-shipping-information .shipping-information-title .action-edit.disabled,\\n.opc-block-shipping-information .shipping-information-title .action-edit[disabled],\\nfieldset[disabled] .opc-block-shipping-information .shipping-information-title .action-edit,\\n.action-auth-toggle.disabled,\\n.action-auth-toggle[disabled],\\nfieldset[disabled] .action-auth-toggle,\\n.checkout-payment-method .checkout-billing-address .action-cancel.disabled,\\n.checkout-payment-method .checkout-billing-address .action-cancel[disabled],\\nfieldset[disabled] .checkout-payment-method .checkout-billing-address .action-cancel,\\n.checkout-agreements-block .action-show.disabled,\\n.checkout-agreements-block .action-show[disabled],\\nfieldset[disabled] .checkout-agreements-block .action-show,\\n.gift-options .actions-toolbar .action-cancel.disabled,\\n.gift-options .actions-toolbar .action-cancel[disabled],\\nfieldset[disabled] .gift-options .actions-toolbar .action-cancel,\\n.gift-summary .action-edit.disabled,\\n.gift-summary .action-edit[disabled],\\nfieldset[disabled] .gift-summary .action-edit,\\n.gift-summary .action-delete.disabled,\\n.gift-summary .action-delete[disabled],\\nfieldset[disabled] .gift-summary .action-delete,\\n.action-gift.disabled,\\n.action-gift[disabled],\\nfieldset[disabled] .action-gift,\\n.gift-wrapping-title .action-remove.disabled,\\n.gift-wrapping-title .action-remove[disabled],\\nfieldset[disabled] .gift-wrapping-title .action-remove,\\n.wishlist.split.button>.action.disabled,\\n.wishlist.split.button>.action[disabled],\\nfieldset[disabled] .wishlist.split.button>.action,\\n.abs-add-fields .action.remove.disabled,\\n.abs-add-fields .action.remove[disabled],\\nfieldset[disabled] .abs-add-fields .action.remove,\\n.paypal-review-discount .action.check.disabled,\\n.paypal-review-discount .action.check[disabled],\\nfieldset[disabled] .paypal-review-discount .action.check,\\n.cart-discount .action.check.disabled,\\n.cart-discount .action.check[disabled],\\nfieldset[disabled] .cart-discount .action.check,\\n.form-giftregistry-share .action.remove.disabled,\\n.form-giftregistry-share .action.remove[disabled],\\nfieldset[disabled] .form-giftregistry-share .action.remove,\\n.form-giftregistry-edit .action.remove.disabled,\\n.form-giftregistry-edit .action.remove[disabled],\\nfieldset[disabled] .form-giftregistry-edit .action.remove,\\n.form-add-invitations .action.remove.disabled,\\n.form-add-invitations .action.remove[disabled],\\nfieldset[disabled] .form-add-invitations .action.remove,\\n.form-create-return .action.remove.disabled,\\n.form-create-return .action.remove[disabled],\\nfieldset[disabled] .form-create-return .action.remove,\\n.form.send.friend .action.remove.disabled,\\n.form.send.friend .action.remove[disabled],\\nfieldset[disabled] .form.send.friend .action.remove {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.abs-action-remove:active,\\n.abs-action-remove:not(:focus),\\n.abs-discount-block .action.check:active,\\n.abs-discount-block .action.check:not(:focus),\\n.popup .actions-toolbar .action.cancel:active,\\n.popup .actions-toolbar .action.cancel:not(:focus),\\n.paypal-button-widget .paypal-button:active,\\n.paypal-button-widget .paypal-button:not(:focus),\\n.bundle-options-container .action.back:active,\\n.bundle-options-container .action.back:not(:focus),\\n.block.related .action.select:active,\\n.block.related .action.select:not(:focus),\\n.cart.table-wrapper .actions-toolbar>.action-delete:active,\\n.cart.table-wrapper .actions-toolbar>.action-delete:not(:focus),\\n.cart.table-wrapper .action.help.map:active,\\n.cart.table-wrapper .action.help.map:not(:focus),\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:active,\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup:not(:focus),\\n.opc-wrapper .edit-address-link:active,\\n.opc-wrapper .edit-address-link:not(:focus),\\n.opc-block-shipping-information .shipping-information-title .action-edit:active,\\n.opc-block-shipping-information .shipping-information-title .action-edit:not(:focus),\\n.action-auth-toggle:active,\\n.action-auth-toggle:not(:focus),\\n.checkout-payment-method .checkout-billing-address .action-cancel:active,\\n.checkout-payment-method .checkout-billing-address .action-cancel:not(:focus),\\n.checkout-agreements-block .action-show:active,\\n.checkout-agreements-block .action-show:not(:focus),\\n.gift-options .actions-toolbar .action-cancel:active,\\n.gift-options .actions-toolbar .action-cancel:not(:focus),\\n.gift-summary .action-edit:active,\\n.gift-summary .action-edit:not(:focus),\\n.gift-summary .action-delete:active,\\n.gift-summary .action-delete:not(:focus),\\n.action-gift:active,\\n.action-gift:not(:focus),\\n.gift-wrapping-title .action-remove:active,\\n.gift-wrapping-title .action-remove:not(:focus),\\n.wishlist.split.button>.action:active,\\n.wishlist.split.button>.action:not(:focus),\\n.abs-add-fields .action.remove:active,\\n.abs-add-fields .action.remove:not(:focus),\\n.paypal-review-discount .action.check:active,\\n.paypal-review-discount .action.check:not(:focus),\\n.cart-discount .action.check:active,\\n.cart-discount .action.check:not(:focus),\\n.form-giftregistry-share .action.remove:active,\\n.form-giftregistry-share .action.remove:not(:focus),\\n.form-giftregistry-edit .action.remove:active,\\n.form-giftregistry-edit .action.remove:not(:focus),\\n.form-add-invitations .action.remove:active,\\n.form-add-invitations .action.remove:not(:focus),\\n.form-create-return .action.remove:active,\\n.form-create-return .action.remove:not(:focus),\\n.form.send.friend .action.remove:active,\\n.form.send.friend .action.remove:not(:focus) {\\n box-shadow: none\\n}\\n\\n.abs-revert-to-action-secondary,\\n.paypal-review .block .actions-toolbar .action.primary,\\n.abs-discount-block .actions-toolbar .action.primary,\\n.abs-discount-block .actions-toolbar .action.cancel,\\n.block-compare .action.primary,\\n.cart-summary .block .actions-toolbar>.primary .action.primary,\\n.cart-summary .form.giftregistry .fieldset .action.primary,\\n.paypal-review-discount .actions-toolbar .action.primary,\\n.paypal-review-discount .actions-toolbar .action.cancel,\\n.cart-discount .actions-toolbar .action.primary,\\n.cart-discount .actions-toolbar .action.cancel {\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-revert-secondary-color:focus,\\n.abs-revert-secondary-color:active,\\n.abs-revert-to-action-secondary:focus,\\n.abs-revert-to-action-secondary:active,\\n.paypal-review .block .actions-toolbar .action.primary:focus,\\n.paypal-review .block .actions-toolbar .action.primary:active,\\n.abs-discount-block .actions-toolbar .action.primary:focus,\\n.abs-discount-block .actions-toolbar .action.primary:active,\\n.abs-discount-block .actions-toolbar .action.cancel:focus,\\n.abs-discount-block .actions-toolbar .action.cancel:active,\\n.block-compare .action.primary:focus,\\n.block-compare .action.primary:active,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:focus,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:active,\\n.cart-summary .form.giftregistry .fieldset .action.primary:focus,\\n.cart-summary .form.giftregistry .fieldset .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.primary:focus,\\n.paypal-review-discount .actions-toolbar .action.primary:active,\\n.paypal-review-discount .actions-toolbar .action.cancel:focus,\\n.paypal-review-discount .actions-toolbar .action.cancel:active,\\n.cart-discount .actions-toolbar .action.primary:focus,\\n.cart-discount .actions-toolbar .action.primary:active,\\n.cart-discount .actions-toolbar .action.cancel:focus,\\n.cart-discount .actions-toolbar .action.cancel:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.abs-revert-secondary-color:hover,\\n.abs-revert-to-action-secondary:hover,\\n.paypal-review .block .actions-toolbar .action.primary:hover,\\n.abs-discount-block .actions-toolbar .action.primary:hover,\\n.abs-discount-block .actions-toolbar .action.cancel:hover,\\n.block-compare .action.primary:hover,\\n.cart-summary .block .actions-toolbar>.primary .action.primary:hover,\\n.cart-summary .form.giftregistry .fieldset .action.primary:hover,\\n.paypal-review-discount .actions-toolbar .action.primary:hover,\\n.paypal-review-discount .actions-toolbar .action.cancel:hover,\\n.cart-discount .actions-toolbar .action.primary:hover,\\n.cart-discount .actions-toolbar .action.cancel:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.products-grid.wishlist .product-item .box-tocart .tocart {\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n padding: 7px 15px\\n}\\n\\n.multicheckout .action.primary,\\n.order-review-form .action.primary,\\n.bundle-actions .action.primary.customize,\\n.bundle-options-container .block-bundle-summary .box-tocart .action.primary,\\n.box-tocart .action.tocart,\\n.cart-summary .checkout-methods-items .action.primary.checkout,\\n.block-minicart .block-content>.actions>.primary .action.primary,\\n.methods-shipping .actions-toolbar .action.primary,\\n.block-authentication .action.action-register,\\n.block-authentication .action.action-login,\\n.checkout-payment-method .payment-method-content>.actions-toolbar>.primary .action.primary,\\n.form-address-edit .actions-toolbar .action.primary {\\n line-height: 2.2rem;\\n padding: 14px 17px;\\n font-size: 1.8rem\\n}\\n\\n.multicheckout .item-options dt,\\n.cart.table-wrapper .item-options dt,\\n.block-giftregistry-shared-items .product .item-options dt {\\n clear: left;\\n float: left;\\n margin: 0 10px 5px 0\\n}\\n\\n.multicheckout .item-options dt:after,\\n.cart.table-wrapper .item-options dt:after,\\n.block-giftregistry-shared-items .product .item-options dt:after {\\n content: ': '\\n}\\n\\n.multicheckout .item-options dd,\\n.cart.table-wrapper .item-options dd,\\n.block-giftregistry-shared-items .product .item-options dd {\\n display: inline-block;\\n float: left;\\n margin: 0 0 5px\\n}\\n\\n.actions-toolbar>.primary .action,\\n.actions-toolbar>.secondary .action,\\n.bundle-actions .action.primary.customize,\\n.bundle-options-container .block-bundle-summary .box-tocart .action.primary,\\n.box-tocart .action.tocart {\\n width: 100%\\n}\\n\\n.products-list .product-image-wrapper,\\n.cart.table-wrapper .product-image-wrapper,\\n.minicart-items .product-image-wrapper,\\n.block-giftregistry-shared-items .product-image-wrapper {\\n height: auto;\\n padding: 0 !important\\n}\\n\\n.products-list .product-image-wrapper .product-image-photo,\\n.cart.table-wrapper .product-image-wrapper .product-image-photo,\\n.minicart-items .product-image-wrapper .product-image-photo,\\n.block-giftregistry-shared-items .product-image-wrapper .product-image-photo {\\n position: static\\n}\\n\\n.product.media .product.photo .photo.image {\\n display: block;\\n height: auto;\\n margin: 0 auto;\\n max-width: 100%\\n}\\n\\n.login-container .block .block-title {\\n border-bottom: 1px solid #e8e8e8;\\n font-size: 1.8rem;\\n margin-bottom: 15px;\\n padding-bottom: 12px\\n}\\n\\n.login-container .block .block-title strong {\\n font-weight: 500\\n}\\n\\n.giftregisty-dropdown,\\n.wishlist-dropdown {\\n display: inline-block;\\n position: relative\\n}\\n\\n.abs-dropdown-simple:before,\\n.abs-dropdown-simple:after,\\n.giftregisty-dropdown:before,\\n.giftregisty-dropdown:after,\\n.wishlist-dropdown:before,\\n.wishlist-dropdown:after {\\n content: '';\\n display: table\\n}\\n\\n.abs-dropdown-simple:after,\\n.giftregisty-dropdown:after,\\n.wishlist-dropdown:after {\\n clear: both\\n}\\n\\n.abs-dropdown-simple .action.toggle,\\n.giftregisty-dropdown .action.toggle,\\n.wishlist-dropdown .action.toggle {\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-dropdown-simple .action.toggle:after,\\n.giftregisty-dropdown .action.toggle:after,\\n.wishlist-dropdown .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 5px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-dropdown-simple .action.toggle:hover:after,\\n.giftregisty-dropdown .action.toggle:hover:after,\\n.wishlist-dropdown .action.toggle:hover:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple .action.toggle:active:after,\\n.giftregisty-dropdown .action.toggle:active:after,\\n.wishlist-dropdown .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple .action.toggle.active,\\n.giftregisty-dropdown .action.toggle.active,\\n.wishlist-dropdown .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-dropdown-simple .action.toggle.active:after,\\n.giftregisty-dropdown .action.toggle.active:after,\\n.wishlist-dropdown .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0 0 0 5px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-dropdown-simple .action.toggle.active:hover:after,\\n.giftregisty-dropdown .action.toggle.active:hover:after,\\n.wishlist-dropdown .action.toggle.active:hover:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple .action.toggle.active:active:after,\\n.giftregisty-dropdown .action.toggle.active:active:after,\\n.wishlist-dropdown .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.abs-dropdown-simple ul.dropdown,\\n.giftregisty-dropdown ul.dropdown,\\n.wishlist-dropdown ul.dropdown {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 200px;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.abs-dropdown-simple ul.dropdown li,\\n.giftregisty-dropdown ul.dropdown li,\\n.wishlist-dropdown ul.dropdown li {\\n margin: 0;\\n padding: 5px 5px 5px 23px\\n}\\n\\n.abs-dropdown-simple ul.dropdown li:hover,\\n.giftregisty-dropdown ul.dropdown li:hover,\\n.wishlist-dropdown ul.dropdown li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.abs-dropdown-simple ul.dropdown:before,\\n.abs-dropdown-simple ul.dropdown:after,\\n.giftregisty-dropdown ul.dropdown:before,\\n.giftregisty-dropdown ul.dropdown:after,\\n.wishlist-dropdown ul.dropdown:before,\\n.wishlist-dropdown ul.dropdown:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.abs-dropdown-simple ul.dropdown:before,\\n.giftregisty-dropdown ul.dropdown:before,\\n.wishlist-dropdown ul.dropdown:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.abs-dropdown-simple ul.dropdown:after,\\n.giftregisty-dropdown ul.dropdown:after,\\n.wishlist-dropdown ul.dropdown:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.abs-dropdown-simple ul.dropdown:before,\\n.giftregisty-dropdown ul.dropdown:before,\\n.wishlist-dropdown ul.dropdown:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.abs-dropdown-simple ul.dropdown:after,\\n.giftregisty-dropdown ul.dropdown:after,\\n.wishlist-dropdown ul.dropdown:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.abs-dropdown-simple.active,\\n.giftregisty-dropdown.active,\\n.wishlist-dropdown.active {\\n overflow: visible\\n}\\n\\n.abs-dropdown-simple.active ul.dropdown,\\n.giftregisty-dropdown.active ul.dropdown,\\n.wishlist-dropdown.active ul.dropdown {\\n display: block\\n}\\n\\n.giftregisty-dropdown ul.items,\\n.wishlist-dropdown ul.items {\\n padding: 6px 0\\n}\\n\\n.multicheckout .table-wrapper .col .qty .input-text,\\n.column .block-addbysku .qty .qty,\\n.bundle-options-container .input-text.qty,\\n.box-tocart .input-text.qty,\\n.account .data.table-return-items .qty .input-text,\\n.table-giftregistry-items .field.qty .qty,\\n.block-giftregistry-shared-items .qty .qty,\\n.table.grouped .col.qty .control.qty .qty,\\n.block-wishlist-info-items .input-text.qty,\\n.account .table-wrapper .data.table.wishlist .box-tocart .qty,\\n.products-grid.wishlist .product-item .box-tocart input.qty,\\n.sidebar .block-addbysku .fieldset .fields .field.qty .qty {\\n text-align: center;\\n width: 54px\\n}\\n\\n.block,\\n.customer-review .product-details,\\n.block-banners,\\n.block-banners-inline {\\n margin-bottom: 40px\\n}\\n\\n.sidebar .product-items .action.delete,\\n.table-comparison .cell.remove .action.delete,\\n.block-compare .action.delete,\\n.filter-current .action.remove {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-remove-button-for-blocks>span,\\n.sidebar .product-items .action.delete>span,\\n.table-comparison .cell.remove .action.delete>span,\\n.block-compare .action.delete>span,\\n.filter-current .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-remove-button-for-blocks:before,\\n.sidebar .product-items .action.delete:before,\\n.table-comparison .cell.remove .action.delete:before,\\n.block-compare .action.delete:before,\\n.filter-current .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 15px;\\n color: #757575;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-remove-button-for-blocks:hover:before,\\n.sidebar .product-items .action.delete:hover:before,\\n.table-comparison .cell.remove .action.delete:hover:before,\\n.block-compare .action.delete:hover:before,\\n.filter-current .action.remove:hover:before {\\n color: #494949\\n}\\n\\n.abs-remove-button-for-blocks:active:before,\\n.sidebar .product-items .action.delete:active:before,\\n.table-comparison .cell.remove .action.delete:active:before,\\n.block-compare .action.delete:active:before,\\n.filter-current .action.remove:active:before {\\n color: #999\\n}\\n\\n.product-item-name,\\n.product.name a {\\n font-weight: 400\\n}\\n\\n.product-item-name>a,\\n.product.name a>a {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.abs-product-link>a:visited,\\n.product-item-name>a:visited,\\n.product.name a>a:visited {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.abs-product-link>a:hover,\\n.product-item-name>a:hover,\\n.product.name a>a:hover {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.abs-product-link>a:active,\\n.product-item-name>a:active,\\n.product.name a>a:active {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.abs-like-link:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.abs-like-link:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.abs-like-link:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.form.giftregistry.items .actions-toolbar,\\n.form.wishlist.items .actions-toolbar {\\n margin-left: 0\\n}\\n\\n.abs-add-fields .action.remove,\\n.form-giftregistry-share .action.remove,\\n.form-giftregistry-edit .action.remove,\\n.form-add-invitations .action.remove,\\n.form-create-return .action.remove,\\n.form.send.friend .action.remove {\\n line-height: normal;\\n margin-left: 73%;\\n position: absolute;\\n top: 34px;\\n width: auto\\n}\\n\\n.form-giftregistry-share .fieldset .field .control,\\n.form-giftregistry-edit .fieldset .field .control,\\n.form-add-invitations .fieldset .field .control,\\n.form-create-return .fieldset .field .control,\\n.form.send.friend .fieldset .field .control {\\n width: 70%\\n}\\n\\n.form-giftregistry-share .fieldset .actions-toolbar>.secondary,\\n.form-giftregistry-edit .fieldset .actions-toolbar>.secondary,\\n.form-add-invitations .fieldset .actions-toolbar>.secondary,\\n.form-create-return .fieldset .actions-toolbar>.secondary,\\n.form.send.friend .fieldset .actions-toolbar>.secondary {\\n float: left\\n}\\n\\n.form-giftregistry-share .fieldset .actions-toolbar>.secondary .action.add,\\n.form-giftregistry-edit .fieldset .actions-toolbar>.secondary .action.add,\\n.form-add-invitations .fieldset .actions-toolbar>.secondary .action.add,\\n.form-create-return .fieldset .actions-toolbar>.secondary .action.add,\\n.form.send.friend .fieldset .actions-toolbar>.secondary .action.add {\\n margin-top: 30px\\n}\\n\\n.form-giftregistry-share .fieldset .fields .actions-toolbar,\\n.form-giftregistry-edit .fieldset .fields .actions-toolbar,\\n.form-add-invitations .fieldset .fields .actions-toolbar,\\n.form-create-return .fieldset .fields .actions-toolbar,\\n.form.send.friend .fieldset .fields .actions-toolbar {\\n margin: 0\\n}\\n\\n.form-giftregistry-share .additional,\\n.form-giftregistry-edit .additional,\\n.form-add-invitations .additional,\\n.form-create-return .additional,\\n.form.send.friend .additional {\\n margin-top: 55px;\\n position: relative\\n}\\n\\n.form-giftregistry-share .message.notice,\\n.form-giftregistry-edit .message.notice,\\n.form-add-invitations .message.notice,\\n.form-create-return .message.notice,\\n.form.send.friend .message.notice {\\n margin: 30px 0 0\\n}\\n\\n.order-details-items .order-items .order-gift-message:not(.expanded-content) {\\n height: 0;\\n visibility: hidden\\n}\\n\\n.multicheckout .table-wrapper .col .label,\\n.multicheckout .block .methods-shipping .item-content .fieldset>.legend,\\n.opc-wrapper .form-discount .field .label,\\n.bundle-options-container .block-bundle-summary .product-image-container,\\n.bundle-options-container .block-bundle-summary .product.name,\\n.bundle-options-container .block-bundle-summary .stock,\\n.product-item-actions .actions-secondary>.action span,\\n.special-price .price-label,\\n.table-comparison .cell.label.remove span,\\n.table-comparison .cell.label.product span,\\n.block.related .field.choice .label,\\n.cart.table-wrapper .col.qty .label,\\n.minicart-wrapper .action.showcart .text,\\n.minicart-wrapper .action.showcart .counter-label,\\n.checkout-index-index .page-title-wrapper,\\n.checkout-payment-method .field-select-billing>.label,\\n.checkout-payment-method .payments .legend,\\n.checkout-payment-method .ccard .legend,\\n.fieldset .fullname>.label,\\n.field.street .field.additional .label,\\n.block-balance .balance-price-label,\\n.page-product-downloadable .product-options-wrapper .fieldset .legend.links-title,\\n.page-product-giftcard .fieldset.giftcard>.legend,\\n.opc-wrapper .form-giftcard-account .field .label,\\n.form-add-invitations .fields .label,\\n.filter-options-content .filter-count-label,\\n.table-comparison .wishlist.split.button>.action.split span,\\n.product-items .wishlist.split.button>.action.split span,\\n.page-multiple-wishlist .page-title-wrapper .page-title,\\n.block-wishlist-search-form .form-wishlist-search .fieldset>.legend,\\n.block.newsletter .label,\\n.review-date .review-details-label,\\n.customer-review .product-details .rating-average-label,\\n.block-reorder .product-item .label,\\n.action.skip:not(:focus),\\n.page-header .switcher .label,\\n.page-footer .switcher .label,\\n.products-grid.wishlist .product-item .comment-box .label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-items .product.options .toggle>span,\\n.shipping-policy-block.field-tooltip .field-tooltip-action span {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto\\n}\\n\\n.abs-add-clearfix:before,\\n.abs-add-clearfix:after,\\n.abs-add-fields .fieldset .actions-toolbar:before,\\n.abs-add-fields .fieldset .actions-toolbar:after,\\n.payment-method-braintree .hosted-date-wrap:before,\\n.payment-method-braintree .hosted-date-wrap:after,\\n.multicheckout .item-options:before,\\n.multicheckout .item-options:after,\\n.multicheckout .block:before,\\n.multicheckout .block:after,\\n.multicheckout .block-content:before,\\n.multicheckout .block-content:after,\\n.bundle-options-container .product-options-wrapper .field.choice .label:before,\\n.bundle-options-container .product-options-wrapper .field.choice .label:after,\\n.toolbar:before,\\n.toolbar:after,\\n.sidebar .product-items-images:before,\\n.sidebar .product-items-images:after,\\n.cart.table-wrapper .actions-toolbar:before,\\n.cart.table-wrapper .actions-toolbar:after,\\n.cart.table-wrapper .item-options:before,\\n.cart.table-wrapper .item-options:after,\\n.minicart-items .product-item>.product:before,\\n.minicart-items .product-item>.product:after,\\n.checkout-container:before,\\n.checkout-container:after,\\n.checkout-onepage-success:before,\\n.checkout-onepage-success:after,\\n.opc-estimated-wrapper:before,\\n.opc-estimated-wrapper:after,\\n.opc-wrapper .field.addresses:before,\\n.opc-wrapper .field.addresses:after,\\n.page-product-downloadable .product-add-form:before,\\n.page-product-downloadable .product-add-form:after,\\n.gift-item-block .content:before,\\n.gift-item-block .content:after,\\n.order-details-items .order-gift-message:before,\\n.order-details-items .order-gift-message:after,\\n.order-details-items .block-order-details-gift-message:before,\\n.order-details-items .block-order-details-gift-message:after,\\n.block-giftregistry-shared-items .product .item-options:before,\\n.block-giftregistry-shared-items .product .item-options:after,\\n.gift-wrapping-list:before,\\n.gift-wrapping-list:after,\\n.opc-wrapper .data.table .gift-wrapping .content:before,\\n.opc-wrapper .data.table .gift-wrapping .content:after,\\n.table-order-items .gift-wrapping .content:before,\\n.table-order-items .gift-wrapping .content:after,\\n.order-options .product:before,\\n.order-options .product:after,\\n.map-popup .map-info-price:before,\\n.map-popup .map-info-price:after,\\n.customer-review .product-details:before,\\n.customer-review .product-details:after,\\n.form-create-return .actions-toolbar:before,\\n.form-create-return .actions-toolbar:after,\\n.header.content:before,\\n.header.content:after,\\n.form-giftregistry-share .fieldset .actions-toolbar:before,\\n.form-giftregistry-share .fieldset .actions-toolbar:after,\\n.form-giftregistry-edit .fieldset .actions-toolbar:before,\\n.form-giftregistry-edit .fieldset .actions-toolbar:after,\\n.form-add-invitations .fieldset .actions-toolbar:before,\\n.form-add-invitations .fieldset .actions-toolbar:after,\\n.form-create-return .fieldset .actions-toolbar:before,\\n.form-create-return .fieldset .actions-toolbar:after,\\n.form.send.friend .fieldset .actions-toolbar:before,\\n.form.send.friend .fieldset .actions-toolbar:after {\\n content: '';\\n display: table\\n}\\n\\n.abs-add-clearfix:after,\\n.abs-add-fields .fieldset .actions-toolbar:after,\\n.payment-method-braintree .hosted-date-wrap:after,\\n.multicheckout .item-options:after,\\n.multicheckout .block:after,\\n.multicheckout .block-content:after,\\n.bundle-options-container .product-options-wrapper .field.choice .label:after,\\n.toolbar:after,\\n.sidebar .product-items-images:after,\\n.cart.table-wrapper .actions-toolbar:after,\\n.cart.table-wrapper .item-options:after,\\n.minicart-items .product-item>.product:after,\\n.checkout-container:after,\\n.checkout-onepage-success:after,\\n.opc-estimated-wrapper:after,\\n.opc-wrapper .field.addresses:after,\\n.page-product-downloadable .product-add-form:after,\\n.gift-item-block .content:after,\\n.order-details-items .order-gift-message:after,\\n.order-details-items .block-order-details-gift-message:after,\\n.block-giftregistry-shared-items .product .item-options:after,\\n.gift-wrapping-list:after,\\n.opc-wrapper .data.table .gift-wrapping .content:after,\\n.table-order-items .gift-wrapping .content:after,\\n.order-options .product:after,\\n.map-popup .map-info-price:after,\\n.customer-review .product-details:after,\\n.form-create-return .actions-toolbar:after,\\n.header.content:after,\\n.form-giftregistry-share .fieldset .actions-toolbar:after,\\n.form-giftregistry-edit .fieldset .actions-toolbar:after,\\n.form-add-invitations .fieldset .actions-toolbar:after,\\n.form-create-return .fieldset .actions-toolbar:after,\\n.form.send.friend .fieldset .actions-toolbar:after {\\n clear: both\\n}\\n\\n.abs-field-date .control,\\n.abs-field-tooltip,\\n.columns .column.main,\\n.columns .sidebar-main,\\n.columns .sidebar-additional,\\n.column .block-addbysku .sku,\\n.product-item,\\n.sidebar .product-items-images .product-item,\\n.search-autocomplete,\\n.cart-summary,\\n.opc-wrapper .shipping-address-item,\\n.shipping-policy-block.field-tooltip .field-tooltip-content,\\n.opc-block-summary,\\n.block-event .slider-panel .slider .item .action.show,\\n.sidebar .block-addbysku .fieldset .fields .field.sku,\\n.form.search.advanced .fields.range .field.date .control,\\n.field .control._with-tooltip,\\n.form-giftregistry-edit .field.date .control {\\n box-sizing: border-box\\n}\\n\\n.abs-navigation-icon:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 34px;\\n line-height: 1.2;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-split-button:before,\\n.abs-split-button:after {\\n content: '';\\n display: table\\n}\\n\\n.abs-split-button:after {\\n clear: both\\n}\\n\\n.abs-split-button .action.split {\\n float: left;\\n margin: 0\\n}\\n\\n.abs-split-button .action.toggle {\\n float: right;\\n margin: 0\\n}\\n\\n.abs-split-button button.action.split {\\n border-bottom-right-radius: 0;\\n border-top-right-radius: 0\\n}\\n\\n.abs-split-button button+.action.toggle {\\n border-bottom-left-radius: 0;\\n border-left: 0;\\n border-top-left-radius: 0\\n}\\n\\n.abs-split-button .action.toggle {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-split-button .action.toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-split-button .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-split-button .action.toggle:hover:after {\\n color: inherit\\n}\\n\\n.abs-split-button .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.abs-split-button .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-split-button .action.toggle.active>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-split-button .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-split-button .action.toggle.active:hover:after {\\n color: inherit\\n}\\n\\n.abs-split-button .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.abs-split-button .items {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 100%;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.abs-split-button .items li {\\n margin: 0;\\n padding: 3px 5px\\n}\\n\\n.abs-split-button .items li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.abs-split-button .items:before,\\n.abs-split-button .items:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.abs-split-button .items:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.abs-split-button .items:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.abs-split-button .items:before {\\n right: 10px;\\n top: -12px\\n}\\n\\n.abs-split-button .items:after {\\n right: 9px;\\n top: -14px\\n}\\n\\n.abs-split-button.active {\\n overflow: visible\\n}\\n\\n.abs-split-button.active .items {\\n display: block\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action,\\n.product-item-actions .actions-secondary>.action,\\n.product-social-links .action.tocompare,\\n.wishlist.split.button>.action.split,\\n.product-social-links .action.mailto.friend,\\n.product-social-links .action.towishlist,\\n.block-bundle-summary .action.towishlist,\\n.product-item .action.towishlist,\\n.table-comparison .action.towishlist {\\n color: #666;\\n font-weight: 600;\\n letter-spacing: .05em;\\n text-transform: uppercase;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-actions-addto:before,\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action:before,\\n.product-item-actions .actions-secondary>.action:before,\\n.product-social-links .action.tocompare:before,\\n.wishlist.split.button>.action.split:before,\\n.product-social-links .action.mailto.friend:before,\\n.product-social-links .action.towishlist:before,\\n.block-bundle-summary .action.towishlist:before,\\n.product-item .action.towishlist:before,\\n.table-comparison .action.towishlist:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: inherit;\\n font-family: 'luma-icons';\\n margin: -2px 5px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action:hover,\\n.product-item-actions .actions-secondary>.action:hover,\\n.product-social-links .action.tocompare:hover,\\n.wishlist.split.button>.action.split:hover,\\n.product-social-links .action.mailto.friend:hover,\\n.product-social-links .action.towishlist:hover,\\n.block-bundle-summary .action.towishlist:hover,\\n.product-item .action.towishlist:hover,\\n.table-comparison .action.towishlist:hover {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action:before,\\n.product-item-actions .actions-secondary>.action:before,\\n.product-social-links .action.tocompare:before,\\n.wishlist.split.button>.action.split:before,\\n.product-social-links .action.mailto.friend:before,\\n.product-social-links .action.towishlist:before,\\n.block-bundle-summary .action.towishlist:before,\\n.product-item .action.towishlist:before,\\n.table-comparison .action.towishlist:before {\\n width: 18px\\n}\\n\\n.bundle-options-container .block-bundle-summary .box-tocart,\\n.box-tocart {\\n margin: 0 0 30px\\n}\\n\\n.abs-cart-block>.title,\\n.minicart-items .product .toggle,\\n.abs-discount-block .block>.title,\\n.cart-summary .block>.title,\\n.paypal-review-discount .block>.title,\\n.cart-discount .block>.title {\\n border-top: 1px solid #ccc;\\n cursor: pointer;\\n margin-bottom: 0;\\n position: relative;\\n padding: 10px 40px 10px 15px;\\n display: block;\\n text-decoration: none\\n}\\n\\n.abs-cart-block>.title:after,\\n.minicart-items .product .toggle:after,\\n.abs-discount-block .block>.title:after,\\n.cart-summary .block>.title:after,\\n.paypal-review-discount .block>.title:after,\\n.cart-discount .block>.title:after {\\n position: absolute;\\n right: 20px;\\n top: 10px\\n}\\n\\n.abs-toggling-title>span,\\n.abs-cart-block>.title>span,\\n.minicart-items .product .toggle>span,\\n.abs-discount-block .block>.title>span,\\n.cart-summary .block>.title>span,\\n.paypal-review-discount .block>.title>span,\\n.cart-discount .block>.title>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-toggling-title:after,\\n.abs-cart-block>.title:after,\\n.minicart-items .product .toggle:after,\\n.abs-discount-block .block>.title:after,\\n.cart-summary .block>.title:after,\\n.paypal-review-discount .block>.title:after,\\n.cart-discount .block>.title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.abs-discount-block .block,\\n.cart-summary .block,\\n.paypal-review-discount .block,\\n.cart-discount .block {\\n margin: 0\\n}\\n\\n.abs-discount-block .block>.title:after,\\n.cart-summary .block>.title:after,\\n.paypal-review-discount .block>.title:after,\\n.cart-discount .block>.title:after {\\n color: #858585\\n}\\n\\n.abs-discount-block .block .content,\\n.cart-summary .block .content,\\n.paypal-review-discount .block .content,\\n.cart-discount .block .content {\\n display: none;\\n padding: 5px 15px 23px;\\n position: relative\\n}\\n\\n.abs-cart-block.active>.title:after,\\n.abs-discount-block .block.active>.title:after,\\n.cart-summary .block.active>.title:after,\\n.paypal-review-discount .block.active>.title:after,\\n.cart-discount .block.active>.title:after {\\n content: '\\\\E621'\\n}\\n\\n.abs-discount-block .block.active .content,\\n.cart-summary .block.active .content,\\n.paypal-review-discount .block.active .content,\\n.cart-discount .block.active .content {\\n display: block\\n}\\n\\n.multicheckout .table-wrapper .cart-price {\\n color: #7d7d7d;\\n font-size: 1.6rem;\\n font-weight: 700\\n}\\n\\n.multicheckout .table-wrapper .product-item-name {\\n font-size: 1.8rem;\\n font-weight: 300;\\n margin: 0\\n}\\n\\n.abs-account-blocks .block-title,\\n.multicheckout .block-title,\\n.multicheckout .block-content .title,\\n.account .legend,\\n.form-giftregistry-search .legend,\\n.block-giftregistry-results .block-title,\\n.block-giftregistry-shared-items .block-title,\\n.block-wishlist-search-form .block-title,\\n.block-wishlist-search-results .block-title,\\n.customer-review .review-details .title,\\n.multicheckout .block-title,\\n.paypal-review .block .block-title,\\n.account .column.main .block:not(.widget) .block-title,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title,\\n.sales-guest-view .column.main .block:not(.widget) .block-title {\\n border-bottom: 1px solid #c6c6c6;\\n margin-bottom: 25px;\\n padding-bottom: 10px\\n}\\n\\n.abs-account-blocks .block-title>strong,\\n.abs-account-blocks .block-title>span,\\n.multicheckout .block-title>strong,\\n.multicheckout .block-title>span,\\n.multicheckout .block-content .title>strong,\\n.multicheckout .block-content .title>span,\\n.account .legend>strong,\\n.account .legend>span,\\n.form-giftregistry-search .legend>strong,\\n.form-giftregistry-search .legend>span,\\n.block-giftregistry-results .block-title>strong,\\n.block-giftregistry-results .block-title>span,\\n.block-giftregistry-shared-items .block-title>strong,\\n.block-giftregistry-shared-items .block-title>span,\\n.block-wishlist-search-form .block-title>strong,\\n.block-wishlist-search-form .block-title>span,\\n.block-wishlist-search-results .block-title>strong,\\n.block-wishlist-search-results .block-title>span,\\n.customer-review .review-details .title>strong,\\n.customer-review .review-details .title>span,\\n.multicheckout .block-title>strong,\\n.multicheckout .block-title>span,\\n.paypal-review .block .block-title>strong,\\n.paypal-review .block .block-title>span,\\n.account .column.main .block:not(.widget) .block-title>strong,\\n.account .column.main .block:not(.widget) .block-title>span,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title>strong,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title>span,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title>strong,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title>span,\\n.sales-guest-view .column.main .block:not(.widget) .block-title>strong,\\n.sales-guest-view .column.main .block:not(.widget) .block-title>span {\\n font-size: 2.2rem;\\n font-weight: 300\\n}\\n\\n.block-addresses-list address,\\n.box-billing-address .box-content,\\n.box-shipping-address .box-content,\\n.box-address-billing .box-content,\\n.box-address-shipping .box-content,\\n.box-information .box-content,\\n.box-newsletter .box-content {\\n line-height: 24px\\n}\\n\\n.order-details-items tfoot td {\\n background: #f5f5f5\\n}\\n\\n.paypal-review .table-paypal-review-items .col.price .price-including-tax,\\n.paypal-review .table-paypal-review-items .col.price .price-excluding-tax,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-including-tax,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-excluding-tax,\\n.cart.table-wrapper .col.price .price-including-tax,\\n.cart.table-wrapper .col.price .price-excluding-tax,\\n.cart.table-wrapper .col.subtotal .price-including-tax,\\n.cart.table-wrapper .col.subtotal .price-excluding-tax,\\n.cart.table-wrapper .col.msrp .price-including-tax,\\n.cart.table-wrapper .col.msrp .price-excluding-tax,\\n.order-details-items .col.price .price-including-tax,\\n.order-details-items .col.price .price-excluding-tax,\\n.order-details-items .col.subtotal .price-including-tax,\\n.order-details-items .col.subtotal .price-excluding-tax {\\n color: #666;\\n font-size: 1.8rem;\\n display: block;\\n line-height: 1;\\n white-space: nowrap\\n}\\n\\n.paypal-review .table-paypal-review-items .col.price .price-including-tax .price,\\n.paypal-review .table-paypal-review-items .col.price .price-excluding-tax .price,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-including-tax .price,\\n.paypal-review .table-paypal-review-items .col.subtotal .price-excluding-tax .price,\\n.cart.table-wrapper .col.price .price-including-tax .price,\\n.cart.table-wrapper .col.price .price-excluding-tax .price,\\n.cart.table-wrapper .col.subtotal .price-including-tax .price,\\n.cart.table-wrapper .col.subtotal .price-excluding-tax .price,\\n.cart.table-wrapper .col.msrp .price-including-tax .price,\\n.cart.table-wrapper .col.msrp .price-excluding-tax .price,\\n.order-details-items .col.price .price-including-tax .price,\\n.order-details-items .col.price .price-excluding-tax .price,\\n.order-details-items .col.subtotal .price-including-tax .price,\\n.order-details-items .col.subtotal .price-excluding-tax .price {\\n font-weight: 700\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax,\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-excluding-tax,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-excluding-tax,\\n.cart-summary .price-including-tax,\\n.cart-summary .price-excluding-tax,\\n.gift-summary .price-including-tax,\\n.gift-summary .price-excluding-tax,\\n.gift-options .price-including-tax,\\n.gift-options .price-excluding-tax {\\n font-size: 1.4rem;\\n display: inline-block\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax+.price-excluding-tax,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax+.price-excluding-tax,\\n.cart-summary .price-including-tax+.price-excluding-tax,\\n.gift-summary .price-including-tax+.price-excluding-tax,\\n.gift-options .price-including-tax+.price-excluding-tax {\\n font-size: 1.1rem;\\n display: inline-block\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax+.price-excluding-tax:before,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax+.price-excluding-tax:before,\\n.cart-summary .price-including-tax+.price-excluding-tax:before,\\n.gift-summary .price-including-tax+.price-excluding-tax:before,\\n.gift-options .price-including-tax+.price-excluding-tax:before {\\n content: '(' attr(data-label) ': '\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset-bundle-options .field.choice .price-notice .price-including-tax+.price-excluding-tax:after,\\n.bundle-options-container .product-options-wrapper .field.choice .price-notice .price-including-tax+.price-excluding-tax:after,\\n.cart-summary .price-including-tax+.price-excluding-tax:after,\\n.gift-summary .price-including-tax+.price-excluding-tax:after,\\n.gift-options .price-including-tax+.price-excluding-tax:after {\\n content: ')'\\n}\\n\\n.price-including-tax .cart-tax-total,\\n.price-excluding-tax .cart-tax-total,\\n.paypal-review .table-paypal-review-items .cart-tax-total,\\n.cart.table-wrapper .cart-tax-total,\\n.order-details-items .cart-tax-total {\\n cursor: pointer;\\n padding-right: 10px;\\n position: relative;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-tax-total:after,\\n.price-including-tax .cart-tax-total:after,\\n.price-excluding-tax .cart-tax-total:after,\\n.paypal-review .table-paypal-review-items .cart-tax-total:after,\\n.cart.table-wrapper .cart-tax-total:after,\\n.order-details-items .cart-tax-total:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 8px;\\n line-height: 8px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.price-including-tax .cart-tax-total:after,\\n.price-excluding-tax .cart-tax-total:after,\\n.paypal-review .table-paypal-review-items .cart-tax-total:after,\\n.cart.table-wrapper .cart-tax-total:after,\\n.order-details-items .cart-tax-total:after {\\n position: absolute;\\n right: -2px;\\n top: 4px\\n}\\n\\n.abs-tax-total-expanded:after,\\n.price-including-tax .cart-tax-total-expanded:after,\\n.price-excluding-tax .cart-tax-total-expanded:after,\\n.paypal-review .table-paypal-review-items .cart-tax-total-expanded:after,\\n.cart.table-wrapper .cart-tax-total-expanded:after,\\n.order-details-items .cart-tax-total-expanded:after {\\n content: '\\\\E621'\\n}\\n\\n.giftcard-account .form-giftcard-redeem .fieldset,\\n.form-giftregistry-create .fieldset {\\n margin-bottom: 20px\\n}\\n\\n.review-ratings .rating-summary,\\n.customer-review .review-details .customer-review-rating .rating-summary {\\n display: table-row\\n}\\n\\n.review-ratings .rating-label,\\n.customer-review .review-details .customer-review-rating .rating-label {\\n display: table-cell;\\n padding-bottom: 5px;\\n padding-right: 25px;\\n padding-top: 1px;\\n vertical-align: top\\n}\\n\\n.review-ratings .rating-result,\\n.customer-review .review-details .customer-review-rating .rating-result {\\n display: table-cell;\\n vertical-align: top\\n}\\n\\n.block-addresses-list .items.addresses .item.actions .action:after,\\n.account .data.table .col.actions .action:after,\\n[class^='sales-guest-'] .data.table .col.actions .action:after,\\n.sales-guest-view .data.table .col.actions .action:after,\\n.block .box-actions .action:after {\\n border-left: 1px solid #a6a6a6;\\n content: '';\\n display: inline-block;\\n height: 12px;\\n margin: 0 10px;\\n vertical-align: -1px\\n}\\n\\n.block-addresses-list .items.addresses .item.actions .action:last-child:after,\\n.account .data.table .col.actions .action:last-child:after,\\n[class^='sales-guest-'] .data.table .col.actions .action:last-child:after,\\n.sales-guest-view .data.table .col.actions .action:last-child:after,\\n.block .box-actions .action:last-child:after {\\n display: none\\n}\\n\\n.multicheckout .block-title>.action,\\n.paypal-review .block .block-title>.action,\\n.account .column.main .block:not(.widget) .block-title>.action,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .block-title>.action,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .block-title>.action,\\n.sales-guest-view .column.main .block:not(.widget) .block-title>.action {\\n margin-left: 15px\\n}\\n\\n.multicheckout .box-title,\\n.paypal-review .block .box-title,\\n.account .column.main .block:not(.widget) .box-title,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .box-title,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .box-title,\\n.sales-guest-view .column.main .block:not(.widget) .box-title {\\n display: inline-block;\\n margin: 0 0 10px\\n}\\n\\n.multicheckout .box-title>span,\\n.paypal-review .block .box-title>span,\\n.account .column.main .block:not(.widget) .box-title>span,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .box-title>span,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .box-title>span,\\n.sales-guest-view .column.main .block:not(.widget) .box-title>span {\\n font-size: 1.6rem\\n}\\n\\n.multicheckout .box-title>.action,\\n.paypal-review .block .box-title>.action,\\n.account .column.main .block:not(.widget) .box-title>.action,\\n.magento-rma-guest-returns .column.main .block:not(.widget) .box-title>.action,\\n[class^='sales-guest-'] .column.main .block:not(.widget) .box-title>.action,\\n.sales-guest-view .column.main .block:not(.widget) .box-title>.action {\\n font-weight: 400;\\n margin-left: 10px\\n}\\n\\n.block-minicart .subtotal .label:after,\\n.minicart-items .details-qty .label:after,\\n.minicart-items .price-minicart .label:after,\\n.order-details-items .order-gift-message .label:after,\\n.order-details-items .block-order-details-gift-message .label:after,\\n.block-wishlist-management .wishlist-select .wishlist-name-label:after {\\n content: ': '\\n}\\n\\n.abs-dropdown-items-new .action.new,\\n.wishlist.split.button .action.new,\\n.wishlist-dropdown .action.new {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-icon-add:before,\\n.abs-dropdown-items-new .action.new:before,\\n.wishlist.split.button .action.new:before,\\n.wishlist-dropdown .action.new:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 10px;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.split.button .items .item:last-child:hover,\\n.wishlist-dropdown .items .item:last-child:hover {\\n background: #e8e8e8\\n}\\n\\n.wishlist.split.button .action.new:before,\\n.wishlist-dropdown .action.new:before {\\n margin-left: -17px;\\n margin-right: 5px\\n}\\n\\n.abs-sidebar-totals .table-caption,\\n.multicheckout .block .methods-shipping .item-content .fieldset>.legend+br,\\n.multicheckout .hidden,\\n[class^='multishipping-'] .nav-sections,\\n[class^='multishipping-'] .nav-toggle,\\n.sidebar .subtitle,\\n.cart-summary .block .fieldset.estimate>.legend,\\n.cart-summary .block .fieldset.estimate>.legend+br,\\n.minicart-items .product-item-details .weee[data-label] .label,\\n.page-product-giftcard .fieldset.giftcard>.legend+br,\\n.order-details-items .order-items .order-gift-message .action.close,\\n.no-display,\\n.cart-totals .table-caption,\\n.opc-block-summary .table-totals .table-caption {\\n display: none\\n}\\n\\n.return-status,\\n.order-status {\\n border: 2px solid #ccc;\\n border-radius: 3px;\\n display: inline-block;\\n margin: 3px 0 0;\\n padding: 2px 10px;\\n text-transform: uppercase;\\n vertical-align: top\\n}\\n\\n.magento-rma-returns-returns .page-main .page-title-wrapper .page-title,\\n.magento-rma-returns-view .page-main .page-title-wrapper .page-title,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .page-title,\\n.account .page-main .page-title-wrapper .page-title,\\n[class^='sales-guest-'] .page-main .page-title-wrapper .page-title,\\n.sales-guest-view .page-main .page-title-wrapper .page-title,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .page-title {\\n margin-right: 25px\\n}\\n\\n.magento-rma-returns-returns .page-main .page-title-wrapper .order-date,\\n.magento-rma-returns-view .page-main .page-title-wrapper .order-date,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date,\\n.account .page-main .page-title-wrapper .order-date,\\n[class^='sales-guest-'] .page-main .page-title-wrapper .order-date,\\n.sales-guest-view .page-main .page-title-wrapper .order-date,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date {\\n font-size: 16px;\\n margin-bottom: 10px\\n}\\n\\n.magento-rma-returns-returns .page-main .page-title-wrapper .order-date .label,\\n.magento-rma-returns-view .page-main .page-title-wrapper .order-date .label,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date .label,\\n.account .page-main .page-title-wrapper .order-date .label,\\n[class^='sales-guest-'] .page-main .page-title-wrapper .order-date .label,\\n.sales-guest-view .page-main .page-title-wrapper .order-date .label,\\n.magento-rma-guest-returns .page-main .page-title-wrapper .order-date .label {\\n display: none\\n}\\n\\n.account .column.main .order-details-items .table-wrapper .data.table,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table,\\n.block-giftregistry-results .data.table,\\n.block-wishlist-search-results .data.table,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table {\\n border: none\\n}\\n\\n.abs-table-striped>tbody>tr:nth-child(even)>td,\\n.abs-table-striped>tbody>tr:nth-child(even)>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th,\\n.block-giftregistry-results .data.table>tbody>tr:nth-child(even)>td,\\n.block-giftregistry-results .data.table>tbody>tr:nth-child(even)>th,\\n.block-wishlist-search-results .data.table>tbody>tr:nth-child(even)>td,\\n.block-wishlist-search-results .data.table>tbody>tr:nth-child(even)>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr:nth-child(even)>th {\\n background: #f6f6f6\\n}\\n\\n.abs-table-striped>thead>tr>th,\\n.abs-table-striped>tbody>tr>th,\\n.abs-table-striped>tfoot>tr>th,\\n.abs-table-striped>thead>tr>td,\\n.abs-table-striped>tbody>tr>td,\\n.abs-table-striped>tfoot>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td,\\n.block-giftregistry-results .data.table>thead>tr>th,\\n.block-giftregistry-results .data.table>tbody>tr>th,\\n.block-giftregistry-results .data.table>tfoot>tr>th,\\n.block-giftregistry-results .data.table>thead>tr>td,\\n.block-giftregistry-results .data.table>tbody>tr>td,\\n.block-giftregistry-results .data.table>tfoot>tr>td,\\n.block-wishlist-search-results .data.table>thead>tr>th,\\n.block-wishlist-search-results .data.table>tbody>tr>th,\\n.block-wishlist-search-results .data.table>tfoot>tr>th,\\n.block-wishlist-search-results .data.table>thead>tr>td,\\n.block-wishlist-search-results .data.table>tbody>tr>td,\\n.block-wishlist-search-results .data.table>tfoot>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tbody>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>tfoot>tr>td {\\n border: none\\n}\\n\\n.abs-table-striped>thead>tr>th,\\n.abs-table-striped>thead>tr>td,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.account .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n[class^='sales-guest-'] .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.sales-guest-view .column.main .order-details-items .table-wrapper .data.table>thead>tr>td,\\n.block-giftregistry-results .data.table>thead>tr>th,\\n.block-giftregistry-results .data.table>thead>tr>td,\\n.block-wishlist-search-results .data.table>thead>tr>th,\\n.block-wishlist-search-results .data.table>thead>tr>td,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>th,\\n.magento-rma-guest-returns .column.main .order-details-items .table-wrapper .data.table>thead>tr>td {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.block-compare .counter,\\n.block-wishlist .counter {\\n color: #6d6d6d;\\n font-size: 1.2rem;\\n white-space: nowrap\\n}\\n\\n.block-compare .counter:before,\\n.block-wishlist .counter:before {\\n content: '('\\n}\\n\\n.block-compare .counter:after,\\n.block-wishlist .counter:after {\\n content: ')'\\n}\\n\\n.block-compare .block-title,\\n.block-reorder .block-title,\\n.widget .block-title,\\n.block-wishlist .block-title {\\n margin: 0 0 20px\\n}\\n\\n.block-compare .block-title strong,\\n.block-reorder .block-title strong,\\n.widget .block-title strong,\\n.block-wishlist .block-title strong {\\n font-size: 18px;\\n font-weight: 300\\n}\\n\\n.block-cart-failed,\\n.cart-container .form-cart {\\n margin-bottom: 20px\\n}\\n\\n.block-cart-failed .actions.main .continue,\\n.block-cart-failed .actions.main .clear,\\n.cart-container .form-cart .actions.main .continue,\\n.cart-container .form-cart .actions.main .clear {\\n display: none\\n}\\n\\n.form.search.advanced .fields.range .field.date .control,\\n.form-giftregistry-edit .field.date .control {\\n position: relative\\n}\\n\\n.abs-field-date input,\\n.field.date ._has-datepicker,\\n.field-dob ._has-datepicker,\\n.form-giftregistry-search .fields-specific-options .datetime-picker,\\n.form.search.advanced .fields.range .field.date input,\\n.form-giftregistry-edit .field.date input {\\n margin-right: 10px;\\n width: calc(100% - 33px)\\n}\\n\\n.field .control._with-tooltip {\\n position: relative\\n}\\n\\n.field .control._with-tooltip input {\\n margin-right: 10px;\\n width: calc(100% - 36px)\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content,\\n.shipping-policy-block.field-tooltip .field-tooltip-content {\\n right: -10px;\\n top: 40px;\\n left: auto\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:before,\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:after,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:before,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:after {\\n border: 10px solid transparent;\\n height: 0;\\n width: 0;\\n margin-top: -21px;\\n right: 10px;\\n left: auto;\\n top: 0\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:before,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:before {\\n border-bottom-color: #666\\n}\\n\\n.checkout-index-index .modal-popup .field-tooltip .field-tooltip-content:after,\\n.shipping-policy-block.field-tooltip .field-tooltip-content:after {\\n border-bottom-color: #f4f4f4;\\n top: 1px\\n}\\n\\n.opc-wrapper .step-title,\\n.opc-block-shipping-information .shipping-information-title,\\n.opc-block-summary>.title,\\n.checkout-agreements-items .checkout-agreements-item-title {\\n padding-bottom: 10px;\\n color: #333;\\n font-weight: 300;\\n font-size: 2.6rem\\n}\\n\\n.cart-totals,\\n.opc-block-summary .table-totals {\\n border-top: 1px solid #ccc;\\n padding-top: 10px\\n}\\n\\n.cart-totals tbody .mark,\\n.cart-totals tfoot .mark,\\n.opc-block-summary .table-totals tbody .mark,\\n.opc-block-summary .table-totals tfoot .mark {\\n border: 0;\\n font-weight: 400;\\n padding: 6px 0\\n}\\n\\n.cart-totals tbody .amount,\\n.cart-totals tfoot .amount,\\n.opc-block-summary .table-totals tbody .amount,\\n.opc-block-summary .table-totals tfoot .amount {\\n border: 0;\\n font-weight: 400;\\n padding: 6px 0 6px 14px;\\n text-align: right;\\n white-space: nowrap\\n}\\n\\n.cart-totals .grand th,\\n.cart-totals .grand td,\\n.opc-block-summary .table-totals .grand th,\\n.opc-block-summary .table-totals .grand td {\\n padding: 11px 0\\n}\\n\\n.cart-totals .grand strong,\\n.opc-block-summary .table-totals .grand strong {\\n display: inline-block;\\n font-weight: 600;\\n padding: 3px 0 0\\n}\\n\\n.cart-totals .grand .mark,\\n.opc-block-summary .table-totals .grand .mark {\\n font-size: 1.8rem;\\n border-top: 1px solid #ccc;\\n padding-right: 10px\\n}\\n\\n.cart-totals .grand .amount,\\n.opc-block-summary .table-totals .grand .amount {\\n font-size: 1.8rem;\\n border-top: 1px solid #ccc\\n}\\n\\n.cart-totals .msrp,\\n.opc-block-summary .table-totals .msrp {\\n margin-bottom: 10px\\n}\\n\\n.cart-totals tbody tr:last-child td,\\n.opc-block-summary .table-totals tbody tr:last-child td {\\n padding-bottom: 19px\\n}\\n\\n.cart-totals .totals-tax-summary .mark,\\n.cart-totals .totals-tax-summary .amount,\\n.opc-block-summary .table-totals .totals-tax-summary .mark,\\n.opc-block-summary .table-totals .totals-tax-summary .amount {\\n border-bottom: 1px solid #ccc;\\n border-top: 1px solid #ccc;\\n cursor: pointer\\n}\\n\\n.cart-totals .totals-tax-summary .amount .price,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price {\\n padding-right: 20px;\\n position: relative;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.abs-sidebar-totals .totals-tax-summary .amount .price>span,\\n.cart-totals .totals-tax-summary .amount .price>span,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.abs-sidebar-totals .totals-tax-summary .amount .price:after,\\n.cart-totals .totals-tax-summary .amount .price:after,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.cart-totals .totals-tax-summary .amount .price:after,\\n.opc-block-summary .table-totals .totals-tax-summary .amount .price:after {\\n position: absolute;\\n right: 3px;\\n top: 3px\\n}\\n\\n.cart-totals .totals-tax-summary.expanded .mark,\\n.cart-totals .totals-tax-summary.expanded .amount,\\n.opc-block-summary .table-totals .totals-tax-summary.expanded .mark,\\n.opc-block-summary .table-totals .totals-tax-summary.expanded .amount {\\n border-bottom: 0\\n}\\n\\n.abs-sidebar-totals .totals-tax-summary.expanded .amount .price:after,\\n.cart-totals .totals-tax-summary.expanded .amount .price:after,\\n.opc-block-summary .table-totals .totals-tax-summary.expanded .amount .price:after {\\n content: '\\\\E621'\\n}\\n\\n.cart-totals .totals-tax-details,\\n.opc-block-summary .table-totals .totals-tax-details {\\n border-bottom: 1px solid #ccc;\\n display: none\\n}\\n\\n.cart-totals .totals-tax-details.shown,\\n.opc-block-summary .table-totals .totals-tax-details.shown {\\n display: table-row\\n}\\n\\n.cart-totals .table-wrapper,\\n.opc-block-summary .table-totals .table-wrapper {\\n margin-bottom: 0\\n}\\n\\n.paypal-review-discount .block>.title strong,\\n.cart-discount .block>.title strong {\\n color: #1979c3;\\n font-weight: 400\\n}\\n\\n.paypal-review-discount .actions-toolbar,\\n.cart-discount .actions-toolbar {\\n display: table-cell;\\n vertical-align: top;\\n width: 1%\\n}\\n\\n.paypal-review-discount .actions-toolbar .action.primary,\\n.paypal-review-discount .actions-toolbar .action.cancel,\\n.cart-discount .actions-toolbar .action.primary,\\n.cart-discount .actions-toolbar .action.cancel {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n margin: 0 0 0 -1px;\\n white-space: nowrap;\\n width: auto\\n}\\n\\n.paypal-review-discount .actions-toolbar .secondary,\\n.cart-discount .actions-toolbar .secondary {\\n bottom: 5px;\\n left: 15px;\\n position: absolute\\n}\\n\\n.paypal-review-discount .action.check,\\n.cart-discount .action.check {\\n font-weight: 400\\n}\\n\\n.paypal-review-discount .fieldset,\\n.cart-discount .fieldset {\\n display: table;\\n width: 100%\\n}\\n\\n.paypal-review-discount .fieldset>.field>.label,\\n.cart-discount .fieldset>.field>.label {\\n display: none\\n}\\n\\n.paypal-review-discount .field,\\n.cart-discount .field {\\n display: table-cell\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../../../fonts/opensans/light/opensans-300.woff2 */ 238) + \") format('woff2');\\n font-weight: 300;\\n font-style: normal\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../../../fonts/opensans/regular/opensans-400.woff2 */ 239) + \") format('woff2');\\n font-weight: 400;\\n font-style: normal\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../../../fonts/opensans/semibold/opensans-600.woff2 */ 240) + \") format('woff2');\\n font-weight: 600;\\n font-style: normal\\n}\\n\\n@font-face {\\n font-family: 'Open Sans';\\n src: url(\" + __webpack_require__(/*! ../../../fonts/opensans/bold/opensans-700.woff2 */ 241) + \") format('woff2');\\n font-weight: 700;\\n font-style: normal\\n}\\n\\n.items {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.columns {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-wrap: wrap;\\n flex-wrap: wrap;\\n box-sizing: border-box\\n}\\n\\n.columns:after {\\n clear: both;\\n content: ' ';\\n display: block;\\n height: 0;\\n overflow: hidden;\\n visibility: hidden\\n}\\n\\n.columns .column.main {\\n padding-bottom: 40px;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n -webkit-flex-grow: 1;\\n flex-grow: 1;\\n -ms-flex-order: 1;\\n -webkit-order: 1;\\n order: 1;\\n width: 100%\\n}\\n\\n.columns .sidebar-main {\\n -webkit-flex-grow: 1;\\n flex-grow: 1;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n -ms-flex-order: 1;\\n -webkit-order: 1;\\n order: 1\\n}\\n\\n.columns .sidebar-additional {\\n -webkit-flex-grow: 1;\\n flex-grow: 1;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n -ms-flex-order: 2;\\n -webkit-order: 2;\\n order: 2\\n}\\n\\n.table-wrapper {\\n margin-bottom: 20px\\n}\\n\\ntable>caption {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.table tfoot {\\n background: #f5f5f5\\n}\\n\\n.table tfoot>tr:first-child th,\\n.table tfoot>tr:first-child td {\\n border-top: 1px solid #ccc;\\n padding-top: 20px\\n}\\n\\n.table tfoot th,\\n.table tfoot td {\\n border: 0\\n}\\n\\n.table tfoot .mark {\\n font-weight: 400;\\n text-align: right\\n}\\n\\n.message.info {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fdf0d5;\\n color: #6f4400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.info a {\\n color: #006bb4\\n}\\n\\n.message.info a:hover {\\n color: #006bb4\\n}\\n\\n.message.info a:active {\\n color: #006bb4\\n}\\n\\n.message.info>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #c07600;\\n content: '\\\\E602';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.error {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fae5e5;\\n color: #e02b27;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.error a {\\n color: #006bb4\\n}\\n\\n.message.error a:hover {\\n color: #006bb4\\n}\\n\\n.message.error a:active {\\n color: #006bb4\\n}\\n\\n.message.error>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #b30000;\\n content: '\\\\E61F';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.warning {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fdf0d5;\\n color: #6f4400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.warning a {\\n color: #006bb4\\n}\\n\\n.message.warning a:hover {\\n color: #006bb4\\n}\\n\\n.message.warning a:active {\\n color: #006bb4\\n}\\n\\n.message.warning>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #c07600;\\n content: '\\\\E602';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.notice {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #fdf0d5;\\n color: #6f4400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.notice a {\\n color: #006bb4\\n}\\n\\n.message.notice a:hover {\\n color: #006bb4\\n}\\n\\n.message.notice a:active {\\n color: #006bb4\\n}\\n\\n.message.notice>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #c07600;\\n content: '\\\\E602';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.message.success {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #e5efe5;\\n color: #006400;\\n padding-left: 45px;\\n position: relative\\n}\\n\\n.message.success a {\\n color: #006bb4\\n}\\n\\n.message.success a:hover {\\n color: #006bb4\\n}\\n\\n.message.success a:active {\\n color: #006bb4\\n}\\n\\n.message.success>*:first-child:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 24px;\\n color: #006400;\\n content: '\\\\E60E';\\n font-family: 'luma-icons';\\n margin: -12px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n left: 0;\\n top: 22px;\\n width: 45px;\\n position: absolute;\\n text-align: center\\n}\\n\\n.panel.header .links,\\n.panel.header .switcher {\\n display: none\\n}\\n\\n.nav-sections {\\n background: #f0f0f0\\n}\\n\\n.nav-toggle {\\n display: inline-block;\\n text-decoration: none;\\n cursor: pointer;\\n display: block;\\n font-size: 0;\\n left: 15px;\\n position: absolute;\\n top: 15px;\\n z-index: 14\\n}\\n\\n.nav-toggle:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 28px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E609';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.nav-toggle:hover:before {\\n color: #333\\n}\\n\\n.nav-toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.tooltip.wrapper {\\n position: relative\\n}\\n\\n.tooltip.wrapper .tooltip.content {\\n background: #fff;\\n max-width: 360px;\\n min-width: 210px;\\n padding: 12px 16px;\\n z-index: 100;\\n display: none;\\n position: absolute;\\n text-align: left;\\n color: #333;\\n line-height: 1.4;\\n border: 1px solid #bbb;\\n margin-top: 5px;\\n left: 0;\\n top: 100%\\n}\\n\\n.tooltip.wrapper .tooltip.content:after,\\n.tooltip.wrapper .tooltip.content:before {\\n border: solid transparent;\\n content: '';\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.tooltip.wrapper .tooltip.content:after {\\n border-width: 5px;\\n border-color: transparent\\n}\\n\\n.tooltip.wrapper .tooltip.content:before {\\n border-width: 6px;\\n border-color: transparent\\n}\\n\\n.tooltip.wrapper .tooltip.content:after,\\n.tooltip.wrapper .tooltip.content:before {\\n bottom: 100%\\n}\\n\\n.tooltip.wrapper .tooltip.content:after {\\n border-bottom-color: #fff;\\n left: 15px;\\n margin-left: -5px\\n}\\n\\n.tooltip.wrapper .tooltip.content:before {\\n border-bottom-color: #bbb;\\n left: 15px;\\n margin-left: -6px\\n}\\n\\n.tooltip.wrapper tooltip.toggle {\\n cursor: help\\n}\\n\\n.tooltip.wrapper tooltip.toggle:hover+.tooltip.content,\\n.tooltip.wrapper tooltip.toggle:focus+.tooltip.content,\\n.tooltip.wrapper:hover .tooltip.content {\\n display: block\\n}\\n\\n.tooltip.wrapper .tooltip.content dl {\\n margin-bottom: 0\\n}\\n\\n.tooltip.wrapper .tooltip.content dd {\\n white-space: normal\\n}\\n\\n.tooltip.wrapper .tooltip.content .subtitle {\\n display: inline-block;\\n font-size: 16px;\\n font-weight: 500;\\n margin-bottom: 15px\\n}\\n\\n.tooltip.wrapper .tooltip.content .label {\\n margin-top: 10px\\n}\\n\\n.tooltip.wrapper .tooltip.content .label:first-child {\\n margin-top: 0\\n}\\n\\n.tooltip.wrapper .tooltip.content .values {\\n margin: 0\\n}\\n\\n.ui-tooltip {\\n position: absolute;\\n z-index: 9999\\n}\\n\\n.load.indicator {\\n background-color: rgba(255, 255, 255, 0.7);\\n z-index: 9999;\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n position: absolute\\n}\\n\\n.load.indicator:before {\\n border-radius: 5px;\\n height: 160px;\\n width: 160px;\\n bottom: 0;\\n box-sizing: border-box;\\n content: '';\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.load.indicator>span {\\n display: none\\n}\\n\\n.loading-mask {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 100;\\n background: rgba(255, 255, 255, 0.5)\\n}\\n\\n.loading-mask .loader>img {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 100\\n}\\n\\n.loading-mask .loader>p {\\n display: none\\n}\\n\\nbody>.loading-mask {\\n z-index: 9999\\n}\\n\\n._block-content-loading {\\n position: relative\\n}\\n\\n.fieldset {\\n border: 0;\\n margin: 0 0 40px;\\n padding: 0;\\n letter-spacing: -.31em\\n}\\n\\n.fieldset>* {\\n letter-spacing: normal\\n}\\n\\n.fieldset>.legend {\\n margin: 0 0 20px;\\n padding: 0 0 10px;\\n width: 100%;\\n box-sizing: border-box;\\n float: left;\\n font-weight: 300;\\n line-height: 1.2;\\n font-size: 1.8rem\\n}\\n\\n.fieldset>.legend+br {\\n clear: both;\\n display: block;\\n height: 0;\\n overflow: hidden;\\n visibility: hidden\\n}\\n\\n.fieldset:last-child {\\n margin-bottom: 0\\n}\\n\\n.fieldset>.field,\\n.fieldset>.fields>.field {\\n margin: 0 0 20px\\n}\\n\\n.fieldset>.field>.label,\\n.fieldset>.fields>.field>.label {\\n margin: 0 0 8px;\\n display: inline-block\\n}\\n\\n.fieldset>.field:last-child,\\n.fieldset>.fields>.field:last-child {\\n margin-bottom: 0\\n}\\n\\n.fieldset>.field>.label,\\n.fieldset>.fields>.field>.label {\\n font-weight: 600\\n}\\n\\n.fieldset>.field>.label+br,\\n.fieldset>.fields>.field>.label+br {\\n display: none\\n}\\n\\n.fieldset>.field .choice input,\\n.fieldset>.fields>.field .choice input {\\n vertical-align: top\\n}\\n\\n.fieldset>.field .fields.group:before,\\n.fieldset>.fields>.field .fields.group:before,\\n.fieldset>.field .fields.group:after,\\n.fieldset>.fields>.field .fields.group:after {\\n content: '';\\n display: table\\n}\\n\\n.fieldset>.field .fields.group:after,\\n.fieldset>.fields>.field .fields.group:after {\\n clear: both\\n}\\n\\n.fieldset>.field .fields.group .field,\\n.fieldset>.fields>.field .fields.group .field {\\n box-sizing: border-box;\\n float: left\\n}\\n\\n.fieldset>.field .fields.group.group-2 .field,\\n.fieldset>.fields>.field .fields.group.group-2 .field {\\n width: 50% !important\\n}\\n\\n.fieldset>.field .fields.group.group-3 .field,\\n.fieldset>.fields>.field .fields.group.group-3 .field {\\n width: 33.3% !important\\n}\\n\\n.fieldset>.field .fields.group.group-4 .field,\\n.fieldset>.fields>.field .fields.group.group-4 .field {\\n width: 25% !important\\n}\\n\\n.fieldset>.field .fields.group.group-5 .field,\\n.fieldset>.fields>.field .fields.group.group-5 .field {\\n width: 20% !important\\n}\\n\\n.fieldset>.field .addon,\\n.fieldset>.fields>.field .addon {\\n display: -webkit-inline-flex;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -webkit-flex-wrap: nowrap;\\n flex-wrap: nowrap;\\n padding: 0;\\n width: 100%\\n}\\n\\n.fieldset>.field .addon textarea,\\n.fieldset>.fields>.field .addon textarea,\\n.fieldset>.field .addon select,\\n.fieldset>.fields>.field .addon select,\\n.fieldset>.field .addon input,\\n.fieldset>.fields>.field .addon input {\\n -ms-flex-order: 2;\\n -webkit-order: 2;\\n order: 2;\\n -webkit-flex-basis: 100%;\\n flex-basis: 100%;\\n display: inline-block;\\n margin: 0;\\n width: auto\\n}\\n\\n.fieldset>.field .addon .addbefore,\\n.fieldset>.fields>.field .addon .addbefore,\\n.fieldset>.field .addon .addafter,\\n.fieldset>.fields>.field .addon .addafter {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 0 9px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box;\\n -ms-flex-order: 3;\\n -webkit-order: 3;\\n order: 3;\\n display: inline-block;\\n vertical-align: middle;\\n white-space: nowrap;\\n width: auto\\n}\\n\\n.fieldset>.field .addon .addbefore:disabled,\\n.fieldset>.fields>.field .addon .addbefore:disabled,\\n.fieldset>.field .addon .addafter:disabled,\\n.fieldset>.fields>.field .addon .addafter:disabled {\\n opacity: .5\\n}\\n\\n.fieldset>.field .addon .addbefore::-moz-placeholder,\\n.fieldset>.fields>.field .addon .addbefore::-moz-placeholder,\\n.fieldset>.field .addon .addafter::-moz-placeholder,\\n.fieldset>.fields>.field .addon .addafter::-moz-placeholder {\\n color: #575757\\n}\\n\\n.fieldset>.field .addon .addbefore::-webkit-input-placeholder,\\n.fieldset>.fields>.field .addon .addbefore::-webkit-input-placeholder,\\n.fieldset>.field .addon .addafter::-webkit-input-placeholder,\\n.fieldset>.fields>.field .addon .addafter::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\n.fieldset>.field .addon .addbefore:-ms-input-placeholder,\\n.fieldset>.fields>.field .addon .addbefore:-ms-input-placeholder,\\n.fieldset>.field .addon .addafter:-ms-input-placeholder,\\n.fieldset>.fields>.field .addon .addafter:-ms-input-placeholder {\\n color: #575757\\n}\\n\\n.fieldset>.field .addon .addbefore,\\n.fieldset>.fields>.field .addon .addbefore {\\n float: left;\\n -ms-flex-order: 1;\\n -webkit-order: 1;\\n order: 1\\n}\\n\\n.fieldset>.field .additional,\\n.fieldset>.fields>.field .additional {\\n margin-top: 10px\\n}\\n\\n.fieldset>.field.required>.label:after,\\n.fieldset>.fields>.field.required>.label:after,\\n.fieldset>.field._required>.label:after,\\n.fieldset>.fields>.field._required>.label:after {\\n content: '*';\\n color: #e02b27;\\n font-size: 1.2rem;\\n margin: 0 0 0 5px\\n}\\n\\n.fieldset>.field .note,\\n.fieldset>.fields>.field .note {\\n font-size: 1.2rem;\\n margin: 3px 0 0;\\n padding: 0;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.fieldset>.field .note:before,\\n.fieldset>.fields>.field .note:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 24px;\\n line-height: 12px;\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.fieldset>.field.no-label>.label,\\n.fieldset>.fields>.field.no-label>.label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.fieldset>.field.choice .label,\\n.fieldset>.fields>.field.choice .label {\\n display: inline;\\n font-weight: normal;\\n margin: 0\\n}\\n\\n.column:not(.main) .fieldset>.field .label,\\n.column:not(.main) .fieldset>.fields>.field .label {\\n font-weight: normal\\n}\\n\\n.fieldset>.field .field.choice,\\n.fieldset>.fields>.field .field.choice {\\n margin-bottom: 10px\\n}\\n\\n.fieldset>.field .field.choice:last-child,\\n.fieldset>.fields>.field .field.choice:last-child {\\n margin-bottom: 0\\n}\\n\\n.legend+.fieldset,\\n.legend+div {\\n clear: both\\n}\\n\\n.legend>span {\\n margin-right: 5px\\n}\\n\\nfieldset.field {\\n border: 0;\\n padding: 0\\n}\\n\\n.field.date .time-picker {\\n display: inline-block;\\n margin-top: 10px;\\n white-space: nowrap\\n}\\n\\n.field .message.warning {\\n margin-top: 10px\\n}\\n\\nselect {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -ms-appearance: none;\\n appearance: none;\\n background: #fff url(\" + __webpack_require__(/*! ../../../images/select-bg.svg */ 242) + \") no-repeat 100% 45%;\\n background-size: 30px 60px;\\n border: 1px solid #ccc;\\n height: 32px;\\n padding-right: 25px;\\n text-indent: .01em;\\n text-overflow: ''\\n}\\n\\nselect::-ms-expand {\\n display: none\\n}\\n\\n.lt-ie10 select {\\n background-image: none;\\n padding-right: 4px\\n}\\n\\n.field-error,\\ndiv.mage-error[generated] {\\n margin-top: 7px\\n}\\n\\n.field-error {\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\n.field .tooltip {\\n position: relative\\n}\\n\\n.field .tooltip .tooltip-content {\\n background: #fff;\\n max-width: 360px;\\n min-width: 210px;\\n padding: 12px 16px;\\n z-index: 100;\\n display: none;\\n position: absolute;\\n text-align: left;\\n color: #333;\\n line-height: 1.4;\\n border: 1px solid #bbb;\\n margin-left: 5px;\\n left: 100%;\\n top: 0\\n}\\n\\n.field .tooltip .tooltip-content:after,\\n.field .tooltip .tooltip-content:before {\\n border: solid transparent;\\n content: '';\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.field .tooltip .tooltip-content:after {\\n border-width: 5px;\\n border-color: transparent\\n}\\n\\n.field .tooltip .tooltip-content:before {\\n border-width: 6px;\\n border-color: transparent\\n}\\n\\n.field .tooltip .tooltip-content:after,\\n.field .tooltip .tooltip-content:before {\\n right: 100%\\n}\\n\\n.field .tooltip .tooltip-content:after {\\n border-right-color: #fff;\\n margin-top: -5px;\\n top: 15px\\n}\\n\\n.field .tooltip .tooltip-content:before {\\n border-right-color: #bbb;\\n margin-top: -6px;\\n top: 15px\\n}\\n\\n.field .tooltip .tooltip-toggle {\\n cursor: help\\n}\\n\\n.field .tooltip .tooltip-toggle:hover+.tooltip-content,\\n.field .tooltip .tooltip-toggle:focus+.tooltip-content,\\n.field .tooltip:hover .tooltip-content {\\n display: block\\n}\\n\\n.field .tooltip .tooltip-content {\\n min-width: 200px;\\n white-space: normal\\n}\\n\\ninput:focus~.tooltip .tooltip-content,\\nselect:focus~.tooltip .tooltip-content {\\n display: block\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-shadow: none;\\n font-weight: 400;\\n display: block;\\n text-decoration: none;\\n display: inline-block;\\n margin-top: -4px;\\n vertical-align: middle\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:focus,\\n._has-datepicker~.ui-datepicker-trigger:active {\\n background: none;\\n border: none\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:hover {\\n background: none;\\n border: none\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger.disabled,\\n._has-datepicker~.ui-datepicker-trigger[disabled],\\nfieldset[disabled] ._has-datepicker~.ui-datepicker-trigger {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 23px;\\n line-height: 23px;\\n color: #7d7d7d;\\n content: '\\\\E612';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n._has-datepicker~.ui-datepicker-trigger:focus {\\n box-shadow: none;\\n outline: 0\\n}\\n\\n.sidebar .fieldset {\\n margin: 0\\n}\\n\\n.sidebar .fieldset>.field:not(.choice):not(:last-child),\\n.sidebar .fieldset .fields>.field:not(:last-child) {\\n margin: 0 0 20px\\n}\\n\\n.sidebar .fieldset>.field:not(.choice) .label,\\n.sidebar .fieldset .fields>.field .label {\\n margin: 0 0 4px;\\n padding: 0 0 5px;\\n text-align: left;\\n width: 100%\\n}\\n\\n.sidebar .fieldset>.field:not(.choice) .control,\\n.sidebar .fieldset .fields>.field .control {\\n width: 100%\\n}\\n\\n@font-face {\\n font-family: 'luma-icons';\\n src: url(\" + __webpack_require__(/*! ../../../fonts/Luma-Icons.woff2 */ 243) + \") format('woff2');\\n font-weight: normal;\\n font-style: normal\\n}\\n\\nbutton,\\na.action.primary {\\n border-radius: 3px\\n}\\n\\nbutton:not(.primary) {\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\nbutton:not(.primary):active {\\n box-shadow: inset 0 1px 0 0 rgba(204, 204, 204, 0.8), inset 0 -1px 0 0 rgba(204, 204, 204, 0.3)\\n}\\n\\nbody:not(._keyfocus) button:focus {\\n box-shadow: none\\n}\\n\\na.action.primary {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\na.action.primary:hover,\\na.action.primary:active,\\na.action.primary:focus {\\n text-decoration: none\\n}\\n\\n.action.primary {\\n background-image: none;\\n background: #1979c3;\\n border: 1px solid #1979c3;\\n color: #fff;\\n cursor: pointer;\\n display: inline-block;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n box-sizing: border-box;\\n vertical-align: middle\\n}\\n\\n.action.primary:focus,\\n.action.primary:active {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action.primary:hover {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.action.primary.disabled,\\n.action.primary[disabled],\\nfieldset[disabled] .action.primary {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.product.data.items {\\n margin: 0;\\n padding: 0;\\n border-bottom: 1px solid #ccc;\\n margin-bottom: 20px;\\n margin-left: -15px;\\n margin-right: -15px\\n}\\n\\n.product.data.items>.item.title {\\n box-sizing: border-box;\\n float: none;\\n width: 100%\\n}\\n\\n.product.data.items>.item.title>.switch {\\n display: block\\n}\\n\\n.product.data.items>.item.content {\\n box-sizing: border-box;\\n display: block;\\n float: none;\\n margin: 0\\n}\\n\\n.product.data.items>.item.content:before,\\n.product.data.items>.item.content:after {\\n content: '';\\n display: table\\n}\\n\\n.product.data.items>.item.content:after {\\n clear: both\\n}\\n\\n.product.data.items>.item.content.active {\\n display: block\\n}\\n\\n.product.data.items>.item.title {\\n margin: 0\\n}\\n\\n.product.data.items>.item.title>.switch {\\n border-top: 1px solid #ccc;\\n height: 40px;\\n padding: 1px 10px 1px 10px;\\n font-weight: 600;\\n line-height: 40px;\\n font-size: 1.4rem;\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title>.switch:visited {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title>.switch:hover {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title>.switch:active {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.product.data.items>.item.title:not(.disabled)>.switch:active,\\n.product.data.items>.item.title.active>.switch,\\n.product.data.items>.item.title.active>.switch:focus,\\n.product.data.items>.item.title.active>.switch:hover {\\n padding-bottom: 1px\\n}\\n\\n.product.data.items>.item.content {\\n background: #fff;\\n margin: 0;\\n padding: 10px 10px 30px\\n}\\n\\n.product.data.items .item.title a {\\n position: relative;\\n text-decoration: none\\n}\\n\\n.product.data.items .item.title a:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 14px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.product.data.items .item.title a:after {\\n position: absolute;\\n right: 10px;\\n top: 1px\\n}\\n\\n.product.data.items .item.title.active a:after {\\n content: '\\\\E621'\\n}\\n\\n.product.data.items .value p:last-child {\\n margin-bottom: 0\\n}\\n\\n.product.data.items .table-wrapper {\\n margin: 0\\n}\\n\\n.pages>.label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages .items {\\n font-size: 0;\\n letter-spacing: -1px;\\n line-height: 0;\\n white-space: nowrap;\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n display: inline-block;\\n font-weight: 400\\n}\\n\\n.pages .item {\\n font-size: 1.2rem;\\n font-size: 12px;\\n letter-spacing: normal;\\n line-height: 30px;\\n margin: 0 8px 0 0;\\n display: inline-block\\n}\\n\\n.pages .item .label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages a.page {\\n color: #006bb4;\\n display: inline-block;\\n padding: 0 5px;\\n text-decoration: none\\n}\\n\\n.pages a.page:visited {\\n color: #006bb4\\n}\\n\\n.pages a.page:hover {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.pages a.page:active {\\n color: #ff5501\\n}\\n\\n.pages strong.page {\\n background: #e5e5e5;\\n font-size: 1.2rem;\\n font-size: 12px;\\n letter-spacing: normal;\\n line-height: 30px;\\n color: #333;\\n display: inline-block;\\n font-weight: 700;\\n padding: 0 5px\\n}\\n\\n.pages .action {\\n background: #f0f0f0;\\n border: 1px solid #ccc;\\n color: #7d7d7d;\\n display: inline-block;\\n padding: 0;\\n text-decoration: none\\n}\\n\\n.pages .action:visited {\\n color: #7d7d7d\\n}\\n\\n.pages .action:hover {\\n background: #dedede;\\n color: #7d7d7d;\\n text-decoration: none\\n}\\n\\n.pages .action:active {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.pages .action.next:visited:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages .action.next:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #7d7d7d;\\n content: '\\\\E608';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.pages .action.next:hover:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.next:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.pages .action.previous:visited:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.pages .action.previous:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #7d7d7d;\\n content: '\\\\E617';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.pages .action.previous:hover:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action.previous:active:before {\\n color: #7d7d7d\\n}\\n\\n.pages .action {\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3);\\n border-radius: 3px;\\n padding: 0 8px\\n}\\n\\n.pages .action.previous {\\n margin-right: 8px\\n}\\n\\n.pages .action.next {\\n margin-left: 8px\\n}\\n\\n.actions-toolbar>.primary,\\n.actions-toolbar>.secondary {\\n margin-bottom: 10px;\\n text-align: center\\n}\\n\\n.actions-toolbar>.primary .action,\\n.actions-toolbar>.secondary .action {\\n margin-bottom: 10px\\n}\\n\\n.actions-toolbar>.primary .action:last-child,\\n.actions-toolbar>.secondary .action:last-child {\\n margin-bottom: 0\\n}\\n\\n.actions-toolbar>.primary:last-child,\\n.actions-toolbar>.secondary:last-child {\\n margin-bottom: 0\\n}\\n\\n.actions-toolbar>.secondary .action.back {\\n display: none\\n}\\n\\n.breadcrumbs {\\n margin: 0 0 15px\\n}\\n\\n.breadcrumbs .items {\\n font-size: 1.2rem;\\n color: #707070;\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.breadcrumbs .items>li {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.breadcrumbs .item {\\n margin: 0\\n}\\n\\n.breadcrumbs a {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.breadcrumbs a:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.breadcrumbs a:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.breadcrumbs a:active {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.breadcrumbs strong {\\n font-weight: 400\\n}\\n\\n.breadcrumbs .item:not(:last-child) {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.breadcrumbs .item:not(:last-child):after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 18px;\\n content: '\\\\E608';\\n font-family: 'luma-icons';\\n margin: 0 10px;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.ui-dialog.popup .action.close {\\n position: absolute;\\n height: 40px;\\n right: 0;\\n top: 0;\\n width: 40px;\\n z-index: 1001;\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.ui-dialog.popup .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.ui-dialog.popup .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #8c8c8c;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.ui-dialog.popup .action.close:hover:before {\\n color: #737373\\n}\\n\\n.ui-dialog.popup .action.close:active:before {\\n color: #737373\\n}\\n\\n.ui-dialog.popup .action.close:focus,\\n.ui-dialog.popup .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.ui-dialog.popup .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.ui-dialog.popup .action.close.disabled,\\n.ui-dialog.popup .action.close[disabled],\\nfieldset[disabled] .ui-dialog.popup .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.popup .actions-toolbar .action.cancel {\\n font-weight: 400\\n}\\n\\n.popup-pointer {\\n margin-left: -14px;\\n position: absolute;\\n top: -14px\\n}\\n\\n.popup-pointer:before,\\n.popup-pointer:after {\\n content: '';\\n position: absolute;\\n display: block;\\n width: 0;\\n height: 0;\\n border-bottom-style: solid\\n}\\n\\n.popup-pointer:before {\\n left: 2px;\\n top: 2px;\\n border: solid 6px;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.popup-pointer:after {\\n left: 1px;\\n top: 0px;\\n border: solid 7px;\\n border-color: transparent transparent #aeaeae transparent;\\n z-index: 98\\n}\\n\\n.price-tier_price .price-excluding-tax,\\n.price-tier_price .price-including-tax {\\n display: inline\\n}\\n\\n.price-including-tax,\\n.price-excluding-tax {\\n display: block;\\n font-size: 1.8rem;\\n line-height: 1\\n}\\n\\n.price-including-tax .price,\\n.price-excluding-tax .price {\\n font-weight: 700\\n}\\n\\n.price-including-tax+.price-excluding-tax,\\n.weee[data-label] {\\n display: block;\\n font-size: 1.8rem\\n}\\n\\n.price-including-tax+.price-excluding-tax:before,\\n.weee[data-label]:before {\\n content: attr(data-label) ': ';\\n font-size: 1.1rem\\n}\\n\\n.price-including-tax+.price-excluding-tax .price,\\n.weee[data-label] .price {\\n font-size: 1.1rem\\n}\\n\\nbody._has-modal {\\n height: 100%;\\n overflow: hidden;\\n width: 100%\\n}\\n\\n.modals-overlay {\\n z-index: 899\\n}\\n\\n.modal-slide,\\n.modal-popup {\\n bottom: 0;\\n left: 0;\\n min-width: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n visibility: hidden;\\n opacity: 0;\\n -webkit-transition: visibility 0s .3s, opacity .3s ease;\\n transition: visibility 0s .3s, opacity .3s ease\\n}\\n\\n.modal-slide._show,\\n.modal-popup._show {\\n visibility: visible;\\n opacity: 1;\\n -webkit-transition: opacity .3s ease;\\n transition: opacity .3s ease\\n}\\n\\n.modal-slide._show .modal-inner-wrap,\\n.modal-popup._show .modal-inner-wrap {\\n -webkit-transform: translate(0, 0);\\n transform: translate(0, 0)\\n}\\n\\n.modal-slide .modal-inner-wrap,\\n.modal-popup .modal-inner-wrap {\\n background-color: #fff;\\n box-shadow: 0 0 12px 2px rgba(0, 0, 0, 0.35);\\n opacity: 1;\\n pointer-events: auto\\n}\\n\\n.modal-slide {\\n left: 44px;\\n z-index: 900\\n}\\n\\n.modal-slide._show .modal-inner-wrap {\\n -webkit-transform: translateX(0);\\n transform: translateX(0)\\n}\\n\\n.modal-slide .modal-inner-wrap {\\n height: 100%;\\n overflow-y: auto;\\n position: static;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transition: -webkit-transform .3s ease-in-out;\\n transition: transform .3s ease-in-out;\\n width: auto\\n}\\n\\n.modal-slide._inner-scroll .modal-inner-wrap {\\n overflow-y: visible;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column\\n}\\n\\n.modal-slide._inner-scroll .modal-header,\\n.modal-slide._inner-scroll .modal-footer {\\n -webkit-flex-grow: 0;\\n flex-grow: 0;\\n -webkit-flex-shrink: 0;\\n flex-shrink: 0\\n}\\n\\n.modal-slide._inner-scroll .modal-content {\\n overflow-y: auto\\n}\\n\\n.modal-slide._inner-scroll .modal-footer {\\n margin-top: auto\\n}\\n\\n.modal-slide .modal-header,\\n.modal-slide .modal-content,\\n.modal-slide .modal-footer {\\n padding: 0 2.6rem 2.6rem\\n}\\n\\n.modal-slide .modal-header {\\n padding-bottom: 2.1rem;\\n padding-top: 2.1rem\\n}\\n\\n.modal-popup {\\n z-index: 900;\\n left: 0;\\n overflow-y: auto\\n}\\n\\n.modal-popup._show .modal-inner-wrap {\\n -webkit-transform: translateY(0);\\n transform: translateY(0)\\n}\\n\\n.modal-popup .modal-inner-wrap {\\n margin: 5rem auto;\\n width: 75%;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n box-sizing: border-box;\\n height: auto;\\n left: 0;\\n position: absolute;\\n right: 0;\\n -webkit-transform: translateY(-200%);\\n transform: translateY(-200%);\\n -webkit-transition: -webkit-transform .2s ease;\\n transition: transform .2s ease\\n}\\n\\n.modal-popup._inner-scroll {\\n overflow-y: visible\\n}\\n\\n.ie11 .modal-popup._inner-scroll,\\n.ie10 .modal-popup._inner-scroll,\\n.ie9 .modal-popup._inner-scroll {\\n overflow-y: auto\\n}\\n\\n.modal-popup._inner-scroll .modal-inner-wrap {\\n max-height: 90%\\n}\\n\\n.ie11 .modal-popup._inner-scroll .modal-inner-wrap,\\n.ie10 .modal-popup._inner-scroll .modal-inner-wrap,\\n.ie9 .modal-popup._inner-scroll .modal-inner-wrap {\\n max-height: none\\n}\\n\\n.modal-popup._inner-scroll .modal-content {\\n overflow-y: auto\\n}\\n\\n.modal-popup .modal-header,\\n.modal-popup .modal-content,\\n.modal-popup .modal-footer {\\n padding-left: 3rem;\\n padding-right: 3rem\\n}\\n\\n.modal-popup .modal-header,\\n.modal-popup .modal-footer {\\n -webkit-flex-grow: 0;\\n flex-grow: 0;\\n -webkit-flex-shrink: 0;\\n flex-shrink: 0\\n}\\n\\n.modal-popup .modal-header {\\n padding-bottom: 1.2rem;\\n padding-top: 3rem\\n}\\n\\n.modal-popup .modal-footer {\\n margin-top: auto;\\n padding-bottom: 3rem;\\n padding-top: 3rem\\n}\\n\\n.modal-popup .modal-footer-actions {\\n text-align: right\\n}\\n\\n.modal-custom .action-close,\\n.modal-popup .action-close,\\n.modal-slide .action-close {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-shadow: none;\\n font-weight: 400;\\n display: inline-block;\\n text-decoration: none;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.modal-custom .action-close:focus,\\n.modal-popup .action-close:focus,\\n.modal-slide .action-close:focus,\\n.modal-custom .action-close:active,\\n.modal-popup .action-close:active,\\n.modal-slide .action-close:active {\\n background: none;\\n border: none\\n}\\n\\n.modal-custom .action-close:hover,\\n.modal-popup .action-close:hover,\\n.modal-slide .action-close:hover {\\n background: none;\\n border: none\\n}\\n\\n.modal-custom .action-close.disabled,\\n.modal-popup .action-close.disabled,\\n.modal-slide .action-close.disabled,\\n.modal-custom .action-close[disabled],\\n.modal-popup .action-close[disabled],\\n.modal-slide .action-close[disabled],\\nfieldset[disabled] .modal-custom .action-close,\\nfieldset[disabled] .modal-popup .action-close,\\nfieldset[disabled] .modal-slide .action-close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.modal-custom .action-close>span,\\n.modal-popup .action-close>span,\\n.modal-slide .action-close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.modal-custom .action-close:before,\\n.modal-popup .action-close:before,\\n.modal-slide .action-close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 14px;\\n line-height: 14px;\\n color: #757575;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.modal-custom .action-close:hover:before,\\n.modal-popup .action-close:hover:before,\\n.modal-slide .action-close:hover:before {\\n color: inherit\\n}\\n\\n.modal-custom .action-close:active:before,\\n.modal-popup .action-close:active:before,\\n.modal-slide .action-close:active:before {\\n color: inherit\\n}\\n\\n.modal-custom .action-close:hover:before,\\n.modal-popup .action-close:hover:before,\\n.modal-slide .action-close:hover:before {\\n color: #1a1a1a\\n}\\n\\n.modal-custom .action-close {\\n margin: 25px\\n}\\n\\n.modal-popup .modal-title {\\n border-bottom: 1px solid #c1c1c1;\\n font-weight: 300;\\n padding-bottom: 10px;\\n font-size: 26px;\\n margin-bottom: 0;\\n min-height: 1em;\\n word-wrap: break-word\\n}\\n\\n.modal-popup .action-close {\\n padding: 20px\\n}\\n\\n.modal-slide .action-close {\\n padding: 2.1rem 3rem\\n}\\n\\n.modal-slide .page-main-actions {\\n margin-bottom: -12.9rem;\\n margin-top: 2.1rem\\n}\\n\\n.modals-overlay {\\n background-color: rgba(51, 51, 51, 0.55);\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0\\n}\\n\\nbody._has-modal-custom .modal-custom-overlay {\\n height: 100vh;\\n left: 0;\\n position: fixed;\\n top: 0;\\n width: 100vw;\\n z-index: 899\\n}\\n\\n.payment-method-braintree .hosted-control {\\n background: #fff;\\n background-clip: padding-box;\\n border: 1px solid #c2c2c2;\\n border-radius: 1px;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-size: 14px;\\n height: 32px;\\n line-height: 1.42857143;\\n padding: 0 9px;\\n vertical-align: baseline;\\n width: 100%;\\n box-sizing: border-box;\\n position: relative;\\n width: 225px\\n}\\n\\n.payment-method-braintree .hosted-control:disabled {\\n opacity: .5\\n}\\n\\n.payment-method-braintree .hosted-control::-moz-placeholder {\\n color: #575757\\n}\\n\\n.payment-method-braintree .hosted-control::-webkit-input-placeholder {\\n color: #575757\\n}\\n\\n.payment-method-braintree .hosted-control:-ms-input-placeholder {\\n color: #575757\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-focused {\\n border-color: #006bb4\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-invalid:not(.braintree-hosted-fields-focused) {\\n border-color: #e02b27\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-invalid:not(.braintree-hosted-fields-focused)~.hosted-error {\\n height: auto;\\n opacity: 1\\n}\\n\\n.payment-method-braintree .hosted-control.braintree-hosted-fields-valid {\\n border-color: #006400\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-cid {\\n width: 5rem\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-date {\\n float: left;\\n margin-bottom: 7px;\\n width: 6rem\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-date:first-of-type {\\n margin-right: 50px\\n}\\n\\n.payment-method-braintree .hosted-control.hosted-date:first-of-type:after {\\n content: '/';\\n display: inline;\\n padding-bottom: inherit;\\n padding-top: inherit;\\n position: absolute;\\n right: -25px;\\n top: 5px\\n}\\n\\n.payment-method-braintree .field-tooltip {\\n right: 0\\n}\\n\\n.payment-method-braintree .hosted-error {\\n clear: both;\\n color: #e02b27;\\n font-size: 1.2rem;\\n height: 0;\\n margin-top: 7px;\\n opacity: 0\\n}\\n\\n.braintree-paypal-logo {\\n margin-top: 10px;\\n text-align: center\\n}\\n\\n.braintree-paypal-account {\\n padding: 15px 0 15px 50px;\\n position: relative;\\n display: inline-block\\n}\\n\\n.braintree-paypal-account:before {\\n background-position-x: 0;\\n background-position-y: 0;\\n line-height: 16px;\\n vertical-align: middle;\\n height: 16px;\\n width: 16px;\\n background-repeat: no-repeat;\\n content: '';\\n display: inline-block\\n}\\n\\n.braintree-paypal-account:before {\\n left: 17px;\\n margin-top: -8px;\\n position: absolute;\\n top: 50%\\n}\\n\\n.braintree-paypal-account .payment-method-type {\\n font-weight: 700\\n}\\n\\n.braintree-paypal-account .payment-method-description {\\n color: #575757\\n}\\n\\n.braintree-paypal-fieldset {\\n border: 0;\\n margin: 0;\\n padding: 0\\n}\\n\\n.action-braintree-paypal-logo {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.action-braintree-paypal-logo:focus,\\n.action-braintree-paypal-logo:active {\\n background: none;\\n border: none\\n}\\n\\n.action-braintree-paypal-logo:hover {\\n background: none;\\n border: none\\n}\\n\\n.action-braintree-paypal-logo.disabled,\\n.action-braintree-paypal-logo[disabled],\\nfieldset[disabled] .action-braintree-paypal-logo {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.action-braintree-paypal-logo img {\\n margin: 0;\\n width: 114px\\n}\\n\\n.payment-method .payment-method-content .actions-toolbar.braintree-paypal-actions {\\n margin-left: 0\\n}\\n\\n.account .table .col.paypal-account img {\\n vertical-align: middle\\n}\\n\\n.account .table .col.paypal-account+.actions {\\n vertical-align: middle\\n}\\n\\n.block-category-event {\\n background: #f0f0f0;\\n color: #333;\\n padding: 10px 0 15px;\\n text-align: center\\n}\\n\\n.block-category-event.block:last-child {\\n margin-bottom: 10px\\n}\\n\\n.block-category-event .block-title {\\n margin: 0 0 10px\\n}\\n\\n.block-category-event .block-title strong {\\n font-size: 1.5rem;\\n font-weight: 300\\n}\\n\\n.block-category-event .ticker {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.block-category-event .ticker li {\\n display: none;\\n margin: 0 15px\\n}\\n\\n.block-category-event .ticker .value {\\n font-size: 1.8rem;\\n font-weight: 300\\n}\\n\\n.block-category-event .ticker .label {\\n font-size: 1rem;\\n display: block;\\n text-transform: lowercase\\n}\\n\\n.block-category-event .dates {\\n display: table;\\n margin: 0 auto\\n}\\n\\n.block-category-event .dates .start,\\n.block-category-event .dates .end {\\n display: table-cell;\\n vertical-align: top\\n}\\n\\n.block-category-event .dates .date {\\n font-size: 1.8rem\\n}\\n\\n.block-category-event .dates .time {\\n display: block\\n}\\n\\n.block-category-event .dates .start {\\n padding-right: 40px;\\n position: relative\\n}\\n\\n.block-category-event .dates .start:after {\\n font-size: 1.8rem;\\n content: '\\\\2013';\\n display: block;\\n position: absolute;\\n right: 15px;\\n top: 0\\n}\\n\\n.multicheckout .title {\\n margin-bottom: 30px\\n}\\n\\n.multicheckout .title strong {\\n font-weight: 400\\n}\\n\\n.multicheckout .table-wrapper {\\n margin-bottom: 0\\n}\\n\\n.multicheckout .table-wrapper .action.delete {\\n display: inline-block\\n}\\n\\n.multicheckout .table-wrapper .col .qty {\\n display: inline-block\\n}\\n\\n.multicheckout .table-wrapper .col.item .action.edit {\\n font-weight: 400;\\n margin-left: 10px\\n}\\n\\n.multicheckout:not(.address) .table-wrapper .product-item-name {\\n margin: 0\\n}\\n\\n.multicheckout>.actions-toolbar {\\n margin-top: 40px\\n}\\n\\n.multicheckout .actions-toolbar>.secondary {\\n display: block\\n}\\n\\n.multicheckout .actions-toolbar>.secondary .action {\\n margin-bottom: 25px\\n}\\n\\n.multicheckout .actions-toolbar>.secondary .action.back {\\n display: block;\\n margin-left: 0\\n}\\n\\n.multicheckout .actions-toolbar>.primary {\\n margin-right: 10px\\n}\\n\\n.multicheckout .item-options {\\n margin: 10px 0 0\\n}\\n\\n.multicheckout .block .methods-shipping .item-content .fieldset>.field:before {\\n display: none\\n}\\n\\n.multicheckout .block .methods-shipping .item-content .fieldset>.field .control {\\n display: inline-block\\n}\\n\\n.multicheckout .block-title,\\n.multicheckout .block-content .title {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 10px\\n}\\n\\n.multicheckout .block-title strong,\\n.multicheckout .block-content .title strong {\\n font-weight: 400\\n}\\n\\n.multicheckout .block-title strong span,\\n.multicheckout .block-content .title strong span {\\n color: #a6a6a6\\n}\\n\\n.multicheckout .block-content .title {\\n border-bottom: none;\\n padding-bottom: 0\\n}\\n\\n.multicheckout.order-review .block-title>strong {\\n font-size: 2.4rem\\n}\\n\\n.multicheckout.order-review .block-shipping .block-content:not(:last-child) {\\n margin-bottom: 40px\\n}\\n\\n.multicheckout .box-title span {\\n margin-right: 10px\\n}\\n\\n.multicheckout .box-title>.action {\\n margin: 0\\n}\\n\\n.multicheckout .box-shipping-method .price {\\n font-weight: 700\\n}\\n\\n.multicheckout .box-billing-method .fieldset {\\n margin: 0\\n}\\n\\n.multicheckout .box-billing-method .fieldset .legend.box-title {\\n margin: 0 0 5px\\n}\\n\\n.multicheckout .checkout-review .grand.totals {\\n font-size: 2.1rem;\\n margin-bottom: 40px\\n}\\n\\n.multicheckout .checkout-review .grand.totals .mark {\\n font-weight: 400\\n}\\n\\n[class^='multishipping-'] .logo {\\n margin-left: 0\\n}\\n\\n.multishipping-checkout-success .nav-sections {\\n display: block\\n}\\n\\n.table-wrapper.billing-agreements {\\n margin-bottom: 40px\\n}\\n\\n.paypal {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.block-minicart .paypal,\\n.cart-summary .paypal {\\n display: block\\n}\\n\\n.paypal img {\\n display: block;\\n margin: 5px auto 0\\n}\\n\\n.opc .paypal {\\n vertical-align: middle\\n}\\n\\n.paypal.acceptance {\\n display: block;\\n margin: 0 0 20px\\n}\\n\\n.map-form-addtocart .paypal {\\n display: block;\\n margin: 10px auto 5px\\n}\\n\\n.cart-summary .paypal+.paypal {\\n margin-top: 25px\\n}\\n\\n.paypal-review .actions-toolbar {\\n margin-top: 10px\\n}\\n\\n.paypal-review .paypal-review-title {\\n padding: 0 0 10px\\n}\\n\\n.paypal-review .paypal-review-title>strong {\\n font-size: 2.4rem;\\n font-weight: 300\\n}\\n\\n.paypal-review .paypal-review-title .action {\\n display: inline-block;\\n margin: 12px 0 0 30px\\n}\\n\\n.paypal-review .table-paypal-review-items .col.name {\\n padding-top: 16px\\n}\\n\\n.paypal-review .table-paypal-review-items .col.qty {\\n text-align: center\\n}\\n\\n.paypal-review .item-options dt {\\n display: inline-block\\n}\\n\\n.paypal-review .item-options dt:after {\\n content: ': '\\n}\\n\\n.paypal-review .item-options dd {\\n margin: 0\\n}\\n\\n.paypal-review-discount {\\n border-bottom: 1px solid #ccc;\\n margin: 0 0 40px;\\n padding: 10px 0 0\\n}\\n\\n.fotorama-video-container:after {\\n bottom: 0;\\n content: '';\\n height: 100px;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 12px;\\n width: 100px\\n}\\n\\n.fotorama-video-container .magnify-lens {\\n display: none !important\\n}\\n\\n.fotorama-video-container.video-unplayed:hover img {\\n opacity: .6\\n}\\n\\n.fotorama-video-container.video-unplayed:hover:after {\\n transform: scale(1.25)\\n}\\n\\n.video-thumb-icon:after {\\n bottom: 0;\\n content: '';\\n height: 40px;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 10px;\\n width: 49px\\n}\\n\\n.product-video {\\n bottom: 0;\\n height: 75%;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n width: 100%\\n}\\n\\n.product-video iframe {\\n height: 100%;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n z-index: 9999\\n}\\n\\n.fotorama__stage__shaft:focus .fotorama__stage__frame.fotorama__active:after {\\n bottom: 0;\\n content: '';\\n height: 100px;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 12px;\\n width: 100px\\n}\\n\\n.fotorama__product-video--loading:after {\\n visibility: hidden\\n}\\n\\n@media only screen and (min-device-width:320px) and (max-device-width:780px) and (orientation:landscape) {\\n .product-video {\\n height: 100%;\\n width: 81%\\n }\\n}\\n\\n.opc-wrapper .form-discount {\\n max-width: 500px\\n}\\n\\n.minilist .weee {\\n display: table-row;\\n font-size: 1.1rem\\n}\\n\\n.minilist .weee:before {\\n display: none\\n}\\n\\n.price-container.weee:before {\\n display: none\\n}\\n\\n.column .block-addbysku .fieldset {\\n margin: 0\\n}\\n\\n.column .block-addbysku .fieldset .fields {\\n position: relative\\n}\\n\\n.column .block-addbysku .fieldset .fields .field {\\n display: inline-block;\\n margin-bottom: 10px;\\n vertical-align: top\\n}\\n\\n.column .block-addbysku .fieldset .fields .actions-toolbar {\\n position: absolute;\\n right: 0;\\n top: 7px\\n}\\n\\n.column .block-addbysku .sku {\\n margin-right: -155px;\\n padding-right: 160px;\\n width: 100%\\n}\\n\\n.column .block-addbysku .qty .qty+.mage-error {\\n width: 80px\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar {\\n clear: both;\\n margin: 0 0 20px;\\n text-align: left\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar:before,\\n.column .block-addbysku .block-content .actions-toolbar:after {\\n content: '';\\n display: table\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar:after {\\n clear: both\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary {\\n float: left\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary,\\n.column .block-addbysku .block-content .actions-toolbar .secondary {\\n display: inline-block\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary a.action,\\n.column .block-addbysku .block-content .actions-toolbar .secondary a.action {\\n display: inline-block\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary .action {\\n margin: 0 15px 0 0\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .secondary a.action {\\n margin-top: 6px\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar .primary,\\n.column .block-addbysku .block-content .actions-toolbar .secondary {\\n display: block;\\n float: none\\n}\\n\\n.column .block-addbysku .block-content .actions-toolbar>.secondary {\\n text-align: left\\n}\\n\\n.column .block-addbysku .action.add {\\n display: inline-block;\\n text-decoration: none;\\n line-height: normal;\\n padding: 4px;\\n width: auto\\n}\\n\\n.column .block-addbysku .action.add>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.column .block-addbysku .action.add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 20px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.column .block-addbysku .action.add:hover:before {\\n color: inherit\\n}\\n\\n.column .block-addbysku .action.add:active:before {\\n color: inherit\\n}\\n\\n.column .block-addbysku .reset {\\n margin: 7px 0\\n}\\n\\n.column .block-addbysku .note {\\n display: block;\\n margin: 0 0 20px;\\n padding-top: 10px\\n}\\n\\n.block-cart-failed {\\n margin: 40px 0\\n}\\n\\n.block-cart-failed .block-title {\\n font-size: 2.6rem\\n}\\n\\n.block-cart-failed .block-title strong {\\n font-weight: 300\\n}\\n\\n.block-cart-failed .actions {\\n text-align: center\\n}\\n\\n.block-cart-failed .actions .action {\\n display: block;\\n margin: 0 auto 10px\\n}\\n\\n.catalogsearch-advanced-result .message.error {\\n margin-top: -60px\\n}\\n\\n.bundle-actions {\\n margin: 0 0 30px\\n}\\n\\n.bundle-options-container {\\n clear: both;\\n margin-bottom: 40px\\n}\\n\\n.bundle-options-container .legend.title {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 0rem;\\n margin-bottom: 2rem;\\n border: 0;\\n padding: 0\\n}\\n\\n.bundle-options-container .product-add-form {\\n display: none\\n}\\n\\n.bundle-options-container .product-options-wrapper {\\n margin-bottom: 30px\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset>.field {\\n border-top: 1px #e4e4e4 solid;\\n padding-top: 20px\\n}\\n\\n.bundle-options-container .product-options-wrapper .fieldset>.field:first-of-type {\\n border-top: 0;\\n padding-top: 0\\n}\\n\\n.bundle-options-container .product-options-wrapper .field.choice input {\\n float: left\\n}\\n\\n.bundle-options-container .product-options-wrapper .field.choice .label {\\n display: block;\\n margin-left: 24px\\n}\\n\\n.bundle-options-container .product-options-wrapper .field.choice .price-excluding-tax {\\n display: inline-block\\n}\\n\\n.bundle-options-container .action.back {\\n margin-bottom: 30px\\n}\\n\\n.bundle-options-container .block-bundle-summary>.title {\\n margin-bottom: 15px\\n}\\n\\n.bundle-options-container .block-bundle-summary>.title>strong {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.bundle-options-container .block-bundle-summary>.title,\\n.bundle-options-container .block-bundle-summary .bundle-summary .subtitle {\\n border-bottom: 1px #e4e4e4 solid;\\n margin-bottom: 25px;\\n padding-bottom: 16px\\n}\\n\\n.bundle-options-container .block-bundle-summary .price-box {\\n margin-bottom: 20px\\n}\\n\\n.bundle-options-container .block-bundle-summary .price-box .price-label {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle-summary {\\n margin-top: 30px\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle-summary.empty {\\n display: none\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle-summary>.subtitle {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem;\\n display: block\\n}\\n\\n.bundle-options-container .block-bundle-summary .bundle.items>li {\\n margin-bottom: 20px\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links {\\n text-align: center\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action {\\n margin-right: 5%\\n}\\n\\n.bundle-options-container .block-bundle-summary .product-addto-links>.action.tocompare:before {\\n content: '\\\\E61E'\\n}\\n\\n.bundle-options-container p.required {\\n color: #e02b27\\n}\\n\\n.bundle-options-container .nested .field.qty {\\n margin: 0 0 20px;\\n margin-top: 20px\\n}\\n\\n.bundle-options-container .nested .field.qty>.label {\\n margin: 0 0 8px;\\n display: inline-block\\n}\\n\\n.bundle-options-container .nested .field.qty .label {\\n font-weight: 600\\n}\\n\\n.bundle-options-container .nested .field.qty:last-child {\\n margin-bottom: 0\\n}\\n\\n.bundle-options-container .price {\\n font-weight: 600\\n}\\n\\n.bundle-options-container .product-options-bottom {\\n border-top: 1px solid #ccc;\\n clear: left;\\n margin: 0 0 40px;\\n padding-top: 20px\\n}\\n\\n.products {\\n margin: 30px 0\\n}\\n\\n.product-item {\\n vertical-align: top\\n}\\n\\n.products-grid .product-item {\\n display: inline-block;\\n width: 50%\\n}\\n\\n.product-item-name {\\n -moz-hyphens: auto;\\n -ms-hyphens: auto;\\n -webkit-hyphens: auto;\\n display: block;\\n hyphens: auto;\\n margin: 5px 0;\\n word-wrap: break-word\\n}\\n\\n.product-item-info {\\n max-width: 100%;\\n width: 152px\\n}\\n\\n.page-products .product-item-info {\\n width: 240px\\n}\\n\\n.product-item-actions {\\n display: none\\n}\\n\\n.product-item-actions .actions-secondary>button.action {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.product-item-actions .actions-secondary>button.action:focus,\\n.product-item-actions .actions-secondary>button.action:active {\\n background: none;\\n border: none\\n}\\n\\n.product-item-actions .actions-secondary>button.action:hover {\\n background: none;\\n border: none\\n}\\n\\n.product-item-actions .actions-secondary>button.action.disabled,\\n.product-item-actions .actions-secondary>button.action[disabled],\\nfieldset[disabled] .product-item-actions .actions-secondary>button.action {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.product-item-actions .actions-secondary>.action:before {\\n margin: 0\\n}\\n\\n.product-item-description {\\n margin: 25px 0\\n}\\n\\n.product-item .product-reviews-summary .rating-summary {\\n margin: 0 4px 0 0\\n}\\n\\n.product-item .product-reviews-summary .reviews-actions {\\n font-size: 12px;\\n margin-top: 5px;\\n text-transform: lowercase\\n}\\n\\n.product-item .price-box {\\n margin: 10px 0 25px\\n}\\n\\n.product-item .price-box .price {\\n font-weight: 700;\\n white-space: nowrap\\n}\\n\\n.product-item .price-box .price-label {\\n color: #666;\\n font-size: 12px\\n}\\n\\n.product-item .old-price {\\n margin: 5px 0\\n}\\n\\n.product-item .old-price .price {\\n font-weight: normal\\n}\\n\\n.product-item .regular-price .price-label {\\n display: none\\n}\\n\\n.product-item .minimal-price .price-container {\\n display: block\\n}\\n\\n.product-item .minimal-price-link {\\n margin-top: 5px\\n}\\n\\n.product-item .price-from,\\n.product-item .price-to {\\n margin: 0\\n}\\n\\n.product-item .tocompare:before {\\n content: '\\\\E61E'\\n}\\n\\n.product-item .tocart {\\n font-size: 1.3rem;\\n border-radius: 0;\\n line-height: 1;\\n padding-bottom: 10px;\\n padding-top: 10px;\\n white-space: nowrap\\n}\\n\\n.column.main .product-items {\\n margin-left: -20px\\n}\\n\\n.column.main .product-item {\\n padding-left: 20px\\n}\\n\\n.price-container .price {\\n font-size: 1.4rem\\n}\\n\\n.price-container .price-including-tax+.price-excluding-tax,\\n.price-container .weee {\\n margin-top: 5px\\n}\\n\\n.price-container .price-including-tax+.price-excluding-tax,\\n.price-container .weee,\\n.price-container .price-including-tax+.price-excluding-tax .price,\\n.price-container .weee .price,\\n.price-container .weee+.price-excluding-tax:before,\\n.price-container .weee+.price-excluding-tax .price {\\n font-size: 1.1rem\\n}\\n\\n.price-container .weee:before {\\n content: '(' attr(data-label) ': '\\n}\\n\\n.price-container .weee:after {\\n content: ')'\\n}\\n\\n.price-container .weee+.price-excluding-tax:before {\\n content: attr(data-label) ': '\\n}\\n\\n.products-list .product-item {\\n display: table;\\n width: 100%\\n}\\n\\n.products-list .product-item-info {\\n display: table-row\\n}\\n\\n.products-list .product-item-photo {\\n display: table-cell;\\n padding: 0 30px 30px 0;\\n vertical-align: top;\\n width: 1%\\n}\\n\\n.products-list .product-item-details {\\n display: table-cell;\\n vertical-align: top\\n}\\n\\n.page-products .columns {\\n padding-top: 60px;\\n position: relative;\\n z-index: 1\\n}\\n\\n.toolbar {\\n margin-bottom: 30px;\\n text-align: center\\n}\\n\\n.toolbar select {\\n background-color: #f0f0f0;\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3);\\n border-radius: 3px\\n}\\n\\n.toolbar-amount {\\n left: 0;\\n line-height: 18px;\\n margin: 0;\\n padding: 7px 0;\\n position: absolute;\\n text-align: left;\\n top: 0;\\n vertical-align: middle\\n}\\n\\n.products.wrapper~.toolbar .toolbar-amount {\\n display: none\\n}\\n\\n.page-with-filter .toolbar-amount {\\n position: static\\n}\\n\\n.toolbar-products {\\n background-color: transparent\\n}\\n\\n.toolbar-products .pages {\\n display: none\\n}\\n\\n.products.wrapper~.toolbar-products .pages {\\n display: block\\n}\\n\\n.toolbar .pages {\\n margin-bottom: 25px\\n}\\n\\n.sorter {\\n float: right\\n}\\n\\n.page-products .sorter {\\n position: absolute;\\n right: 10px;\\n top: 0;\\n z-index: 1\\n}\\n\\n.products.wrapper~.toolbar .sorter {\\n display: none\\n}\\n\\n.sorter-options {\\n margin: 0 5px 0 7px;\\n width: auto\\n}\\n\\n.sorter-action {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.sorter-action:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E613';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.sorter-action:hover:before {\\n color: #333\\n}\\n\\n.sorter-action>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.sorter-action.sort-desc:before {\\n content: '\\\\E614'\\n}\\n\\n.modes {\\n display: none\\n}\\n\\n.limiter-options {\\n margin: 0 5px 0 7px;\\n width: auto\\n}\\n\\n.limiter-label {\\n font-weight: 400\\n}\\n\\n.page-products .toolbar .limiter {\\n display: none\\n}\\n\\n.limiter .control {\\n display: inline-block\\n}\\n\\n.old-price,\\n.old.price {\\n color: #666\\n}\\n\\n.prices-tier .price-container .price-including-tax+.price-excluding-tax:before {\\n content: '(' attr(data-label) ':'\\n}\\n\\n.prices-tier .price-container .price-including-tax+.price-excluding-tax:last-child:after {\\n content: ')'\\n}\\n\\n.prices-tier .price-container .weee[data-label] {\\n display: inline\\n}\\n\\n.prices-tier .price-container .weee[data-label]:before {\\n content: ' +' attr(data-label) ':'\\n}\\n\\n.actual-price {\\n font-weight: 700\\n}\\n\\n.category-image .image {\\n display: block;\\n height: auto;\\n max-width: 100%\\n}\\n\\n.category-cms,\\n.category-image,\\n.category-description {\\n margin-bottom: 20px\\n}\\n\\n.product-image-container {\\n display: inline-block;\\n max-width: 100%\\n}\\n\\n.product-image-wrapper {\\n display: block;\\n height: 0;\\n overflow: hidden;\\n position: relative;\\n z-index: 1\\n}\\n\\n.product-image-photo {\\n bottom: 0;\\n display: block;\\n height: auto;\\n left: 0;\\n margin: auto;\\n max-width: 100%;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.product.media .placeholder .photo.container {\\n max-width: 100%\\n}\\n\\n.product.media .notice {\\n margin: 10px 0;\\n color: #7d7d7d;\\n font-size: 1.2rem\\n}\\n\\n.product.media .product.thumbs {\\n margin: 10px 0 25px\\n}\\n\\n.product.media .items.thumbs {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.product.media .items.thumbs>li {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.product.media .items.thumbs>li {\\n margin: 1rem 0 0\\n}\\n\\n.product.media .items.thumbs img {\\n display: block\\n}\\n\\n.product.media .items.thumbs .active {\\n display: block;\\n line-height: 1\\n}\\n\\n.product.info.detailed {\\n clear: both;\\n margin-bottom: 30px\\n}\\n\\n.product.info.detailed .additional-attributes {\\n width: auto;\\n border: none\\n}\\n\\n.product.info.detailed .additional-attributes>thead>tr>th,\\n.product.info.detailed .additional-attributes>tbody>tr>th,\\n.product.info.detailed .additional-attributes>tfoot>tr>th,\\n.product.info.detailed .additional-attributes>thead>tr>td,\\n.product.info.detailed .additional-attributes>tbody>tr>td,\\n.product.info.detailed .additional-attributes>tfoot>tr>td {\\n border: none\\n}\\n\\n.product.info.detailed .additional-attributes>thead>tr>td,\\n.product.info.detailed .additional-attributes>tbody>tr>td,\\n.product.info.detailed .additional-attributes>tfoot>tr>td {\\n padding: 5.5px 5px 10px 5px\\n}\\n\\n.product.info.detailed .additional-attributes>thead>tr>th,\\n.product.info.detailed .additional-attributes>tbody>tr>th,\\n.product.info.detailed .additional-attributes>tfoot>tr>th {\\n padding: 5.5px 30px 10px 0\\n}\\n\\n.product-info-main .product-info-price {\\n color: #575757;\\n border-bottom: 1px solid #c1c1c1;\\n display: table;\\n margin-bottom: 15px;\\n width: 100%\\n}\\n\\n.product-info-main .product-info-price .price-box {\\n display: table-cell;\\n vertical-align: top;\\n width: 1px\\n}\\n\\n.product-info-main .product-info-price .price-box .price-container>span {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.product-info-main .product-info-price .price-box .price-container>span:last-child {\\n margin-bottom: 0\\n}\\n\\n.product-info-main .product-info-price .price-including-tax+.price-excluding-tax,\\n.product-info-main .product-info-price .weee+.price-excluding-tax,\\n.product-info-main .product-info-price .weee {\\n font-size: 1.4rem\\n}\\n\\n.product-info-main .product-info-price .price-including-tax+.price-excluding-tax .price,\\n.product-info-main .product-info-price .weee+.price-excluding-tax .price,\\n.product-info-main .product-info-price .weee .price {\\n font-size: 1.4rem;\\n font-weight: 600;\\n line-height: 16px\\n}\\n\\n.product-info-main .product-info-price .price-wrapper .price {\\n font-size: 2.2rem;\\n font-weight: 600;\\n line-height: 22px\\n}\\n\\n.product-info-main .product-info-price .old-price .price-wrapper .price {\\n font-size: 2rem;\\n font-weight: 300\\n}\\n\\n.product-info-main .product-info-price .special-price .price-label:after {\\n content: ': '\\n}\\n\\n.product-info-main .product-info-price .price {\\n white-space: nowrap\\n}\\n\\n.product-info-main .product-info-stock-sku {\\n display: table-cell;\\n padding-bottom: 10px;\\n padding-left: 10%;\\n text-align: right;\\n vertical-align: top\\n}\\n\\n.product-info-main .stock {\\n margin: 0 0 3px\\n}\\n\\n.product-info-main .stock.available,\\n.product-info-main .stock.unavailable {\\n font-weight: 700;\\n text-transform: uppercase\\n}\\n\\n.product-info-main .product.attribute.sku {\\n word-break: break-all;\\n word-wrap: break-word\\n}\\n\\n.product-info-main .product.attribute.sku .type {\\n font-weight: normal;\\n margin-right: 5px\\n}\\n\\n.product-info-main .product.attribute.sku .type:after {\\n content: '#:'\\n}\\n\\n.product-info-main .product.attribute.sku .value {\\n display: inline-block\\n}\\n\\n.product-info-main .product.attribute.overview {\\n margin: 20px 0\\n}\\n\\n.product-info-main .product.alert {\\n margin: 10px 0\\n}\\n\\n.product-info-main .product-add-form {\\n clear: both;\\n padding-top: 15px\\n}\\n\\n.product-info-main .product-reviews-summary {\\n float: left\\n}\\n\\n.product-info-main .product-options-bottom .box-tocart {\\n margin-top: 20px\\n}\\n\\n.product-options-wrapper .fieldset-product-options-inner .legend {\\n font-weight: 600;\\n font-size: 1.4rem;\\n border: none;\\n display: inline-block;\\n float: none;\\n margin: 0 0 8px;\\n padding: 0\\n}\\n\\n.product-options-wrapper .fieldset-product-options-inner input.datetime-picker~select.datetime-picker {\\n margin-top: 10px\\n}\\n\\n.product-options-wrapper .fieldset-product-options-inner.required .legend:after,\\n.product-options-wrapper .fieldset-product-options-inner._required .legend:after {\\n content: '*';\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\n.product-options-wrapper .field .note {\\n display: block;\\n margin-top: 5px\\n}\\n\\n.product-options-bottom .price-box,\\n.product-info-price .price-box {\\n color: #575757;\\n display: table-cell;\\n padding-bottom: 10px;\\n vertical-align: top\\n}\\n\\n.product-options-bottom .price-box .old-price,\\n.product-info-price .price-box .old-price {\\n font-size: 20px;\\n font-weight: 300\\n}\\n\\n.product-options-bottom .price-box .old-price .price-container>span,\\n.product-info-price .price-box .old-price .price-container>span {\\n display: inline-block\\n}\\n\\n.product-options-bottom .price-box .price-container>span,\\n.product-info-price .price-box .price-container>span {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.product-options-bottom .price-box .price-container>span:last-child,\\n.product-info-price .price-box .price-container>span:last-child {\\n margin-bottom: 0\\n}\\n\\n.product-options-bottom .price-box .price-container .price,\\n.product-info-price .price-box .price-container .price {\\n font-size: 22px;\\n font-weight: 600;\\n line-height: 22px\\n}\\n\\n.product-options-bottom .price-box .price-container .price-including-tax+.price-excluding-tax,\\n.product-info-price .price-box .price-container .price-including-tax+.price-excluding-tax,\\n.product-options-bottom .price-box .price-container .weee+.price-excluding-tax,\\n.product-info-price .price-box .price-container .weee+.price-excluding-tax,\\n.product-options-bottom .price-box .price-container .weee,\\n.product-info-price .price-box .price-container .weee {\\n font-size: 1.2rem;\\n line-height: 14px\\n}\\n\\n.product-options-bottom .price-box .price-container .price-including-tax+.price-excluding-tax .price,\\n.product-info-price .price-box .price-container .price-including-tax+.price-excluding-tax .price,\\n.product-options-bottom .price-box .price-container .weee+.price-excluding-tax .price,\\n.product-info-price .price-box .price-container .weee+.price-excluding-tax .price,\\n.product-options-bottom .price-box .price-container .weee .price,\\n.product-info-price .price-box .price-container .weee .price {\\n font-size: 1.2rem;\\n font-weight: 700\\n}\\n\\n.box-tocart .action.tocart {\\n vertical-align: top\\n}\\n\\n.box-tocart .action.tocart:not(:last-child) {\\n margin-bottom: 15px\\n}\\n\\n.product-addto-links {\\n display: inline\\n}\\n\\n.product-addto-links .action {\\n margin-right: 5%\\n}\\n\\n.product-social-links {\\n margin: 0 0 20px;\\n text-align: center\\n}\\n\\n.product-social-links .action.tocompare:before {\\n content: '\\\\E61E'\\n}\\n\\n.prices-tier {\\n margin-bottom: 15px\\n}\\n\\n.prices-tier .item {\\n margin-bottom: 10px\\n}\\n\\n.prices-tier .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.prices-tier .price-excluding-tax,\\n.prices-tier .price-including-tax {\\n display: inline-block\\n}\\n\\n.minimal-price-link,\\n.price-excluding-tax,\\n.price-including-tax {\\n display: block;\\n white-space: nowrap\\n}\\n\\n.ui-dialog-titlebar-close {\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\n.ui-dialog-titlebar-close:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.ui-dialog-titlebar-close:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.ui-dialog-titlebar-close:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.ui-dialog-titlebar-close:hover {\\n color: #006bb4\\n}\\n\\n.ui-dialog-titlebar-close:hover,\\n.ui-dialog-titlebar-close:active,\\n.ui-dialog-titlebar-close:focus {\\n background: none;\\n border: 0\\n}\\n\\n.ui-dialog-titlebar-close.disabled,\\n.ui-dialog-titlebar-close[disabled],\\nfieldset[disabled] .ui-dialog-titlebar-close {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.sidebar .product-items .product-item {\\n margin-bottom: 20px;\\n position: relative\\n}\\n\\n.sidebar .product-items .product-item-info {\\n position: relative;\\n width: auto\\n}\\n\\n.sidebar .product-items .product-item-info .product-item-photo {\\n left: 0;\\n position: absolute;\\n top: 0\\n}\\n\\n.sidebar .product-items .product-item-name {\\n margin-top: 0\\n}\\n\\n.sidebar .product-items .product-item-details {\\n margin: 0 0 0 85px\\n}\\n\\n.sidebar .product-items .product-item-actions {\\n display: block;\\n margin-top: 10px\\n}\\n\\n.sidebar .product-items .price-box {\\n display: block;\\n margin: 7px 0\\n}\\n\\n.sidebar .product-items .text {\\n margin-right: 8px\\n}\\n\\n.sidebar .product-items .counter {\\n color: #7d7d7d;\\n font-size: 12px;\\n white-space: nowrap\\n}\\n\\n.sidebar .product-items .minilist .price {\\n display: inline;\\n padding: 0\\n}\\n\\n.sidebar .product-items .minilist .weee:before {\\n display: inline-block\\n}\\n\\n.sidebar .product-items .action.delete {\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.sidebar .action.tocart {\\n border-radius: 0\\n}\\n\\n.sidebar .product-items-images {\\n margin-left: -5px\\n}\\n\\n.sidebar .product-items-images .product-item {\\n float: left;\\n padding-left: 5px\\n}\\n\\n.sidebar .product-items-names .product-item {\\n margin-bottom: 10px\\n}\\n\\n.sidebar .product-items-names .product-item-name {\\n margin: 0\\n}\\n\\nbody.catalog-product-compare-index .action.print {\\n float: right;\\n margin: 15px 0\\n}\\n\\n.table-wrapper.comparison {\\n clear: both;\\n max-width: 100%;\\n overflow-x: auto;\\n position: relative\\n}\\n\\n.table-wrapper.comparison .table-comparison>tbody>tr>th,\\n.table-wrapper.comparison .table-comparison>tbody>tr>td {\\n border-top: 0\\n}\\n\\n.table-comparison {\\n table-layout: fixed\\n}\\n\\n.table-comparison .cell {\\n padding: 15px;\\n width: 180px\\n}\\n\\n.table-comparison .cell.label {\\n border-right: 1px solid #ccc\\n}\\n\\n.table-comparison .cell.label .attribute.label {\\n display: block;\\n width: 100%;\\n word-wrap: break-word\\n}\\n\\n.table-comparison .cell.product.info,\\n.table-comparison .cell.product.label {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.table-comparison .cell.attribute {\\n font-size: 1.3rem\\n}\\n\\n.table-comparison .cell.attribute img {\\n height: auto;\\n max-width: 100%\\n}\\n\\n.table-comparison .cell.remove {\\n padding-bottom: 0;\\n padding-top: 0;\\n text-align: right\\n}\\n\\n.table-comparison .cell.remove .action.delete {\\n margin-right: .6rem\\n}\\n\\n.table-comparison .cell .attribute.value {\\n overflow: hidden;\\n width: 100%\\n}\\n\\n.table-comparison td:last-child {\\n border-right: 1px solid #ccc\\n}\\n\\n.table-comparison .product-item-photo {\\n display: block;\\n margin: 0 auto 15px\\n}\\n\\n.table-comparison .product-image-photo {\\n margin-left: 0\\n}\\n\\n.table-comparison .product-item-actions,\\n.table-comparison .price-box,\\n.table-comparison .product.rating,\\n.table-comparison .product-item-name {\\n display: block;\\n margin: 15px 0\\n}\\n\\n.table-comparison .product-addto-links {\\n margin-top: 15px\\n}\\n\\n.table-comparison .product-addto-links .action.toggle {\\n padding: 0\\n}\\n\\n.table-comparison .product-addto-links .action.split,\\n.table-comparison .product-addto-links .action.toggle {\\n line-height: 1.2rem;\\n padding: 5px 8px;\\n font-size: 1.1rem\\n}\\n\\n.table-comparison .action.tocart {\\n white-space: nowrap\\n}\\n\\n.comparison.headings {\\n background: #fff;\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: auto;\\n z-index: 2\\n}\\n\\n.block-compare .product-item .product-item-name {\\n margin-left: 22px\\n}\\n\\n.block-compare .action.delete {\\n left: 0;\\n position: absolute;\\n top: 0\\n}\\n\\n.block-compare .actions-toolbar {\\n margin: 17px 0 0\\n}\\n\\n.block.related .action.select {\\n vertical-align: top\\n}\\n\\n.block.related .product-item-details {\\n position: relative;\\n z-index: 1\\n}\\n\\n.block.related .related-available .product-item-name {\\n margin-left: 20px\\n}\\n\\n.block.related .field.choice {\\n left: 0;\\n position: absolute;\\n top: 2px\\n}\\n\\n.block-search {\\n margin-bottom: 0\\n}\\n\\n.block-search .block-title {\\n display: none\\n}\\n\\n.block-search .block-content {\\n margin-bottom: 0\\n}\\n\\n.block-search .label {\\n text-decoration: none;\\n display: inline-block;\\n float: right\\n}\\n\\n.block-search .label>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.block-search .label:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 28px;\\n color: #757575;\\n content: '\\\\E615';\\n font-family: 'luma-icons';\\n margin: 0 10px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block-search .label:hover:before {\\n color: #333\\n}\\n\\n.block-search .label:active:before {\\n color: #333\\n}\\n\\n.block-search .label.active+.control input {\\n position: static\\n}\\n\\n.block-search .action.search {\\n display: none\\n}\\n\\n.block-search .control {\\n border-top: 1px solid #ccc;\\n clear: both;\\n margin: 0 -15px -1px;\\n padding: 0 15px\\n}\\n\\n.block-search input {\\n left: -300%;\\n margin: 15px 0;\\n position: absolute\\n}\\n\\n.block-search .nested {\\n display: none\\n}\\n\\n.search-autocomplete {\\n display: none;\\n margin-top: -15px;\\n overflow: hidden;\\n position: absolute;\\n z-index: 3\\n}\\n\\n.search-autocomplete ul {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.search-autocomplete ul:not(:empty) {\\n background: #fff;\\n border: 1px solid #c2c2c2;\\n border-top: 0\\n}\\n\\n.search-autocomplete ul li {\\n border-top: 1px solid #e5e5e5;\\n cursor: pointer;\\n margin: 0;\\n padding: 5px 40px 5px 10px;\\n position: relative;\\n text-align: left;\\n white-space: normal\\n}\\n\\n.search-autocomplete ul li:first-child {\\n border-top: none\\n}\\n\\n.search-autocomplete ul li:hover,\\n.search-autocomplete ul li.selected {\\n background: #e8e8e8\\n}\\n\\n.search-autocomplete ul li .amount {\\n color: #999;\\n position: absolute;\\n right: 7px;\\n top: 5px\\n}\\n\\n.form.search.advanced .fields.range .field:first-child {\\n position: relative\\n}\\n\\n.form.search.advanced .fields.range .field:first-child .control {\\n padding-right: 25px\\n}\\n\\n.form.search.advanced .fields.range .field:first-child .control:after {\\n content: ' \\\\2013 ';\\n display: inline-block;\\n position: absolute;\\n right: 0;\\n text-align: center;\\n top: 6px;\\n width: 25px\\n}\\n\\n.form.search.advanced .fields.range .field:last-child {\\n position: relative\\n}\\n\\n.form.search.advanced .fields.range .field:last-child div.mage-error[generated] {\\n left: 0;\\n position: absolute;\\n top: 32px\\n}\\n\\n.form.search.advanced .fields.range .field.with-addon .control {\\n padding-right: 45px\\n}\\n\\n.form.search.advanced .group.price .addon .addafter {\\n background: none;\\n border: 0;\\n padding-top: 6px;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.search-terms {\\n line-height: 2em\\n}\\n\\n.search-terms>li {\\n display: inline-block;\\n margin-right: 10px\\n}\\n\\n.search.found {\\n margin-bottom: 10px\\n}\\n\\n.checkout-cart-index .page-main {\\n padding-left: 0;\\n padding-right: 0\\n}\\n\\n.checkout-cart-index .page-title-wrapper {\\n padding-left: 15px;\\n padding-right: 15px\\n}\\n\\n.cart-summary {\\n background: #f5f5f5;\\n margin-bottom: 25px;\\n padding: 1px 0 25px\\n}\\n\\n.cart-summary>.title {\\n font-size: 2.4rem;\\n display: none;\\n font-weight: 300;\\n margin: 12px 0\\n}\\n\\n.cart-summary .block form:not(:last-of-type) .fieldset {\\n margin: 0 0 25px\\n}\\n\\n.cart-summary .block .price {\\n font-weight: 700\\n}\\n\\n.cart-summary .block .field {\\n margin: 0 0 16px\\n}\\n\\n.cart-summary .block .field.note {\\n display: none\\n}\\n\\n.cart-summary .block .actions-toolbar>.primary {\\n text-align: left\\n}\\n\\n.cart-summary .block .actions-toolbar>.primary .action.primary {\\n width: auto\\n}\\n\\n.cart-summary .block .title strong {\\n font-size: 1.4rem;\\n font-weight: 600\\n}\\n\\n.cart-summary .block .item-options {\\n margin: 0 0 16px\\n}\\n\\n.cart-summary .block .item-options .field .radio {\\n float: left\\n}\\n\\n.cart-summary .block .item-options .field .radio+.label {\\n display: block;\\n margin: 0;\\n overflow: hidden\\n}\\n\\n.page-main .cart-summary .block {\\n margin-bottom: 0\\n}\\n\\n.cart-summary .checkout-methods-items {\\n margin: 20px 0 0;\\n padding: 0 15px;\\n text-align: center\\n}\\n\\n.cart-summary .checkout-methods-items .action.primary.checkout {\\n width: 100%\\n}\\n\\n.cart-summary .checkout-methods-items .item {\\n margin-bottom: 25px\\n}\\n\\n.cart-summary .checkout-methods-items .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.cart-summary .message {\\n padding-left: 20px\\n}\\n\\n.cart-summary .message>*:first-child:before {\\n display: none\\n}\\n\\n.cart-summary .action.multicheckout {\\n color: #006bb4\\n}\\n\\n.cart-totals tbody .mark,\\n.cart-totals tfoot .mark {\\n text-align: left\\n}\\n\\n.cart.table-wrapper .cart thead tr th.col {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 15px;\\n padding-top: 24px\\n}\\n\\n.cart.table-wrapper .cart tbody td {\\n border: 0\\n}\\n\\n.cart.table-wrapper .cart>.item {\\n border-bottom: 1px solid #ccc;\\n position: relative\\n}\\n\\n.cart.table-wrapper .col {\\n padding-top: 15px\\n}\\n\\n.cart.table-wrapper .col.price,\\n.cart.table-wrapper .col.subtotal,\\n.cart.table-wrapper .col.msrp {\\n padding: 20px 11px 10px;\\n text-align: center\\n}\\n\\n.cart.table-wrapper .col.qty {\\n padding: 20px 11px 10px;\\n text-align: center\\n}\\n\\n.cart.table-wrapper .col.qty .input-text {\\n height: 36px;\\n margin-top: -7px;\\n text-align: center;\\n width: 45px\\n}\\n\\n.cart.table-wrapper .col>.price {\\n color: #7d7d7d;\\n font-size: 1.8rem;\\n font-weight: 700\\n}\\n\\n.cart.table-wrapper .item-actions td {\\n padding-bottom: 0;\\n padding-left: 15px;\\n padding-right: 15px;\\n white-space: normal\\n}\\n\\n.cart.table-wrapper .item .col.item {\\n display: block;\\n min-height: 75px;\\n padding: 15px 15px 10px 90px;\\n position: relative\\n}\\n\\n.cart.table-wrapper .actions-toolbar {\\n min-height: 20px;\\n padding-bottom: 15px;\\n position: relative\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit,\\n.cart.table-wrapper .actions-toolbar>.action-delete {\\n position: absolute;\\n right: 16px;\\n top: 0;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit>span,\\n.cart.table-wrapper .actions-toolbar>.action-delete>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit:before,\\n.cart.table-wrapper .actions-toolbar>.action-delete:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit:hover:before,\\n.cart.table-wrapper .actions-toolbar>.action-delete:hover:before {\\n color: #333\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-edit:active:before,\\n.cart.table-wrapper .actions-toolbar>.action-delete:active:before {\\n color: #757575\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-delete {\\n right: 0\\n}\\n\\n.cart.table-wrapper .actions-toolbar>.action-delete:before {\\n content: '\\\\E604'\\n}\\n\\n.cart.table-wrapper .action {\\n margin-right: 25px\\n}\\n\\n.cart.table-wrapper .action:last-child {\\n margin-right: 0\\n}\\n\\n.cart.table-wrapper .action.help.map {\\n font-weight: 400\\n}\\n\\n.cart.table-wrapper .product-item-photo {\\n display: block;\\n left: 15px;\\n max-width: 65px;\\n padding: 0;\\n position: absolute;\\n top: 15px;\\n width: 100%\\n}\\n\\n.cart.table-wrapper .product-item-name {\\n font-size: 1.8rem;\\n display: block;\\n margin: -3px 0 5px\\n}\\n\\n.cart.table-wrapper .gift-registry-name-label:after {\\n content: ':'\\n}\\n\\n.cart.table-wrapper .item-options {\\n margin-bottom: 0\\n}\\n\\n.cart.table-wrapper .product-item-name+.item-options {\\n margin-top: 20px\\n}\\n\\n.cart.table-wrapper .action.configure {\\n display: inline-block;\\n margin: 10px 0 0\\n}\\n\\n.cart.table-wrapper .item .message {\\n margin-top: 20px\\n}\\n\\n.cart-products-toolbar .toolbar-amount {\\n left: inherit;\\n margin: 25px 0 15px;\\n padding: 0;\\n position: relative;\\n text-align: center;\\n top: inherit\\n}\\n\\n.cart-products-toolbar-top {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.cart-discount {\\n border-bottom: 1px solid #ccc;\\n clear: left\\n}\\n\\n.cart-empty {\\n padding-left: 15px;\\n padding-right: 15px\\n}\\n\\n.cart-tax-info+.cart-tax-total,\\n.cart .cart-tax-info+.cart-tax-total {\\n display: block\\n}\\n\\n.cart.table-wrapper .col.price,\\n.order-items.table-wrapper .col.price,\\n.cart.table-wrapper .col.qty,\\n.order-items.table-wrapper .col.qty,\\n.cart.table-wrapper .col.subtotal,\\n.order-items.table-wrapper .col.subtotal,\\n.cart.table-wrapper .col.msrp,\\n.order-items.table-wrapper .col.msrp {\\n text-align: right\\n}\\n\\n.block.crosssell {\\n padding: 0 15px;\\n margin-top: 70px\\n}\\n\\n.block.crosssell .product-item-info {\\n width: 200px\\n}\\n\\n.block-minicart .items-total {\\n float: left;\\n margin: 0 10px\\n}\\n\\n.block-minicart .items-total .count {\\n font-weight: 700\\n}\\n\\n.block-minicart .subtotal {\\n margin: 0 10px 10px;\\n text-align: right\\n}\\n\\n.block-minicart .amount .price-wrapper:first-child .price {\\n font-size: 18px;\\n font-weight: 700\\n}\\n\\n.block-minicart .subtitle {\\n display: none\\n}\\n\\n.block-minicart .subtitle.empty {\\n display: block;\\n font-size: 14px;\\n padding: 30px 0 20px;\\n text-align: center\\n}\\n\\n.block-minicart .text.empty {\\n text-align: center\\n}\\n\\n.block-minicart .block-content>.actions {\\n margin-top: 15px\\n}\\n\\n.block-minicart .block-content>.actions>.secondary {\\n text-align: center\\n}\\n\\n.block-minicart .block-content>.actions>.primary {\\n margin: 0 10px 15px\\n}\\n\\n.block-minicart .block-content>.actions>.primary .action.primary {\\n display: block;\\n width: 100%\\n}\\n\\n.block-minicart .block-content>.actions .paypal-logo {\\n margin-top: 15px;\\n text-align: center\\n}\\n\\n.block-minicart .block-category-link,\\n.block-minicart .block-product-link,\\n.block-minicart .block-cms-link,\\n.block-minicart .block-banners {\\n margin: 15px 0 0;\\n text-align: center\\n}\\n\\n.minicart-wrapper {\\n display: inline-block;\\n position: relative;\\n float: right\\n}\\n\\n.minicart-wrapper:before,\\n.minicart-wrapper:after {\\n content: '';\\n display: table\\n}\\n\\n.minicart-wrapper:after {\\n clear: both\\n}\\n\\n.minicart-wrapper .action.showcart {\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-wrapper .action.showcart:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 28px;\\n color: #757575;\\n content: '\\\\E611';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-wrapper .action.showcart:hover:before {\\n color: #333\\n}\\n\\n.minicart-wrapper .action.showcart:active:before {\\n color: #757575\\n}\\n\\n.minicart-wrapper .action.showcart.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-wrapper .action.showcart.active:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 28px;\\n color: #757575;\\n content: '\\\\E611';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-wrapper .action.showcart.active:hover:before {\\n color: #333\\n}\\n\\n.minicart-wrapper .action.showcart.active:active:before {\\n color: #757575\\n}\\n\\n.minicart-wrapper .block-minicart {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 100%;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.minicart-wrapper .block-minicart li {\\n margin: 0\\n}\\n\\n.minicart-wrapper .block-minicart li:hover {\\n cursor: pointer\\n}\\n\\n.minicart-wrapper .block-minicart:before,\\n.minicart-wrapper .block-minicart:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.minicart-wrapper .block-minicart:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.minicart-wrapper .block-minicart:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.minicart-wrapper .block-minicart:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.minicart-wrapper .block-minicart:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.minicart-wrapper.active {\\n overflow: visible\\n}\\n\\n.minicart-wrapper.active .block-minicart {\\n display: block\\n}\\n\\n.minicart-wrapper .block-minicart {\\n padding: 25px 20px;\\n right: 0;\\n width: 320px;\\n z-index: 101\\n}\\n\\n.minicart-wrapper .block-minicart .block-title {\\n display: none\\n}\\n\\n.minicart-wrapper .block-minicart:after {\\n left: auto;\\n right: 25px\\n}\\n\\n.minicart-wrapper .block-minicart:before {\\n left: auto;\\n right: 26px\\n}\\n\\n.minicart-wrapper .product .actions {\\n float: right;\\n margin: -24px 0 0\\n}\\n\\n.minicart-wrapper .product .actions>.primary,\\n.minicart-wrapper .product .actions>.secondary {\\n display: inline\\n}\\n\\n.minicart-wrapper .product .actions>.primary:not(:last-child),\\n.minicart-wrapper .product .actions>.secondary:not(:last-child) {\\n margin-right: 15px\\n}\\n\\n.minicart-wrapper .action.close {\\n height: 40px;\\n position: absolute;\\n right: 0;\\n top: 0;\\n width: 40px;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-shadow: none;\\n font-weight: 400;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-wrapper .action.close:focus,\\n.minicart-wrapper .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.minicart-wrapper .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.minicart-wrapper .action.close.disabled,\\n.minicart-wrapper .action.close[disabled],\\nfieldset[disabled] .minicart-wrapper .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.minicart-wrapper .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-wrapper .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #757575;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-wrapper .action.close:hover:before {\\n color: inherit\\n}\\n\\n.minicart-wrapper .action.close:active:before {\\n color: inherit\\n}\\n\\n.minicart-wrapper .action.showcart {\\n white-space: nowrap\\n}\\n\\n.minicart-wrapper .action.showcart .counter.qty {\\n background: #ff5501;\\n color: #fff;\\n height: 24px;\\n line-height: 24px;\\n border-radius: 2px;\\n display: inline-block;\\n margin: 3px 0 0;\\n min-width: 18px;\\n overflow: hidden;\\n padding: 0 3px;\\n text-align: center;\\n white-space: normal\\n}\\n\\n.minicart-wrapper .action.showcart .counter.qty.empty {\\n display: none\\n}\\n\\n.minicart-wrapper .action.showcart .counter.qty .loader>img {\\n max-width: 24px\\n}\\n\\n.minicart-wrapper .action.showcart .counter-number {\\n text-shadow: 0 0 7px #000\\n}\\n\\n.minicart-wrapper .minicart-widgets {\\n margin-top: 15px\\n}\\n\\n.minicart-items-wrapper {\\n border: 1px solid #ccc;\\n margin: 0 -20px;\\n border-left: 0;\\n border-right: 0;\\n overflow-x: auto;\\n padding: 15px\\n}\\n\\n.minicart-items {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.minicart-items .product-item {\\n padding: 20px 0\\n}\\n\\n.minicart-items .product-item:not(:first-child) {\\n border-top: 1px solid #ccc\\n}\\n\\n.minicart-items .product-item:first-child {\\n padding-top: 0\\n}\\n\\n.minicart-items .product-item-pricing .label {\\n display: inline-block;\\n width: 4.5rem\\n}\\n\\n.minicart-items .price-minicart {\\n margin-bottom: 5px\\n}\\n\\n.minicart-items .product-item-name {\\n font-weight: 400;\\n margin: 0 0 10px\\n}\\n\\n.minicart-items .product-item-name a {\\n color: #006bb4\\n}\\n\\n.minicart-items .product-item-details {\\n padding-left: 88px\\n}\\n\\n.minicart-items .product-item-details .price {\\n font-weight: 700\\n}\\n\\n.minicart-items .product-item-details .price-including-tax,\\n.minicart-items .product-item-details .price-excluding-tax {\\n margin: 5px 0\\n}\\n\\n.minicart-items .product-item-details .weee[data-label] {\\n font-size: 1.1rem\\n}\\n\\n.minicart-items .product-item-details .details-qty {\\n margin-top: 10px\\n}\\n\\n.minicart-items .product>.product-item-photo,\\n.minicart-items .product>.product-image-container {\\n float: left\\n}\\n\\n.minicart-items .product .toggle {\\n border: 0;\\n padding: 0 40px 5px 0\\n}\\n\\n.minicart-items .product .toggle:after {\\n color: #8f8f8f;\\n margin: 0 0 0 5px;\\n position: static\\n}\\n\\n.minicart-items .product .active>.toggle:after {\\n content: '\\\\E621'\\n}\\n\\n.minicart-items .product.pricing {\\n margin-top: 3px\\n}\\n\\n.minicart-items .product.options .toggle.tooltip {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-items .product.options .toggle.tooltip>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-items .product.options .toggle.tooltip:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: -3px 0 0 7px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-items .product.options .details {\\n display: none\\n}\\n\\n.minicart-items .item-qty {\\n margin-right: 10px;\\n text-align: center;\\n width: 40px\\n}\\n\\n.minicart-items .update-cart-item {\\n font-size: 1.1rem;\\n vertical-align: top\\n}\\n\\n.minicart-items .subtitle {\\n display: none\\n}\\n\\n.minicart-items .action.edit,\\n.minicart-items .action.delete {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.minicart-items .action.edit>span,\\n.minicart-items .action.delete>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.minicart-items .action.edit:before,\\n.minicart-items .action.delete:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.minicart-items .action.edit:hover:before,\\n.minicart-items .action.delete:hover:before {\\n color: #333\\n}\\n\\n.minicart-items .action.edit:active:before,\\n.minicart-items .action.delete:active:before {\\n color: #757575\\n}\\n\\n.minicart-items .action.delete:before {\\n content: '\\\\E604'\\n}\\n\\n.checkout-container {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .step-title {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.opc-wrapper .step-content {\\n margin: 0 0 40px\\n}\\n\\n.checkout-index-index .nav-sections,\\n.checkout-index-index .nav-toggle {\\n display: none\\n}\\n\\n.checkout-index-index .logo {\\n margin-left: 0\\n}\\n\\n.checkout-onepage-success .print {\\n display: none\\n}\\n\\n.opc-estimated-wrapper {\\n background: #f4f4f4;\\n border-bottom: 1px solid #ccc;\\n border-top: 1px solid #ccc;\\n margin: -21px -15px 15px;\\n padding: 18px 15px\\n}\\n\\n.opc-estimated-wrapper .estimated-block {\\n font-size: 18px;\\n float: left;\\n font-weight: 700\\n}\\n\\n.opc-estimated-wrapper .estimated-block .estimated-label {\\n display: block;\\n margin: 0 0 5px\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart {\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:focus,\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:active {\\n background: none;\\n border: none\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:hover {\\n background: none;\\n border: none\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart.disabled,\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart[disabled],\\nfieldset[disabled] .opc-estimated-wrapper .minicart-wrapper button.action.showcart {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.opc-estimated-wrapper .minicart-wrapper button.action.showcart:before {\\n color: #333\\n}\\n\\n.opc-progress-bar {\\n display: none\\n}\\n\\n.field.choice .field-tooltip {\\n display: inline-block;\\n margin-left: 10px;\\n position: relative;\\n top: -3px\\n}\\n\\n.field.choice .field-tooltip-action {\\n line-height: 21px\\n}\\n\\n.field._error .control input,\\n.field._error .control select,\\n.field._error .control textarea {\\n border-color: #ed8380\\n}\\n\\n.checkout-index-index .modal-popup .fieldset .field .label {\\n font-weight: 400\\n}\\n\\n.checkout-index-index .modal-popup .modal-footer .action-hide-popup {\\n margin-top: 8px\\n}\\n\\n.field-tooltip {\\n cursor: pointer;\\n position: absolute;\\n right: 0;\\n top: 1px\\n}\\n\\n.field-tooltip._active {\\n z-index: 100\\n}\\n\\n.field-tooltip._active .field-tooltip-content {\\n display: block\\n}\\n\\n.field-tooltip._active .field-tooltip-action:before {\\n color: #333\\n}\\n\\n.field-tooltip .field-tooltip-action {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.field-tooltip .field-tooltip-action>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.field-tooltip .field-tooltip-action:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 21px;\\n line-height: inherit;\\n color: #bbb;\\n content: '\\\\E623';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.field-tooltip .field-tooltip-action:hover:before {\\n color: #333\\n}\\n\\n._keyfocus .field-tooltip .field-tooltip-action:focus {\\n z-index: 100\\n}\\n\\n._keyfocus .field-tooltip .field-tooltip-action:focus+.field-tooltip-content {\\n display: block\\n}\\n\\n._keyfocus .field-tooltip .field-tooltip-action:focus:before {\\n color: #333\\n}\\n\\n.field-tooltip .field-tooltip-content {\\n background: #f4f4f4;\\n border: 1px solid #999;\\n border-radius: 1px;\\n font-size: 14px;\\n padding: 12px;\\n width: 270px;\\n display: none;\\n left: 38px;\\n position: absolute;\\n text-transform: none;\\n top: -9px;\\n word-wrap: break-word;\\n z-index: 2\\n}\\n\\n.field-tooltip .field-tooltip-content:before,\\n.field-tooltip .field-tooltip-content:after {\\n border: 10px solid transparent;\\n height: 0;\\n width: 0;\\n border-right-color: #f4f4f4;\\n left: -21px;\\n top: 12px;\\n content: '';\\n display: block;\\n position: absolute;\\n z-index: 3\\n}\\n\\n.field-tooltip .field-tooltip-content:before {\\n border-right-color: #666\\n}\\n\\n.field-tooltip .field-tooltip-content:after {\\n border-right-color: #f4f4f4;\\n width: 1px;\\n z-index: 4\\n}\\n\\n.opc-wrapper .form-login,\\n.opc-wrapper .form-shipping-address {\\n margin-top: 28px;\\n margin-bottom: 28px\\n}\\n\\n.opc-wrapper .form-login .fieldset .field .label,\\n.opc-wrapper .form-shipping-address .fieldset .field .label {\\n font-weight: 400\\n}\\n\\n.opc-wrapper .form-login .fieldset .note,\\n.opc-wrapper .form-shipping-address .fieldset .note {\\n font-size: 14px;\\n margin-top: 10px\\n}\\n\\n.opc-wrapper .shipping-address-items {\\n font-size: 0\\n}\\n\\n.opc-wrapper .shipping-address-item {\\n border: 2px solid transparent;\\n font-size: 14px;\\n line-height: 30px;\\n margin: 0 0 20px;\\n padding: 20px 35px 20px 20px;\\n transition: .3s border-color;\\n width: 50%;\\n display: inline-block;\\n position: relative;\\n vertical-align: top;\\n word-wrap: break-word\\n}\\n\\n.opc-wrapper .shipping-address-item.selected-item {\\n border-color: #ff5501\\n}\\n\\n.opc-wrapper .shipping-address-item.selected-item:after {\\n background: #ff5501;\\n color: #fff;\\n content: '\\\\E610';\\n font-family: 'luma-icons';\\n height: 27px;\\n width: 29px;\\n font-size: 19px;\\n line-height: 21px;\\n padding-top: 2px;\\n position: absolute;\\n right: 0;\\n text-align: center;\\n top: 0\\n}\\n\\n.opc-wrapper .shipping-address-item.selected-item .action-select-shipping-item {\\n visibility: hidden\\n}\\n\\n.opc-wrapper .action-show-popup {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .action-show-popup>span:before {\\n content: '+';\\n padding-right: 5px\\n}\\n\\n.opc-wrapper .action-select-shipping-item {\\n float: right;\\n margin: 20px 0 0\\n}\\n\\n.opc-wrapper .edit-address-link {\\n display: block;\\n float: left;\\n margin: 26px 5px 0 0\\n}\\n\\n.checkout-shipping-method .step-title {\\n margin-bottom: 0\\n}\\n\\n.checkout-shipping-method .no-quotes-block {\\n margin: 20px 0\\n}\\n\\n.methods-shipping .actions-toolbar .action.primary {\\n margin: 20px 0 0\\n}\\n\\n.table-checkout-shipping-method thead th {\\n display: none\\n}\\n\\n.table-checkout-shipping-method tbody td {\\n border-top: 1px solid #ccc;\\n padding-bottom: 20px;\\n padding-top: 20px\\n}\\n\\n.table-checkout-shipping-method tbody td:first-child {\\n padding-left: 0;\\n padding-right: 0;\\n width: 20px\\n}\\n\\n.table-checkout-shipping-method tbody tr:first-child td {\\n border-top: none\\n}\\n\\n.table-checkout-shipping-method tbody .col-price {\\n font-weight: 600\\n}\\n\\n.table-checkout-shipping-method tbody .row-error td {\\n border-top: none;\\n padding-bottom: 10px;\\n padding-top: 0\\n}\\n\\n.checkout-shipping-method {\\n position: relative\\n}\\n\\n.shipping-policy-block.field-tooltip {\\n top: 12px\\n}\\n\\n.shipping-policy-block.field-tooltip .field-tooltip-action {\\n color: #006bb4;\\n cursor: pointer\\n}\\n\\n.shipping-policy-block.field-tooltip .field-tooltip-action:before {\\n display: none\\n}\\n\\n.shipping-policy-block.field-tooltip .field-tooltip-content {\\n width: 420px;\\n top: 30px\\n}\\n\\n.opc-block-shipping-information {\\n padding: 0 30px\\n}\\n\\n.opc-block-shipping-information .shipping-information-title {\\n border-bottom: 1px solid #ccc;\\n margin: 0 0 20px;\\n position: relative\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit {\\n top: 10px;\\n display: inline-block;\\n text-decoration: none;\\n margin: 0;\\n position: absolute;\\n right: 0\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit:hover:before {\\n color: #333\\n}\\n\\n.opc-block-shipping-information .shipping-information-title .action-edit:active:before {\\n color: #757575\\n}\\n\\n.opc-block-shipping-information .shipping-information-content {\\n line-height: 27px\\n}\\n\\n.opc-block-shipping-information .shipping-information-content .actions-toolbar {\\n margin-left: 0\\n}\\n\\n.opc-block-shipping-information .ship-to,\\n.opc-block-shipping-information .ship-via {\\n margin: 0 0 20px\\n}\\n\\n.opc-block-summary {\\n background: #f5f5f5;\\n margin: 0 0 20px;\\n padding: 22px 30px\\n}\\n\\n.opc-block-summary>.title {\\n display: block\\n}\\n\\n.opc-block-summary .mark .value {\\n color: #666;\\n display: block\\n}\\n\\n.opc-block-summary .grand.incl+.grand.excl .mark,\\n.opc-block-summary .grand.incl+.grand.excl .amount {\\n border-top: 0;\\n font-size: 1.4rem;\\n padding-top: 0\\n}\\n\\n.opc-block-summary .grand.incl+.grand.excl .mark strong,\\n.opc-block-summary .grand.incl+.grand.excl .amount strong {\\n font-weight: 400\\n}\\n\\n.opc-block-summary .not-calculated {\\n font-style: italic\\n}\\n\\n.opc-block-summary .items-in-cart>.title {\\n border-bottom: 1px solid #ccc;\\n padding: 10px 40px 10px 0;\\n cursor: pointer;\\n display: block;\\n text-decoration: none;\\n margin-bottom: 0;\\n position: relative\\n}\\n\\n.opc-block-summary .items-in-cart>.title>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.opc-block-summary .items-in-cart>.title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: 12px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.opc-block-summary .items-in-cart>.title:after {\\n position: absolute;\\n right: 0;\\n top: 10px\\n}\\n\\n.opc-block-summary .items-in-cart>.title strong {\\n font-size: 1.8rem;\\n font-weight: 300;\\n margin: 0\\n}\\n\\n.opc-block-summary .items-in-cart.active>.title:after {\\n content: '\\\\E621'\\n}\\n\\n.opc-block-summary .items-in-cart .product {\\n position: relative\\n}\\n\\n.opc-block-summary .minicart-items-wrapper {\\n margin: 0 -15px 0 0;\\n max-height: 370px;\\n padding: 15px 15px 0 0;\\n border: 0\\n}\\n\\n.column.main .opc-block-summary .product-item {\\n margin: 0;\\n padding-left: 0\\n}\\n\\n.opc-block-summary .product-item .product-item-inner {\\n display: table;\\n margin: 0 0 10px;\\n width: 100%\\n}\\n\\n.opc-block-summary .product-item .product-item-name-block {\\n display: table-cell;\\n padding-right: 5px;\\n text-align: left\\n}\\n\\n.opc-block-summary .product-item .subtotal {\\n display: table-cell;\\n text-align: right\\n}\\n\\n.opc-block-summary .product-item .price {\\n font-size: 1.6rem;\\n font-weight: 400\\n}\\n\\n.opc-block-summary .product-item .price-including-tax+.price-excluding-tax .price {\\n font-size: 1rem\\n}\\n\\n.opc-block-summary .actions-toolbar {\\n position: relative;\\n z-index: 1\\n}\\n\\n.opc-block-summary .actions-toolbar .secondary {\\n border-top: 1px solid #ccc;\\n display: block;\\n margin: -1px 0 0;\\n padding: 15px 0 0;\\n text-align: left\\n}\\n\\n.opc-block-summary .actions-toolbar .secondary .action {\\n margin: 0\\n}\\n\\n.authentication-dropdown {\\n box-sizing: border-box\\n}\\n\\n.authentication-dropdown .modal-inner-wrap {\\n padding: 25px\\n}\\n\\n.authentication-wrapper {\\n float: right;\\n margin-top: -60px;\\n max-width: 50%;\\n position: relative;\\n z-index: 1\\n}\\n\\n._has-auth-shown .authentication-wrapper {\\n z-index: 900\\n}\\n\\n.block-authentication .block-title {\\n font-size: 1.8rem;\\n border-bottom: 0;\\n margin-bottom: 25px\\n}\\n\\n.block-authentication .block-title strong {\\n font-weight: 300\\n}\\n\\n.block-authentication .field .label {\\n font-weight: 400\\n}\\n\\n.block-authentication .actions-toolbar {\\n margin-bottom: 5px\\n}\\n\\n.block-authentication .actions-toolbar>.secondary {\\n padding-top: 25px;\\n text-align: left\\n}\\n\\n.block-authentication .block[class] {\\n margin: 0\\n}\\n\\n.block-authentication .block[class] ul {\\n list-style: none;\\n padding-left: 10px\\n}\\n\\n.block-authentication .block[class] .field .control,\\n.block-authentication .block[class] .field .label {\\n float: none;\\n width: auto\\n}\\n\\n.block-authentication .block[class]+.block {\\n border-top: 1px solid #c1c1c1;\\n margin-top: 40px;\\n padding-top: 40px;\\n position: relative\\n}\\n\\n.block-authentication .block[class]+.block::before {\\n height: 36px;\\n line-height: 34px;\\n margin: -19px 0 0 -18px;\\n min-width: 36px;\\n background: #fff;\\n border: 1px solid #c1c1c1;\\n border-radius: 50%;\\n box-sizing: border-box;\\n color: #c1c1c1;\\n content: attr(data-label);\\n display: inline-block;\\n left: 50%;\\n letter-spacing: normal;\\n padding: 0 .2rem;\\n position: absolute;\\n text-align: center;\\n text-transform: uppercase;\\n top: 0\\n}\\n\\n.checkout-payment-method .step-title {\\n border-bottom: 0;\\n margin-bottom: 0\\n}\\n\\n.checkout-payment-method .payment-method:first-child .payment-method-title {\\n border-top: 0\\n}\\n\\n.checkout-payment-method .payment-method._active .payment-method-content {\\n display: block\\n}\\n\\n.checkout-payment-method .payment-method+.payment-method .payment-method-title {\\n border-top: 1px solid #ccc\\n}\\n\\n.checkout-payment-method .payment-method-title {\\n padding: 20px 0;\\n margin: 0\\n}\\n\\n.checkout-payment-method .payment-method-title .payment-icon {\\n display: inline-block;\\n margin-right: 5px;\\n vertical-align: middle\\n}\\n\\n.checkout-payment-method .payment-method-title .action-help {\\n display: inline-block;\\n margin-left: 5px\\n}\\n\\n.checkout-payment-method .payment-method-content {\\n display: none;\\n padding: 0 0 20px 22px\\n}\\n\\n.checkout-payment-method .payment-method-content .fieldset:not(:last-child) {\\n margin: 0 0 20px\\n}\\n\\n.checkout-payment-method .payment-group+.payment-group .step-title {\\n margin: 20px 0 0\\n}\\n\\n.checkout-payment-method .field-select-billing,\\n.checkout-payment-method .billing-address-form {\\n max-width: 500px\\n}\\n\\n.checkout-payment-method .billing-address-same-as-shipping-block {\\n margin: 0 0 10px\\n}\\n\\n.checkout-payment-method .checkout-billing-address {\\n margin: 0 0 20px\\n}\\n\\n.checkout-payment-method .checkout-billing-address .primary .action-update {\\n margin-right: 0\\n}\\n\\n.checkout-payment-method .checkout-billing-address .billing-address-details {\\n line-height: 27px;\\n padding: 0 0 0 23px\\n}\\n\\n.checkout-payment-method .payment-method-note+.checkout-billing-address {\\n margin-top: 20px\\n}\\n\\n.checkout-payment-method .payment-method-iframe {\\n background-color: transparent;\\n display: none;\\n width: 100%\\n}\\n\\n.checkout-payment-method .no-payments-block {\\n margin: 20px 0\\n}\\n\\n.checkout-payment-method .payment-option._active .payment-option-title .action-toggle:after {\\n content: '\\\\E621'\\n}\\n\\n.checkout-payment-method .payment-option._collapsible .payment-option-title {\\n cursor: pointer\\n}\\n\\n.checkout-payment-method .payment-option._collapsible .payment-option-content {\\n display: none\\n}\\n\\n.checkout-payment-method .payment-option-title {\\n border-top: 1px solid #ccc;\\n padding: 20px 0\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle {\\n color: #006bb4;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 14px;\\n line-height: 16px;\\n color: #757575;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 10px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle:hover:after {\\n color: #333\\n}\\n\\n.checkout-payment-method .payment-option-title .action-toggle:active:after {\\n color: #757575\\n}\\n\\n.checkout-payment-method .payment-option-content {\\n padding: 0 0 20px 22px\\n}\\n\\n.checkout-payment-method .payment-option-inner {\\n margin: 0 0 20px\\n}\\n\\n.checkout-payment-method .credit-card-types {\\n padding: 0\\n}\\n\\n.checkout-payment-method .credit-card-types .item {\\n display: inline-block;\\n list-style: none;\\n margin: 0 5px 0 0;\\n vertical-align: top\\n}\\n\\n.checkout-payment-method .credit-card-types .item._active {\\n font-weight: 700\\n}\\n\\n.checkout-payment-method .credit-card-types .item._active img {\\n -webkit-filter: grayscale(0%)\\n}\\n\\n.checkout-payment-method .credit-card-types .item._inactive {\\n opacity: .4\\n}\\n\\n.checkout-payment-method .credit-card-types .item span {\\n display: inline-block;\\n padding-top: 6px;\\n vertical-align: top\\n}\\n\\n.checkout-payment-method .credit-card-types img {\\n -webkit-filter: grayscale(100%);\\n -webkit-transition: all .6s ease\\n}\\n\\n.checkout-payment-method .ccard .fields>.year {\\n padding-left: 5px\\n}\\n\\n.checkout-payment-method .ccard .fields .select {\\n padding-left: 5px;\\n padding-right: 5px\\n}\\n\\n.checkout-payment-method .ccard .month .select {\\n width: 140px\\n}\\n\\n.checkout-payment-method .ccard .year .select {\\n width: 80px\\n}\\n\\n.checkout-payment-method .ccard .number .input-text {\\n width: 225px\\n}\\n\\n.checkout-payment-method .ccard>.field.cvv>.control {\\n display: inline-block;\\n padding-right: 20px\\n}\\n\\n.checkout-payment-method .ccard .cvv .label {\\n display: block\\n}\\n\\n.checkout-payment-method .ccard .cvv .input-text {\\n width: 55px\\n}\\n\\n.checkout-payment-method .ccard.fieldset>.field .fields.group.group-2 .field {\\n width: auto !important\\n}\\n\\n.checkout-agreements-block .checkout-agreements {\\n margin-bottom: 20px\\n}\\n\\n.checkout-agreements-block .action-show {\\n vertical-align: baseline\\n}\\n\\n.checkout-agreements-items {\\n padding-bottom: 30px\\n}\\n\\n.checkout-agreements-items .checkout-agreements-item {\\n margin-bottom: 20px\\n}\\n\\n.checkout-agreements-items .checkout-agreements-item-title {\\n border-bottom: 0\\n}\\n\\n.checkout-agreement-item-content {\\n overflow: auto\\n}\\n\\n.login-container .block-new-customer .actions-toolbar {\\n margin-top: 25px\\n}\\n\\n.login-container .block .block-title {\\n font-size: 1.8rem\\n}\\n\\n.login-container .fieldset:after {\\n margin: 10px 0 0;\\n content: attr(data-hasrequired);\\n display: block;\\n letter-spacing: normal;\\n word-spacing: normal;\\n color: #e02b27;\\n font-size: 1.2rem\\n}\\n\\n.login-container .fieldset:after {\\n margin-top: 35px\\n}\\n\\n.block-addresses-list .items.addresses>.item {\\n margin-bottom: 20px\\n}\\n\\n.block-addresses-list .items.addresses>.item:last-child {\\n margin-bottom: 0\\n}\\n\\n.block-addresses-list .items.addresses .item.actions {\\n margin-top: 5px\\n}\\n\\n.form-address-edit #region_id {\\n display: none\\n}\\n\\n.form-edit-account .fieldset.password {\\n display: none\\n}\\n\\n.form-create-account .fieldset-fullname .fields .field {\\n float: none\\n}\\n\\n.account .page-title-wrapper .page-title {\\n display: inline-block\\n}\\n\\n.account .messages {\\n margin-bottom: 20px\\n}\\n\\n.account .column.main {\\n margin-bottom: 30px\\n}\\n\\n.account .column.main h2 {\\n margin-top: 0\\n}\\n\\n.account .sidebar-additional {\\n margin-top: 40px\\n}\\n\\n.account .table-wrapper {\\n margin-bottom: 20px;\\n border-bottom: 1px solid #e4e4e4\\n}\\n\\n.account .table-wrapper:last-child {\\n margin-bottom: 0\\n}\\n\\n.account .data.table .col.actions .action.delete,\\n[class^='sales-guest-'] .data.table .col.actions .action.delete,\\n.sales-guest-view .data.table .col.actions .action.delete {\\n color: #d10029\\n}\\n\\n.column.main .block:last-child {\\n margin-bottom: 0\\n}\\n\\n.block .title {\\n margin-bottom: 10px\\n}\\n\\n.block .title strong {\\n font-weight: 700;\\n line-height: 1.1;\\n font-size: 1.4rem;\\n margin-top: 2rem;\\n margin-bottom: 2rem\\n}\\n\\n.block p:last-child {\\n margin: 0\\n}\\n\\n.block .box-actions {\\n margin-top: 5px\\n}\\n\\n.field.password .control {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column\\n}\\n\\n.field.password .control .mage-error {\\n -ms-flex-order: 2;\\n -webkit-order: 2;\\n order: 2\\n}\\n\\n.field.password .control .input-text {\\n -ms-flex-order: 0;\\n -webkit-order: 0;\\n order: 0;\\n z-index: 2\\n}\\n\\n.password-strength-meter {\\n background-color: #f4f4f4;\\n height: 32px;\\n line-height: 32px;\\n padding: 0 9px;\\n position: relative;\\n z-index: 1\\n}\\n\\n.password-strength-meter:before {\\n content: '';\\n height: 100%;\\n left: 0;\\n position: absolute;\\n top: 0;\\n z-index: -1\\n}\\n\\n.password-none .password-strength-meter:before {\\n background-color: #f4f4f4;\\n width: 100%\\n}\\n\\n.password-weak .password-strength-meter:before {\\n background-color: #ffafae;\\n width: 25%\\n}\\n\\n.password-medium .password-strength-meter:before {\\n background-color: #ffd6b3;\\n width: 50%\\n}\\n\\n.password-strong .password-strength-meter:before {\\n background-color: #c5eeac;\\n width: 75%\\n}\\n\\n.password-very-strong .password-strength-meter:before {\\n background-color: #81b562;\\n width: 100%\\n}\\n\\n.control.captcha-image {\\n margin-top: 10px\\n}\\n\\n.control.captcha-image .captcha-img {\\n vertical-align: middle\\n}\\n\\n.order-products-toolbar {\\n position: relative\\n}\\n\\n.order-products-toolbar .toolbar-amount {\\n position: relative;\\n text-align: center\\n}\\n\\n.block-balance .price {\\n margin-top: -10px;\\n font-size: 3.2rem;\\n display: inline-block;\\n line-height: 32px\\n}\\n\\n.table-downloadable-products .product-name {\\n font-weight: 400;\\n margin-right: 15px\\n}\\n\\n.table-downloadable-products .action.download {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.table-downloadable-products .action.download:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: inherit;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E626';\\n font-family: 'luma-icons';\\n margin: 0 5px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.page-product-downloadable .product-add-form {\\n clear: both;\\n margin-bottom: 25px\\n}\\n\\n.page-product-downloadable .product-options-bottom .field.qty {\\n display: none\\n}\\n\\n.samples-item-title {\\n font-size: 1.4rem;\\n font-weight: 600;\\n margin: 0 0 10px\\n}\\n\\n.samples-item {\\n margin: 0 0 10px\\n}\\n\\n.field.downloads {\\n margin-bottom: 10px\\n}\\n\\n.page-product-downloadable .product-add-form .product-options-wrapper .field.downloads>.control {\\n width: 100%\\n}\\n\\n.field.downloads .price-container {\\n display: inline;\\n white-space: nowrap\\n}\\n\\n.field.downloads .price-container:before {\\n content: ' + ';\\n display: inline\\n}\\n\\n.field.downloads .price-excluding-tax {\\n display: inline\\n}\\n\\n.field.downloads .price-excluding-tax:before {\\n content: ' (' attr(data-label) ': '\\n}\\n\\n.field.downloads .price-excluding-tax:after {\\n content: ')'\\n}\\n\\n.field.downloads .price-including-tax {\\n display: inline;\\n font-weight: 600;\\n font-size: 1.4rem\\n}\\n\\n.field.downloads .field.choice {\\n border-bottom: 1px solid #ebebeb;\\n box-sizing: border-box;\\n margin-bottom: 10px;\\n padding-bottom: 10px;\\n padding-left: 25px;\\n position: relative;\\n width: 100%;\\n z-index: 1\\n}\\n\\n.field.downloads .field.choice input {\\n left: 0;\\n position: absolute;\\n top: 2px\\n}\\n\\n.field.downloads .field.downloads-all {\\n border-bottom: 0;\\n padding-left: 0\\n}\\n\\n.field.downloads .sample.link {\\n float: right\\n}\\n\\n.field.downloads-all .label {\\n color: #006bb4;\\n text-decoration: none;\\n cursor: pointer\\n}\\n\\n.field.downloads-all .label:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.field.downloads-all .label:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.field.downloads-all .label:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.field.downloads-all input {\\n opacity: 0\\n}\\n\\n.field.downloads.downloads-no-separately .field.choice {\\n padding-left: 0\\n}\\n\\n.page-product-giftcard .giftcard-amount {\\n border-top: 1px #c1c1c1 solid;\\n clear: both;\\n margin-bottom: 0;\\n padding-top: 15px;\\n text-align: left\\n}\\n\\n.page-product-giftcard .giftcard-amount .field:last-child {\\n padding-bottom: 20px !important\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .old-price {\\n font-size: 20px\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .price-container.price-final>span {\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .price-container.price-final>span:last-child {\\n margin-bottom: 0\\n}\\n\\n.page-product-giftcard .product-info-main .price-box .price-container.price-final .price {\\n font-size: 22px;\\n font-weight: 600;\\n line-height: 22px\\n}\\n\\n.page-product-giftcard .product-info-main .price-box+.giftcard.form {\\n border-top: 1px #c1c1c1 solid;\\n padding-top: 15px\\n}\\n\\n.page-product-giftcard .product-info-main .alert {\\n clear: left\\n}\\n\\n.page-product-giftcard .product-info-stock-sku {\\n display: block\\n}\\n\\n.page-product-giftcard .product-add-form {\\n border: 0;\\n clear: none;\\n padding-top: 0\\n}\\n\\n.page-product-giftcard .product-add-form .product-options-wrapper .field:not(.text) {\\n margin-bottom: 20px;\\n margin-top: 20px\\n}\\n\\n.page-product-giftcard .giftcard.form {\\n clear: both\\n}\\n\\n.page-product-giftcard .price-box {\\n margin-bottom: 10px\\n}\\n\\n.page-product-giftcard .product-info-price {\\n border: 0;\\n display: block;\\n float: right;\\n white-space: nowrap;\\n width: auto\\n}\\n\\n.giftcard-account .please-wait {\\n display: none\\n}\\n\\n.giftcard-account .form-giftcard-redeem .giftcard.info {\\n margin-bottom: 30px\\n}\\n\\n.opc-wrapper .form-giftcard-account {\\n max-width: 500px\\n}\\n\\n.opc-wrapper .form-giftcard-account .field {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .giftcard-account-info {\\n margin: 0 0 20px\\n}\\n\\n.opc-wrapper .giftcard-account-info .giftcard-account-number {\\n margin: 0 0 10px\\n}\\n\\n.gift-message .field {\\n margin-bottom: 20px\\n}\\n\\n.gift-message .field .label {\\n color: #666;\\n font-weight: 400\\n}\\n\\n.gift-options {\\n margin: 20px 0\\n}\\n\\n.gift-options .actions-toolbar .action-cancel {\\n display: none\\n}\\n\\n.gift-options-title {\\n font-weight: 600;\\n margin: 0 0 20px\\n}\\n\\n.gift-options-content .fieldset {\\n margin: 0 0 20px\\n}\\n\\n.gift-summary {\\n position: relative;\\n margin-top: 10px\\n}\\n\\n.gift-summary .actions-toolbar>.secondary .action {\\n margin: 0 0 0 20px;\\n width: auto\\n}\\n\\n.gift-summary .action-edit,\\n.gift-summary .action-delete {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.gift-summary .action-edit>span,\\n.gift-summary .action-delete>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.gift-summary .action-edit:before,\\n.gift-summary .action-delete:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-summary .action-edit:hover:before,\\n.gift-summary .action-delete:hover:before {\\n color: #333\\n}\\n\\n.gift-summary .action-edit:active:before,\\n.gift-summary .action-delete:active:before {\\n color: #757575\\n}\\n\\n.gift-summary .action-delete:before {\\n content: '\\\\E604'\\n}\\n\\n.action-gift {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.action-gift:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 1.2rem;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 10px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.action-gift:hover:after {\\n color: #333\\n}\\n\\n.action-gift:active:after {\\n color: #757575\\n}\\n\\n.action-gift.active:after,\\n.action-gift._active:after {\\n content: '\\\\E621'\\n}\\n\\n.gift-summary .actions-toolbar,\\n.cart.table-wrapper .gift-summary .actions-toolbar {\\n padding: 0;\\n position: absolute;\\n right: 0;\\n top: 0\\n}\\n\\n.cart.table-wrapper .gift-content {\\n box-sizing: border-box;\\n clear: left;\\n display: none;\\n float: left;\\n margin-right: -100%;\\n padding: 20px 0;\\n width: 100%\\n}\\n\\n.cart.table-wrapper .gift-content._active {\\n display: block\\n}\\n\\n.cart.table-wrapper .item-gift._active {\\n border-top: 1px solid #c1c1c1\\n}\\n\\n.cart.table-wrapper .item-gift .action {\\n margin-right: 0\\n}\\n\\n.gift-item-block {\\n border-bottom: 1px solid #c1c1c1;\\n margin: 0\\n}\\n\\n.gift-item-block._active .title:after {\\n content: '\\\\E621'\\n}\\n\\n.gift-item-block .title {\\n color: #1979c3;\\n cursor: pointer;\\n margin: 0;\\n padding: 10px 40px 10px 15px;\\n position: relative;\\n display: block;\\n text-decoration: none\\n}\\n\\n.gift-item-block .title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 1.2rem;\\n line-height: 20px;\\n color: #858585;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0 0 0 10px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-item-block .title:hover:after {\\n color: #333\\n}\\n\\n.gift-item-block .content {\\n padding: 10px 0 20px;\\n position: relative\\n}\\n\\n.order-details-items .order-gift-message dt:after,\\n.order-details-items .block-order-details-gift-message dt:after {\\n content: ''\\n}\\n\\n.order-details-items .order-gift-message .item-message,\\n.order-details-items .block-order-details-gift-message .item-message {\\n clear: left\\n}\\n\\n.order-details-items .order-gift-message .item-options dt,\\n.order-details-items .block-order-details-gift-message .item-options dt {\\n font-weight: 400;\\n margin: 10px 0\\n}\\n\\n.gift-messages-order {\\n margin-bottom: 25px\\n}\\n\\n.form-giftregistry-share .actions-toolbar:not(:last-child),\\n.form-giftregistry-edit .actions-toolbar:not(:last-child) {\\n margin-bottom: 40px\\n}\\n\\n.form-giftregistry-share .fieldset .nested .field:not(.choice) .control,\\n.form-giftregistry-edit .fieldset .nested .field:not(.choice) .control {\\n width: 100%\\n}\\n\\n.giftregisty-dropdown .action.toggle {\\n color: #006bb4\\n}\\n\\n.table-giftregistry-items .product-image {\\n margin-right: 10px;\\n float: left\\n}\\n\\n.cart-summary .form.giftregistry .fieldset {\\n margin: 15px 0 5px;\\n text-align: left\\n}\\n\\n.cart-summary .form.giftregistry .fieldset .field {\\n margin: 0 0 10px\\n}\\n\\n.cart-summary .form.giftregistry .fieldset .field .control {\\n float: none;\\n width: auto\\n}\\n\\n.form-giftregistry-search {\\n margin-bottom: 60px\\n}\\n\\n.form-giftregistry-search .fields-specific-options .field:nth-last-of-type(1) {\\n margin-bottom: 0\\n}\\n\\n.block-giftregistry .actions-toolbar {\\n margin: 17px 0 0\\n}\\n\\n.block-giftregistry-shared .item-options .item-value {\\n margin: 0 0 25px\\n}\\n\\n.block-giftregistry-shared-items .item .col {\\n border: 0\\n}\\n\\n.block-giftregistry-shared-items th {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.block-giftregistry-shared-items .col {\\n padding: 20px 11px 10px\\n}\\n\\n.block-giftregistry-shared-items .col .price-box {\\n display: inline-block\\n}\\n\\n.block-giftregistry-shared-items .col .price-wrapper {\\n font-size: 1.8rem;\\n display: block;\\n font-weight: 700;\\n white-space: nowrap\\n}\\n\\n.block-giftregistry-shared-items .product .item-options {\\n margin: 0\\n}\\n\\n.block-giftregistry-shared-items .product-item-photo {\\n display: block;\\n max-width: 65px;\\n padding: 10px 0\\n}\\n\\n.block-giftregistry-shared-items .product-item-name {\\n font-size: 1.8rem;\\n display: block;\\n margin: 0 0 5px\\n}\\n\\n.gift-wrapping .label {\\n margin: 0 0 8px;\\n display: inline-block\\n}\\n\\n.gift-wrapping .field {\\n margin-bottom: 10px\\n}\\n\\n.gift-wrapping-info {\\n font-weight: 300;\\n font-size: 18px;\\n margin: 20px 0\\n}\\n\\n.gift-wrapping-list {\\n list-style: none;\\n margin: 20px 0 10px;\\n padding: 0\\n}\\n\\n.gift-wrapping-list .no-image {\\n background: #f2f2f2;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.gift-wrapping-list .no-image>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.gift-wrapping-list .no-image:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 22px;\\n line-height: 4rem;\\n color: #494949;\\n content: '\\\\E62A';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-wrapping-list .no-image:after {\\n display: block\\n}\\n\\n.gift-wrapping-preview,\\n.gift-wrapping-item>span {\\n cursor: pointer;\\n display: block;\\n overflow: hidden;\\n position: relative;\\n z-index: 1\\n}\\n\\n.gift-wrapping-item {\\n float: left;\\n margin: 0 10px 10px 0\\n}\\n\\n.gift-wrapping-item:last-child {\\n margin-right: 0\\n}\\n\\n.gift-wrapping-item._active span:before {\\n border: 3px solid #333;\\n box-sizing: border-box;\\n content: '';\\n display: block;\\n height: 100%;\\n position: absolute;\\n width: 100%;\\n z-index: 2\\n}\\n\\n.gift-wrapping-item>span {\\n height: 4rem;\\n width: 4rem\\n}\\n\\n.gift-wrapping-title {\\n margin: 10px 0\\n}\\n\\n.gift-wrapping-title .action-remove {\\n margin: -5px 0 0 5px;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.gift-wrapping-title .action-remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.gift-wrapping-title .action-remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E604';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.gift-wrapping-title .action-remove:hover:before {\\n color: #333\\n}\\n\\n.gift-wrapping-title .action-remove:active:before {\\n color: #757575\\n}\\n\\n.gift-options-content .fieldset .field {\\n margin: 10px 0\\n}\\n\\n.gift-wrapping-summary {\\n padding-right: 7rem\\n}\\n\\n.gift-wrapping-summary .gift-wrapping-title {\\n border: 0;\\n display: inline-block;\\n padding: 0\\n}\\n\\n.opc-wrapper .fieldset.gift-message .field.gift-wrapping {\\n padding: 0;\\n width: 100%\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping,\\n.table-order-items .gift-wrapping {\\n margin: 20px 0 0\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping .title,\\n.table-order-items .gift-wrapping .title {\\n float: none\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping .content,\\n.table-order-items .gift-wrapping .content {\\n margin: 0\\n}\\n\\n.opc-wrapper .data.table .gift-wrapping .content>img,\\n.table-order-items .gift-wrapping .content>img {\\n float: left;\\n margin: 0 10px 0 0;\\n max-height: 50px;\\n max-width: 50px\\n}\\n\\n.gift-summary .price-box,\\n.gift-options .price-box {\\n margin-left: 22px\\n}\\n\\n.gift-summary .regular-price:before,\\n.gift-options .regular-price:before {\\n content: attr(data-label) ': '\\n}\\n\\n.gift-summary .regular-price .price,\\n.gift-options .regular-price .price {\\n font-weight: 700\\n}\\n\\n.order-options .item {\\n padding-bottom: 20px\\n}\\n\\n.order-options .product {\\n margin-bottom: 10px\\n}\\n\\n.order-options .product-image-container {\\n float: left;\\n padding-right: 10px\\n}\\n\\n.order-options .gift-wrapping {\\n margin-bottom: 10px\\n}\\n\\n.table-wrapper.grouped {\\n width: auto\\n}\\n\\n.table.grouped .row-tier-price>td {\\n border-top: 0\\n}\\n\\n.table.grouped .col.item {\\n width: 90%\\n}\\n\\n.table.grouped .col.qty {\\n width: 10%\\n}\\n\\n.table.grouped .product-item-name {\\n display: inline-block;\\n font-weight: 400;\\n margin-bottom: 10px\\n}\\n\\n.table.grouped .price-box p {\\n margin: 0\\n}\\n\\n.table.grouped .price-box .price {\\n font-weight: 700\\n}\\n\\n.table.grouped .price-box .old-price .price {\\n font-weight: normal\\n}\\n\\n.table.grouped .stock.unavailable {\\n font-weight: normal;\\n margin: 0;\\n text-transform: none;\\n white-space: nowrap\\n}\\n\\n.page-product-grouped .product-info-main .alert {\\n clear: left\\n}\\n\\n.form-add-invitations .additional,\\n.form-add-invitations .field.message {\\n margin-top: 20px\\n}\\n\\n.form-add-invitations .action.remove {\\n top: 4px\\n}\\n\\n.form-add-invitations .action.add {\\n display: inline-block;\\n text-decoration: none;\\n line-height: normal;\\n padding: 4px;\\n width: auto\\n}\\n\\n.form-add-invitations .action.add>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.form-add-invitations .action.add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.form-add-invitations .action.add:hover:before {\\n color: inherit\\n}\\n\\n.form-add-invitations .action.add:active:before {\\n color: inherit\\n}\\n\\n.filter.block {\\n margin-bottom: 0\\n}\\n\\n.filter-title strong {\\n background-color: #f0f0f0;\\n box-shadow: inset 0 1px 0 0 #fff, inset 0 -1px 0 0 rgba(204, 204, 204, 0.3);\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n font-weight: 400;\\n left: 0;\\n line-height: 16px;\\n padding: 7px 10px;\\n position: absolute;\\n text-align: center;\\n top: 0;\\n z-index: 2\\n}\\n\\n.filter-title strong[data-count]:after {\\n color: #fff;\\n background: #ff5501;\\n border-radius: 2px;\\n content: attr(data-count);\\n display: inline-block;\\n font-size: .8em;\\n line-height: 1;\\n margin: 0 5px;\\n min-width: 1em;\\n padding: 2px\\n}\\n\\n.filter-title strong.disabled {\\n opacity: .5\\n}\\n\\n.filter .block-subtitle {\\n border-bottom: 1px solid #ccc;\\n font-size: 14px;\\n font-weight: 600;\\n line-height: 1em;\\n padding: 10px 10px 20px\\n}\\n\\n.filter-subtitle {\\n display: none\\n}\\n\\n.filter-current {\\n margin: 0\\n}\\n\\n.filter-current .items {\\n padding: 5px 10px\\n}\\n\\n.filter-current .item {\\n padding-left: 17px;\\n position: relative;\\n z-index: 1\\n}\\n\\n.filter .filter-current-subtitle {\\n border: none;\\n display: block;\\n padding-bottom: 10px\\n}\\n\\n.filter-current .action.remove {\\n left: -2px;\\n position: absolute;\\n top: -1px\\n}\\n\\n.filter-actions {\\n margin-bottom: 25px;\\n padding: 0 10px\\n}\\n\\n.filter-label {\\n font-weight: 700\\n}\\n\\n.filter-label:after {\\n content: ': '\\n}\\n\\n.filter-value {\\n color: #757575\\n}\\n\\n.filter-options {\\n display: none;\\n margin: 0\\n}\\n\\n.filter-options-item {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 10px\\n}\\n\\n.filter-options-title {\\n cursor: pointer;\\n font-weight: 600;\\n margin: 0;\\n overflow: hidden;\\n padding: 10px 40px 0 10px;\\n position: relative;\\n text-transform: uppercase;\\n word-break: break-all;\\n z-index: 1;\\n display: block;\\n text-decoration: none\\n}\\n\\n.filter-options-title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 13px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.filter-options-title:after {\\n position: absolute;\\n right: 13px;\\n top: 12px\\n}\\n\\n.filter-options-title:hover {\\n color: #000\\n}\\n\\n.active>.filter-options-title:after {\\n content: '\\\\E621'\\n}\\n\\n.filter-options-content {\\n margin: 0;\\n padding: 10px\\n}\\n\\n.filter-options-content .item {\\n line-height: 1.5em;\\n margin: 10px 0\\n}\\n\\n.filter-options-content a {\\n color: #494949;\\n margin-left: -5px;\\n margin-right: -5px;\\n padding-left: 5px;\\n padding-right: 7px\\n}\\n\\n.filter-options-content a:hover {\\n background-color: #e8e8e8;\\n text-decoration: none\\n}\\n\\n.filter-options-content a:hover+.count {\\n background-color: #e8e8e8\\n}\\n\\n.filter-options-content .count {\\n color: #757575;\\n font-weight: 300;\\n padding-left: 5px;\\n padding-right: 5px\\n}\\n\\n.filter-options-content .count:before {\\n content: '('\\n}\\n\\n.filter-options-content .count:after {\\n content: ')'\\n}\\n\\n.map-popup-wrapper.popup .action.close {\\n top: 10px\\n}\\n\\n.map-popup {\\n background: #fff;\\n border: 1px solid #adadad;\\n padding: 22px;\\n width: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15);\\n transition: opacity .3s linear;\\n left: 0;\\n margin-top: 10px;\\n position: absolute;\\n top: 0;\\n z-index: 1001;\\n display: none;\\n opacity: 0;\\n box-sizing: border-box\\n}\\n\\n.map-popup .popup-header {\\n margin: 0 0 25px;\\n padding-right: 16px\\n}\\n\\n.map-popup .popup-header .title {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.map-popup .popup-actions .action.close {\\n position: absolute;\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400;\\n right: 10px;\\n top: 10px\\n}\\n\\n.map-popup .popup-actions .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.map-popup .popup-actions .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #8c8c8c;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.map-popup .popup-actions .action.close:hover:before {\\n color: #737373\\n}\\n\\n.map-popup .popup-actions .action.close:active:before {\\n color: #737373\\n}\\n\\n.map-popup .popup-actions .action.close:focus,\\n.map-popup .popup-actions .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.map-popup .popup-actions .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.map-popup .popup-actions .action.close.disabled,\\n.map-popup .popup-actions .action.close[disabled],\\nfieldset[disabled] .map-popup .popup-actions .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.map-popup.active {\\n opacity: 1\\n}\\n\\n.map-popup .map-info-price {\\n margin: 0 0 20px\\n}\\n\\n.map-popup .map-info-price .price-box {\\n margin: 0 0 20px\\n}\\n\\n.map-popup .map-info-price .price-box .label:after {\\n content: ': '\\n}\\n\\n.map-popup .action.primary {\\n margin-right: 10px\\n}\\n\\n.map-popup .map-msrp {\\n margin-bottom: 10px\\n}\\n\\n.map-popup .actual-price {\\n margin: 3px 0 15px\\n}\\n\\n.map-popup .regular-price .price-label {\\n display: none\\n}\\n\\n.map-popup .popup-header {\\n display: none\\n}\\n\\n.map-old-price {\\n text-decoration: none\\n}\\n\\n.map-old-price .price-wrapper {\\n text-decoration: line-through\\n}\\n\\n.map-old-price,\\n.product-item .map-old-price,\\n.product-info-price .map-show-info {\\n display: inline-block;\\n min-width: 10rem\\n}\\n\\n.map-old-price:not(:last-child),\\n.product-item .map-old-price:not(:last-child),\\n.product-info-price .map-show-info:not(:last-child) {\\n margin-right: 10px\\n}\\n\\n.product-options-bottom .price-box .old-price .price-container>span,\\n.product-info-price .price-box .old-price .price-container>span {\\n display: inline\\n}\\n\\n.map-form-addtocart {\\n display: inline-block;\\n text-align: center\\n}\\n\\n.map-form-addtocart img {\\n display: block;\\n margin: 0 auto\\n}\\n\\nbutton.map-show-info {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\nbutton.map-show-info:focus,\\nbutton.map-show-info:active {\\n background: none;\\n border: none\\n}\\n\\nbutton.map-show-info:hover {\\n background: none;\\n border: none\\n}\\n\\nbutton.map-show-info.disabled,\\nbutton.map-show-info[disabled],\\nfieldset[disabled] button.map-show-info {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\nbutton.map-show-info:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\nbutton.map-show-info:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\nbutton.map-show-info:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\nbutton.map-show-info:hover {\\n color: #006bb4\\n}\\n\\nbutton.map-show-info:hover,\\nbutton.map-show-info:active,\\nbutton.map-show-info:focus {\\n background: none;\\n border: 0\\n}\\n\\nbutton.map-show-info.disabled,\\nbutton.map-show-info[disabled],\\nfieldset[disabled] button.map-show-info {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.wishlist.split.button {\\n display: inline-block;\\n position: relative;\\n margin-right: 5%;\\n vertical-align: middle\\n}\\n\\n.wishlist.split.button:before,\\n.wishlist.split.button:after {\\n content: '';\\n display: table\\n}\\n\\n.wishlist.split.button:after {\\n clear: both\\n}\\n\\n.wishlist.split.button .action.split {\\n float: left;\\n margin: 0\\n}\\n\\n.wishlist.split.button .action.toggle {\\n float: right;\\n margin: 0\\n}\\n\\n.wishlist.split.button .action.toggle {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.wishlist.split.button .action.toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.wishlist.split.button .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: #666;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.split.button .action.toggle:hover:after {\\n color: #333\\n}\\n\\n.wishlist.split.button .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.wishlist.split.button .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.wishlist.split.button .action.toggle.active>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.wishlist.split.button .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: #666;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.split.button .action.toggle.active:hover:after {\\n color: #333\\n}\\n\\n.wishlist.split.button .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.wishlist.split.button .items {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 200px;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.wishlist.split.button .items li {\\n margin: 0;\\n padding: 5px 5px 5px 23px\\n}\\n\\n.wishlist.split.button .items li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.wishlist.split.button .items:before,\\n.wishlist.split.button .items:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.wishlist.split.button .items:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.wishlist.split.button .items:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.wishlist.split.button .items:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.wishlist.split.button .items:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.wishlist.split.button.active {\\n overflow: visible\\n}\\n\\n.wishlist.split.button.active .items {\\n display: block\\n}\\n\\n.wishlist.split.button .items {\\n padding: 6px 0;\\n text-align: left\\n}\\n\\n.wishlist.split.button>.action.split {\\n margin-right: 5px\\n}\\n\\n.wishlist.split.button>.action.split:before {\\n content: '\\\\E600'\\n}\\n\\n.wishlist.split.button>.action.split:before {\\n margin: 0;\\n width: 18px\\n}\\n\\n.wishlist.split.button>.action:active,\\n.wishlist.split.button>.action:focus,\\n.wishlist.split.button>.action:hover {\\n color: #333\\n}\\n\\n.wishlist.split.button>.action.toggle:before {\\n border-left: 1px solid #666;\\n content: '';\\n float: left;\\n height: 15px;\\n margin: 3px 4px 0 0\\n}\\n\\n.cart.table-wrapper .wishlist.split.button {\\n vertical-align: baseline\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.split {\\n font-weight: normal;\\n letter-spacing: normal;\\n text-transform: none\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.toggle:after {\\n color: #006bb4\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.split,\\n.cart.table-wrapper .wishlist.split.button>.action.toggle {\\n color: #006bb4\\n}\\n\\n.cart.table-wrapper .wishlist.split.button>.action.split:before,\\n.cart.table-wrapper .wishlist.split.button>.action.toggle:before {\\n display: none\\n}\\n\\n.wishlist.window.popup {\\n background: #fff;\\n border: 1px solid #adadad;\\n padding: 22px;\\n width: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15);\\n transition: opacity .3s linear;\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 1001;\\n display: none;\\n opacity: 0;\\n box-sizing: border-box\\n}\\n\\n.wishlist.window.popup .popup-header {\\n margin: 0 0 25px;\\n padding-right: 16px\\n}\\n\\n.wishlist.window.popup .popup-header .title {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close {\\n position: absolute;\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400;\\n right: 10px;\\n top: 10px\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: #8c8c8c;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:hover:before {\\n color: #737373\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:active:before {\\n color: #737373\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:focus,\\n.wishlist.window.popup .popup-actions .action.close:active {\\n background: none;\\n border: none\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close:hover {\\n background: none;\\n border: none\\n}\\n\\n.wishlist.window.popup .popup-actions .action.close.disabled,\\n.wishlist.window.popup .popup-actions .action.close[disabled],\\nfieldset[disabled] .wishlist.window.popup .popup-actions .action.close {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.wishlist.window.popup.active {\\n opacity: 1\\n}\\n\\n.wishlist.window.popup.active {\\n display: block\\n}\\n\\n.wishlist.overlay {\\n transition: opacity .15s linear;\\n background: #8c8c8c;\\n z-index: 899;\\n bottom: 0;\\n left: 0;\\n opacity: 0;\\n position: fixed;\\n right: 0;\\n top: 0\\n}\\n\\n.wishlist.overlay.active {\\n opacity: .7;\\n filter: alpha(opacity=70)\\n}\\n\\n.wishlist.overlay.active {\\n display: block\\n}\\n\\n.wishlist-dropdown.move .action.toggle,\\n.wishlist-dropdown.copy .action.toggle {\\n color: #006bb4\\n}\\n\\n.page-multiple-wishlist .actions-toolbar>.primary {\\n display: block;\\n float: none;\\n text-align: left\\n}\\n\\n.page-multiple-wishlist .actions-toolbar>.primary .action.remove {\\n float: right\\n}\\n\\n.block-wishlist-management {\\n position: relative\\n}\\n\\n.block-wishlist-management .wishlist-select .wishlist-name-label {\\n font-weight: 600\\n}\\n\\n.block-wishlist-management .wishlist-title {\\n margin-bottom: 10px\\n}\\n\\n.block-wishlist-management .wishlist-title strong {\\n font-weight: 300;\\n margin-right: 10px\\n}\\n\\n.block-wishlist-management .wishlist-notice {\\n color: #7d7d7d;\\n display: inline-block;\\n margin-right: 20px\\n}\\n\\n.block-wishlist-management .wishlist-notice.private {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.block-wishlist-management .wishlist-notice.private:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: inherit;\\n line-height: inherit;\\n color: #a3a3a3;\\n content: '\\\\E629';\\n font-family: 'luma-icons';\\n margin: 0 5px 0 0;\\n vertical-align: text-bottom;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block-wishlist-management .wishlist-toolbar-select,\\n.block-wishlist-management .wishlist-toolbar-actions {\\n display: inline-block\\n}\\n\\n.block-wishlist-management .wishlist-toolbar-select {\\n margin-right: 20px\\n}\\n\\n.block-wishlist-management .wishlist-toolbar .copy .dropdown {\\n right: 0\\n}\\n\\n.block-wishlist-management .wishlist-toolbar .copy .dropdown:before {\\n left: auto;\\n right: 11px\\n}\\n\\n.block-wishlist-management .wishlist-toolbar .copy .dropdown:after {\\n left: auto;\\n right: 10px\\n}\\n\\n.block-wishlist-management .wishlist-dropdown.move {\\n margin-right: 20px\\n}\\n\\n.block-wishlist-search-form .form-wishlist-search {\\n margin-bottom: 60px;\\n max-width: 500px\\n}\\n\\n.block-wishlist-search-results .table-wrapper {\\n border-top: none\\n}\\n\\n.block-wishlist-info-items .block-title {\\n margin-bottom: 20px;\\n font-size: 2.2rem\\n}\\n\\n.block-wishlist-info-items .block-title>strong {\\n font-weight: 300\\n}\\n\\n.block-wishlist-info-items .product-item {\\n width: 100%\\n}\\n\\n.block-wishlist-info-items .product-item-photo {\\n margin-left: 20px\\n}\\n\\n.block-wishlist-info-items .product-item-info {\\n width: auto\\n}\\n\\n.block-wishlist-info-items .product-item-info:hover .split {\\n visibility: visible\\n}\\n\\n.block-wishlist-info-items .price-wrapper {\\n display: block;\\n margin: 0 0 10px\\n}\\n\\n.block-wishlist-info-items .split {\\n clear: both;\\n padding: 10px 0;\\n visibility: hidden\\n}\\n\\n.block-wishlist-info-items .wishlist-dropdown .change {\\n color: #006bb4\\n}\\n\\n.block-wishlist-info-items .action.towishlist {\\n padding: 10px 0\\n}\\n\\n.block-wishlist-info-items .input-text.qty {\\n margin-right: 10px\\n}\\n\\n.block.newsletter {\\n margin-bottom: 20px\\n}\\n\\n.block.newsletter .form.subscribe {\\n display: table;\\n width: 100%\\n}\\n\\n.block.newsletter .fieldset {\\n display: table-cell;\\n margin: 0;\\n padding: 0;\\n vertical-align: top\\n}\\n\\n.block.newsletter .field {\\n margin: 0\\n}\\n\\n.block.newsletter .field .control {\\n display: inline-block;\\n text-decoration: none;\\n display: block\\n}\\n\\n.block.newsletter .field .control:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 32px;\\n color: #575757;\\n content: '\\\\E61D';\\n font-family: 'luma-icons';\\n margin: 0 0 0 8px;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block.newsletter .field .control:before {\\n position: absolute\\n}\\n\\n.block.newsletter input {\\n padding-left: 35px\\n}\\n\\n.block.newsletter .title {\\n display: none\\n}\\n\\n.block.newsletter .actions {\\n display: table-cell;\\n vertical-align: top;\\n width: 1%\\n}\\n\\n.block.newsletter .action.subscribe {\\n border-bottom-left-radius: 0;\\n border-top-left-radius: 0;\\n margin-left: -1px\\n}\\n\\n.data.switch .counter {\\n color: #7d7d7d\\n}\\n\\n.data.switch .counter:before {\\n content: '('\\n}\\n\\n.data.switch .counter:after {\\n content: ')'\\n}\\n\\n.rating-summary {\\n overflow: hidden;\\n white-space: nowrap\\n}\\n\\n.rating-summary .rating-result {\\n width: 88px;\\n display: inline-block;\\n position: relative;\\n vertical-align: middle\\n}\\n\\n.rating-summary .rating-result:before {\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%;\\n z-index: 1;\\n -webkit-font-smoothing: antialiased;\\n color: #c7c7c7;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605';\\n display: block;\\n font-style: normal;\\n font-weight: normal;\\n speak: none\\n}\\n\\n.rating-summary .rating-result>span {\\n display: block;\\n overflow: hidden\\n}\\n\\n.rating-summary .rating-result>span:before {\\n position: relative;\\n z-index: 2;\\n -webkit-font-smoothing: antialiased;\\n color: #ff5501;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605';\\n display: block;\\n font-style: normal;\\n font-weight: normal;\\n speak: none\\n}\\n\\n.rating-summary .rating-result>span span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.product-reviews-summary .rating-summary .label,\\n.table-reviews .rating-summary .label {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.review-control-vote {\\n overflow: hidden\\n}\\n\\n.review-control-vote:before {\\n color: #c7c7c7;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n font-style: normal;\\n font-weight: normal;\\n speak: none;\\n vertical-align: top;\\n -webkit-font-smoothing: antialiased;\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605';\\n display: block;\\n position: absolute;\\n z-index: 1\\n}\\n\\n.review-control-vote input[type=\\\"radio\\\"] {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.review-control-vote input[type=\\\"radio\\\"]:focus+label:before,\\n.review-control-vote input[type=\\\"radio\\\"]:checked+label:before {\\n opacity: 1\\n}\\n\\n.review-control-vote label {\\n cursor: pointer;\\n display: block;\\n position: absolute\\n}\\n\\n.review-control-vote label span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.review-control-vote label:before {\\n color: #ff5501;\\n font-family: 'luma-icons';\\n font-size: 16px;\\n height: 16px;\\n letter-spacing: 2px;\\n line-height: 16px;\\n font-style: normal;\\n font-weight: normal;\\n speak: none;\\n vertical-align: top;\\n -webkit-font-smoothing: antialiased;\\n opacity: 0\\n}\\n\\n.review-control-vote label:hover:before {\\n opacity: 1\\n}\\n\\n.review-control-vote label:hover~label:before {\\n opacity: 0\\n}\\n\\n.review-control-vote .rating-5 {\\n z-index: 2\\n}\\n\\n.review-control-vote .rating-5:before {\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-4 {\\n z-index: 3\\n}\\n\\n.review-control-vote .rating-4:before {\\n content: '\\\\E605' '\\\\E605' '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-3 {\\n z-index: 4\\n}\\n\\n.review-control-vote .rating-3:before {\\n content: '\\\\E605' '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-2 {\\n z-index: 5\\n}\\n\\n.review-control-vote .rating-2:before {\\n content: '\\\\E605' '\\\\E605'\\n}\\n\\n.review-control-vote .rating-1 {\\n z-index: 6\\n}\\n\\n.review-control-vote .rating-1:before {\\n content: '\\\\E605'\\n}\\n\\n.review-control-vote:before {\\n content: '\\\\E625' '\\\\E625' '\\\\E625' '\\\\E625' '\\\\E625'\\n}\\n\\n.products-reviews-toolbar {\\n position: relative\\n}\\n\\n.products-reviews-toolbar .toolbar-amount {\\n position: relative;\\n text-align: center\\n}\\n\\n.review-toolbar {\\n border-top: 1px solid #c9c9c9;\\n margin: 0 0 20px;\\n padding: 0;\\n text-align: center\\n}\\n\\n.review-toolbar:first-child {\\n display: none\\n}\\n\\n.review-toolbar .pages {\\n border-bottom: 1px solid #c9c9c9;\\n display: block;\\n padding: 20px 0;\\n text-align: center\\n}\\n\\n.review-toolbar .limiter {\\n display: none\\n}\\n\\n.review-add .block-title {\\n display: none\\n}\\n\\n.review-form .action.submit.primary {\\n background: #eee;\\n border: 1px solid #ccc;\\n color: #333;\\n font-size: 1.4rem;\\n line-height: 1.6rem;\\n padding: 7px 15px;\\n margin: 0\\n}\\n\\n.review-form .action.submit.primary:focus,\\n.review-form .action.submit.primary:active {\\n background: #e2e2e2;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.review-form .action.submit.primary:hover {\\n background: #e1e1e1;\\n border: 1px solid #ccc;\\n color: #333\\n}\\n\\n.review-form .actions-toolbar .actions-primary {\\n padding: 0\\n}\\n\\n.fieldset .review-legend.legend {\\n border-bottom: 0;\\n line-height: 1.3;\\n margin-bottom: 20px;\\n padding: 0\\n}\\n\\n.fieldset .review-legend.legend span {\\n margin: 0\\n}\\n\\n.fieldset .review-legend.legend strong {\\n display: block;\\n font-weight: 600\\n}\\n\\n.fieldset .review-field-ratings>.label {\\n font-weight: 600;\\n margin-bottom: 10px;\\n padding: 0\\n}\\n\\n.review-control-vote label:before,\\n.review-control-vote:before {\\n font-size: 32px;\\n height: 32px;\\n letter-spacing: 10px;\\n line-height: 32px\\n}\\n\\n.review-field-rating .label {\\n font-weight: 600\\n}\\n\\n.review-field-rating .control {\\n margin-bottom: 48px;\\n margin-top: 10px\\n}\\n\\n.review-list {\\n margin-bottom: 30px\\n}\\n\\n.review-list .block-title strong {\\n font-weight: 300;\\n line-height: 1.1;\\n font-size: 2.6rem;\\n margin-top: 2.5rem;\\n margin-bottom: 2rem\\n}\\n\\n.review-item {\\n border-bottom: 1px solid #c9c9c9;\\n margin: 0;\\n padding: 20px 0\\n}\\n\\n.review-item:after {\\n clear: both;\\n content: '';\\n display: table\\n}\\n\\n.review-item:last-child {\\n border-width: 0\\n}\\n\\n.review-ratings {\\n display: table;\\n margin-bottom: 10px;\\n max-width: 100%\\n}\\n\\n.review-author {\\n display: inline\\n}\\n\\n.review-author .review-details-value {\\n font-weight: 400\\n}\\n\\n.review-date {\\n display: inline\\n}\\n\\n.review-title {\\n font-weight: 600;\\n line-height: 1.1;\\n font-size: 1.8rem;\\n margin-top: 2rem;\\n margin-bottom: 1rem;\\n margin: 0 0 20px\\n}\\n\\n.review-content {\\n margin-bottom: 20px\\n}\\n\\n.page-main .column .review-add {\\n margin-bottom: 0\\n}\\n\\n.data.table.reviews .rating-summary {\\n margin-top: -4px\\n}\\n\\n.customer.review.view .review.title,\\n.customer.review.view .ratings.summary.items,\\n.customer.review.view .product.details {\\n margin-bottom: 20px\\n}\\n\\n.product-reviews-summary {\\n margin-bottom: 5px\\n}\\n\\n.products.wrapper.list .product-reviews-summary {\\n margin: 0 auto\\n}\\n\\n.product-reviews-summary .rating-summary {\\n display: inline-block;\\n vertical-align: middle\\n}\\n\\n.product-reviews-summary .reviews-actions {\\n display: inline-block;\\n font-size: 11px;\\n vertical-align: middle\\n}\\n\\n.product-reviews-summary .reviews-actions a:not(:last-child) {\\n margin-right: 30px\\n}\\n\\n.product-info-main .rating-summary,\\n.customer-review .rating-summary {\\n margin-right: 30px\\n}\\n\\n.block-reviews-dashboard .items .item {\\n margin-bottom: 20px\\n}\\n\\n.block-reviews-dashboard .items .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.block-reviews-dashboard .product-name {\\n display: inline-block\\n}\\n\\n.block-reviews-dashboard .product-name:not(:last-child) {\\n margin-bottom: 5px\\n}\\n\\n.block-reviews-dashboard .rating-summary .label {\\n font-weight: 600;\\n margin-right: 10px\\n}\\n\\n.table-reviews .product-name,\\n.block-reviews-dashboard .product-name {\\n font-weight: 400\\n}\\n\\n.table-reviews .rating-summary {\\n display: inline-block;\\n vertical-align: baseline\\n}\\n\\n.customer-review .product-media {\\n float: left;\\n margin-right: 3%;\\n max-width: 285px;\\n width: 30%\\n}\\n\\n.customer-review .review-details {\\n margin: 0\\n}\\n\\n.customer-review .review-details .customer-review-rating {\\n margin-bottom: 20px\\n}\\n\\n.customer-review .review-details .customer-review-rating .item {\\n margin-bottom: 10px\\n}\\n\\n.customer-review .review-details .customer-review-rating .item:last-child {\\n margin-bottom: 0\\n}\\n\\n.customer-review .review-details .review-title {\\n line-height: 1.1;\\n font-size: 1.8rem;\\n margin-top: 2rem;\\n margin-bottom: 1rem;\\n font-weight: 600;\\n margin-bottom: 20px\\n}\\n\\n.customer-review .review-details .review-content {\\n margin: 0;\\n margin-bottom: 20px\\n}\\n\\n.customer-review .review-details .review-date {\\n color: #a6a6a6\\n}\\n\\n.block-reward-info .reward-balance {\\n font-size: 1.8rem;\\n margin-bottom: 25px\\n}\\n\\n.block-reward-info .reward-rates:not(:last-child),\\n.block-reward-info .reward-limit:not(:last-child),\\n.block-reward-info .reward-expiring:not(:last-child) {\\n margin-bottom: 25px\\n}\\n\\n.block-reward-info .reward-rates .title,\\n.block-reward-info .reward-limit .title,\\n.block-reward-info .reward-expiring .title {\\n display: inline-block;\\n margin-bottom: 10px\\n}\\n\\n.order-details-items.rma .order-title {\\n display: none\\n}\\n\\n.order-details-items.rma .order-title+.toolbar {\\n display: none\\n}\\n\\n.form-create-return .additional:first-child {\\n margin-top: 0\\n}\\n\\n.form-create-return .field.comment {\\n margin-top: 55px\\n}\\n\\n.block-returns-comments .returns-comments dt,\\n.block-returns-comments .returns-comments dd {\\n margin: 0\\n}\\n\\n.block-returns-comments .returns-comments dt {\\n font-weight: 400\\n}\\n\\n.block-returns-comments .returns-comments dd {\\n margin-bottom: 15px\\n}\\n\\n.block-returns-comments .returns-comments dd:last-child {\\n margin-bottom: 0\\n}\\n\\n.block-returns-comments .fieldset {\\n margin-bottom: 20px\\n}\\n\\n.magento-rma-guest-create .order-links .item a {\\n line-height: 1.42857143;\\n margin: 0 30px 0 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\n.magento-rma-guest-create .order-links .item a:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.magento-rma-guest-create .order-links .item a:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.magento-rma-guest-create .order-links .item a:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.magento-rma-guest-create .order-links .item a:hover {\\n color: #006bb4\\n}\\n\\n.magento-rma-guest-create .order-links .item a:hover,\\n.magento-rma-guest-create .order-links .item a:active,\\n.magento-rma-guest-create .order-links .item a:focus {\\n background: none;\\n border: 0\\n}\\n\\n.magento-rma-guest-create .order-links .item a.disabled,\\n.magento-rma-guest-create .order-links .item a[disabled],\\nfieldset[disabled] .magento-rma-guest-create .order-links .item a {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.order-links .item {\\n line-height: 40px;\\n margin: 0 0 -1px\\n}\\n\\n.order-links .item strong {\\n background: #fff;\\n border: 1px solid #ccc;\\n display: block;\\n font-weight: 400;\\n padding: 0 20px\\n}\\n\\n.order-links .item a {\\n background: #f6f6f6;\\n color: #6d6d6d;\\n border: 1px solid #ccc;\\n display: block;\\n font-weight: 400;\\n padding: 0 20px\\n}\\n\\n.order-links .item a:hover {\\n background: #fff;\\n text-decoration: none\\n}\\n\\n.order-details-items {\\n border: 1px solid #ccc;\\n margin-bottom: 40px;\\n padding: 10px\\n}\\n\\n.order-details-items .order-title {\\n border-bottom: 1px solid #ccc;\\n padding: 0 0 10px\\n}\\n\\n.order-details-items .order-title>strong {\\n font-size: 2.4rem;\\n font-weight: 300\\n}\\n\\n.order-details-items .order-title .action {\\n display: inline-block\\n}\\n\\n.order-details-items .table-wrapper {\\n margin: 0\\n}\\n\\n.order-details-items .table-wrapper+.actions-toolbar {\\n display: none\\n}\\n\\n.order-details-items .table-wrapper:not(:last-child) {\\n margin-bottom: 30px\\n}\\n\\n.order-details-items .table-order-items>thead>tr>th {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.order-details-items .table-order-items tbody+tbody {\\n border-top: 1px solid #ccc\\n}\\n\\n.account .order-details-items .table-order-items tbody tr:nth-child(even) td {\\n background: none\\n}\\n\\n.order-details-items .table-order-items tbody td {\\n padding-bottom: 20px;\\n padding-top: 20px\\n}\\n\\n.order-details-items .table-order-items tbody .col.label {\\n font-weight: 700;\\n padding-bottom: 5px;\\n padding-top: 0\\n}\\n\\n.order-details-items .table-order-items tbody .col.options {\\n padding: 0 0 15px\\n}\\n\\n.order-details-items .table-order-items tbody>.item-parent td {\\n padding-bottom: 5px\\n}\\n\\n.order-details-items .table-order-items tbody>.item-parent+tr td {\\n padding-top: 5px\\n}\\n\\n.order-details-items .table-order-items tbody .item-options-container td {\\n padding-bottom: 15px;\\n padding-top: 0\\n}\\n\\n.order-details-items .table-order-items .product-item-name {\\n margin: 0 0 10px\\n}\\n\\n.order-details-items .item-options {\\n margin: 0\\n}\\n\\n.order-details-items .item-options dt {\\n margin: 0\\n}\\n\\n.order-details-items .item-options dd {\\n margin: 0 0 15px\\n}\\n\\n.order-details-items .item-options dd:last-child {\\n margin-bottom: 0\\n}\\n\\n.order-details-items .item-options.links dt {\\n display: inline-block\\n}\\n\\n.order-details-items .item-options.links dt:after {\\n content: ': '\\n}\\n\\n.order-details-items .item-options.links dd {\\n margin: 0\\n}\\n\\n.order-details-items thead .col.qty {\\n text-align: center\\n}\\n\\n.order-details-items .col.name {\\n padding-top: 16px\\n}\\n\\n.order-details-items .action.show {\\n display: inline-block;\\n text-decoration: none;\\n color: #333\\n}\\n\\n.order-details-items .action.show>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.order-details-items .action.show:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 10px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.order-details-items .action.show.expanded:after {\\n content: '\\\\E621'\\n}\\n\\n.order-details-items .product-item-name {\\n font-size: 1.8rem\\n}\\n\\n.order-details-items .items-qty .item {\\n white-space: nowrap\\n}\\n\\n.order-details-items .items-qty .title:after {\\n content: ': '\\n}\\n\\n.order-details-items .pages-items .item:first-child,\\n.order-details-items .pages-items .item:last-child {\\n margin-right: 0\\n}\\n\\n.block-order-details-comments {\\n margin: 0 0 40px\\n}\\n\\n.block-order-details-comments .comment-date {\\n font-weight: 600\\n}\\n\\n.block-order-details-comments .comment-content {\\n line-height: 1.6;\\n margin: 0 0 20px\\n}\\n\\n.block-order-details-view .block-content .box {\\n margin-bottom: 30px\\n}\\n\\n.block-order-details-view .box-title {\\n font-weight: 600\\n}\\n\\n.block-order-details-view .box-content .payment-method .title {\\n font-weight: 400\\n}\\n\\n.block-order-details-view .box-content .payment-method .content {\\n margin: 0\\n}\\n\\n.block-order-details-view .box-content .payment-method .content>strong {\\n font-weight: 400\\n}\\n\\n.block-order-details-view .box-content .payment-method .content>strong:after {\\n content: ': '\\n}\\n\\n.column.main .order-details-items .block-order-details-gift-message {\\n margin: 40px 0 0\\n}\\n\\n.block-order-details-gift-message+.actions-toolbar {\\n display: none\\n}\\n\\n.order-tracking {\\n margin: 0;\\n padding: 20px 0\\n}\\n\\n.order-title+.order-tracking {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.order-tracking .tracking-title {\\n display: inline-block\\n}\\n\\n.order-tracking .tracking-content {\\n display: inline-block;\\n margin: 0 0 0 5px\\n}\\n\\n.order-actions-toolbar {\\n margin-bottom: 25px\\n}\\n\\n.order-actions-toolbar .action {\\n margin-right: 30px\\n}\\n\\n.order-actions-toolbar .action.print {\\n display: none;\\n margin: 0\\n}\\n\\n.form-orders-search .field:last-child {\\n margin-bottom: 20px\\n}\\n\\n.block-reorder .actions-toolbar {\\n margin: 17px 0\\n}\\n\\n.block-reorder .product-item-name {\\n display: inline-block\\n}\\n\\n.block-reorder .product-item .field.item {\\n display: inline-block\\n}\\n\\n.product-social-links .action.mailto.friend:before {\\n content: '\\\\E61D'\\n}\\n\\n.block-collapsible-nav .content {\\n background: #f5f5f5;\\n padding: 15px 0\\n}\\n\\n.block-collapsible-nav .item {\\n margin: 3px 0 0\\n}\\n\\n.block-collapsible-nav .item:first-child {\\n margin-top: 0\\n}\\n\\n.block-collapsible-nav .item a,\\n.block-collapsible-nav .item>strong {\\n border-left: 3px solid transparent;\\n color: #575757;\\n display: block;\\n padding: 5px 18px 5px 15px\\n}\\n\\n.block-collapsible-nav .item a {\\n text-decoration: none\\n}\\n\\n.block-collapsible-nav .item a:hover {\\n background: #e8e8e8\\n}\\n\\n.block-collapsible-nav .item.current a,\\n.block-collapsible-nav .item.current>strong {\\n border-color: #ff5501;\\n color: #000;\\n font-weight: 600\\n}\\n\\n.block-collapsible-nav .item.current a {\\n border-color: #ff5501\\n}\\n\\n.block-collapsible-nav .item .delimiter {\\n border-top: 1px solid #d1d1d1;\\n display: block;\\n margin: 10px 1.8rem\\n}\\n\\nbody {\\n background-color: #fff\\n}\\n\\n.ie9 .page-wrapper {\\n background-color: #fff;\\n min-height: 0\\n}\\n\\n.page-header {\\n border-bottom: 1px solid #ccc;\\n margin-bottom: 20px\\n}\\n\\n.page-header .panel.wrapper {\\n background-color: #6e716e;\\n color: #fff\\n}\\n\\n.header.panel>.header.links {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n float: right;\\n font-size: 0;\\n margin-left: auto;\\n margin-right: 20px\\n}\\n\\n.header.panel>.header.links>li {\\n display: inline-block;\\n vertical-align: top\\n}\\n\\n.header.panel>.header.links>li {\\n font-size: 14px;\\n margin: 0 0 0 15px\\n}\\n\\n.header.panel>.header.links>li>a {\\n color: #fff;\\n text-decoration: none\\n}\\n\\n.header.panel>.header.links>li>a:visited {\\n color: #fff;\\n text-decoration: none\\n}\\n\\n.header.panel>.header.links>li>a:hover {\\n color: #fff;\\n text-decoration: underline\\n}\\n\\n.header.panel>.header.links>li>a:active {\\n color: #fff;\\n text-decoration: underline\\n}\\n\\n.header.content {\\n padding-top: 10px;\\n position: relative\\n}\\n\\n.logo {\\n float: left;\\n margin: 0 0 10px 40px;\\n max-width: 50%;\\n position: relative;\\n z-index: 5\\n}\\n\\n.logo img {\\n display: block\\n}\\n\\n.page-print .logo {\\n display: inline-block;\\n float: none\\n}\\n\\n.page-main>.page-title-wrapper .page-title+.action {\\n margin-top: 30px\\n}\\n\\n.action.skip:focus {\\n background: #f0f0f0;\\n padding: 10px;\\n box-sizing: border-box;\\n left: 0;\\n position: absolute;\\n text-align: center;\\n top: 0;\\n width: 100%;\\n z-index: 15\\n}\\n\\n.action-skip-wrapper {\\n height: 0;\\n position: relative\\n}\\n\\n.message.global p {\\n margin: 0\\n}\\n\\n.message.global.noscript,\\n.message.global.cookie {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #ffee9c;\\n border-color: #d6ca8e;\\n color: #333;\\n margin: 0\\n}\\n\\n.message.global.noscript a,\\n.message.global.cookie a {\\n color: #006bb4\\n}\\n\\n.message.global.noscript a:hover,\\n.message.global.cookie a:hover {\\n color: #006bb4\\n}\\n\\n.message.global.noscript a:active,\\n.message.global.cookie a:active {\\n color: #ff5501\\n}\\n\\n.message.global.cookie {\\n bottom: 0;\\n left: 0;\\n position: fixed;\\n right: 0;\\n z-index: 3\\n}\\n\\n.message.global.cookie .actions {\\n margin-top: 10px\\n}\\n\\n.message.global.demo {\\n margin: 0 0 10px;\\n padding: 12px 20px 12px 25px;\\n display: block;\\n font-size: 1.3rem;\\n background: #ff0101;\\n border-color: none;\\n color: #fff;\\n margin-bottom: 0;\\n text-align: center\\n}\\n\\n.message.global.demo a {\\n color: #006bb4\\n}\\n\\n.message.global.demo a:hover {\\n color: #006bb4\\n}\\n\\n.message.global.demo a:active {\\n color: #ff5501\\n}\\n\\n.page-footer {\\n margin-top: 25px\\n}\\n\\n.footer.content {\\n border-top: 1px solid #cecece;\\n padding-top: 20px\\n}\\n\\n.footer.content .links>li {\\n background: #f4f4f4;\\n font-size: 1.6rem;\\n border-top: 1px solid #cecece;\\n margin: 0 -15px;\\n padding: 0 15px\\n}\\n\\n.footer.content .links a,\\n.footer.content .links strong {\\n display: block;\\n padding: 10px 0\\n}\\n\\n.footer.content .links strong {\\n color: #a6a6a6;\\n font-weight: normal\\n}\\n\\n.footer.content .links a {\\n color: #575757;\\n text-decoration: none\\n}\\n\\n.footer.content .links a:visited {\\n color: #575757;\\n text-decoration: none\\n}\\n\\n.footer.content .links a:hover {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.footer.content .links a:active {\\n color: #333;\\n text-decoration: underline\\n}\\n\\n.copyright {\\n background-color: #6e716e;\\n color: #fff;\\n display: block;\\n padding: 10px;\\n text-align: center\\n}\\n\\n.page-header .switcher .options,\\n.page-footer .switcher .options {\\n display: inline-block;\\n position: relative\\n}\\n\\n.page-header .switcher .options:before,\\n.page-footer .switcher .options:before,\\n.page-header .switcher .options:after,\\n.page-footer .switcher .options:after {\\n content: '';\\n display: table\\n}\\n\\n.page-header .switcher .options:after,\\n.page-footer .switcher .options:after {\\n clear: both\\n}\\n\\n.page-header .switcher .options .action.toggle,\\n.page-footer .switcher .options .action.toggle {\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options .action.toggle>span,\\n.page-footer .switcher .options .action.toggle>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.page-header .switcher .options .action.toggle:after,\\n.page-footer .switcher .options .action.toggle:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 22px;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.page-header .switcher .options .action.toggle:hover:after,\\n.page-footer .switcher .options .action.toggle:hover:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options .action.toggle:active:after,\\n.page-footer .switcher .options .action.toggle:active:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options .action.toggle.active,\\n.page-footer .switcher .options .action.toggle.active {\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options .action.toggle.active>span,\\n.page-footer .switcher .options .action.toggle.active>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.page-header .switcher .options .action.toggle.active:after,\\n.page-footer .switcher .options .action.toggle.active:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 22px;\\n color: inherit;\\n content: '\\\\E621';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.page-header .switcher .options .action.toggle.active:hover:after,\\n.page-footer .switcher .options .action.toggle.active:hover:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options .action.toggle.active:active:after,\\n.page-footer .switcher .options .action.toggle.active:active:after {\\n color: inherit\\n}\\n\\n.page-header .switcher .options ul.dropdown,\\n.page-footer .switcher .options ul.dropdown {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n background: #fff;\\n border: 1px solid #bbb;\\n margin-top: 4px;\\n min-width: 160px;\\n z-index: 100;\\n box-sizing: border-box;\\n display: none;\\n position: absolute;\\n top: 100%;\\n box-shadow: 0 3px 3px rgba(0, 0, 0, 0.15)\\n}\\n\\n.page-header .switcher .options ul.dropdown li,\\n.page-footer .switcher .options ul.dropdown li {\\n margin: 0;\\n padding: 0\\n}\\n\\n.page-header .switcher .options ul.dropdown li:hover,\\n.page-footer .switcher .options ul.dropdown li:hover {\\n background: #e8e8e8;\\n cursor: pointer\\n}\\n\\n.page-header .switcher .options ul.dropdown:before,\\n.page-footer .switcher .options ul.dropdown:before,\\n.page-header .switcher .options ul.dropdown:after,\\n.page-footer .switcher .options ul.dropdown:after {\\n border-bottom-style: solid;\\n content: '';\\n display: block;\\n height: 0;\\n position: absolute;\\n width: 0\\n}\\n\\n.page-header .switcher .options ul.dropdown:before,\\n.page-footer .switcher .options ul.dropdown:before {\\n border: 6px solid;\\n border-color: transparent transparent #fff transparent;\\n z-index: 99\\n}\\n\\n.page-header .switcher .options ul.dropdown:after,\\n.page-footer .switcher .options ul.dropdown:after {\\n border: 7px solid;\\n border-color: transparent transparent #bbb transparent;\\n z-index: 98\\n}\\n\\n.page-header .switcher .options ul.dropdown:before,\\n.page-footer .switcher .options ul.dropdown:before {\\n left: 10px;\\n top: -12px\\n}\\n\\n.page-header .switcher .options ul.dropdown:after,\\n.page-footer .switcher .options ul.dropdown:after {\\n left: 9px;\\n top: -14px\\n}\\n\\n.page-header .switcher .options.active,\\n.page-footer .switcher .options.active {\\n overflow: visible\\n}\\n\\n.page-header .switcher .options.active ul.dropdown,\\n.page-footer .switcher .options.active ul.dropdown {\\n display: block\\n}\\n\\n.page-header .switcher .options ul.dropdown a,\\n.page-footer .switcher .options ul.dropdown a {\\n color: #333;\\n text-decoration: none;\\n display: block;\\n padding: 8px\\n}\\n\\n.page-header .switcher .options ul.dropdown a:visited,\\n.page-footer .switcher .options ul.dropdown a:visited {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options ul.dropdown a:hover,\\n.page-footer .switcher .options ul.dropdown a:hover {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.page-header .switcher .options ul.dropdown a:active,\\n.page-footer .switcher .options ul.dropdown a:active {\\n color: #333;\\n text-decoration: none\\n}\\n\\n.page-header .switcher strong,\\n.page-footer .switcher strong {\\n font-weight: 400\\n}\\n\\n.sidebar .widget.block:not(:last-child),\\n.sidebar .widget:not(:last-child) {\\n margin-bottom: 40px\\n}\\n\\n.widget {\\n clear: both\\n}\\n\\n.page-header .widget.block,\\n.page-footer .widget.block {\\n margin: 20px 0\\n}\\n\\n.ui-datepicker td {\\n padding: 0\\n}\\n\\n.ui-tooltip {\\n background: #fff;\\n border: 1px solid #bbb;\\n padding: 10px\\n}\\n\\n.my-credit-cards .status {\\n font-style: italic\\n}\\n\\n.my-credit-cards .action.delete {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline\\n}\\n\\n.my-credit-cards .action.delete:focus,\\n.my-credit-cards .action.delete:active {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards .action.delete:hover {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards .action.delete.disabled,\\n.my-credit-cards .action.delete[disabled],\\nfieldset[disabled] .my-credit-cards .action.delete {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.my-credit-cards .action.delete:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.my-credit-cards .action.delete:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards .action.delete:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards .action.delete:hover {\\n color: #006bb4\\n}\\n\\n.my-credit-cards .action.delete:hover,\\n.my-credit-cards .action.delete:active,\\n.my-credit-cards .action.delete:focus {\\n background: none;\\n border: 0\\n}\\n\\n.my-credit-cards .action.delete.disabled,\\n.my-credit-cards .action.delete[disabled],\\nfieldset[disabled] .my-credit-cards .action.delete {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards-popup .modal-footer {\\n text-align: right\\n}\\n\\n.my-credit-cards-popup .action.secondary {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline;\\n margin-right: 20px\\n}\\n\\n.my-credit-cards-popup .action.secondary:focus,\\n.my-credit-cards-popup .action.secondary:active {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover {\\n background: none;\\n border: none\\n}\\n\\n.my-credit-cards-popup .action.secondary.disabled,\\n.my-credit-cards-popup .action.secondary[disabled],\\nfieldset[disabled] .my-credit-cards-popup .action.secondary {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n.my-credit-cards-popup .action.secondary:visited {\\n color: #006bb4;\\n text-decoration: none\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover {\\n color: #006bb4;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards-popup .action.secondary:active {\\n color: #ff5501;\\n text-decoration: underline\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover {\\n color: #006bb4\\n}\\n\\n.my-credit-cards-popup .action.secondary:hover,\\n.my-credit-cards-popup .action.secondary:active,\\n.my-credit-cards-popup .action.secondary:focus {\\n background: none;\\n border: 0\\n}\\n\\n.my-credit-cards-popup .action.secondary.disabled,\\n.my-credit-cards-popup .action.secondary[disabled],\\nfieldset[disabled] .my-credit-cards-popup .action.secondary {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n}\\n\\n.product-social-links .action.towishlist:before,\\n.block-bundle-summary .action.towishlist:before,\\n.product-item .action.towishlist:before,\\n.table-comparison .action.towishlist:before {\\n content: '\\\\E600'\\n}\\n\\n.account .table-wrapper .data.table.wishlist>thead>tr>th,\\n.account .table-wrapper .data.table.wishlist>tbody>tr>th,\\n.account .table-wrapper .data.table.wishlist>tfoot>tr>th,\\n.account .table-wrapper .data.table.wishlist>thead>tr>td,\\n.account .table-wrapper .data.table.wishlist>tbody>tr>td,\\n.account .table-wrapper .data.table.wishlist>tfoot>tr>td {\\n border-top: 1px solid #ccc\\n}\\n\\n.account .table-wrapper .data.table.wishlist>caption+thead>tr:first-child>th,\\n.account .table-wrapper .data.table.wishlist>colgroup+thead>tr:first-child>th,\\n.account .table-wrapper .data.table.wishlist>thead:first-child>tr:first-child>th,\\n.account .table-wrapper .data.table.wishlist>caption+thead>tr:first-child>td,\\n.account .table-wrapper .data.table.wishlist>colgroup+thead>tr:first-child>td,\\n.account .table-wrapper .data.table.wishlist>thead:first-child>tr:first-child>td {\\n border-top: 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist>tbody+tbody {\\n border-top: 1px solid #ccc\\n}\\n\\n.account .table-wrapper .data.table.wishlist thead>tr>th {\\n border-bottom: 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist tbody>tr:last-child>td {\\n border-bottom: 1px solid #ccc\\n}\\n\\n.account .table-wrapper .data.table.wishlist .product.name {\\n display: inline-block;\\n margin-bottom: 10px\\n}\\n\\n.account .table-wrapper .data.table.wishlist .box-tocart {\\n margin: 10px 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist .box-tocart .qty {\\n vertical-align: middle\\n}\\n\\n.account .table-wrapper .data.table.wishlist .col.item {\\n width: 50%\\n}\\n\\n.account .table-wrapper .data.table.wishlist .col.photo {\\n max-width: 150px\\n}\\n\\n.account .table-wrapper .data.table.wishlist .col.selector {\\n max-width: 15px\\n}\\n\\n.account .table-wrapper .data.table.wishlist textarea {\\n margin: 10px 0\\n}\\n\\n.account .table-wrapper .data.table.wishlist .input-text.qty {\\n margin-bottom: 10px\\n}\\n\\n.account .table-wrapper .data.table.wishlist .action.primary {\\n vertical-align: top\\n}\\n\\n.account .table-wrapper .data.table.wishlist .price {\\n font-weight: 700\\n}\\n\\n.link.wishlist .counter {\\n color: #7d7d7d;\\n white-space: nowrap\\n}\\n\\n.link.wishlist .counter:before {\\n content: '('\\n}\\n\\n.link.wishlist .counter:after {\\n content: ')'\\n}\\n\\n.block-wishlist .product-item-name {\\n margin-right: 25px\\n}\\n\\n.products-grid.wishlist .product-item-photo {\\n display: block;\\n margin-bottom: 10px\\n}\\n\\n.products-grid.wishlist .product-item-name {\\n margin-top: 0\\n}\\n\\n.products-grid.wishlist .product-item .price-box {\\n margin: 0\\n}\\n\\n.products-grid.wishlist .product-item-comment {\\n display: block;\\n height: 42px;\\n margin: 10px 0\\n}\\n\\n.products-grid.wishlist .product-item-actions>* {\\n margin-right: 15px\\n}\\n\\n.products-grid.wishlist .product-item-actions>*:last-child {\\n margin-right: 0\\n}\\n\\n.block-banners .banner-item,\\n.block-banners-inline .banner-item {\\n display: block\\n}\\n\\n.block-banners .banner-item-content,\\n.block-banners-inline .banner-item-content {\\n margin-bottom: 20px\\n}\\n\\n.block-banners .banner-item-content img,\\n.block-banners-inline .banner-item-content img {\\n display: block;\\n margin: 0 auto\\n}\\n\\n.block-product-link.widget,\\n.block-category-link.widget {\\n display: block;\\n margin-bottom: 20px\\n}\\n\\n.block-product-link-inline.widget {\\n margin: 0\\n}\\n\\n.block.widget .product-item-info {\\n width: auto\\n}\\n\\n.block.widget .pager {\\n padding: 0\\n}\\n\\n.block.widget .pager .toolbar-amount {\\n float: none;\\n font-size: 1.2rem\\n}\\n\\n.block.widget .pager .pages-item-previous {\\n padding-left: 0\\n}\\n\\n.block.widget .pager .pages-item-next {\\n position: relative\\n}\\n\\n.block.widget .pager .items {\\n white-space: nowrap\\n}\\n\\n.columns .block-event {\\n position: relative;\\n z-index: 2\\n}\\n\\n.block-event .block-content {\\n position: relative\\n}\\n\\n.block-event .block-content>.action {\\n cursor: pointer;\\n margin-top: -6px;\\n position: absolute;\\n top: 50%;\\n z-index: 3\\n}\\n\\n.block-event .block-content>.action.backward,\\n.block-event .block-content>.action.forward {\\n opacity: .5;\\n overflow: hidden;\\n width: 20px;\\n display: inline-block;\\n text-decoration: none\\n}\\n\\n.block-event .block-content>.action.backward>span,\\n.block-event .block-content>.action.forward>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.block-event .block-content>.action.backward:before,\\n.block-event .block-content>.action.forward:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 55px;\\n line-height: 30px;\\n color: inherit;\\n content: '\\\\E617';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.block-event .block-content>.action.backward:before,\\n.block-event .block-content>.action.forward:before {\\n margin-left: -15px\\n}\\n\\n.block-event .block-content>.action.backward {\\n left: 0\\n}\\n\\n.block-event .block-content>.action.forward {\\n right: 0\\n}\\n\\n.block-event .block-content>.action.forward:before {\\n content: '\\\\E608'\\n}\\n\\n.block-event .block-content>.action.forward:before {\\n margin-left: -20px\\n}\\n\\n.block-event .block-content>.action.inactive {\\n cursor: default;\\n display: none\\n}\\n\\n.block-event .block-content>.action:hover {\\n opacity: 1\\n}\\n\\n.block-event .slider-panel {\\n overflow: hidden;\\n position: relative;\\n z-index: 2\\n}\\n\\n.block-event .slider-panel .slider {\\n white-space: nowrap\\n}\\n\\n.block-event .slider-panel .slider .item {\\n background: #f0f0f0;\\n display: inline-block;\\n text-align: center;\\n vertical-align: top;\\n white-space: normal;\\n width: 16.35%\\n}\\n\\n.sidebar-main .block-event .slider-panel .slider .item,\\n.sidebar-additional .block-event .slider-panel .slider .item {\\n width: 100%\\n}\\n\\n.block-event .slider-panel .slider .item img {\\n max-width: 100%\\n}\\n\\n.block-event .slider-panel .slider .item .category-name {\\n display: inline-block;\\n font-size: 1.8rem;\\n padding: 15px 5px 0;\\n word-break: break-all\\n}\\n\\n.block-event .slider-panel .slider .item .ticker {\\n margin: 0;\\n padding: 0;\\n list-style: none none\\n}\\n\\n.block-event .slider-panel .slider .item .ticker li {\\n display: none;\\n margin: 0 5px\\n}\\n\\n.block-event .slider-panel .slider .item .ticker .value {\\n font-size: 2.6rem;\\n font-weight: 300\\n}\\n\\n.block-event .slider-panel .slider .item .ticker .label {\\n display: block;\\n font-size: 1.3rem\\n}\\n\\n.block-event .slider-panel .slider .item .dates {\\n font-weight: 300\\n}\\n\\n.block-event .slider-panel .slider .item .dates .start,\\n.block-event .slider-panel .slider .item .dates .end,\\n.block-event .slider-panel .slider .item .dates .date {\\n display: block\\n}\\n\\n.block-event .slider-panel .slider .item .dates .start:after {\\n font-size: 1.8rem;\\n content: '\\\\2013';\\n display: block\\n}\\n\\n.block-event .slider-panel .slider .item .dates .date {\\n font-size: 1.8rem;\\n font-weight: 300\\n}\\n\\n.block-event .slider-panel .slider .item .dates .time {\\n font-size: 1.3rem\\n}\\n\\n.block-event .slider-panel .slider .item .box-event .box-content {\\n padding: 5px 0 10px\\n}\\n\\n.block-event .slider-panel .slider .item .box-event .box-title {\\n display: block;\\n font-weight: 300;\\n margin: 10px 0 0\\n}\\n\\n.block-event .slider-panel .slider .item .action.show {\\n display: block;\\n padding: 0\\n}\\n\\n.block-event .slider-panel .slider .item .action.show .category.name {\\n display: inline-block;\\n padding: 30px 10px 0\\n}\\n\\n.block-event .slider-panel .slider .item .action.show img {\\n display: block\\n}\\n\\n.block-event .slider-panel .slider .item .action.event {\\n background-image: none;\\n background: #1979c3;\\n border: 1px solid #1979c3;\\n color: #fff;\\n cursor: pointer;\\n display: inline-block;\\n font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;\\n font-weight: 600;\\n padding: 7px 15px;\\n font-size: 1.4rem;\\n box-sizing: border-box;\\n vertical-align: middle;\\n margin-top: 15px\\n}\\n\\n.block-event .slider-panel .slider .item .action.event:focus,\\n.block-event .slider-panel .slider .item .action.event:active {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.block-event .slider-panel .slider .item .action.event:hover {\\n background: #006bb4;\\n border: 1px solid #006bb4;\\n color: #fff\\n}\\n\\n.block-event .slider-panel .slider .item .action.event.disabled,\\n.block-event .slider-panel .slider .item .action.event[disabled],\\nfieldset[disabled] .block-event .slider-panel .slider .item .action.event {\\n opacity: .5;\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.block-event .slider-panel .slider .item .action.event:hover {\\n text-decoration: none\\n}\\n\\n.block-static-block.widget,\\n.block-cms-link.widget {\\n margin-bottom: 20px\\n}\\n\\n.links .block-static-block.widget,\\n.links .block-cms-link.widget {\\n margin-bottom: 0\\n}\\n\\n.block-cms-link-inline.widget {\\n margin: 0\\n}\\n\\n.block-wishlist-search .form-wishlist-search {\\n margin: 20px 0 0\\n}\\n\\n.block-cms-hierarchy-link.widget {\\n display: block;\\n margin-bottom: 20px\\n}\\n\\n.block-cms-hierarchy-link-inline.widget {\\n margin: 0\\n}\\n\\n.sidebar .block-addbysku .fieldset {\\n margin: 0\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields {\\n position: relative\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .field {\\n display: inline-block;\\n margin-bottom: 10px;\\n vertical-align: top\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .field.sku {\\n margin-right: -85px;\\n padding-right: 90px;\\n width: 100%\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .field.qty .qty+.mage-error {\\n width: 80px\\n}\\n\\n.sidebar .block-addbysku .fieldset .fields .actions-toolbar {\\n position: absolute;\\n right: 0;\\n top: 7px\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar {\\n margin-bottom: 20px\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar .primary {\\n text-align: left\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar .primary .action {\\n width: auto\\n}\\n\\n.sidebar .block-addbysku .form-addbysku .actions-toolbar .secondary {\\n float: none;\\n text-align: left\\n}\\n\\n.sidebar .block-addbysku .action.add {\\n display: inline-block;\\n text-decoration: none;\\n line-height: normal;\\n padding: 4px;\\n width: auto\\n}\\n\\n.sidebar .block-addbysku .action.add>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.sidebar .block-addbysku .action.add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.sidebar .block-addbysku .action.add:hover:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.add:active:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.links {\\n display: inline-block;\\n margin: 20px 0 0\\n}\\n\\n.sidebar .block-addbysku .action.reset {\\n display: block;\\n margin: 10px 0\\n}\\n\\n.sidebar .block-addbysku .action.remove {\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n}\\n\\n.sidebar .block-addbysku .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n\\n.sidebar .block-addbysku .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: #999;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n}\\n\\n.sidebar .block-addbysku .action.remove:hover:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.remove:active:before {\\n color: inherit\\n}\\n\\n.sidebar .block-addbysku .action.remove:focus,\\n.sidebar .block-addbysku .action.remove:active {\\n background: none;\\n border: none\\n}\\n\\n.sidebar .block-addbysku .action.remove:hover {\\n background: none;\\n border: none\\n}\\n\\n.sidebar .block-addbysku .action.remove.disabled,\\n.sidebar .block-addbysku .action.remove[disabled],\\nfieldset[disabled] .sidebar .block-addbysku .action.remove {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n}\\n\\n@media only screen and (max-width:479px) {\\n .tooltip.wrapper .tooltip.content {\\n min-width: 10rem\\n }\\n .minicart-wrapper .block-minicart {\\n width: 290px\\n }\\n .modal-popup .field-tooltip .field-tooltip-content {\\n width: 200px\\n }\\n}\\n\\n@media only screen and (max-width:639px) {\\n .abs-visually-hidden-mobile,\\n .table-downloadable-products .col.title:before,\\n .table-giftregistry-items .col.product:before {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-add-clearfix-mobile:before,\\n .abs-add-clearfix-mobile:after,\\n .abs-checkout-order-review tbody>tr:before,\\n .abs-checkout-order-review tbody>tr:after,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:before,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:after,\\n .table-giftregistry-items .col.product:before,\\n .table-giftregistry-items .col.product:after,\\n .multicheckout.order-review .data.table tbody>tr:before,\\n .multicheckout.order-review .data.table tbody>tr:after {\\n content: '';\\n display: table\\n }\\n .abs-add-clearfix-mobile:after,\\n .abs-checkout-order-review tbody>tr:after,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:after,\\n .table-giftregistry-items .col.product:after,\\n .multicheckout.order-review .data.table tbody>tr:after {\\n clear: both\\n }\\n .multicheckout.order-review .data.table tbody>tr:not(:last-child) {\\n border-bottom: 1px solid #ccc\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col.item:before {\\n display: none\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col.qty,\\n .multicheckout.order-review .data.table tbody>tr>td.col.price,\\n .multicheckout.order-review .data.table tbody>tr>td.col.subtotal {\\n box-sizing: border-box;\\n float: left;\\n text-align: center;\\n white-space: nowrap;\\n width: 33%\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col.qty:before,\\n .multicheckout.order-review .data.table tbody>tr>td.col.price:before,\\n .multicheckout.order-review .data.table tbody>tr>td.col.subtotal:before {\\n content: attr(data-th) ':';\\n display: block;\\n font-weight: 700;\\n padding-bottom: 10px\\n }\\n .multicheckout.order-review .data.table tbody>tr>td.col:last-child {\\n border: 0\\n }\\n .abs-checkout-order-review .product-item-name,\\n .multicheckout.order-review .data.table .product-item-name {\\n margin: 0\\n }\\n .abs-product-items-summary tbody .col {\\n padding: 10px 0 0\\n }\\n .abs-product-items-summary tfoot .mark {\\n padding-bottom: 5px;\\n text-align: left\\n }\\n .abs-product-items-summary tfoot .amount {\\n padding-top: 0;\\n text-align: left\\n }\\n .abs-product-items-summary tfoot .grand.totals {\\n font-size: 1.6rem\\n }\\n .abs-product-items-summary tfoot .grand.totals .mark {\\n padding-bottom: 0;\\n padding-top: 5px\\n }\\n .abs-product-items-summary tfoot .grand.totals .amount {\\n padding-bottom: 10px;\\n padding-top: 0\\n }\\n .abs-product-items-summary tfoot .grand.totals .amount strong {\\n border-top: none\\n }\\n .abs-account-table-margin-mobile,\\n .table-wrapper.balance-history,\\n .table-wrapper.reward-history,\\n .table-wrapper.orders-recent {\\n margin-top: -20px\\n }\\n .abs-sidebar-totals-mobile th:before,\\n .abs-sidebar-totals-mobile td:before,\\n .account .table-billing-agreements .col.actions:before,\\n .account .table-billing-agreements-related .col.actions:before,\\n .table-wrapper.comparison .table-comparison>tbody>tr>th:before,\\n .table-wrapper.comparison .table-comparison>tbody>tr>td:before,\\n .cart .table.items .col.item:before,\\n .cart .table.items .item-actions td:before,\\n .account .table-giftregistry .col.actions:before,\\n .table.grouped>tbody>tr>td:before,\\n .account .table-reviews .col.actions:before,\\n .account .table-order-items .col.actions:before,\\n .account .table-order-items .col.options:before,\\n .cart-totals .totals th:before,\\n .cart-totals .totals td:before,\\n .opc-block-summary .totals th:before,\\n .opc-block-summary .totals td:before {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-no-display-s,\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison).additional-attributes tbody th,\\n .order-details-items .table-order-items .options-label,\\n .opc-wrapper .shipping-address-item.selected-item .action-select-shipping-item {\\n display: none\\n }\\n .abs-title-orders-mobile .page-main .page-title-wrapper .page-title,\\n .magento-rma-returns-returns .page-main .page-title-wrapper .page-title,\\n .magento-rma-returns-view .page-main .page-title-wrapper .page-title,\\n .account .page-main .page-title-wrapper .page-title,\\n [class^='sales-guest-'] .page-main .page-title-wrapper .page-title,\\n .sales-guest-view .page-main .page-title-wrapper .page-title {\\n display: block\\n }\\n .abs-title-orders-mobile .page-main .page-title-wrapper .order-status,\\n .magento-rma-returns-returns .page-main .page-title-wrapper .order-status,\\n .magento-rma-returns-view .page-main .page-title-wrapper .order-status,\\n .account .page-main .page-title-wrapper .order-status,\\n [class^='sales-guest-'] .page-main .page-title-wrapper .order-status,\\n .sales-guest-view .page-main .page-title-wrapper .order-status {\\n margin: -10px 0 10px\\n }\\n .abs-table-striped-mobile>tbody>tr>td:last-child,\\n .account .data.table>tbody>tr>td:last-child {\\n border: 0\\n }\\n .abs-no-border-top,\\n .product.info.detailed .additional-attributes-wrapper,\\n .table-wrapper.balance-history,\\n .table-wrapper.table-returns,\\n .table-wrapper.orders-recent,\\n .order-details-items .table-wrapper {\\n border-top: 0\\n }\\n .abs-no-border-bottom {\\n border-bottom: 0\\n }\\n .abs-sidebar-totals-mobile .amount,\\n .cart-totals .totals .amount,\\n .opc-block-summary .totals .amount {\\n text-align: right\\n }\\n .table-wrapper {\\n border-top: 1px solid #ccc;\\n overflow-x: auto;\\n overflow-y: hidden;\\n width: 100%;\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\n -webkit-overflow-scrolling: touch;\\n position: relative\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) {\\n border: none;\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>thead>tr>th {\\n display: none\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr td,\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr th {\\n border-bottom: none;\\n display: block;\\n padding: 5px 10px\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr td:before,\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr th:before {\\n padding-right: 10px;\\n content: attr(data-th) ': ';\\n display: inline-block;\\n color: #111;\\n font-weight: 700\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison)>tbody>tr>th {\\n background-color: #f6f6f6\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) tbody>tr>td:first-child {\\n padding-top: 15px\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) tbody>tr>td:last-child {\\n border-bottom: 1px solid #ccc;\\n padding-bottom: 15px\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison) tbody>tr>td.col.qty {\\n text-align: left\\n }\\n .table-wrapper .table:not(.totals):not(.cart):not(.table-comparison).additional-attributes tbody td:last-child {\\n border: none;\\n padding: 0 0 5px\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr {\\n display: block\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:first-child th,\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot tr:first-child td {\\n padding-top: 20px\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .mark {\\n box-sizing: border-box;\\n float: left;\\n text-align: left;\\n width: 70%\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .amount {\\n box-sizing: border-box;\\n float: left;\\n text-align: right;\\n width: 30%\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .grand.totals {\\n font-size: 1.6rem\\n }\\n .table-wrapper .table:not(.totals):not(.table-comparison) tfoot .grand.totals .amount {\\n padding-bottom: 10px\\n }\\n .data-table-definition-list thead {\\n display: none\\n }\\n .data-table-definition-list tbody th {\\n padding-bottom: 0\\n }\\n .data-table-definition-list tbody th,\\n .data-table-definition-list tbody td {\\n display: block;\\n padding-left: 0;\\n padding-right: 0\\n }\\n .pages .pages-items {\\n display: block;\\n padding: 2px 40px 0;\\n position: relative;\\n white-space: normal;\\n z-index: 1\\n }\\n .pages-item-previous {\\n left: 0;\\n position: absolute;\\n top: 0;\\n z-index: 1\\n }\\n .pages-item-next {\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 1\\n }\\n .multicheckout .data.table .address:before {\\n margin-bottom: 5px\\n }\\n .multicheckout .product-item-name,\\n .multicheckout .price-including-tax,\\n .multicheckout .price-excluding-tax {\\n display: inline-block\\n }\\n .multicheckout .block-content .box:not(:last-child) {\\n margin-bottom: 40px\\n }\\n .multicheckout .block-content .box:last-child {\\n margin-bottom: 0\\n }\\n .multicheckout.order-review .box-items .data.table thead {\\n display: block\\n }\\n .multicheckout.order-review .box-items .data.table thead tr {\\n display: block\\n }\\n .multicheckout.order-review .box-items .data.table thead .col.item {\\n display: block;\\n padding: 0\\n }\\n .multicheckout .actions-toolbar .action {\\n margin-bottom: 25px\\n }\\n .multicheckout .actions-toolbar>.primary {\\n margin-bottom: 25px;\\n margin-right: 0\\n }\\n .form-new-agreement select {\\n width: auto\\n }\\n .table-paypal-review-items .col.subtotal {\\n text-align: left\\n }\\n .table-paypal-review-items .product-item-name {\\n display: inline-block\\n }\\n .column .block-addbysku .sku {\\n margin-right: -85px;\\n padding-right: 90px\\n }\\n .column .block-addbysku .action.remove {\\n display: inline-block;\\n background-image: none;\\n background: none;\\n -moz-box-sizing: content-box;\\n border: 0;\\n box-shadow: none;\\n line-height: inherit;\\n margin: 0;\\n padding: 0;\\n text-decoration: none;\\n text-shadow: none;\\n font-weight: 400\\n }\\n .column .block-addbysku .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .column .block-addbysku .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E604';\\n font-family: 'luma-icons';\\n margin: -4px 0 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .column .block-addbysku .action.remove:hover:before {\\n color: inherit\\n }\\n .column .block-addbysku .action.remove:active:before {\\n color: inherit\\n }\\n .column .block-addbysku .action.remove:focus,\\n .column .block-addbysku .action.remove:active {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove:hover {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove.disabled,\\n .column .block-addbysku .action.remove[disabled],\\n fieldset[disabled] .column .block-addbysku .action.remove {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n }\\n .products-list .product-item {\\n table-layout: fixed\\n }\\n .products-list .product-item-photo {\\n padding: 0 10px 10px 0;\\n width: 30%\\n }\\n .toolbar-products {\\n margin-bottom: 0\\n }\\n .product-social-links .action.tocompare {\\n display: none\\n }\\n .product-info-price {\\n margin: 0 -10px 0;\\n width: calc(100% + 2*10px) !important\\n }\\n .product-info-price>*:first-child {\\n padding-left: 10px\\n }\\n .product-info-price>*:last-child {\\n padding-right: 10px\\n }\\n .table-wrapper.comparison .table-comparison>tbody>tr>th,\\n .table-wrapper.comparison .table-comparison>tbody>tr>td {\\n display: table-cell\\n }\\n .block-search {\\n margin-top: 10px\\n }\\n .cart .table.items .col.qty {\\n text-align: center\\n }\\n .minicart-wrapper {\\n margin-top: 10px\\n }\\n .opc-wrapper .step-title {\\n font-size: 18px;\\n border-bottom: 0;\\n padding-bottom: 0\\n }\\n .opc-wrapper .step-content {\\n margin: 0 0 15px\\n }\\n .opc-wrapper .form-login,\\n .opc-wrapper .form-shipping-address,\\n .opc-wrapper .methods-shipping {\\n background: #f4f4f4;\\n margin: 20px -15px 15px;\\n padding: 20px 15px\\n }\\n .opc-wrapper .form-login+.form-shipping-address {\\n margin-top: -15px\\n }\\n .opc-wrapper .shipping-address-item {\\n border-bottom: 1px solid #ccc;\\n margin: 0 0 15px;\\n padding: 0 0 15px;\\n width: 100%\\n }\\n .opc-wrapper .shipping-address-item.selected-item {\\n padding: 15px 35px 15px 18px;\\n border-bottom-width: 2px\\n }\\n .opc-wrapper .shipping-address-item.selected-item .edit-address-link {\\n right: 39px\\n }\\n .opc-wrapper .action-select-shipping-item {\\n float: none;\\n margin-top: 10px;\\n width: 100%\\n }\\n .opc-wrapper .action-show-popup {\\n width: 100%\\n }\\n .opc-wrapper .methods-shipping {\\n border-bottom: 1px solid #ccc;\\n padding-top: 30px\\n }\\n .opc-wrapper .edit-address-link {\\n display: inline-block;\\n text-decoration: none;\\n margin: 0;\\n position: absolute;\\n right: 0;\\n top: 5px\\n }\\n .opc-wrapper .edit-address-link>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .opc-wrapper .edit-address-link:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E601';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .opc-wrapper .edit-address-link:hover:before {\\n color: #333\\n }\\n .opc-wrapper .edit-address-link:active:before {\\n color: #757575\\n }\\n .shipping-policy-block.field-tooltip {\\n margin-bottom: 20px;\\n position: relative;\\n right: auto;\\n top: auto\\n }\\n .shipping-policy-block.field-tooltip .field-tooltip-content {\\n width: 300px;\\n right: auto\\n }\\n .shipping-policy-block.field-tooltip .field-tooltip-content:before,\\n .shipping-policy-block.field-tooltip .field-tooltip-content:after {\\n right: auto\\n }\\n .opc-block-summary>.title {\\n border-bottom: 0;\\n font-size: 18px;\\n margin-bottom: 20px;\\n padding-bottom: 0\\n }\\n .account .column.main,\\n .account .sidebar-additional {\\n margin: 0\\n }\\n .page-product-downloadable .product-options-wrapper {\\n margin-bottom: 25px\\n }\\n .table-downloadable-products .product-name {\\n display: block;\\n margin-bottom: 5px\\n }\\n .page-product-downloadable .product-info-price~*:last-child:after {\\n border-bottom: 1px solid #c1c1c1;\\n content: '';\\n display: block;\\n height: 0;\\n margin: 25px -10px;\\n overflow: hidden;\\n width: auto\\n }\\n .table-giftregistry-items .field.choice,\\n .table-giftregistry-items .field.qty {\\n display: inline-block\\n }\\n .form-giftregistry-search .fieldset {\\n margin-bottom: 20px\\n }\\n .block-giftregistry-results .block-title {\\n margin-bottom: 0\\n }\\n .block-giftregistry-results .table-wrapper {\\n border-top: none\\n }\\n .block-giftregistry-shared-items .block-title {\\n margin-bottom: 10px\\n }\\n .block-giftregistry-shared-items .table-wrapper {\\n border-top: 0\\n }\\n .table.grouped>thead>tr>th {\\n border-bottom: 1px solid #ccc;\\n display: table-cell\\n }\\n .table.grouped>tbody {\\n border-bottom: 1px solid #ccc\\n }\\n .table.grouped>tbody>tr>td {\\n padding: 11px 10px;\\n border: 0;\\n display: table-cell\\n }\\n .table-wrapper .table.grouped:not(.totals):not(.cart):not(.table-comparison)>tbody>tr>td:last-child {\\n border-bottom: 0\\n }\\n .page-product-grouped .minimal-price {\\n margin: 0\\n }\\n .page-product-grouped .product-info-price {\\n border: 0;\\n margin-bottom: 0\\n }\\n .page-product-grouped .product-info-price .price-box {\\n padding-bottom: 0\\n }\\n .form-add-invitations .action.remove {\\n display: inline-block;\\n text-decoration: none\\n }\\n .form-add-invitations .action.remove>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .form-add-invitations .action.remove:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: inherit;\\n color: #757575;\\n content: '\\\\E604';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: top;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .form-add-invitations .action.remove:hover:before {\\n color: inherit\\n }\\n .form-add-invitations .action.remove:active:before {\\n color: inherit\\n }\\n .customer-review .product-name {\\n margin-bottom: 5px\\n }\\n .customer-review .product-reviews-summary .rating-summary {\\n display: block;\\n margin-bottom: 5px\\n }\\n .form-create-return .additional .field:nth-last-child(2) {\\n margin-bottom: 0\\n }\\n .form-create-return .additional .field:last-child {\\n margin-top: 20px\\n }\\n .account .column.main .returns-details-items .block-returns-tracking .block-title>.action.track {\\n display: block;\\n float: none;\\n margin: 10px 0 0\\n }\\n .order-details-items thead {\\n display: block\\n }\\n .order-details-items thead tr {\\n display: block\\n }\\n .order-pager-wrapper {\\n display: block\\n }\\n .account .table-order-items tbody tr {\\n display: block\\n }\\n .account .table-order-items .product-item-name {\\n display: inline-block;\\n margin: 0\\n }\\n .account .table-order-items .action.show {\\n margin-top: 0\\n }\\n .order-details-items .order-title strong {\\n display: block\\n }\\n .order-details-items .action {\\n margin-top: 10px\\n }\\n .order-details-items .items-qty {\\n display: inline-block;\\n vertical-align: top\\n }\\n .order-details-items .col.price .price-including-tax,\\n .order-details-items .col.subtotal .price-including-tax,\\n .order-details-items .col.price .price-excluding-tax,\\n .order-details-items .col.subtotal .price-excluding-tax {\\n display: inline-block\\n }\\n .order-details-items .data.table .col.options {\\n padding: 0 10px 15px\\n }\\n .order-details-items .data.table .col.options:before {\\n display: none\\n }\\n .order-details-items .options-label+.item-options-container:before,\\n .order-details-items .item-options-container+.item-options-container:before {\\n content: attr(data-th) ':';\\n display: block;\\n font-weight: 700;\\n padding-left: 10px\\n }\\n .order-details-items .options-label+.item-options-container .col,\\n .order-details-items .item-options-container+.item-options-container .col {\\n font-size: 1.2rem;\\n padding: 0 10px\\n }\\n .order-details-items .options-label+.item-options-container .col:first-child,\\n .order-details-items .item-options-container+.item-options-container .col:first-child {\\n padding-top: 3px\\n }\\n .order-details-items .options-label+.item-options-container .col:last-child,\\n .order-details-items .item-options-container+.item-options-container .col:last-child {\\n padding-bottom: 20px\\n }\\n .logo {\\n margin-bottom: 13px;\\n margin-top: 4px\\n }\\n .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status {\\n display: none\\n }\\n .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status:before {\\n display: none\\n }\\n .my-credit-cards .table:not(.totals):not(.cart):not(.table-comparison) .status._default {\\n display: block\\n }\\n .my-credit-cards .card-type img {\\n vertical-align: middle\\n }\\n .products-grid.wishlist .product-item {\\n border-bottom: 1px solid #e8e8e8\\n }\\n .products-grid.wishlist .product-item:first-child {\\n border-top: 1px solid #e8e8e8\\n }\\n}\\n\\n@media only screen and (max-width:767px) {\\n .abs-visually-hidden-mobile-m {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-add-clearfix-mobile-m:before,\\n .abs-add-clearfix-mobile-m:after,\\n .account .column.main .block:not(.widget) .block-title:before,\\n .account .column.main .block:not(.widget) .block-title:after {\\n content: '';\\n display: table\\n }\\n .abs-add-clearfix-mobile-m:after,\\n .account .column.main .block:not(.widget) .block-title:after {\\n clear: both\\n }\\n .abs-toggling-title-mobile,\\n .block-wishlist-management .wishlist-select .wishlist-name,\\n .block-collapsible-nav .title {\\n border-top: 1px solid #ccc;\\n cursor: pointer;\\n margin-bottom: 0;\\n position: relative;\\n border-bottom: 1px solid #ccc;\\n padding: 10px 40px 10px 15px;\\n display: block;\\n text-decoration: none\\n }\\n .block-wishlist-management .wishlist-select .wishlist-name:after,\\n .block-collapsible-nav .title:after {\\n position: absolute;\\n right: 20px;\\n top: 10px\\n }\\n .abs-toggling-title-mobile:after,\\n .block-wishlist-management .wishlist-select .wishlist-name:after,\\n .block-collapsible-nav .title:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 12px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n margin: 3px 0 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .abs-toggling-title-mobile.active:after,\\n .block-wishlist-management .wishlist-select .wishlist-name.active:after,\\n .block-collapsible-nav .title.active:after {\\n content: '\\\\E621'\\n }\\n .abs-icon-add-mobile,\\n .block-wishlist-management .wishlist-add.item .add {\\n display: block;\\n text-decoration: none\\n }\\n .abs-icon-add-mobile:before,\\n .block-wishlist-management .wishlist-add.item .add:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 10px;\\n line-height: 10px;\\n color: inherit;\\n content: '\\\\E61C';\\n font-family: 'luma-icons';\\n margin: 0 5px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .navigation,\\n .breadcrumbs,\\n .page-header .header.panel,\\n .header.content,\\n .footer.content,\\n .page-main,\\n .page-wrapper>.widget,\\n .page-wrapper>.page-bottom,\\n .block.category.event,\\n .top-container {\\n padding-left: 15px;\\n padding-right: 15px\\n }\\n .account .page-main,\\n .cms-privacy-policy .page-main {\\n padding-top: 41px;\\n position: relative\\n }\\n .navigation {\\n padding: 0\\n }\\n .navigation .parent .level-top {\\n position: relative;\\n display: block;\\n text-decoration: none\\n }\\n .navigation .parent .level-top:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 42px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .navigation .parent .level-top:after {\\n position: absolute;\\n right: 7px;\\n top: -8px\\n }\\n .navigation .parent .level-top.ui-state-active:after {\\n content: '\\\\E621'\\n }\\n .nav-sections {\\n -webkit-overflow-scrolling: touch;\\n -webkit-transition: left .3s;\\n -moz-transition: left .3s;\\n -ms-transition: left .3s;\\n transition: left .3s;\\n height: 100%;\\n left: -80%;\\n left: calc(-1 * (100% - 54px));\\n overflow: auto;\\n position: fixed;\\n top: 0;\\n width: 80%;\\n width: calc(100% - 54px)\\n }\\n .nav-sections .switcher {\\n border-top: 1px solid #d1d1d1;\\n font-size: 1.6rem;\\n font-weight: 700;\\n margin: 0;\\n padding: .8rem 3.5rem .8rem 2rem\\n }\\n .nav-sections .switcher .label {\\n display: block;\\n margin-bottom: 5px\\n }\\n .nav-sections .switcher:last-child {\\n border-bottom: 1px solid #d1d1d1\\n }\\n .nav-sections .switcher-trigger strong {\\n position: relative;\\n display: block;\\n text-decoration: none\\n }\\n .nav-sections .switcher-trigger strong:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 42px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .nav-sections .switcher-trigger strong:after {\\n position: absolute;\\n right: -40px;\\n top: -16px\\n }\\n .nav-sections .switcher-trigger.active strong:after {\\n content: '\\\\E621'\\n }\\n .nav-sections .switcher-dropdown {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n padding: 10px 0\\n }\\n .nav-sections .header.links {\\n margin: 0;\\n padding: 0;\\n list-style: none none;\\n border-bottom: 1px solid #d1d1d1\\n }\\n .nav-sections .header.links li {\\n font-size: 1.6rem;\\n margin: 0\\n }\\n .nav-sections .header.links li.greet.welcome {\\n border-top: 1px solid #d1d1d1;\\n font-weight: 700;\\n padding: .8rem 20px\\n }\\n .nav-sections .header.links li>a {\\n border-top: 1px solid #d1d1d1\\n }\\n .nav-sections .header.links a,\\n .nav-sections .header.links a:hover {\\n color: #575757;\\n text-decoration: none;\\n display: block;\\n font-weight: 700;\\n padding: .8rem 20px\\n }\\n .nav-sections .header.links .header.links {\\n border: 0\\n }\\n .nav-before-open {\\n height: 100%;\\n overflow-x: hidden;\\n width: 100%\\n }\\n .nav-before-open .page-wrapper {\\n -webkit-transition: left .3s;\\n -moz-transition: left .3s;\\n -ms-transition: left .3s;\\n transition: left .3s;\\n height: 100%;\\n left: 0;\\n overflow: hidden;\\n position: relative\\n }\\n .nav-before-open body {\\n height: 100%;\\n overflow: hidden;\\n position: relative;\\n width: 100%\\n }\\n .nav-open .page-wrapper {\\n left: 80%;\\n left: calc(100% - 54px)\\n }\\n .nav-open .nav-sections {\\n -webkit-box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n -moz-box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n -ms-box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.75);\\n left: 0;\\n z-index: 99\\n }\\n .nav-open .nav-toggle:after {\\n background: rgba(0, 0, 0, 0.7);\\n content: '';\\n display: block;\\n height: 100%;\\n position: fixed;\\n right: 0;\\n top: 0;\\n width: 100%;\\n z-index: 1\\n }\\n .nav-sections-items {\\n position: relative;\\n z-index: 1\\n }\\n .nav-sections-items:before,\\n .nav-sections-items:after {\\n content: '';\\n display: table\\n }\\n .nav-sections-items:after {\\n clear: both\\n }\\n .nav-sections-item-title {\\n background: #e3e3e3;\\n border: solid #d7d7d7;\\n border-width: 0 0 1px 1px;\\n box-sizing: border-box;\\n float: left;\\n height: 71px;\\n padding-top: 24px;\\n text-align: center;\\n width: 33.33%\\n }\\n .nav-sections-item-title.active {\\n background: transparent;\\n border-bottom: 0\\n }\\n .nav-sections-item-title .nav-sections-item-switch:hover {\\n text-decoration: none\\n }\\n .nav-sections-item-content {\\n box-sizing: border-box;\\n float: right;\\n margin-left: -100%;\\n margin-top: 71px;\\n width: 100%;\\n padding: 25px 0\\n }\\n .nav-sections-item-content:before,\\n .nav-sections-item-content:after {\\n content: '';\\n display: table\\n }\\n .nav-sections-item-content:after {\\n clear: both\\n }\\n .nav-sections-item-content.active {\\n display: block\\n }\\n .navigation {\\n background: #f0f0f0;\\n box-sizing: border-box\\n }\\n .navigation ul {\\n margin: 0;\\n padding: 0\\n }\\n .navigation li {\\n margin: 0\\n }\\n .navigation a {\\n display: block;\\n padding-top: 10px;\\n padding-right: 0;\\n padding-bottom: 10px;\\n padding-left: 15px\\n }\\n .navigation a,\\n .navigation a:hover {\\n color: #575757;\\n text-decoration: none\\n }\\n .navigation .level0 {\\n border-top: 1px solid #d1d1d1;\\n font-size: 1.6rem\\n }\\n .navigation .level0>.level-top {\\n font-weight: 700;\\n padding: 8px 40px 8px 15px;\\n text-transform: uppercase;\\n word-wrap: break-word\\n }\\n .navigation .level0.active .all-category .ui-state-focus {\\n border-color: #ff5501;\\n border-style: solid;\\n border-width: 0 0 0 8px;\\n color: #333;\\n padding-left: 7px;\\n display: inline-block\\n }\\n .navigation .level0>.level1 {\\n font-weight: 600\\n }\\n .navigation .level0.active>a:not(.ui-state-active),\\n .navigation .level0.has-active>a:not(.ui-state-active) {\\n border-color: #ff5501;\\n border-style: solid;\\n border-width: 0 0 0 8px;\\n color: #333\\n }\\n .navigation .level0.active>a:not(.ui-state-active) span:not(.ui-menu-icon),\\n .navigation .level0.has-active>a:not(.ui-state-active) span:not(.ui-menu-icon) {\\n margin-left: -8px\\n }\\n .navigation li.level0:last-child {\\n border-bottom: 1px solid #d1d1d1\\n }\\n .navigation .submenu>li {\\n word-wrap: break-word\\n }\\n .navigation .submenu:not(:first-child) {\\n font-weight: 400;\\n line-height: 1.3;\\n left: auto !important;\\n overflow-x: hidden;\\n padding: 0;\\n position: relative;\\n top: auto !important;\\n transition: left .3s ease-out\\n }\\n .navigation .submenu:not(:first-child)>li>a {\\n padding-left: 15px\\n }\\n .navigation .submenu:not(:first-child)>li:last-child {\\n margin-bottom: 0\\n }\\n .navigation .submenu:not(:first-child) ul {\\n display: block;\\n padding-left: 15px\\n }\\n .navigation .submenu:not(:first-child) ul>li {\\n margin: 0\\n }\\n .navigation .submenu:not(:first-child) ul>li a {\\n color: #575757;\\n display: block;\\n line-height: normal\\n }\\n .navigation .submenu:not(:first-child).expanded {\\n display: block !important;\\n padding-right: 0;\\n top: 0 !important\\n }\\n .navigation .submenu:not(:first-child) .active>a {\\n border-color: #ff5501;\\n border-style: solid;\\n border-width: 0 0 0 8px;\\n color: #333;\\n padding-left: 7px\\n }\\n .navigation .submenu:not(:first-child) .level1.active>a {\\n padding-left: 7px\\n }\\n .breadcrumbs {\\n display: none\\n }\\n .modal-popup.modal-slide {\\n left: 44px;\\n z-index: 900\\n }\\n .modal-popup.modal-slide._show .modal-inner-wrap {\\n -webkit-transform: translateX(0);\\n transform: translateX(0)\\n }\\n .modal-popup.modal-slide .modal-inner-wrap {\\n height: 100%;\\n overflow-y: auto;\\n position: static;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transition: -webkit-transform .3s ease-in-out;\\n transition: transform .3s ease-in-out;\\n width: auto\\n }\\n .modal-popup.modal-slide .modal-inner-wrap {\\n margin: 0;\\n max-height: none\\n }\\n .custom-slide {\\n bottom: 0;\\n left: 0;\\n min-width: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n visibility: hidden;\\n opacity: 0;\\n -webkit-transition: visibility 0s .3s, opacity .3s ease;\\n transition: visibility 0s .3s, opacity .3s ease;\\n left: 44px;\\n z-index: 900\\n }\\n .custom-slide._show {\\n visibility: visible;\\n opacity: 1;\\n -webkit-transition: opacity .3s ease;\\n transition: opacity .3s ease\\n }\\n .custom-slide._show .modal-inner-wrap {\\n -webkit-transform: translate(0, 0);\\n transform: translate(0, 0)\\n }\\n .custom-slide .modal-inner-wrap {\\n background-color: #fff;\\n box-shadow: 0 0 12px 2px rgba(0, 0, 0, 0.35);\\n opacity: 1;\\n pointer-events: auto\\n }\\n .custom-slide._show .modal-inner-wrap {\\n -webkit-transform: translateX(0);\\n transform: translateX(0)\\n }\\n .custom-slide .modal-inner-wrap {\\n height: 100%;\\n overflow-y: auto;\\n position: static;\\n -webkit-transform: translateX(100%);\\n transform: translateX(100%);\\n -webkit-transition: -webkit-transform .3s ease-in-out;\\n transition: transform .3s ease-in-out;\\n width: auto\\n }\\n .custom-slide._show {\\n -webkit-overflow-scrolling: touch;\\n overflow-x: hidden;\\n overflow-y: auto\\n }\\n .custom-slide .modal-inner-wrap {\\n background-color: #f4f4f4;\\n box-sizing: border-box;\\n height: auto;\\n min-height: 100%\\n }\\n body._has-modal-custom {\\n height: 100vh;\\n overflow: hidden;\\n width: 100vw\\n }\\n body._has-modal-custom .modal-custom-overlay {\\n background-color: rgba(51, 51, 51, 0.55)\\n }\\n .modal-popup.modal-slide .modal-inner-wrap[class] {\\n background-color: #f4f4f4\\n }\\n .modal-popup.modal-slide._inner-scroll._show {\\n -webkit-overflow-scrolling: touch;\\n overflow-y: auto\\n }\\n .modal-popup.modal-slide._inner-scroll .modal-inner-wrap {\\n height: auto;\\n min-height: 100%\\n }\\n .modal-popup .modal-title {\\n font-size: 14px;\\n font-weight: 700\\n }\\n .multishipping-checkout-success .nav-toggle {\\n display: block\\n }\\n .multishipping-checkout-success .logo {\\n margin-left: 40px\\n }\\n .block-cart-failed .block-title {\\n margin: 0 20px 20px\\n }\\n .catalog-product-view .column.main {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex-direction: column;\\n -ms-flex-direction: column;\\n flex-direction: column\\n }\\n .catalog-product-view .product.media {\\n -ms-flex-order: -1;\\n -webkit-order: -1;\\n order: -1\\n }\\n .compare.wrapper,\\n [class*='block-compare'] {\\n display: none\\n }\\n .cart-container .form-cart .actions.main {\\n text-align: center\\n }\\n .cart-discount {\\n border-bottom: 1px solid #ccc\\n }\\n .cart.table-wrapper {\\n border-top: 1px solid #ccc\\n }\\n .cart.table-wrapper thead .col.item,\\n .cart.table-wrapper thead .col.qty,\\n .cart.table-wrapper thead .col.price,\\n .cart.table-wrapper thead .col.subtotal,\\n .cart.table-wrapper thead .col.msrp {\\n display: none\\n }\\n .cart.table-wrapper .col.qty,\\n .cart.table-wrapper .col.price,\\n .cart.table-wrapper .col.subtotal,\\n .cart.table-wrapper .col.msrp {\\n box-sizing: border-box;\\n display: block;\\n float: left;\\n white-space: nowrap;\\n width: 33%\\n }\\n .cart.table-wrapper .col.qty:before,\\n .cart.table-wrapper .col.price:before,\\n .cart.table-wrapper .col.subtotal:before,\\n .cart.table-wrapper .col.msrp:before {\\n content: attr(data-th);\\n display: block;\\n font-weight: 600;\\n padding-bottom: 10px\\n }\\n .cart.table-wrapper .col.msrp {\\n white-space: normal\\n }\\n .cart.table-wrapper .item .col.item {\\n padding-bottom: 0\\n }\\n .cart.table-wrapper tbody>tr>td:last-child {\\n border: 0\\n }\\n .cart-totals {\\n padding-left: 15px;\\n padding-right: 15px\\n }\\n .cart-totals .table-wrapper {\\n border-top: 0\\n }\\n .cart-totals .totals tbody>tr:not(:last-child)>td:last-child {\\n border: 0\\n }\\n .checkout-index-index .modal-popup .modal-footer .action-save-address {\\n width: 100%\\n }\\n .checkout-index-index .modal-popup .modal-footer .action-hide-popup {\\n margin-top: 20px\\n }\\n .checkout-payment-method .payment-methods {\\n margin: 0 -15px\\n }\\n .checkout-payment-method .payment-method-title {\\n padding: 15px\\n }\\n .checkout-payment-method .payment-method-content {\\n padding: 0 15px 20px\\n }\\n .checkout-payment-method .checkout-billing-address .action-cancel {\\n margin-top: 10px\\n }\\n .checkout-payment-method .payment-option {\\n margin: 0 -15px\\n }\\n .checkout-payment-method .payment-option .payment-option-title {\\n padding: 15px\\n }\\n .checkout-payment-method .payment-option .payment-option-content {\\n padding: 0 15px 20px\\n }\\n .login-container .fieldset:after {\\n text-align: center\\n }\\n .account .page.messages {\\n margin-bottom: 40px\\n }\\n .account .column.main .block:not(.widget) .block-title>.action {\\n float: right;\\n margin-top: 5px\\n }\\n .account .column.main .block:not(.widget) .block-content .box {\\n margin-bottom: 20px\\n }\\n .account .column.main .block:not(.widget) .block-content .box:last-child {\\n margin-bottom: 0\\n }\\n .control.captcha-image .captcha-img {\\n display: block;\\n margin-bottom: 10px\\n }\\n .customer-account-index .page-title-wrapper {\\n position: relative\\n }\\n .cart-discount .giftcard .content {\\n padding-bottom: 35px\\n }\\n .cart-discount .actions-toolbar .secondary {\\n bottom: 17px\\n }\\n .field.open-amount {\\n width: 100%\\n }\\n .page-product-giftcard .product-info-main .product-info-stock-sku {\\n display: block;\\n padding-left: 10px;\\n text-align: left\\n }\\n .gift-message .actions-toolbar .action-update {\\n font-size: 2rem;\\n padding: 15px;\\n width: 100%\\n }\\n .gift-item-block {\\n border-top: 1px solid #c1c1c1;\\n border-bottom: 0\\n }\\n .gift-item-block .title:after {\\n font-size: 1.2rem;\\n position: absolute;\\n right: 20px;\\n top: 10px\\n }\\n .gift-item-block .content {\\n padding-left: 1.5rem;\\n padding-right: 1.5rem\\n }\\n .gift-message-summary {\\n padding-right: 7rem\\n }\\n .cart.table-wrapper .gift-content {\\n border-top: 1px solid #c1c1c1;\\n margin-right: -15px;\\n overflow: hidden;\\n padding-left: 15px;\\n padding-right: 15px\\n }\\n .cart .action-gift {\\n display: inline-block;\\n text-decoration: none\\n }\\n .cart .action-gift>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .cart .action-gift:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E62A';\\n font-family: 'luma-icons';\\n margin: 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .cart .action-gift:hover:after {\\n color: #333\\n }\\n .cart .action-gift:active:after {\\n color: #757575\\n }\\n .cart .action-gift._active {\\n border: 1px solid #c1c1c1;\\n border-bottom-color: #fff;\\n margin: -5px 14px -1px -15px;\\n padding: 4px 10px 9px 14px\\n }\\n .cart .action-gift._active:after {\\n color: #333\\n }\\n .gift-options-cart-item+.action-towishlist {\\n left: 43px;\\n position: absolute\\n }\\n .cart.table-wrapper .action-giftregistry {\\n display: inline-block;\\n text-decoration: none\\n }\\n .cart.table-wrapper .action-giftregistry>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .cart.table-wrapper .action-giftregistry:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E62B';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .cart.table-wrapper .action-giftregistry:hover:before {\\n color: #333\\n }\\n .cart.table-wrapper .action-giftregistry:active:before {\\n color: #757575\\n }\\n .gift-options-cart-item .gift-wrapping,\\n .cart-gift-item .gift-wrapping {\\n border-bottom: 1px solid #c1c1c1;\\n margin-bottom: 20px;\\n padding-bottom: 10px\\n }\\n .gift-wrapping-list {\\n width: 100%\\n }\\n .gift-wrapping-summary+.gift-message-summary {\\n padding-right: 0\\n }\\n .gift-options-cart-item {\\n float: left;\\n width: 100%\\n }\\n .gift-wrapping-preview img {\\n width: 100%\\n }\\n .item-actions .actions-toolbar .gift-options .gift-wrapping,\\n .item-actions .actions-toolbar .gift-options .gift-message {\\n display: block\\n }\\n .table-wrapper.grouped {\\n margin-left: -15px;\\n margin-right: -15px\\n }\\n body.filter-active .page-header {\\n display: none\\n }\\n body.filter-active .page-wrapper {\\n height: 0;\\n margin-top: -999999em;\\n visibility: hidden\\n }\\n body.filter-active .columns {\\n z-index: 999\\n }\\n .filter.active {\\n position: relative;\\n visibility: visible;\\n z-index: 99\\n }\\n .filter.active .filter-options-item:last-child {\\n margin-bottom: 40px\\n }\\n .filter.active .filter-title {\\n border-bottom: 1px solid #ccc;\\n height: 48px;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 2\\n }\\n .filter.active .filter-title strong {\\n box-shadow: none;\\n background: none;\\n border: 0;\\n color: transparent;\\n left: auto;\\n right: 3px;\\n top: 10px;\\n display: inline-block;\\n text-decoration: none\\n }\\n .filter.active .filter-title strong:after {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: inherit;\\n color: #7d7d7d;\\n content: '\\\\E616';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .filter.active .filter-subtitle {\\n background: transparent;\\n display: block;\\n height: 50px;\\n left: 0;\\n line-height: 32px;\\n position: fixed;\\n right: 0;\\n top: 0;\\n z-index: 1\\n }\\n .filter.active .filter-options {\\n background: #fff;\\n bottom: 0;\\n display: block;\\n left: 0;\\n overflow: scroll;\\n position: fixed;\\n right: 0;\\n top: 50px;\\n z-index: 10\\n }\\n .filter .filter-subtitle {\\n font-size: 20px;\\n font-weight: 300\\n }\\n .filter-actions {\\n margin: -35px -10px 25px\\n }\\n .filter-options-content {\\n padding: 5px 10px\\n }\\n .filter .filter-current {\\n border: solid #ccc;\\n border-width: 1px 0;\\n margin: 5px -10px 0\\n }\\n .filter .filter-current .items {\\n display: none\\n }\\n .filter .filter-current-subtitle {\\n position: relative;\\n text-transform: uppercase;\\n z-index: 1;\\n display: block;\\n text-decoration: none\\n }\\n .filter .filter-current-subtitle:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 13px;\\n line-height: inherit;\\n color: inherit;\\n content: '\\\\E622';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .filter .filter-current-subtitle:before {\\n position: absolute;\\n right: 10px;\\n top: 10px\\n }\\n .filter .filter-current-subtitle:after {\\n color: #7d7d7d;\\n content: ' (' attr(data-count) ')';\\n font-size: .9em\\n }\\n .filter .filter-current.active {\\n padding-bottom: 30px\\n }\\n .filter .filter-current.active .block-subtitle:before {\\n content: '\\\\E621'\\n }\\n .filter .filter-current.active .items {\\n display: block\\n }\\n .filter .filter-current.active+.block-actions {\\n display: block\\n }\\n .filter .filter-current+.block-actions {\\n display: none\\n }\\n .filter-no-options .filter-title:before {\\n background: rgba(255, 255, 255, 0.5);\\n content: '';\\n display: block;\\n height: 40px;\\n left: -15px;\\n margin-top: -60px;\\n position: relative;\\n width: 100px;\\n z-index: 99\\n }\\n .filter-no-options .filter-content {\\n margin-bottom: 20px\\n }\\n .page-with-filter .columns .sidebar-main {\\n -ms-flex-order: 0;\\n -webkit-order: 0;\\n order: 0\\n }\\n .map-popup {\\n max-width: 100%\\n }\\n .map-old-price,\\n .map-show-info {\\n display: inline-block\\n }\\n .map-old-price:not(:last-child),\\n .map-show-info:not(:last-child) {\\n margin-bottom: 10px\\n }\\n .block-wishlist-management {\\n clear: both;\\n margin-top: -21px\\n }\\n .block-wishlist-management .wishlist-select {\\n margin: 0 -15px 20px\\n }\\n .block-wishlist-management .wishlist-select .wishlist-name {\\n font-size: 1.6rem\\n }\\n .block-wishlist-management .wishlist-select-items {\\n border-bottom: 1px solid #ccc;\\n background: #f5f5f5;\\n display: none;\\n padding: 15px 0\\n }\\n .block-wishlist-management .wishlist-select-items.active {\\n display: block\\n }\\n .block-wishlist-management .wishlist-select-items .item {\\n margin: 3px 0 0\\n }\\n .block-wishlist-management .wishlist-select-items .item:first-child {\\n margin-top: 0\\n }\\n .block-wishlist-management .wishlist-select-items .item.current {\\n display: none\\n }\\n .block-wishlist-management .wishlist-select-items .item a {\\n color: #333;\\n display: block;\\n padding: 5px 18px;\\n text-decoration: none\\n }\\n .block-wishlist-management .wishlist-select-items .item a:hover {\\n background: #e8e8e8\\n }\\n .block-wishlist-management .wishlist-title strong {\\n font-size: 2.6rem\\n }\\n .block-wishlist-management .wishlist-info {\\n margin-bottom: 15px\\n }\\n .block-wishlist-management .wishlist-toolbar-select,\\n .block-wishlist-management .wishlist-toolbar-actions {\\n margin-bottom: 15px\\n }\\n .products-grid.wishlist .product-item-checkbox {\\n left: 20px;\\n position: absolute;\\n top: 20px\\n }\\n .page-multiple-wishlist .products-grid.wishlist .product-item-photo {\\n margin-left: 25px\\n }\\n .page-multiple-wishlist .products-grid.wishlist .product-item-name,\\n .page-multiple-wishlist .products-grid.wishlist .product-item-description,\\n .page-multiple-wishlist .products-grid.wishlist .product-item .price-box,\\n .page-multiple-wishlist .products-grid.wishlist .product-item-tooltip {\\n margin-left: 115px\\n }\\n .products-grid.wishlist .wishlist-dropdown {\\n display: none\\n }\\n .order-pager-wrapper .toolbar-amount {\\n left: inherit;\\n position: relative;\\n text-align: center;\\n top: inherit\\n }\\n .order-pager-wrapper .pages {\\n text-align: center\\n }\\n .order-pager-wrapper .action.previous,\\n .order-pager-wrapper .action.next {\\n margin: 0\\n }\\n .block-collapsible-nav {\\n left: 0;\\n position: absolute;\\n top: -21px;\\n width: 100%;\\n z-index: 5\\n }\\n .block-collapsible-nav .content {\\n border-bottom: 1px solid #ccc;\\n display: none\\n }\\n .block-collapsible-nav .content.active {\\n display: block\\n }\\n .customer-name,\\n .customer-welcome+.authorization-link {\\n display: none\\n }\\n .nav-sections .switcher-trigger strong:after {\\n font-size: 1.6rem;\\n right: -25px;\\n top: -2px\\n }\\n .navigation .parent .level-top:after {\\n font-size: 1.6rem;\\n right: 10px;\\n top: 7px\\n }\\n .page-footer .footer.content .switcher-store {\\n background: #f4f4f4;\\n font-size: 1.6rem;\\n margin: 0 -15px\\n }\\n .page-footer .footer.content .switcher-store .switcher-options {\\n display: block\\n }\\n .page-footer .footer.content .switcher-store .switcher-options ul.dropdown {\\n background: none;\\n border: 0;\\n box-shadow: none;\\n margin: 0;\\n position: relative\\n }\\n .page-footer .footer.content .switcher-store .switcher-options ul.dropdown:before,\\n .page-footer .footer.content .switcher-store .switcher-options ul.dropdown:after {\\n display: none\\n }\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-trigger,\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-option {\\n border-top: 1px solid #cecece;\\n display: block;\\n padding: 10px 20px\\n }\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-trigger strong {\\n padding: 10px 0\\n }\\n .page-footer .footer.content .switcher-store .switcher-options .switcher-option a {\\n padding: 0\\n }\\n .products-grid.wishlist {\\n margin-bottom: 30px;\\n margin-right: -10px\\n }\\n .products-grid.wishlist .product-item {\\n padding: 20px 10px 20px 20px;\\n position: relative\\n }\\n .products-grid.wishlist .product-item-photo {\\n float: left;\\n margin-right: 20px\\n }\\n .products-grid.wishlist .product-item-name {\\n font-size: 1.6rem\\n }\\n .products-grid.wishlist .product-item-actions {\\n display: block\\n }\\n .products-grid.wishlist .product-item-actions .action {\\n margin-right: 15px\\n }\\n .products-grid.wishlist .product-item-actions .action:last-child {\\n margin-right: 0\\n }\\n .products-grid.wishlist .product-item-actions .action.edit {\\n float: left\\n }\\n .products-grid.wishlist .product-item-actions .action.delete {\\n float: right\\n }\\n .products-grid.wishlist .product-item-actions .action.edit,\\n .products-grid.wishlist .product-item-actions .action.delete {\\n margin-top: 7px\\n }\\n .products-grid.wishlist .product-item-name,\\n .products-grid.wishlist .product-item-description,\\n .products-grid.wishlist .product-item .price-box,\\n .products-grid.wishlist .product-item-tooltip {\\n margin-left: 95px\\n }\\n .products-grid.wishlist .product-item .box-tocart {\\n float: left;\\n margin-right: 20px\\n }\\n .products-grid.wishlist .product-item .box-tocart .stock {\\n margin-top: 7px\\n }\\n .products-grid.wishlist .product-item .giftregisty-dropdown,\\n .products-grid.wishlist .product-item .field.qty {\\n display: none\\n }\\n .products-grid.wishlist .product-image-container {\\n max-width: 80px\\n }\\n .wishlist-index-index .product-item {\\n width: 100%\\n }\\n .wishlist-index-index .product-item-info {\\n width: auto\\n }\\n .cart.table-wrapper .action-towishlist {\\n display: inline-block;\\n text-decoration: none\\n }\\n .cart.table-wrapper .action-towishlist>span {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .cart.table-wrapper .action-towishlist:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 18px;\\n line-height: 20px;\\n color: #757575;\\n content: '\\\\E600';\\n font-family: 'luma-icons';\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .cart.table-wrapper .action-towishlist:hover:before {\\n color: #333\\n }\\n .cart.table-wrapper .action-towishlist:active:before {\\n color: #757575\\n }\\n}\\n\\n@media only screen and (max-width:768px) {\\n .abs-checkout-tooltip-content-position-top-mobile {\\n right: -10px;\\n top: 40px;\\n left: auto\\n }\\n}\\n\\n@media all and (min-width:640px) {\\n .abs-blocks-2columns-s {\\n width: 48%\\n }\\n .abs-reset-left-margin-desktop-s,\\n .column:not(.sidebar-main) .multicheckout .actions-toolbar,\\n .multicheckout .block-shipping .box-shipping-method .fieldset .legend {\\n margin-left: 0\\n }\\n .abs-visually-hidden-desktop-s,\\n .products-grid .product-item-info:not(:hover):not(.active) .product-item-inner {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n }\\n .abs-add-clearfix-desktop-s:before,\\n .abs-add-clearfix-desktop-s:after,\\n .multicheckout .block-billing:before,\\n .multicheckout .block-billing:after {\\n content: '';\\n display: table\\n }\\n .abs-add-clearfix-desktop-s:after,\\n .multicheckout .block-billing:after {\\n clear: both\\n }\\n .abs-add-box-sizing-desktop-s,\\n .multicheckout .block-shipping .box,\\n .multicheckout .block-billing .box-billing-address,\\n .multicheckout .block-billing .box-billing-method {\\n box-sizing: border-box\\n }\\n .abs-form-field-column-2-s .fieldset .field {\\n padding: 0 12px 0 0;\\n box-sizing: border-box;\\n display: inline-block;\\n width: 50%;\\n vertical-align: top\\n }\\n .abs-form-field-column-2-s .fieldset .field+.fieldset {\\n clear: both\\n }\\n .abs-form-field-column-2-s .fieldset .field .field {\\n padding: 0;\\n width: 100%\\n }\\n .abs-form-field-revert-column-1-s {\\n width: 100%\\n }\\n .abs-action-print-s {\\n display: inline-block;\\n text-decoration: none\\n }\\n .abs-action-print-s:before {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n font-size: 16px;\\n line-height: 16px;\\n color: inherit;\\n content: '\\\\E624';\\n font-family: 'luma-icons';\\n margin: 0 4px 0 0;\\n vertical-align: middle;\\n display: inline-block;\\n font-weight: normal;\\n overflow: hidden;\\n speak: none;\\n text-align: center\\n }\\n .table>tbody>tr>th,\\n .table>tbody>tr>td {\\n border-top: 1px solid #ccc\\n }\\n .table>tbody+tbody {\\n border-top: 1px solid #ccc\\n }\\n .ui-dialog.popup {\\n width: 420px\\n }\\n .multicheckout .actions-toolbar .secondary {\\n float: none;\\n margin-top: 11px;\\n text-align: right\\n }\\n .multicheckout .actions-toolbar .secondary .action {\\n margin-left: 10px\\n }\\n .multicheckout .actions-toolbar .secondary .action.back {\\n display: block;\\n float: left\\n }\\n .multicheckout .item-options {\\n margin: 20px 0 0\\n }\\n .multicheckout .block-content .box {\\n margin-bottom: 0\\n }\\n .multicheckout .block-shipping .box {\\n float: left;\\n width: 25%\\n }\\n .multicheckout .block-shipping .box-shipping-method {\\n padding-left: 25px;\\n padding-right: 25px;\\n width: 50%\\n }\\n .multicheckout .block-shipping .box-shipping-method .fieldset .field:before {\\n display: none\\n }\\n .multicheckout .block-billing .box-billing-address {\\n float: left;\\n width: 25%\\n }\\n .multicheckout .block-billing .box-billing-method {\\n float: left;\\n padding-left: 25px;\\n width: 50%\\n }\\n .multicheckout.form.address .table-wrapper .applicable {\\n margin: 7px 0 0\\n }\\n .multicheckout.order-review .box-items {\\n clear: left;\\n float: none;\\n padding-top: 40px;\\n width: auto\\n }\\n .multicheckout.order-review .col.item {\\n width: 75%\\n }\\n .multicheckout .methods-payment .item-content>.fieldset {\\n width: auto\\n }\\n .multicheckout .methods-payment .item-content>.fieldset .field.cvv {\\n display: inline-block;\\n width: auto\\n }\\n .multicheckout .methods-payment .fieldset>.field:not(.choice)>.label {\\n float: none;\\n margin-bottom: 8px;\\n text-align: left;\\n width: auto\\n }\\n .multicheckout .methods-payment .fieldset>.field:not(.choice):not(.cvv) .control {\\n width: 100%\\n }\\n .column .block-addbysku .action.remove {\\n background-image: none;\\n -moz-box-sizing: content-box;\\n box-shadow: none;\\n line-height: inherit;\\n text-shadow: none;\\n font-weight: 400;\\n line-height: 1.42857143;\\n margin: 0;\\n padding: 0;\\n color: #006bb4;\\n text-decoration: none;\\n background: none;\\n border: 0;\\n display: inline;\\n margin-top: -4px\\n }\\n .column .block-addbysku .action.remove:focus,\\n .column .block-addbysku .action.remove:active {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove:hover {\\n background: none;\\n border: none\\n }\\n .column .block-addbysku .action.remove.disabled,\\n .column .block-addbysku .action.remove[disabled],\\n fieldset[disabled] .column .block-addbysku .action.remove {\\n cursor: not-allowed;\\n pointer-events: none;\\n opacity: .5\\n }\\n .column .block-addbysku .action.remove:visited {\\n color: #006bb4;\\n text-decoration: none\\n }\\n .column .block-addbysku .action.remove:hover {\\n color: #006bb4;\\n text-decoration: underline\\n }\\n .column .block-addbysku .action.remove:active {\\n color: #ff5501;\\n text-decoration: underline\\n }\\n .column .block-addbysku .action.remove:hover {\\n color: #006bb4\\n }\\n .column .block-addbysku .action.remove:hover,\\n .column .block-addbysku .action.remove:active,\\n .column .block-addbysku .action.remove:focus {\\n background: none;\\n border: 0\\n }\\n .column .block-addbysku .action.remove.disabled,\\n .column .block-addbysku .action.remove[disabled],\\n fieldset[disabled] .column .block-addbysku .action.remove {\\n color: #006bb4;\\n opacity: .5;\\n cursor: default;\\n pointer-events: none;\\n text-decoration: underline\\n }\\n .catalogsearch-advanced-result .message.error {\\n margin-top: 0\\n }\\n .products-grid .product-item-info:hover,\\n .products-grid .product-item-info.active {\\n background: #fff;\\n box-shadow: 3px 3px 4px 0 rgba(0, 0, 0, 0.3);\\n border: 1px solid #bbb;\\n margin: -10px;\\n padding: 9px;\\n position: relative;\\n z-index: 2\\n }\\n .products-grid .product-item-info:hover .product-item-inner,\\n .products-grid .product-item-info.active .product-item-inner {\\n display: block\\n }\\n .sidebar .products-grid .product-item-info:hover .product-item-photo,\\n .sidebar .products-grid .product-item-info.active .product-item-photo {\\n top: 9px;\\n left: 9px\\n }\\n .products-grid .product-item-inner {\\n background: #fff;\\n box-shadow: 3px 3px 4px 0 rgba(0, 0, 0, 0.3);\\n border: 1px solid #bbb;\\n border-top: none;\\n left: 0;\\n margin: 9px 0 0 -1px;\\n padding: 0 9px 9px;\\n position: absolute;\\n right: -1px;\\n z-index: 2\\n }\\n .product-item-actions {\\n display: block\\n }\\n .products-grid .product-item-actions {\\n margin: -10px 0 10px\\n }\\n .product-item-actions .actions-primary+.actions-secondary {\\n display: table-cell;\\n padding-left: 10px;\\n width: 50%;\\n vertical-align: middle\\n }\\n .product-item-actions .actions-primary+.actions-secondary>.action {\\n margin-right: 10px\\n }\\n .product-item-actions .actions-primary+.actions-secondary>.action:last-child {\\n margin-right: 0\\n }\\n .product-item-actions .actions-primary {\\n display: table-cell\\n }\\n .page-products .products-grid .product-item-inner:before {\\n background: #fff;\\n content: '';\\n height: 3px;\\n left: 0;\\n position: absolute;\\n top: -2px;\\n width: 100%;\\n z-index: 1\\n }\\n .page-products .product-item-actions {\\n position: relative;\\n z-index: 1\\n }\\n .products-grid .product-item {\\n margin-bottom: 20px;\\n width: 33.33333333%\\n }\\n .page-products .products-grid .product-item,\\n .page-layout-1column .products-grid .product-item,\\n .page-layout-3columns .products-grid .product-item,\\n .page-products.page-layout-1column .products-grid .product-item,\\n .page-products.page-layout-3columns .products-grid .product-item {\\n width: 33.33333333%\\n }\\n .review-form {\\n max-width: 500px\\n }\\n .review-ratings {\\n float: left;\\n margin-bottom: 0;\\n max-width: 240px\\n }\\n .review-ratings~.review-content,\\n .review-ratings~.review-details {\\n margin-left: 280px\\n }\\n .review-toolbar {\\n margin: 0 0 30px\\n }\\n .review-toolbar .pages {\\n padding: 30px 0\\n }\\n .fieldset .review-legend.legend {\\n margin-bottom: 30px\\n }\\n .review-item {\\n padding: 30px 0\\n }\\n .review-title {\\n margin: 0 0 30px\\n }\\n .order-details-items .order-title .action {\\n margin: 12px 0 0 30px\\n }\\n .order-details-items .order-title .action.track {\\n float: right\\n }\\n .wishlist-index-index .products-grid .product-item-actions {\\n margin: 0\\n }\\n .block.widget .products-grid .product-item,\\n .page-layout-1column .block.widget .products-grid .product-item,\\n .page-layout-3columns .block.widget .products-grid .product-item {\\n width: 33.33333333%\\n }\\n}\", \"\"]);\n\n// exports\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjM2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWFnZW50b1Byb2R1Y3RMaXN0L1Byb2R1Y3RMaXN0LmNzcz80YzQ4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikodW5kZWZpbmVkKTtcbi8vIGltcG9ydHNcblxuXG4vLyBtb2R1bGVcbmV4cG9ydHMucHVzaChbbW9kdWxlLmlkLCBcImJvZHkge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDBcXG59XFxuXFxuYXJ0aWNsZSxcXG5hc2lkZSxcXG5kZXRhaWxzLFxcbmZpZ2NhcHRpb24sXFxuZmlndXJlLFxcbm1haW4sXFxuZm9vdGVyLFxcbmhlYWRlcixcXG5uYXYsXFxuc2VjdGlvbixcXG5zdW1tYXJ5IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuYXVkaW8sXFxuY2FudmFzLFxcbnZpZGVvIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGhlaWdodDogMFxcbn1cXG5cXG5uYXYgdWwsXFxubmF2IG9sIHtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbmltZyB7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG5pbWcsXFxub2JqZWN0LFxcbnZpZGVvLFxcbmVtYmVkIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXgtd2lkdGg6IDEwMCVcXG59XFxuXFxuc3ZnOm5vdCg6cm9vdCkge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuXFxufVxcblxcbmZpZ3VyZSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG5odG1sIHtcXG4gICAgZm9udC1zaXplOiA2Mi41JTtcXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gICAgZm9udC1zaXplLWFkanVzdDogMTAwJVxcbn1cXG5cXG5ib2R5IHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxucCB7XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW1cXG59XFxuXFxuYWJiclt0aXRsZV0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNjY2M7XFxuICAgIGN1cnNvcjogaGVscFxcbn1cXG5cXG5iLFxcbnN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuZW0sXFxuaSB7XFxuICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xcbn1cXG5cXG5tYXJrIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcXG4gICAgY29sb3I6ICMwMDBcXG59XFxuXFxuc21hbGwsXFxuLnNtYWxsIHtcXG4gICAgZm9udC1zaXplOiAxMnB4XFxufVxcblxcbmhyIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgbWFyZ2luLXRvcDogMjBweFxcbn1cXG5cXG5zdWIsXFxuc3VwIHtcXG4gICAgZm9udC1zaXplOiA3MS40Mjg1NzE0MzAwMDAwMSU7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxcbn1cXG5cXG5zdXAge1xcbiAgICB0b3A6IC0uNWVtXFxufVxcblxcbnN1YiB7XFxuICAgIGJvdHRvbTogLS4yNWVtXFxufVxcblxcbmRmbiB7XFxuICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xcbn1cXG5cXG5oMSB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAwcmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtXFxufVxcblxcbmgyIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG5oMyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtXFxufVxcblxcbmg0IHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIG1hcmdpbi10b3A6IDJyZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW1cXG59XFxuXFxuaDUge1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG5oNiB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMXJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG5oMSBzbWFsbCxcXG5oMiBzbWFsbCxcXG5oMyBzbWFsbCxcXG5oNCBzbWFsbCxcXG5oNSBzbWFsbCxcXG5oNiBzbWFsbCxcXG5oMSAuc21hbGwsXFxuaDIgLnNtYWxsLFxcbmgzIC5zbWFsbCxcXG5oNCAuc21hbGwsXFxuaDUgLnNtYWxsLFxcbmg2IC5zbWFsbCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDFcXG59XFxuXFxuYSxcXG4uYWxpbmsge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbmE6dmlzaXRlZCxcXG4uYWxpbms6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuYTpob3ZlcixcXG4uYWxpbms6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuYTphY3RpdmUsXFxuLmFsaW5rOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmY1NTAxO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG51bCxcXG5vbCB7XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbVxcbn1cXG5cXG51bD5saSxcXG5vbD5saSB7XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW1cXG59XFxuXFxudWwgdWwsXFxub2wgdWwsXFxudWwgb2wsXFxub2wgb2wge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbmRsIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG5kdCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG5kZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiAwXFxufVxcblxcbmNvZGUsXFxua2JkLFxcbnByZSxcXG5zYW1wIHtcXG4gICAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2VcXG59XFxuXFxuY29kZSB7XFxuICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XFxuICAgIGNvbG9yOiAjMTExO1xcbiAgICBwYWRkaW5nOiAycHggNHB4O1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG5rYmQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xcbiAgICBjb2xvcjogIzExMTtcXG4gICAgcGFkZGluZzogMnB4IDRweDtcXG4gICAgZm9udC1zaXplOiAxLjJyZW1cXG59XFxuXFxucHJlIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgY29sb3I6ICMxMTE7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xcbiAgICBwYWRkaW5nOiAxMHB4O1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZFxcbn1cXG5cXG5wcmUgY29kZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXBcXG59XFxuXFxuYmxvY2txdW90ZSB7XFxuICAgIGJvcmRlci1sZWZ0OiAwIHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogMCAwIDIwcHggNDBweDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxuYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQsXFxuYmxvY2txdW90ZSB1bDpsYXN0LWNoaWxkLFxcbmJsb2NrcXVvdGUgb2w6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuYmxvY2txdW90ZSBmb290ZXIsXFxuYmxvY2txdW90ZSBzbWFsbCxcXG5ibG9ja3F1b3RlIC5zbWFsbCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgZm9udC1zaXplOiAxcmVtO1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG5ibG9ja3F1b3RlIGZvb3RlcjpiZWZvcmUsXFxuYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUsXFxuYmxvY2txdW90ZSAuc21hbGw6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFwyMDE0ICAgXFxcXEEwJ1xcbn1cXG5cXG5ibG9ja3F1b3RlIGNpdGUge1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuYmxvY2txdW90ZTpiZWZvcmUsXFxuYmxvY2txdW90ZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnXFxufVxcblxcbnEge1xcbiAgICBxdW90ZXM6IG5vbmVcXG59XFxuXFxucTpiZWZvcmUsXFxucTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBjb250ZW50OiBub25lXFxufVxcblxcbmNpdGUge1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxudGFibGUge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJVxcbn1cXG5cXG50YWJsZSB0aCB7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxudGFibGU+dGJvZHk+dHI+dGgsXFxudGFibGU+dGZvb3Q+dHI+dGgsXFxudGFibGU+dGJvZHk+dHI+dGQsXFxudGFibGU+dGZvb3Q+dHI+dGQge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbnRhYmxlPnRoZWFkPnRyPnRoLFxcbnRhYmxlPnRoZWFkPnRyPnRkIHtcXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbVxcbn1cXG5cXG50YWJsZT50aGVhZD50cj50aCxcXG50YWJsZT50Ym9keT50cj50aCxcXG50YWJsZT50Zm9vdD50cj50aCxcXG50YWJsZT50aGVhZD50cj50ZCxcXG50YWJsZT50Ym9keT50cj50ZCxcXG50YWJsZT50Zm9vdD50cj50ZCB7XFxuICAgIHBhZGRpbmc6IDExcHggMTBweFxcbn1cXG5cXG5idXR0b24ge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiA3cHggMTVweDtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjZyZW07XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuYnV0dG9uOmZvY3VzLFxcbmJ1dHRvbjphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjZTJlMmUyO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG5idXR0b246aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZTFlMWUxO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG5idXR0b24uZGlzYWJsZWQsXFxuYnV0dG9uW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gYnV0dG9uIHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmVcXG59XFxuXFxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl0sXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXSB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmMyYzI7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGhlaWdodDogMzJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIHBhZGRpbmc6IDAgOXB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTpkaXNhYmxlZCxcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOmRpc2FibGVkLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06ZGlzYWJsZWQsXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXTpkaXNhYmxlZCB7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTo6LW1vei1wbGFjZWhvbGRlcixcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06Oi1tb3otcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXTo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcXG5pbnB1dFt0eXBlPVxcXCJwYXNzd29yZFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInVybFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwiZW1haWxcXFwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInRleHRcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwicGFzc3dvcmRcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwidXJsXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcInRlbFxcXCJdOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG5pbnB1dFt0eXBlPVxcXCJzZWFyY2hcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImRhdGV0aW1lXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbmlucHV0W3R5cGU9XFxcImVtYWlsXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl0ge1xcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZFxcbn1cXG5cXG5pbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcXG5pbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdIHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcXG5pbnB1dFt0eXBlPVxcXCJzZWFyY2hcXFwiXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXFxufVxcblxcbnNlbGVjdCB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMmMyYzI7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGhlaWdodDogMzJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIHBhZGRpbmc6IDVweCAxMHB4IDRweDtcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveFxcbn1cXG5cXG5zZWxlY3Q6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG5zZWxlY3RbbXVsdGlwbGU9XFxcIm11bHRpcGxlXFxcIl0ge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmVcXG59XFxuXFxudGV4dGFyZWEge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzJjMmMyO1xcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIHJlc2l6ZTogdmVydGljYWxcXG59XFxuXFxudGV4dGFyZWE6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG50ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbnRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxudGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuaW5wdXRbdHlwZT1cXFwiY2hlY2tib3hcXFwiXSB7XFxuICAgIG1hcmdpbjogMnB4IDVweCAwIDBcXG59XFxuXFxuaW5wdXRbdHlwZT1cXFwiY2hlY2tib3hcXFwiXTpkaXNhYmxlZCB7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbmlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0ge1xcbiAgICBtYXJnaW46IDJweCA1cHggMCAwXFxufVxcblxcbmlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl06ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG5pbnB1dC5tYWdlLWVycm9yLFxcbnNlbGVjdC5tYWdlLWVycm9yLFxcbnRleHRhcmVhLm1hZ2UtZXJyb3Ige1xcbiAgICBib3JkZXItY29sb3I6ICNlZDgzODBcXG59XFxuXFxuZGl2Lm1hZ2UtZXJyb3JbZ2VuZXJhdGVkXSB7XFxuICAgIGNvbG9yOiAjZTAyYjI3O1xcbiAgICBmb250LXNpemU6IDEuMnJlbVxcbn1cXG5cXG5pbnB1dFt0eXBlPVxcXCJidXR0b25cXFwiXSxcXG5pbnB1dFt0eXBlPVxcXCJyZXNldFxcXCJdLFxcbmlucHV0W3R5cGU9XFxcInN1Ym1pdFxcXCJdIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvblxcbn1cXG5cXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG5mb3JtIHtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXFxufVxcblxcbmFkZHJlc3Mge1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuKjpmb2N1cyB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIG91dGxpbmU6IDBcXG59XFxuXFxuLl9rZXlmb2N1cyAqOmZvY3VzLFxcbmlucHV0Om5vdChbZGlzYWJsZWRdKTpmb2N1cyxcXG50ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSk6Zm9jdXMsXFxuc2VsZWN0Om5vdChbZGlzYWJsZWRdKTpmb2N1cyB7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMXB4ICMwMDY5OWRcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJ1bmRsZS5pdGVtcyxcXG4ucHJvZHVjdC1pdGVtcyxcXG4ucHJpY2VzLXRpZXIsXFxuLnNlYXJjaC10ZXJtcyxcXG4uY2FydC1zdW1tYXJ5IC5jaGVja291dC1tZXRob2RzLWl0ZW1zLFxcbi5vcGMtd3JhcHBlciAub3BjLFxcbi5vcGMtcHJvZ3Jlc3MtYmFyLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW1zLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtcy1xdHksXFxuLmZvb3Rlci5jb250ZW50IHVsLFxcbi5ibG9jay1iYW5uZXJzIC5iYW5uZXItaXRlbXMsXFxuLmJsb2NrLWJhbm5lcnMtaW5saW5lIC5iYW5uZXItaXRlbXMsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5idW5kbGUuaXRlbXM+bGksXFxuLnByb2R1Y3QtaXRlbXM+bGksXFxuLnByaWNlcy10aWVyPmxpLFxcbi5zZWFyY2gtdGVybXM+bGksXFxuLmNhcnQtc3VtbWFyeSAuY2hlY2tvdXQtbWV0aG9kcy1pdGVtcz5saSxcXG4ub3BjLXdyYXBwZXIgLm9wYz5saSxcXG4ub3BjLXByb2dyZXNzLWJhcj5saSxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1pdGVtcz5saSxcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbXMtcXR5PmxpLFxcbi5mb290ZXIuY29udGVudCB1bD5saSxcXG4uYmxvY2stYmFubmVycyAuYmFubmVyLWl0ZW1zPmxpLFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSAuYmFubmVyLWl0ZW1zPmxpLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXI+bGkge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmFjdGlvbi1wcmltYXJ5OmZvY3VzLFxcbi5hY3Rpb24tcHJpbWFyeTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYWN0aW9uLXByaW1hcnk6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYWN0aW9uLXByaW1hcnkuZGlzYWJsZWQsXFxuLmFjdGlvbi1wcmltYXJ5W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFjdGlvbi1wcmltYXJ5IHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmVcXG59XFxuXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWwsXFxuLmJsb2NrLWNvbXBhcmUgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4XFxufVxcblxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6bm90KDpmb2N1cyksXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOm5vdCg6Zm9jdXMpLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTpub3QoOmZvY3VzKSxcXG4uY2FydC1zdW1tYXJ5IC5ibG9jayAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeTpub3QoOmZvY3VzKSxcXG4uY2FydC1zdW1tYXJ5IC5mb3JtLmdpZnRyZWdpc3RyeSAuZmllbGRzZXQgLmFjdGlvbi5wcmltYXJ5Om5vdCg6Zm9jdXMpLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5Om5vdCg6Zm9jdXMpLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6bm90KDpmb2N1cyksXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6bm90KDpmb2N1cyksXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpub3QoOmZvY3VzKSB7XFxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAjZmZmLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTphY3RpdmUsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmFjdGlvbnMtdG9vbGJhcj4ucHJpbWFyeSAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmFjdGl2ZSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeTphY3RpdmUsXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDphY3RpdmUge1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjgpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogN3B4IDE1cHg7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS42cmVtO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4XFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmZvY3VzLFxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmFjdGl2ZSxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6Zm9jdXMsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6ICNlMmUyZTI7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmhvdmVyLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudDpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlMWUxZTE7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uLmRpc2FibGVkLFxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFicy1hY3Rpb24tbGluay1idXR0b24sXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50LmRpc2FibGVkLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudCB7XFxuICAgIG9wYWNpdHk6IC41O1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lXFxufVxcblxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmhvdmVyLFxcbi5hYnMtYWN0aW9uLWxpbmstYnV0dG9uOmFjdGl2ZSxcXG4uYWJzLWFjdGlvbi1saW5rLWJ1dHRvbjpmb2N1cyxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6aG92ZXIsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmFjdGl2ZSxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6Zm9jdXMge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1hY3Rpb24tcmVtb3ZlLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVjayxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b24sXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2ssXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3QsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbmssXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0LFxcbi5hY3Rpb24tYXV0aC10b2dnbGUsXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWwsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmFjdGlvbi1zaG93LFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbCxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdCxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlLFxcbi5hY3Rpb24tZ2lmdCxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24sXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2ssXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbi5jaGVjayxcXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0uc2VuZC5mcmllbmQgLmFjdGlvbi5yZW1vdmUge1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IDBcXG59XFxuXFxuLmFicy1hY3Rpb24tYnV0dG9uLWFzLWxpbms6dmlzaXRlZCxcXG4uYWJzLWFjdGlvbi1yZW1vdmU6dmlzaXRlZCxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6dmlzaXRlZCxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDp2aXNpdGVkLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjp2aXNpdGVkLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmFjdGlvbi5iYWNrOnZpc2l0ZWQsXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6dmlzaXRlZCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6dmlzaXRlZCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6dmlzaXRlZCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwOnZpc2l0ZWQsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazp2aXNpdGVkLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDp2aXNpdGVkLFxcbi5hY3Rpb24tYXV0aC10b2dnbGU6dmlzaXRlZCxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDp2aXNpdGVkLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzp2aXNpdGVkLFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbDp2aXNpdGVkLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OnZpc2l0ZWQsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTp2aXNpdGVkLFxcbi5hY3Rpb24tZ2lmdDp2aXNpdGVkLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOnZpc2l0ZWQsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOnZpc2l0ZWQsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOnZpc2l0ZWQsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazp2aXNpdGVkLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6dmlzaXRlZCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmFjdGlvbi5yZW1vdmU6dmlzaXRlZCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTp2aXNpdGVkLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTp2aXNpdGVkLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbi5yZW1vdmU6dmlzaXRlZCxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGluazpob3ZlcixcXG4uYWJzLWFjdGlvbi1yZW1vdmU6aG92ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmhvdmVyLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpob3ZlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazpob3ZlcixcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdDpob3ZlcixcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6aG92ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwOmhvdmVyLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6aG92ZXIsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpob3ZlcixcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6aG92ZXIsXFxuLmFjdGlvbi1hdXRoLXRvZ2dsZTpob3ZlcixcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDpob3ZlcixcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6aG92ZXIsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU6aG92ZXIsXFxuLmFjdGlvbi1naWZ0OmhvdmVyLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOmhvdmVyLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbjpob3ZlcixcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmU6aG92ZXIsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazpob3ZlcixcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6aG92ZXIsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGluazphY3RpdmUsXFxuLmFicy1hY3Rpb24tcmVtb3ZlOmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmFjdGl2ZSxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b246YWN0aXZlLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmFjdGlvbi5iYWNrOmFjdGl2ZSxcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdDphY3RpdmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlOmFjdGl2ZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6YWN0aXZlLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6YWN0aXZlLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbms6YWN0aXZlLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDphY3RpdmUsXFxuLmFjdGlvbi1hdXRoLXRvZ2dsZTphY3RpdmUsXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWw6YWN0aXZlLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzphY3RpdmUsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmFjdGl2ZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdDphY3RpdmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTphY3RpdmUsXFxuLmFjdGlvbi1naWZ0OmFjdGl2ZSxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZTphY3RpdmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmFjdGl2ZSxcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmU6YWN0aXZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbi5yZW1vdmU6YWN0aXZlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0uc2VuZC5mcmllbmQgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5hYnMtYWN0aW9uLWJ1dHRvbi1hcy1saW5rOmhvdmVyLFxcbi5hYnMtYWN0aW9uLXJlbW92ZTpob3ZlcixcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLnBvcHVwIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6aG92ZXIsXFxuLnBheXBhbC1idXR0b24td2lkZ2V0IC5wYXlwYWwtYnV0dG9uOmhvdmVyLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmFjdGlvbi5iYWNrOmhvdmVyLFxcbi5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0OmhvdmVyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpob3ZlcixcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6aG92ZXIsXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24taGlkZS1wb3B1cDpob3ZlcixcXG4ub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rOmhvdmVyLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDpob3ZlcixcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmhvdmVyLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzpob3ZlcixcXG4uZ2lmdC1vcHRpb25zIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi1jYW5jZWw6aG92ZXIsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWVkaXQ6aG92ZXIsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTpob3ZlcixcXG4uYWN0aW9uLWdpZnQ6aG92ZXIsXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6aG92ZXIsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmhvdmVyLFxcbi5hYnMtYWRkLWZpZWxkcyAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLmFicy1hY3Rpb24tYnV0dG9uLWFzLWxpbms6aG92ZXIsXFxuLmFicy1hY3Rpb24tYnV0dG9uLWFzLWxpbms6YWN0aXZlLFxcbi5hYnMtYWN0aW9uLWJ1dHRvbi1hcy1saW5rOmZvY3VzLFxcbi5hYnMtYWN0aW9uLXJlbW92ZTpob3ZlcixcXG4uYWJzLWFjdGlvbi1yZW1vdmU6YWN0aXZlLFxcbi5hYnMtYWN0aW9uLXJlbW92ZTpmb2N1cyxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrOmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb24uY2hlY2s6Zm9jdXMsXFxuLnBvcHVwIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6aG92ZXIsXFxuLnBvcHVwIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmZvY3VzLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpob3ZlcixcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b246YWN0aXZlLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpmb2N1cyxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazpob3ZlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazphY3RpdmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2s6Zm9jdXMsXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6aG92ZXIsXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6YWN0aXZlLFxcbi5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0OmZvY3VzLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpob3ZlcixcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6YWN0aXZlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpmb2N1cyxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6aG92ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwOmFjdGl2ZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXA6Zm9jdXMsXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24taGlkZS1wb3B1cDpob3ZlcixcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwOmFjdGl2ZSxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwOmZvY3VzLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbms6aG92ZXIsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazphY3RpdmUsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpmb2N1cyxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6aG92ZXIsXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0OmFjdGl2ZSxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6Zm9jdXMsXFxuLmFjdGlvbi1hdXRoLXRvZ2dsZTpob3ZlcixcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmFjdGl2ZSxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmZvY3VzLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmFjdGl2ZSxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDpmb2N1cyxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6aG92ZXIsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmFjdGlvbi1zaG93OmFjdGl2ZSxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6Zm9jdXMsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmhvdmVyLFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbDphY3RpdmUsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsOmZvY3VzLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmFjdGl2ZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdDpmb2N1cyxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlOmhvdmVyLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU6YWN0aXZlLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU6Zm9jdXMsXFxuLmFjdGlvbi1naWZ0OmhvdmVyLFxcbi5hY3Rpb24tZ2lmdDphY3RpdmUsXFxuLmFjdGlvbi1naWZ0OmZvY3VzLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOmhvdmVyLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlOmFjdGl2ZSxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZTpmb2N1cyxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246aG92ZXIsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmFjdGl2ZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246Zm9jdXMsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5hYnMtYWRkLWZpZWxkcyAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOmZvY3VzLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6aG92ZXIsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazphY3RpdmUsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazpmb2N1cyxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmhvdmVyLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6YWN0aXZlLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2s6Zm9jdXMsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOmZvY3VzLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTpmb2N1cyxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6aG92ZXIsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6Zm9jdXMsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9uLnJlbW92ZTpob3ZlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmZvY3VzLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTpmb2N1cyB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGluay5kaXNhYmxlZCxcXG4uYWJzLWFjdGlvbi1idXR0b24tYXMtbGlua1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5hYnMtYWN0aW9uLWJ1dHRvbi1hcy1saW5rLFxcbi5hYnMtYWN0aW9uLXJlbW92ZS5kaXNhYmxlZCxcXG4uYWJzLWFjdGlvbi1yZW1vdmVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYWJzLWFjdGlvbi1yZW1vdmUsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrLmRpc2FibGVkLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVja1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVjayxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbC5kaXNhYmxlZCxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbi5kaXNhYmxlZCxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b25bZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b24sXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2suZGlzYWJsZWQsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2tbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjayxcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdC5kaXNhYmxlZCxcXG4uYmxvY2sucmVsYXRlZCAuYWN0aW9uLnNlbGVjdFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZS5kaXNhYmxlZCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwLmRpc2FibGVkLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwLmRpc2FibGVkLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXBbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwLFxcbi5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbmsuZGlzYWJsZWQsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGlua1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbmssXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0LmRpc2FibGVkLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdCxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlLmRpc2FibGVkLFxcbi5hY3Rpb24tYXV0aC10b2dnbGVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYWN0aW9uLWF1dGgtdG9nZ2xlLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsLmRpc2FibGVkLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWwsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmFjdGlvbi1zaG93LmRpc2FibGVkLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvd1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdyxcXG4uZ2lmdC1vcHRpb25zIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi1jYW5jZWwuZGlzYWJsZWQsXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0LmRpc2FibGVkLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWVkaXQsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZS5kaXNhYmxlZCxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZSxcXG4uYWN0aW9uLWdpZnQuZGlzYWJsZWQsXFxuLmFjdGlvbi1naWZ0W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFjdGlvbi1naWZ0LFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlLmRpc2FibGVkLFxcbi5naWZ0LXdyYXBwaW5nLXRpdGxlIC5hY3Rpb24tcmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLmRpc2FibGVkLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbltkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbixcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2suZGlzYWJsZWQsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVja1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb24uY2hlY2ssXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbi5jaGVjay5kaXNhYmxlZCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmNhcnQtZGlzY291bnQgLmFjdGlvbi5jaGVjayxcXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbi5yZW1vdmVbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0uc2VuZC5mcmllbmQgLmFjdGlvbi5yZW1vdmUge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5hYnMtYWN0aW9uLXJlbW92ZTphY3RpdmUsXFxuLmFicy1hY3Rpb24tcmVtb3ZlOm5vdCg6Zm9jdXMpLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbi5jaGVjazphY3RpdmUsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9uLmNoZWNrOm5vdCg6Zm9jdXMpLFxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmFjdGl2ZSxcXG4ucG9wdXAgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpub3QoOmZvY3VzKSxcXG4ucGF5cGFsLWJ1dHRvbi13aWRnZXQgLnBheXBhbC1idXR0b246YWN0aXZlLFxcbi5wYXlwYWwtYnV0dG9uLXdpZGdldCAucGF5cGFsLWJ1dHRvbjpub3QoOmZvY3VzKSxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjazphY3RpdmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYWN0aW9uLmJhY2s6bm90KDpmb2N1cyksXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Q6YWN0aXZlLFxcbi5ibG9jay5yZWxhdGVkIC5hY3Rpb24uc2VsZWN0Om5vdCg6Zm9jdXMpLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTphY3RpdmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlOm5vdCg6Zm9jdXMpLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5oZWxwLm1hcDphY3RpdmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLmhlbHAubWFwOm5vdCg6Zm9jdXMpLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6YWN0aXZlLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLWhpZGUtcG9wdXA6bm90KDpmb2N1cyksXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazphY3RpdmUsXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpub3QoOmZvY3VzKSxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6YWN0aXZlLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDpub3QoOmZvY3VzKSxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOmFjdGl2ZSxcXG4uYWN0aW9uLWF1dGgtdG9nZ2xlOm5vdCg6Zm9jdXMpLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb24tY2FuY2VsOmFjdGl2ZSxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYWN0aW9uLWNhbmNlbDpub3QoOmZvY3VzKSxcXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1ibG9jayAuYWN0aW9uLXNob3c6YWN0aXZlLFxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdzpub3QoOmZvY3VzKSxcXG4uZ2lmdC1vcHRpb25zIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi1jYW5jZWw6YWN0aXZlLFxcbi5naWZ0LW9wdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLWNhbmNlbDpub3QoOmZvY3VzKSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdDphY3RpdmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWVkaXQ6bm90KDpmb2N1cyksXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTphY3RpdmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTpub3QoOmZvY3VzKSxcXG4uYWN0aW9uLWdpZnQ6YWN0aXZlLFxcbi5hY3Rpb24tZ2lmdDpub3QoOmZvY3VzKSxcXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZTphY3RpdmUsXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6bm90KDpmb2N1cyksXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uOmFjdGl2ZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246bm90KDpmb2N1cyksXFxuLmFicy1hZGQtZmllbGRzIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmU6bm90KDpmb2N1cyksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazphY3RpdmUsXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbi5jaGVjazpub3QoOmZvY3VzKSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOmFjdGl2ZSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9uLmNoZWNrOm5vdCg6Zm9jdXMpLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlOm5vdCg6Zm9jdXMpLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWN0aW9uLnJlbW92ZTpub3QoOmZvY3VzKSxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6YWN0aXZlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTpub3QoOmZvY3VzKSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlOm5vdCg6Zm9jdXMpLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWN0aW9uLnJlbW92ZTpub3QoOmZvY3VzKSB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmVcXG59XFxuXFxuLmFicy1yZXZlcnQtdG8tYWN0aW9uLXNlY29uZGFyeSxcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWwsXFxuLmJsb2NrLWNvbXBhcmUgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5LFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgYmFja2dyb3VuZDogI2VlZTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmFicy1yZXZlcnQtc2Vjb25kYXJ5LWNvbG9yOmZvY3VzLFxcbi5hYnMtcmV2ZXJ0LXNlY29uZGFyeS1jb2xvcjphY3RpdmUsXFxuLmFicy1yZXZlcnQtdG8tYWN0aW9uLXNlY29uZGFyeTpmb2N1cyxcXG4uYWJzLXJldmVydC10by1hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZSxcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6Zm9jdXMsXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpmb2N1cyxcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTpmb2N1cyxcXG4uYmxvY2stY29tcGFyZSAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uY2FydC1zdW1tYXJ5IC5mb3JtLmdpZnRyZWdpc3RyeSAuZmllbGRzZXQgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmZvY3VzLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmZvY3VzLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmZvY3VzLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogI2UyZTJlMjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmFicy1yZXZlcnQtc2Vjb25kYXJ5LWNvbG9yOmhvdmVyLFxcbi5hYnMtcmV2ZXJ0LXRvLWFjdGlvbi1zZWNvbmRhcnk6aG92ZXIsXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6aG92ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsOmhvdmVyLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24ucHJpbWFyeTpob3ZlcixcXG4uY2FydC1zdW1tYXJ5IC5ibG9jayAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeTpob3ZlcixcXG4uY2FydC1zdW1tYXJ5IC5mb3JtLmdpZnRyZWdpc3RyeSAuZmllbGRzZXQgLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jYW5jZWw6aG92ZXIsXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnk6aG92ZXIsXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbDpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlMWUxZTE7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0gLmJveC10b2NhcnQgLnRvY2FydCB7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMS42cmVtO1xcbiAgICBwYWRkaW5nOiA3cHggMTVweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9uLnByaW1hcnksXFxuLm9yZGVyLXJldmlldy1mb3JtIC5hY3Rpb24ucHJpbWFyeSxcXG4uYnVuZGxlLWFjdGlvbnMgLmFjdGlvbi5wcmltYXJ5LmN1c3RvbWl6ZSxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAuYm94LXRvY2FydCAuYWN0aW9uLnByaW1hcnksXFxuLmJveC10b2NhcnQgLmFjdGlvbi50b2NhcnQsXFxuLmNhcnQtc3VtbWFyeSAuY2hlY2tvdXQtbWV0aG9kcy1pdGVtcyAuYWN0aW9uLnByaW1hcnkuY2hlY2tvdXQsXFxuLmJsb2NrLW1pbmljYXJ0IC5ibG9jay1jb250ZW50Pi5hY3Rpb25zPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeSxcXG4ubWV0aG9kcy1zaGlwcGluZyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmFjdGlvbi5hY3Rpb24tcmVnaXN0ZXIsXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5hY3Rpb24uYWN0aW9uLWxvZ2luLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtY29udGVudD4uYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeSxcXG4uZm9ybS1hZGRyZXNzLWVkaXQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnkge1xcbiAgICBsaW5lLWhlaWdodDogMi4ycmVtO1xcbiAgICBwYWRkaW5nOiAxNHB4IDE3cHg7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMgZHQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zIGR0LFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnMgZHQge1xcbiAgICBjbGVhcjogbGVmdDtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbjogMCAxMHB4IDVweCAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMgZHQ6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zIGR0OmFmdGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnMgZHQ6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMgZGQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zIGRkLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnMgZGQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMCA1cHhcXG59XFxuXFxuLmFjdGlvbnMtdG9vbGJhcj4ucHJpbWFyeSAuYWN0aW9uLFxcbi5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uLFxcbi5idW5kbGUtYWN0aW9ucyAuYWN0aW9uLnByaW1hcnkuY3VzdG9taXplLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5ib3gtdG9jYXJ0IC5hY3Rpb24ucHJpbWFyeSxcXG4uYm94LXRvY2FydCAuYWN0aW9uLnRvY2FydCB7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWltYWdlLXdyYXBwZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAucHJvZHVjdC1pbWFnZS13cmFwcGVyLFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pbWFnZS13cmFwcGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0LWltYWdlLXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudFxcbn1cXG5cXG4ucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1pbWFnZS13cmFwcGVyIC5wcm9kdWN0LWltYWdlLXBob3RvLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciAucHJvZHVjdC1pbWFnZS1waG90byxcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciAucHJvZHVjdC1pbWFnZS1waG90byxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAucHJvZHVjdC1pbWFnZS13cmFwcGVyIC5wcm9kdWN0LWltYWdlLXBob3RvIHtcXG4gICAgcG9zaXRpb246IHN0YXRpY1xcbn1cXG5cXG4ucHJvZHVjdC5tZWRpYSAucHJvZHVjdC5waG90byAucGhvdG8uaW1hZ2Uge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXJnaW46IDAgYXV0bztcXG4gICAgbWF4LXdpZHRoOiAxMDAlXFxufVxcblxcbi5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5ibG9jay10aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEycHhcXG59XFxuXFxuLmxvZ2luLWNvbnRhaW5lciAuYmxvY2sgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDBcXG59XFxuXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duLFxcbi53aXNobGlzdC1kcm9wZG93biB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlOmJlZm9yZSxcXG4uYWJzLWRyb3Bkb3duLXNpbXBsZTphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd246YmVmb3JlLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93bjphZnRlcixcXG4ud2lzaGxpc3QtZHJvcGRvd246YmVmb3JlLFxcbi53aXNobGlzdC1kcm9wZG93bjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZTphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd246YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgLmFjdGlvbi50b2dnbGUsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgLmFjdGlvbi50b2dnbGU6YWZ0ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlOmFmdGVyLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwIDAgMCA1cHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSAuYWN0aW9uLnRvZ2dsZTpob3ZlcjphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gLmFjdGlvbi50b2dnbGU6aG92ZXI6YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZTphY3RpdmU6YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlOmFjdGl2ZTphZnRlciB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZSxcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gLmFjdGlvbi50b2dnbGUuYWN0aXZlLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWZ0ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphZnRlcixcXG4ud2lzaGxpc3QtZHJvcGRvd24gLmFjdGlvbi50b2dnbGUuYWN0aXZlOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDVweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTpob3ZlcjphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gLmFjdGlvbi50b2dnbGUuYWN0aXZlOmhvdmVyOmFmdGVyLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6aG92ZXI6YWZ0ZXIge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd24sXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duLFxcbi53aXNobGlzdC1kcm9wZG93biB1bC5kcm9wZG93biB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xcbiAgICBtYXJnaW4tdG9wOiA0cHg7XFxuICAgIG1pbi13aWR0aDogMjAwcHg7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpXFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIHVsLmRyb3Bkb3duIGxpLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biB1bC5kcm9wZG93biBsaSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd24gbGkge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDIzcHhcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd24gbGk6aG92ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duIGxpOmhvdmVyLFxcbi53aXNobGlzdC1kcm9wZG93biB1bC5kcm9wZG93biBsaTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd246YWZ0ZXIsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLmFicy1kcm9wZG93bi1zaW1wbGUgdWwuZHJvcGRvd246YmVmb3JlLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLndpc2hsaXN0LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSB7XFxuICAgIGJvcmRlcjogNnB4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk5XFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlIHVsLmRyb3Bkb3duOmFmdGVyLFxcbi5naWZ0cmVnaXN0eS1kcm9wZG93biB1bC5kcm9wZG93bjphZnRlcixcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXI6IDdweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYmJiIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OFxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gdWwuZHJvcGRvd246YmVmb3JlIHtcXG4gICAgbGVmdDogMTBweDtcXG4gICAgdG9wOiAtMTJweFxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZSB1bC5kcm9wZG93bjphZnRlcixcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24gdWwuZHJvcGRvd246YWZ0ZXIsXFxuLndpc2hsaXN0LWRyb3Bkb3duIHVsLmRyb3Bkb3duOmFmdGVyIHtcXG4gICAgbGVmdDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5hYnMtZHJvcGRvd24tc2ltcGxlLmFjdGl2ZSxcXG4uZ2lmdHJlZ2lzdHktZHJvcGRvd24uYWN0aXZlLFxcbi53aXNobGlzdC1kcm9wZG93bi5hY3RpdmUge1xcbiAgICBvdmVyZmxvdzogdmlzaWJsZVxcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLXNpbXBsZS5hY3RpdmUgdWwuZHJvcGRvd24sXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duLmFjdGl2ZSB1bC5kcm9wZG93bixcXG4ud2lzaGxpc3QtZHJvcGRvd24uYWN0aXZlIHVsLmRyb3Bkb3duIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIHVsLml0ZW1zLFxcbi53aXNobGlzdC1kcm9wZG93biB1bC5pdGVtcyB7XFxuICAgIHBhZGRpbmc6IDZweCAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jb2wgLnF0eSAuaW5wdXQtdGV4dCxcXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAucXR5IC5xdHksXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuaW5wdXQtdGV4dC5xdHksXFxuLmJveC10b2NhcnQgLmlucHV0LXRleHQucXR5LFxcbi5hY2NvdW50IC5kYXRhLnRhYmxlLXJldHVybi1pdGVtcyAucXR5IC5pbnB1dC10ZXh0LFxcbi50YWJsZS1naWZ0cmVnaXN0cnktaXRlbXMgLmZpZWxkLnF0eSAucXR5LFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5xdHkgLnF0eSxcXG4udGFibGUuZ3JvdXBlZCAuY29sLnF0eSAuY29udHJvbC5xdHkgLnF0eSxcXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAuaW5wdXQtdGV4dC5xdHksXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmJveC10b2NhcnQgLnF0eSxcXG4ucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5ib3gtdG9jYXJ0IGlucHV0LnF0eSxcXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkLnF0eSAucXR5IHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICB3aWR0aDogNTRweFxcbn1cXG5cXG4uYmxvY2ssXFxuLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1kZXRhaWxzLFxcbi5ibG9jay1iYW5uZXJzLFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLmFjdGlvbi5kZWxldGUsXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwucmVtb3ZlIC5hY3Rpb24uZGVsZXRlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlLFxcbi5maWx0ZXItY3VycmVudCAuYWN0aW9uLnJlbW92ZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtcmVtb3ZlLWJ1dHRvbi1mb3ItYmxvY2tzPnNwYW4sXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLmFjdGlvbi5kZWxldGU+c3BhbixcXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGU+c3BhbixcXG4uYmxvY2stY29tcGFyZSAuYWN0aW9uLmRlbGV0ZT5zcGFuLFxcbi5maWx0ZXItY3VycmVudCAuYWN0aW9uLnJlbW92ZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmFicy1yZW1vdmUtYnV0dG9uLWZvci1ibG9ja3M6YmVmb3JlLFxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlOmJlZm9yZSxcXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGU6YmVmb3JlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlOmJlZm9yZSxcXG4uZmlsdGVyLWN1cnJlbnQgLmFjdGlvbi5yZW1vdmU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTYnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmFicy1yZW1vdmUtYnV0dG9uLWZvci1ibG9ja3M6aG92ZXI6YmVmb3JlLFxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlOmhvdmVyOmJlZm9yZSxcXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGU6aG92ZXI6YmVmb3JlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlOmhvdmVyOmJlZm9yZSxcXG4uZmlsdGVyLWN1cnJlbnQgLmFjdGlvbi5yZW1vdmU6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM0OTQ5NDlcXG59XFxuXFxuLmFicy1yZW1vdmUtYnV0dG9uLWZvci1ibG9ja3M6YWN0aXZlOmJlZm9yZSxcXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAuYWN0aW9uLmRlbGV0ZTphY3RpdmU6YmVmb3JlLFxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsLnJlbW92ZSAuYWN0aW9uLmRlbGV0ZTphY3RpdmU6YmVmb3JlLFxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlOmFjdGl2ZTpiZWZvcmUsXFxuLmZpbHRlci1jdXJyZW50IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzk5OVxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLW5hbWUsXFxuLnByb2R1Y3QubmFtZSBhIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLW5hbWU+YSxcXG4ucHJvZHVjdC5uYW1lIGE+YSB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1wcm9kdWN0LWxpbms+YTp2aXNpdGVkLFxcbi5wcm9kdWN0LWl0ZW0tbmFtZT5hOnZpc2l0ZWQsXFxuLnByb2R1Y3QubmFtZSBhPmE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uYWJzLXByb2R1Y3QtbGluaz5hOmhvdmVyLFxcbi5wcm9kdWN0LWl0ZW0tbmFtZT5hOmhvdmVyLFxcbi5wcm9kdWN0Lm5hbWUgYT5hOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5hYnMtcHJvZHVjdC1saW5rPmE6YWN0aXZlLFxcbi5wcm9kdWN0LWl0ZW0tbmFtZT5hOmFjdGl2ZSxcXG4ucHJvZHVjdC5uYW1lIGE+YTphY3RpdmUge1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmFicy1saWtlLWxpbms6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1saWtlLWxpbms6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmFicy1saWtlLWxpbms6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5mb3JtLmdpZnRyZWdpc3RyeS5pdGVtcyAuYWN0aW9ucy10b29sYmFyLFxcbi5mb3JtLndpc2hsaXN0Lml0ZW1zIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4uYWJzLWFkZC1maWVsZHMgLmFjdGlvbi5yZW1vdmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb24ucmVtb3ZlLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gICAgbWFyZ2luLWxlZnQ6IDczJTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDM0cHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmZpZWxkIC5jb250cm9sLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuZmllbGRzZXQgLmZpZWxkIC5jb250cm9sLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wge1xcbiAgICB3aWR0aDogNzAlXFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5LFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnksXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnksXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5LFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnkge1xcbiAgICBmbG9hdDogbGVmdFxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uLmFkZCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYWRkLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYWRkLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uLmFkZCxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYWRkIHtcXG4gICAgbWFyZ2luLXRvcDogMzBweFxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmZpZWxkc2V0IC5maWVsZHMgLmFjdGlvbnMtdG9vbGJhcixcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmZpZWxkcyAuYWN0aW9ucy10b29sYmFyLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuZmllbGRzZXQgLmZpZWxkcyAuYWN0aW9ucy10b29sYmFyLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmZpZWxkc2V0IC5maWVsZHMgLmFjdGlvbnMtdG9vbGJhcixcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmZpZWxkcyAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWRkaXRpb25hbCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuYWRkaXRpb25hbCxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFkZGl0aW9uYWwsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWRkaXRpb25hbCxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuYWRkaXRpb25hbCB7XFxuICAgIG1hcmdpbi10b3A6IDU1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLm1lc3NhZ2Uubm90aWNlLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5tZXNzYWdlLm5vdGljZSxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLm1lc3NhZ2Uubm90aWNlLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLm1lc3NhZ2Uubm90aWNlLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5tZXNzYWdlLm5vdGljZSB7XFxuICAgIG1hcmdpbjogMzBweCAwIDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWl0ZW1zIC5vcmRlci1naWZ0LW1lc3NhZ2U6bm90KC5leHBhbmRlZC1jb250ZW50KSB7XFxuICAgIGhlaWdodDogMDtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jb2wgLmxhYmVsLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jayAubWV0aG9kcy1zaGlwcGluZyAuaXRlbS1jb250ZW50IC5maWVsZHNldD4ubGVnZW5kLFxcbi5vcGMtd3JhcHBlciAuZm9ybS1kaXNjb3VudCAuZmllbGQgLmxhYmVsLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5wcm9kdWN0LWltYWdlLWNvbnRhaW5lcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC5uYW1lLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5zdG9jayxcXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb24gc3BhbixcXG4uc3BlY2lhbC1wcmljZSAucHJpY2UtbGFiZWwsXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwubGFiZWwucmVtb3ZlIHNwYW4sXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwubGFiZWwucHJvZHVjdCBzcGFuLFxcbi5ibG9jay5yZWxhdGVkIC5maWVsZC5jaG9pY2UgLmxhYmVsLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHkgLmxhYmVsLFxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQgLnRleHQsXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCAuY291bnRlci1sYWJlbCxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLnBhZ2UtdGl0bGUtd3JhcHBlcixcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmZpZWxkLXNlbGVjdC1iaWxsaW5nPi5sYWJlbCxcXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnRzIC5sZWdlbmQsXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAubGVnZW5kLFxcbi5maWVsZHNldCAuZnVsbG5hbWU+LmxhYmVsLFxcbi5maWVsZC5zdHJlZXQgLmZpZWxkLmFkZGl0aW9uYWwgLmxhYmVsLFxcbi5ibG9jay1iYWxhbmNlIC5iYWxhbmNlLXByaWNlLWxhYmVsLFxcbi5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGRzZXQgLmxlZ2VuZC5saW5rcy10aXRsZSxcXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5maWVsZHNldC5naWZ0Y2FyZD4ubGVnZW5kLFxcbi5vcGMtd3JhcHBlciAuZm9ybS1naWZ0Y2FyZC1hY2NvdW50IC5maWVsZCAubGFiZWwsXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5maWVsZHMgLmxhYmVsLFxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IC5maWx0ZXItY291bnQtbGFiZWwsXFxuLnRhYmxlLWNvbXBhcmlzb24gLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0IHNwYW4sXFxuLnByb2R1Y3QtaXRlbXMgLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0IHNwYW4sXFxuLnBhZ2UtbXVsdGlwbGUtd2lzaGxpc3QgLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLWZvcm0gLmZvcm0td2lzaGxpc3Qtc2VhcmNoIC5maWVsZHNldD4ubGVnZW5kLFxcbi5ibG9jay5uZXdzbGV0dGVyIC5sYWJlbCxcXG4ucmV2aWV3LWRhdGUgLnJldmlldy1kZXRhaWxzLWxhYmVsLFxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtZGV0YWlscyAucmF0aW5nLWF2ZXJhZ2UtbGFiZWwsXFxuLmJsb2NrLXJlb3JkZXIgLnByb2R1Y3QtaXRlbSAubGFiZWwsXFxuLmFjdGlvbi5za2lwOm5vdCg6Zm9jdXMpLFxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLmxhYmVsLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLmxhYmVsLFxcbi5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0gLmNvbW1lbnQtYm94IC5sYWJlbCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC5vcHRpb25zIC50b2dnbGU+c3BhbixcXG4uc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uIHNwYW4ge1xcbiAgICBjbGlwOiBhdXRvO1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1hcmdpbjogMDtcXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5hYnMtYWRkLWNsZWFyZml4OmJlZm9yZSxcXG4uYWJzLWFkZC1jbGVhcmZpeDphZnRlcixcXG4uYWJzLWFkZC1maWVsZHMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YmVmb3JlLFxcbi5hYnMtYWRkLWZpZWxkcyAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtZGF0ZS13cmFwOmJlZm9yZSxcXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtZGF0ZS13cmFwOmFmdGVyLFxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnM6YmVmb3JlLFxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrOmJlZm9yZSxcXG4ubXVsdGljaGVja291dCAuYmxvY2s6YWZ0ZXIsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQ6YmVmb3JlLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay1jb250ZW50OmFmdGVyLFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZC5jaG9pY2UgLmxhYmVsOmJlZm9yZSxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5sYWJlbDphZnRlcixcXG4udG9vbGJhcjpiZWZvcmUsXFxuLnRvb2xiYXI6YWZ0ZXIsXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMtaW1hZ2VzOmJlZm9yZSxcXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXM6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1vcHRpb25zOmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0+LnByb2R1Y3Q6YmVmb3JlLFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtPi5wcm9kdWN0OmFmdGVyLFxcbi5jaGVja291dC1jb250YWluZXI6YmVmb3JlLFxcbi5jaGVja291dC1jb250YWluZXI6YWZ0ZXIsXFxuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzczpiZWZvcmUsXFxuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzczphZnRlcixcXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyOmJlZm9yZSxcXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyOmFmdGVyLFxcbi5vcGMtd3JhcHBlciAuZmllbGQuYWRkcmVzc2VzOmJlZm9yZSxcXG4ub3BjLXdyYXBwZXIgLmZpZWxkLmFkZHJlc3NlczphZnRlcixcXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1hZGQtZm9ybTpiZWZvcmUsXFxuLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3QtYWRkLWZvcm06YWZ0ZXIsXFxuLmdpZnQtaXRlbS1ibG9jayAuY29udGVudDpiZWZvcmUsXFxuLmdpZnQtaXRlbS1ibG9jayAuY29udGVudDphZnRlcixcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItZ2lmdC1tZXNzYWdlOmJlZm9yZSxcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItZ2lmdC1tZXNzYWdlOmFmdGVyLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZTpiZWZvcmUsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlOmFmdGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnM6YmVmb3JlLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLmdpZnQtd3JhcHBpbmctbGlzdDpiZWZvcmUsXFxuLmdpZnQtd3JhcHBpbmctbGlzdDphZnRlcixcXG4ub3BjLXdyYXBwZXIgLmRhdGEudGFibGUgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ6YmVmb3JlLFxcbi5vcGMtd3JhcHBlciAuZGF0YS50YWJsZSAuZ2lmdC13cmFwcGluZyAuY29udGVudDphZnRlcixcXG4udGFibGUtb3JkZXItaXRlbXMgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ6YmVmb3JlLFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyAuY29udGVudDphZnRlcixcXG4ub3JkZXItb3B0aW9ucyAucHJvZHVjdDpiZWZvcmUsXFxuLm9yZGVyLW9wdGlvbnMgLnByb2R1Y3Q6YWZ0ZXIsXFxuLm1hcC1wb3B1cCAubWFwLWluZm8tcHJpY2U6YmVmb3JlLFxcbi5tYXAtcG9wdXAgLm1hcC1pbmZvLXByaWNlOmFmdGVyLFxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtZGV0YWlsczpiZWZvcmUsXFxuLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1kZXRhaWxzOmFmdGVyLFxcbi5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFjdGlvbnMtdG9vbGJhcjpiZWZvcmUsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5oZWFkZXIuY29udGVudDpiZWZvcmUsXFxuLmhlYWRlci5jb250ZW50OmFmdGVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjpiZWZvcmUsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNoYXJlIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1lZGl0IC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YmVmb3JlLFxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5mb3JtLnNlbmQuZnJpZW5kIC5maWVsZHNldCAuYWN0aW9ucy10b29sYmFyOmJlZm9yZSxcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uYWJzLWFkZC1jbGVhcmZpeDphZnRlcixcXG4uYWJzLWFkZC1maWVsZHMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWRhdGUtd3JhcDphZnRlcixcXG4ubXVsdGljaGVja291dCAuaXRlbS1vcHRpb25zOmFmdGVyLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jazphZnRlcixcXG4ubXVsdGljaGVja291dCAuYmxvY2stY29udGVudDphZnRlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5sYWJlbDphZnRlcixcXG4udG9vbGJhcjphZnRlcixcXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXM6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyOmFmdGVyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0tb3B0aW9uczphZnRlcixcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbT4ucHJvZHVjdDphZnRlcixcXG4uY2hlY2tvdXQtY29udGFpbmVyOmFmdGVyLFxcbi5jaGVja291dC1vbmVwYWdlLXN1Y2Nlc3M6YWZ0ZXIsXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlcjphZnRlcixcXG4ub3BjLXdyYXBwZXIgLmZpZWxkLmFkZHJlc3NlczphZnRlcixcXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1hZGQtZm9ybTphZnRlcixcXG4uZ2lmdC1pdGVtLWJsb2NrIC5jb250ZW50OmFmdGVyLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5vcmRlci1naWZ0LW1lc3NhZ2U6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlOmFmdGVyLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0IC5pdGVtLW9wdGlvbnM6YWZ0ZXIsXFxuLmdpZnQtd3JhcHBpbmctbGlzdDphZnRlcixcXG4ub3BjLXdyYXBwZXIgLmRhdGEudGFibGUgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ6YWZ0ZXIsXFxuLnRhYmxlLW9yZGVyLWl0ZW1zIC5naWZ0LXdyYXBwaW5nIC5jb250ZW50OmFmdGVyLFxcbi5vcmRlci1vcHRpb25zIC5wcm9kdWN0OmFmdGVyLFxcbi5tYXAtcG9wdXAgLm1hcC1pbmZvLXByaWNlOmFmdGVyLFxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtZGV0YWlsczphZnRlcixcXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLmhlYWRlci5jb250ZW50OmFmdGVyLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmZpZWxkc2V0IC5hY3Rpb25zLXRvb2xiYXI6YWZ0ZXIsXFxuLmZvcm0tY3JlYXRlLXJldHVybiAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlcixcXG4uZm9ybS5zZW5kLmZyaWVuZCAuZmllbGRzZXQgLmFjdGlvbnMtdG9vbGJhcjphZnRlciB7XFxuICAgIGNsZWFyOiBib3RoXFxufVxcblxcbi5hYnMtZmllbGQtZGF0ZSAuY29udHJvbCxcXG4uYWJzLWZpZWxkLXRvb2x0aXAsXFxuLmNvbHVtbnMgLmNvbHVtbi5tYWluLFxcbi5jb2x1bW5zIC5zaWRlYmFyLW1haW4sXFxuLmNvbHVtbnMgLnNpZGViYXItYWRkaXRpb25hbCxcXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuc2t1LFxcbi5wcm9kdWN0LWl0ZW0sXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMtaW1hZ2VzIC5wcm9kdWN0LWl0ZW0sXFxuLnNlYXJjaC1hdXRvY29tcGxldGUsXFxuLmNhcnQtc3VtbWFyeSxcXG4ub3BjLXdyYXBwZXIgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbSxcXG4uc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCxcXG4ub3BjLWJsb2NrLXN1bW1hcnksXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLnNob3csXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5maWVsZC5za3UsXFxuLmZvcm0uc2VhcmNoLmFkdmFuY2VkIC5maWVsZHMucmFuZ2UgLmZpZWxkLmRhdGUgLmNvbnRyb2wsXFxuLmZpZWxkIC5jb250cm9sLl93aXRoLXRvb2x0aXAsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmZpZWxkLmRhdGUgLmNvbnRyb2wge1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbi5hYnMtbmF2aWdhdGlvbi1pY29uOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMzRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbjpiZWZvcmUsXFxuLmFicy1zcGxpdC1idXR0b246YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgZGlzcGxheTogdGFibGVcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b246YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnNwbGl0IHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIGJ1dHRvbi5hY3Rpb24uc3BsaXQge1xcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gYnV0dG9uKy5hY3Rpb24udG9nZ2xlIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gICAgYm9yZGVyLWxlZnQ6IDA7XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnRvZ2dsZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5hY3Rpb24udG9nZ2xlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGUuYWN0aXZlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLmFjdGlvbi50b2dnbGUuYWN0aXZlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphY3RpdmU6YWZ0ZXIge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXMge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNHB4O1xcbiAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5pdGVtcyBsaSB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogM3B4IDVweFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXMgbGk6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xcbiAgICBjdXJzb3I6IHBvaW50ZXJcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLml0ZW1zOmJlZm9yZSxcXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLmFicy1zcGxpdC1idXR0b24gLml0ZW1zOmJlZm9yZSB7XFxuICAgIGJvcmRlcjogNnB4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk5XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5pdGVtczphZnRlciB7XFxuICAgIGJvcmRlcjogN3B4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNiYmIgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk4XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uIC5pdGVtczpiZWZvcmUge1xcbiAgICByaWdodDogMTBweDtcXG4gICAgdG9wOiAtMTJweFxcbn1cXG5cXG4uYWJzLXNwbGl0LWJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICByaWdodDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uLmFjdGl2ZSB7XFxuICAgIG92ZXJmbG93OiB2aXNpYmxlXFxufVxcblxcbi5hYnMtc3BsaXQtYnV0dG9uLmFjdGl2ZSAuaXRlbXMge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcz4uYWN0aW9uLFxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+LmFjdGlvbixcXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0LFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLm1haWx0by5mcmllbmQsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG93aXNobGlzdCxcXG4uYmxvY2stYnVuZGxlLXN1bW1hcnkgLmFjdGlvbi50b3dpc2hsaXN0LFxcbi5wcm9kdWN0LWl0ZW0gLmFjdGlvbi50b3dpc2hsaXN0LFxcbi50YWJsZS1jb21wYXJpc29uIC5hY3Rpb24udG93aXNobGlzdCB7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1ZW07XFxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtYWN0aW9ucy1hZGR0bzpiZWZvcmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLnByb2R1Y3QtYWRkdG8tbGlua3M+LmFjdGlvbjpiZWZvcmUsXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT4uYWN0aW9uOmJlZm9yZSxcXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmU6YmVmb3JlLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbi5zcGxpdDpiZWZvcmUsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24ubWFpbHRvLmZyaWVuZDpiZWZvcmUsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUsXFxuLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUsXFxuLnByb2R1Y3QtaXRlbSAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlLFxcbi50YWJsZS1jb21wYXJpc29uIC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogLTJweCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLnByb2R1Y3QtYWRkdG8tbGlua3M+LmFjdGlvbjpob3ZlcixcXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb246aG92ZXIsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG9jb21wYXJlOmhvdmVyLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbi5zcGxpdDpob3ZlcixcXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi5tYWlsdG8uZnJpZW5kOmhvdmVyLFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLnRvd2lzaGxpc3Q6aG92ZXIsXFxuLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5hY3Rpb24udG93aXNobGlzdDpob3ZlcixcXG4ucHJvZHVjdC1pdGVtIC5hY3Rpb24udG93aXNobGlzdDpob3ZlcixcXG4udGFibGUtY29tcGFyaXNvbiAuYWN0aW9uLnRvd2lzaGxpc3Q6aG92ZXIge1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5wcm9kdWN0LWFkZHRvLWxpbmtzPi5hY3Rpb246YmVmb3JlLFxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+LmFjdGlvbjpiZWZvcmUsXFxuLnByb2R1Y3Qtc29jaWFsLWxpbmtzIC5hY3Rpb24udG9jb21wYXJlOmJlZm9yZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlLFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLm1haWx0by5mcmllbmQ6YmVmb3JlLFxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlLFxcbi5ibG9jay1idW5kbGUtc3VtbWFyeSAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlLFxcbi5wcm9kdWN0LWl0ZW0gLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSxcXG4udGFibGUtY29tcGFyaXNvbiAuYWN0aW9uLnRvd2lzaGxpc3Q6YmVmb3JlIHtcXG4gICAgd2lkdGg6IDE4cHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJveC10b2NhcnQsXFxuLmJveC10b2NhcnQge1xcbiAgICBtYXJnaW46IDAgMCAzMHB4XFxufVxcblxcbi5hYnMtY2FydC1ibG9jaz4udGl0bGUsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0IC50b2dnbGUsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2s+LnRpdGxlLFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrPi50aXRsZSxcXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYmxvY2s+LnRpdGxlLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jaz4udGl0bGUge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDE1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFicy1jYXJ0LWJsb2NrPi50aXRsZTphZnRlcixcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QgLnRvZ2dsZTphZnRlcixcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDIwcHg7XFxuICAgIHRvcDogMTBweFxcbn1cXG5cXG4uYWJzLXRvZ2dsaW5nLXRpdGxlPnNwYW4sXFxuLmFicy1jYXJ0LWJsb2NrPi50aXRsZT5zcGFuLFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdCAudG9nZ2xlPnNwYW4sXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2s+LnRpdGxlPnNwYW4sXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlPnNwYW4sXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrPi50aXRsZT5zcGFuLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jaz4udGl0bGU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5hYnMtdG9nZ2xpbmctdGl0bGU6YWZ0ZXIsXFxuLmFicy1jYXJ0LWJsb2NrPi50aXRsZTphZnRlcixcXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QgLnRvZ2dsZTphZnRlcixcXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAzcHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2ssXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2ssXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jayB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2s+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jaz4udGl0bGU6YWZ0ZXIsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZTphZnRlciB7XFxuICAgIGNvbG9yOiAjODU4NTg1XFxufVxcblxcbi5hYnMtZGlzY291bnQtYmxvY2sgLmJsb2NrIC5jb250ZW50LFxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5jb250ZW50LFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jayAuY29udGVudCxcXG4uY2FydC1kaXNjb3VudCAuYmxvY2sgLmNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBwYWRkaW5nOiA1cHggMTVweCAyM3B4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmFicy1jYXJ0LWJsb2NrLmFjdGl2ZT4udGl0bGU6YWZ0ZXIsXFxuLmFicy1kaXNjb3VudC1ibG9jayAuYmxvY2suYWN0aXZlPi50aXRsZTphZnRlcixcXG4uY2FydC1zdW1tYXJ5IC5ibG9jay5hY3RpdmU+LnRpdGxlOmFmdGVyLFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jay5hY3RpdmU+LnRpdGxlOmFmdGVyLFxcbi5jYXJ0LWRpc2NvdW50IC5ibG9jay5hY3RpdmU+LnRpdGxlOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4uYWJzLWRpc2NvdW50LWJsb2NrIC5ibG9jay5hY3RpdmUgLmNvbnRlbnQsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2suYWN0aXZlIC5jb250ZW50LFxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jay5hY3RpdmUgLmNvbnRlbnQsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrLmFjdGl2ZSAuY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jYXJ0LXByaWNlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmFicy1hY2NvdW50LWJsb2NrcyAuYmxvY2stdGl0bGUsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLXRpdGxlLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay1jb250ZW50IC50aXRsZSxcXG4uYWNjb3VudCAubGVnZW5kLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zZWFyY2ggLmxlZ2VuZCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmJsb2NrLXRpdGxlLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5ibG9jay10aXRsZSxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLWZvcm0gLmJsb2NrLXRpdGxlLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuYmxvY2stdGl0bGUsXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLnRpdGxlLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZSxcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmJsb2NrLXRpdGxlLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGUsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uYWJzLWFjY291bnQtYmxvY2tzIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmFicy1hY2NvdW50LWJsb2NrcyAuYmxvY2stdGl0bGU+c3BhbixcXG4ubXVsdGljaGVja291dCAuYmxvY2stdGl0bGU+c3Ryb25nLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZT5zcGFuLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay1jb250ZW50IC50aXRsZT5zdHJvbmcsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLnRpdGxlPnNwYW4sXFxuLmFjY291bnQgLmxlZ2VuZD5zdHJvbmcsXFxuLmFjY291bnQgLmxlZ2VuZD5zcGFuLFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zZWFyY2ggLmxlZ2VuZD5zdHJvbmcsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCAubGVnZW5kPnNwYW4sXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5ibG9jay10aXRsZT5zcGFuLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLmJsb2NrLXRpdGxlPnNwYW4sXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1mb3JtIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1mb3JtIC5ibG9jay10aXRsZT5zcGFuLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuYmxvY2stdGl0bGU+c3Ryb25nLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuYmxvY2stdGl0bGU+c3BhbixcXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAudGl0bGU+c3Ryb25nLFxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC50aXRsZT5zcGFuLFxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLXRpdGxlPnNwYW4sXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLnBheXBhbC1yZXZpZXcgLmJsb2NrIC5ibG9jay10aXRsZT5zcGFuLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPnNwYW4sXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPnN0cm9uZyxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU+c3BhbixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU+c3Ryb25nLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZT5zcGFuLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ibG9jay10aXRsZT5zdHJvbmcsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPnNwYW4ge1xcbiAgICBmb250LXNpemU6IDIuMnJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgYWRkcmVzcyxcXG4uYm94LWJpbGxpbmctYWRkcmVzcyAuYm94LWNvbnRlbnQsXFxuLmJveC1zaGlwcGluZy1hZGRyZXNzIC5ib3gtY29udGVudCxcXG4uYm94LWFkZHJlc3MtYmlsbGluZyAuYm94LWNvbnRlbnQsXFxuLmJveC1hZGRyZXNzLXNoaXBwaW5nIC5ib3gtY29udGVudCxcXG4uYm94LWluZm9ybWF0aW9uIC5ib3gtY29udGVudCxcXG4uYm94LW5ld3NsZXR0ZXIgLmJveC1jb250ZW50IHtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgdGZvb3QgdGQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1XFxufVxcblxcbi5wYXlwYWwtcmV2aWV3IC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5wYXlwYWwtcmV2aWV3IC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnN1YnRvdGFsIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICBjb2xvcjogIzY2NjtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBsaW5lLWhlaWdodDogMTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY29sLnN1YnRvdGFsIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggLnByaWNlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wubXNycCAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5zdWJ0b3RhbCAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5zdWJ0b3RhbCAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZHNldC1idW5kbGUtb3B0aW9ucyAuZmllbGQuY2hvaWNlIC5wcmljZS1ub3RpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LWJ1bmRsZS1vcHRpb25zIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5wcmljZS1ub3RpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAucHJpY2Utbm90aWNlIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5jYXJ0LXN1bW1hcnkgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuLmNhcnQtc3VtbWFyeSAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uZ2lmdC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5naWZ0LXN1bW1hcnkgLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLmdpZnQtb3B0aW9ucyAucHJpY2UtaW5jbHVkaW5nLXRheCxcXG4uZ2lmdC1vcHRpb25zIC5wcmljZS1leGNsdWRpbmctdGF4IHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGRzZXQtYnVuZGxlLW9wdGlvbnMgLmZpZWxkLmNob2ljZSAucHJpY2Utbm90aWNlIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4uY2FydC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5naWZ0LXN1bW1hcnkgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLmdpZnQtb3B0aW9ucyAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCB7XFxuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LWJ1bmRsZS1vcHRpb25zIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDpiZWZvcmUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAucHJpY2Utbm90aWNlIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4uY2FydC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4uZ2lmdC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4uZ2lmdC1vcHRpb25zIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICcoJyBhdHRyKGRhdGEtbGFiZWwpICc6ICdcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LWJ1bmRsZS1vcHRpb25zIC5maWVsZC5jaG9pY2UgLnByaWNlLW5vdGljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDphZnRlcixcXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIC5wcmljZS1ub3RpY2UgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXg6YWZ0ZXIsXFxuLmNhcnQtc3VtbWFyeSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDphZnRlcixcXG4uZ2lmdC1zdW1tYXJ5IC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4OmFmdGVyLFxcbi5naWZ0LW9wdGlvbnMgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXg6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnKSdcXG59XFxuXFxuLnByaWNlLWluY2x1ZGluZy10YXggLmNhcnQtdGF4LXRvdGFsLFxcbi5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbCxcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY2FydC10YXgtdG90YWwsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY2FydC10YXgtdG90YWwsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNhcnQtdGF4LXRvdGFsIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtdGF4LXRvdGFsOmFmdGVyLFxcbi5wcmljZS1pbmNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbDphZnRlcixcXG4ucHJpY2UtZXhjbHVkaW5nLXRheCAuY2FydC10YXgtdG90YWw6YWZ0ZXIsXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNhcnQtdGF4LXRvdGFsOmFmdGVyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNhcnQtdGF4LXRvdGFsOmFmdGVyLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jYXJ0LXRheC10b3RhbDphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDhweDtcXG4gICAgbGluZS1oZWlnaHQ6IDhweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogM3B4IDAgMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnByaWNlLWluY2x1ZGluZy10YXggLmNhcnQtdGF4LXRvdGFsOmFmdGVyLFxcbi5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbDphZnRlcixcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY2FydC10YXgtdG90YWw6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY2FydC10YXgtdG90YWw6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNhcnQtdGF4LXRvdGFsOmFmdGVyIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogLTJweDtcXG4gICAgdG9wOiA0cHhcXG59XFxuXFxuLmFicy10YXgtdG90YWwtZXhwYW5kZWQ6YWZ0ZXIsXFxuLnByaWNlLWluY2x1ZGluZy10YXggLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkOmFmdGVyLFxcbi5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXRheC10b3RhbC1leHBhbmRlZDphZnRlcixcXG4ucGF5cGFsLXJldmlldyAudGFibGUtcGF5cGFsLXJldmlldy1pdGVtcyAuY2FydC10YXgtdG90YWwtZXhwYW5kZWQ6YWZ0ZXIsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY2FydC10YXgtdG90YWwtZXhwYW5kZWQ6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNhcnQtdGF4LXRvdGFsLWV4cGFuZGVkOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4uZ2lmdGNhcmQtYWNjb3VudCAuZm9ybS1naWZ0Y2FyZC1yZWRlZW0gLmZpZWxkc2V0LFxcbi5mb3JtLWdpZnRyZWdpc3RyeS1jcmVhdGUgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3MgLnJhdGluZy1zdW1tYXJ5LFxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIC5yYXRpbmctc3VtbWFyeSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvd1xcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3MgLnJhdGluZy1sYWJlbCxcXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAuY3VzdG9tZXItcmV2aWV3LXJhdGluZyAucmF0aW5nLWxhYmVsIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcXG4gICAgcGFkZGluZy10b3A6IDFweDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3MgLnJhdGluZy1yZXN1bHQsXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcgLnJhdGluZy1yZXN1bHQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzIC5pdGVtLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG4uYWNjb3VudCAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjphZnRlcixcXG4uYmxvY2sgLmJveC1hY3Rpb25zIC5hY3Rpb246YWZ0ZXIge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNhNmE2YTY7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGhlaWdodDogMTJweDtcXG4gICAgbWFyZ2luOiAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiAtMXB4XFxufVxcblxcbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzIC5pdGVtLmFjdGlvbnMgLmFjdGlvbjpsYXN0LWNoaWxkOmFmdGVyLFxcbi5hY2NvdW50IC5kYXRhLnRhYmxlIC5jb2wuYWN0aW9ucyAuYWN0aW9uOmxhc3QtY2hpbGQ6YWZ0ZXIsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmRhdGEudGFibGUgLmNvbC5hY3Rpb25zIC5hY3Rpb246bGFzdC1jaGlsZDphZnRlcixcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbjpsYXN0LWNoaWxkOmFmdGVyLFxcbi5ibG9jayAuYm94LWFjdGlvbnMgLmFjdGlvbjpsYXN0LWNoaWxkOmFmdGVyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYmxvY2stdGl0bGU+LmFjdGlvbixcXG4ucGF5cGFsLXJldmlldyAuYmxvY2sgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24sXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24ge1xcbiAgICBtYXJnaW4tbGVmdDogMTVweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LXRpdGxlLFxcbi5wYXlwYWwtcmV2aWV3IC5ibG9jayAuYm94LXRpdGxlLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGUsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZSxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYm94LXRpdGxlLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDEwcHhcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJveC10aXRsZT5zcGFuLFxcbi5wYXlwYWwtcmV2aWV3IC5ibG9jayAuYm94LXRpdGxlPnNwYW4sXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT5zcGFuLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGU+c3BhbixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYm94LXRpdGxlPnNwYW4sXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT5zcGFuIHtcXG4gICAgZm9udC1zaXplOiAxLjZyZW1cXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJveC10aXRsZT4uYWN0aW9uLFxcbi5wYXlwYWwtcmV2aWV3IC5ibG9jayAuYm94LXRpdGxlPi5hY3Rpb24sXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT4uYWN0aW9uLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAuYmxvY2s6bm90KC53aWRnZXQpIC5ib3gtdGl0bGU+LmFjdGlvbixcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYm94LXRpdGxlPi5hY3Rpb24sXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJveC10aXRsZT4uYWN0aW9uIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHhcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5zdWJ0b3RhbCAubGFiZWw6YWZ0ZXIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5kZXRhaWxzLXF0eSAubGFiZWw6YWZ0ZXIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcmljZS1taW5pY2FydCAubGFiZWw6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAubGFiZWw6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlIC5sYWJlbDphZnRlcixcXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lLWxhYmVsOmFmdGVyIHtcXG4gICAgY29udGVudDogJzogJ1xcbn1cXG5cXG4uYWJzLWRyb3Bkb3duLWl0ZW1zLW5ldyAuYWN0aW9uLm5ldyxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24ubmV3LFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLm5ldyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hYnMtaWNvbi1hZGQ6YmVmb3JlLFxcbi5hYnMtZHJvcGRvd24taXRlbXMtbmV3IC5hY3Rpb24ubmV3OmJlZm9yZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24ubmV3OmJlZm9yZSxcXG4ud2lzaGxpc3QtZHJvcGRvd24gLmFjdGlvbi5uZXc6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUMnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXMgLml0ZW06bGFzdC1jaGlsZDpob3ZlcixcXG4ud2lzaGxpc3QtZHJvcGRvd24gLml0ZW1zIC5pdGVtOmxhc3QtY2hpbGQ6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4XFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi5uZXc6YmVmb3JlLFxcbi53aXNobGlzdC1kcm9wZG93biAuYWN0aW9uLm5ldzpiZWZvcmUge1xcbiAgICBtYXJnaW4tbGVmdDogLTE3cHg7XFxuICAgIG1hcmdpbi1yaWdodDogNXB4XFxufVxcblxcbi5hYnMtc2lkZWJhci10b3RhbHMgLnRhYmxlLWNhcHRpb24sXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrIC5tZXRob2RzLXNoaXBwaW5nIC5pdGVtLWNvbnRlbnQgLmZpZWxkc2V0Pi5sZWdlbmQrYnIsXFxuLm11bHRpY2hlY2tvdXQgLmhpZGRlbixcXG5bY2xhc3NePSdtdWx0aXNoaXBwaW5nLSddIC5uYXYtc2VjdGlvbnMsXFxuW2NsYXNzXj0nbXVsdGlzaGlwcGluZy0nXSAubmF2LXRvZ2dsZSxcXG4uc2lkZWJhciAuc3VidGl0bGUsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmZpZWxkc2V0LmVzdGltYXRlPi5sZWdlbmQsXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmZpZWxkc2V0LmVzdGltYXRlPi5sZWdlbmQrYnIsXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyAud2VlZVtkYXRhLWxhYmVsXSAubGFiZWwsXFxuLnBhZ2UtcHJvZHVjdC1naWZ0Y2FyZCAuZmllbGRzZXQuZ2lmdGNhcmQ+LmxlZ2VuZCticixcXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAuYWN0aW9uLmNsb3NlLFxcbi5uby1kaXNwbGF5LFxcbi5jYXJ0LXRvdGFscyAudGFibGUtY2FwdGlvbixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudGFibGUtY2FwdGlvbiB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnJldHVybi1zdGF0dXMsXFxuLm9yZGVyLXN0YXR1cyB7XFxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW46IDNweCAwIDA7XFxuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5tYWdlbnRvLXJtYS1yZXR1cm5zLXJldHVybnMgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbi5tYWdlbnRvLXJtYS1yZXR1cm5zLXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4uYWNjb3VudCAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHhcXG59XFxuXFxuLm1hZ2VudG8tcm1hLXJldHVybnMtcmV0dXJucyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUsXFxuLm1hZ2VudG8tcm1hLXJldHVybnMtdmlldyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlLFxcbi5hY2NvdW50IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSB7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ubWFnZW50by1ybWEtcmV0dXJucy1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSAubGFiZWwsXFxuLm1hZ2VudG8tcm1hLXJldHVybnMtdmlldyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUgLmxhYmVsLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSAubGFiZWwsXFxuLmFjY291bnQgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlIC5sYWJlbCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLWRhdGUgLmxhYmVsLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItZGF0ZSAubGFiZWwsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1kYXRlIC5sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZSxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUge1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLmFicy10YWJsZS1zdHJpcGVkPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50ZCxcXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRoLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGQsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50aCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRkLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGgsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50ZCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRoLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGQsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50aCxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLXJlc3VsdHMgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRkLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50Ym9keT50cjpudGgtY2hpbGQoZXZlbik+dGgsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyOm50aC1jaGlsZChldmVuKT50ZCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pPnRoIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNlxcbn1cXG5cXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGhlYWQ+dHI+dGgsXFxuLmFicy10YWJsZS1zdHJpcGVkPnRib2R5PnRyPnRoLFxcbi5hYnMtdGFibGUtc3RyaXBlZD50Zm9vdD50cj50aCxcXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGhlYWQ+dHI+dGQsXFxuLmFicy10YWJsZS1zdHJpcGVkPnRib2R5PnRyPnRkLFxcbi5hYnMtdGFibGUtc3RyaXBlZD50Zm9vdD50cj50ZCxcXG4uYWNjb3VudCAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uYWNjb3VudCAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG5bY2xhc3NePSdzYWxlcy1ndWVzdC0nXSAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5zYWxlcy1ndWVzdC12aWV3IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4uYmxvY2std2lzaGxpc3Qtc2VhcmNoLXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1yZXN1bHRzIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRoLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50aCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRib2R5PnRyPnRkLFxcbi5tYWdlbnRvLXJtYS1ndWVzdC1yZXR1cm5zIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50Zm9vdD50cj50ZCB7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uYWJzLXRhYmxlLXN0cmlwZWQ+dGhlYWQ+dHI+dGgsXFxuLmFicy10YWJsZS1zdHJpcGVkPnRoZWFkPnRyPnRkLFxcbi5hY2NvdW50IC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50aGVhZD50cj50aCxcXG4uYWNjb3VudCAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRoLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZT50aGVhZD50cj50ZCxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLnNhbGVzLWd1ZXN0LXZpZXcgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRkLFxcbi5ibG9jay1naWZ0cmVnaXN0cnktcmVzdWx0cyAuZGF0YS50YWJsZT50aGVhZD50cj50aCxcXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXJlc3VsdHMgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGQsXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaC1yZXN1bHRzIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRoLFxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAuZGF0YS50YWJsZT50aGVhZD50cj50ZCxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtcmV0dXJucyAuY29sdW1uLm1haW4gLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGU+dGhlYWQ+dHI+dGgsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LXJldHVybnMgLmNvbHVtbi5tYWluIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlPnRoZWFkPnRyPnRkIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmJsb2NrLWNvbXBhcmUgLmNvdW50ZXIsXFxuLmJsb2NrLXdpc2hsaXN0IC5jb3VudGVyIHtcXG4gICAgY29sb3I6ICM2ZDZkNmQ7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5jb3VudGVyOmJlZm9yZSxcXG4uYmxvY2std2lzaGxpc3QgLmNvdW50ZXI6YmVmb3JlIHtcXG4gICAgY29udGVudDogJygnXFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5jb3VudGVyOmFmdGVyLFxcbi5ibG9jay13aXNobGlzdCAuY291bnRlcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcpJ1xcbn1cXG5cXG4uYmxvY2stY29tcGFyZSAuYmxvY2stdGl0bGUsXFxuLmJsb2NrLXJlb3JkZXIgLmJsb2NrLXRpdGxlLFxcbi53aWRnZXQgLmJsb2NrLXRpdGxlLFxcbi5ibG9jay13aXNobGlzdCAuYmxvY2stdGl0bGUge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5ibG9jay10aXRsZSBzdHJvbmcsXFxuLmJsb2NrLXJlb3JkZXIgLmJsb2NrLXRpdGxlIHN0cm9uZyxcXG4ud2lkZ2V0IC5ibG9jay10aXRsZSBzdHJvbmcsXFxuLmJsb2NrLXdpc2hsaXN0IC5ibG9jay10aXRsZSBzdHJvbmcge1xcbiAgICBmb250LXNpemU6IDE4cHg7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLWNhcnQtZmFpbGVkLFxcbi5jYXJ0LWNvbnRhaW5lciAuZm9ybS1jYXJ0IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYmxvY2stY2FydC1mYWlsZWQgLmFjdGlvbnMubWFpbiAuY29udGludWUsXFxuLmJsb2NrLWNhcnQtZmFpbGVkIC5hY3Rpb25zLm1haW4gLmNsZWFyLFxcbi5jYXJ0LWNvbnRhaW5lciAuZm9ybS1jYXJ0IC5hY3Rpb25zLm1haW4gLmNvbnRpbnVlLFxcbi5jYXJ0LWNvbnRhaW5lciAuZm9ybS1jYXJ0IC5hY3Rpb25zLm1haW4gLmNsZWFyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQuZGF0ZSAuY29udHJvbCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGQuZGF0ZSAuY29udHJvbCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uYWJzLWZpZWxkLWRhdGUgaW5wdXQsXFxuLmZpZWxkLmRhdGUgLl9oYXMtZGF0ZXBpY2tlcixcXG4uZmllbGQtZG9iIC5faGFzLWRhdGVwaWNrZXIsXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCAuZmllbGRzLXNwZWNpZmljLW9wdGlvbnMgLmRhdGV0aW1lLXBpY2tlcixcXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQuZGF0ZSBpbnB1dCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGQuZGF0ZSBpbnB1dCB7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMzcHgpXFxufVxcblxcbi5maWVsZCAuY29udHJvbC5fd2l0aC10b29sdGlwIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5maWVsZCAuY29udHJvbC5fd2l0aC10b29sdGlwIGlucHV0IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzZweClcXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50LFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcXG4gICAgcmlnaHQ6IC0xMHB4O1xcbiAgICB0b3A6IDQwcHg7XFxuICAgIGxlZnQ6IGF1dG9cXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIsXFxuLnNoaXBwaW5nLXBvbGljeS1ibG9jay5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcXG4gICAgYm9yZGVyOiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHdpZHRoOiAwO1xcbiAgICBtYXJnaW4tdG9wOiAtMjFweDtcXG4gICAgcmlnaHQ6IDEwcHg7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHRvcDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICM2NjZcXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyLFxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2Y0ZjRmNDtcXG4gICAgdG9wOiAxcHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zdGVwLXRpdGxlLFxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlLFxcbi5vcGMtYmxvY2stc3VtbWFyeT4udGl0bGUsXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtaXRlbXMgLmNoZWNrb3V0LWFncmVlbWVudHMtaXRlbS10aXRsZSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgZm9udC1zaXplOiAyLjZyZW1cXG59XFxuXFxuLmNhcnQtdG90YWxzLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmctdG9wOiAxMHB4XFxufVxcblxcbi5jYXJ0LXRvdGFscyB0Ym9keSAubWFyayxcXG4uY2FydC10b3RhbHMgdGZvb3QgLm1hcmssXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGJvZHkgLm1hcmssXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGZvb3QgLm1hcmsge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIHBhZGRpbmc6IDZweCAwXFxufVxcblxcbi5jYXJ0LXRvdGFscyB0Ym9keSAuYW1vdW50LFxcbi5jYXJ0LXRvdGFscyB0Zm9vdCAuYW1vdW50LFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIHRib2R5IC5hbW91bnQsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGZvb3QgLmFtb3VudCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgcGFkZGluZzogNnB4IDAgNnB4IDE0cHg7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi5jYXJ0LXRvdGFscyAuZ3JhbmQgdGgsXFxuLmNhcnQtdG90YWxzIC5ncmFuZCB0ZCxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAuZ3JhbmQgdGgsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgLmdyYW5kIHRkIHtcXG4gICAgcGFkZGluZzogMTFweCAwXFxufVxcblxcbi5jYXJ0LXRvdGFscyAuZ3JhbmQgc3Ryb25nLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC5ncmFuZCBzdHJvbmcge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIHBhZGRpbmc6IDNweCAwIDBcXG59XFxuXFxuLmNhcnQtdG90YWxzIC5ncmFuZCAubWFyayxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAuZ3JhbmQgLm1hcmsge1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHhcXG59XFxuXFxuLmNhcnQtdG90YWxzIC5ncmFuZCAuYW1vdW50LFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC5ncmFuZCAuYW1vdW50IHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjXFxufVxcblxcbi5jYXJ0LXRvdGFscyAubXNycCxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAubXNycCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLmNhcnQtdG90YWxzIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxOXB4XFxufVxcblxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5tYXJrLFxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAubWFyayxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZSxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQgLnByaWNlIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYWJzLXNpZGViYXItdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkgLmFtb3VudCAucHJpY2U+c3BhbixcXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZT5zcGFuLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkgLmFtb3VudCAucHJpY2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5hYnMtc2lkZWJhci10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZTphZnRlcixcXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZTphZnRlcixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5IC5hbW91bnQgLnByaWNlOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEycHg7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmNhcnQtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkgLmFtb3VudCAucHJpY2U6YWZ0ZXIsXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC50YWJsZS10b3RhbHMgLnRvdGFscy10YXgtc3VtbWFyeSAuYW1vdW50IC5wcmljZTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDNweDtcXG4gICAgdG9wOiAzcHhcXG59XFxuXFxuLmNhcnQtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLm1hcmssXFxuLmNhcnQtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLmFtb3VudCxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5LmV4cGFuZGVkIC5tYXJrLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLmFtb3VudCB7XFxuICAgIGJvcmRlci1ib3R0b206IDBcXG59XFxuXFxuLmFicy1zaWRlYmFyLXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5LmV4cGFuZGVkIC5hbW91bnQgLnByaWNlOmFmdGVyLFxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1zdW1tYXJ5LmV4cGFuZGVkIC5hbW91bnQgLnByaWNlOmFmdGVyLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LXN1bW1hcnkuZXhwYW5kZWQgLmFtb3VudCAucHJpY2U6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxufVxcblxcbi5jYXJ0LXRvdGFscyAudG90YWxzLXRheC1kZXRhaWxzLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAudGFibGUtdG90YWxzIC50b3RhbHMtdGF4LWRldGFpbHMge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uY2FydC10b3RhbHMgLnRvdGFscy10YXgtZGV0YWlscy5zaG93bixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudG90YWxzLXRheC1kZXRhaWxzLnNob3duIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93XFxufVxcblxcbi5jYXJ0LXRvdGFscyAudGFibGUtd3JhcHBlcixcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnRhYmxlLXRvdGFscyAudGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrPi50aXRsZSBzdHJvbmcsXFxuLmNhcnQtZGlzY291bnQgLmJsb2NrPi50aXRsZSBzdHJvbmcge1xcbiAgICBjb2xvcjogIzE5NzljMztcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aWR0aDogMSVcXG59XFxuXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnksXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNhbmNlbCxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbWFyeSxcXG4uY2FydC1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcXG4gICAgbWFyZ2luOiAwIDAgMCAtMXB4O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9ucy10b29sYmFyIC5zZWNvbmRhcnksXFxuLmNhcnQtZGlzY291bnQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IHtcXG4gICAgYm90dG9tOiA1cHg7XFxuICAgIGxlZnQ6IDE1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxcbn1cXG5cXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCAuYWN0aW9uLmNoZWNrLFxcbi5jYXJ0LWRpc2NvdW50IC5hY3Rpb24uY2hlY2sge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5maWVsZHNldCxcXG4uY2FydC1kaXNjb3VudCAuZmllbGRzZXQge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmZpZWxkc2V0Pi5maWVsZD4ubGFiZWwsXFxuLmNhcnQtZGlzY291bnQgLmZpZWxkc2V0Pi5maWVsZD4ubGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5maWVsZCxcXG4uY2FydC1kaXNjb3VudCAuZmllbGQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsXFxufVxcblxcbkBmb250LWZhY2Uge1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XFxuICAgIHNyYzogdXJsKFwiICsgcmVxdWlyZShcIi4uLy4uLy4uL2ZvbnRzL29wZW5zYW5zL2xpZ2h0L29wZW5zYW5zLTMwMC53b2ZmMlwiKSArIFwiKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxcbn1cXG5cXG5AZm9udC1mYWNlIHtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xcbiAgICBzcmM6IHVybChcIiArIHJlcXVpcmUoXCIuLi8uLi8uLi9mb250cy9vcGVuc2Fucy9yZWd1bGFyL29wZW5zYW5zLTQwMC53b2ZmMlwiKSArIFwiKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxcbn1cXG5cXG5AZm9udC1mYWNlIHtcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnO1xcbiAgICBzcmM6IHVybChcIiArIHJlcXVpcmUoXCIuLi8uLi8uLi9mb250cy9vcGVuc2Fucy9zZW1pYm9sZC9vcGVuc2Fucy02MDAud29mZjJcIikgKyBcIikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuQGZvbnQtZmFjZSB7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJztcXG4gICAgc3JjOiB1cmwoXCIgKyByZXF1aXJlKFwiLi4vLi4vLi4vZm9udHMvb3BlbnNhbnMvYm9sZC9vcGVuc2Fucy03MDAud29mZjJcIikgKyBcIikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWxcXG59XFxuXFxuLml0ZW1zIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBsaXN0LXN0eWxlOiBub25lIG5vbmVcXG59XFxuXFxuLmNvbHVtbnMge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcXG4gICAgZmxleC13cmFwOiB3cmFwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbi5jb2x1bW5zOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIGNvbnRlbnQ6ICcgJztcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGhlaWdodDogMDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuXFxufVxcblxcbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XFxuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIGZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xcbiAgICBmbGV4LWdyb3c6IDE7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgICAtd2Via2l0LW9yZGVyOiAxO1xcbiAgICBvcmRlcjogMTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmNvbHVtbnMgLnNpZGViYXItbWFpbiB7XFxuICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xcbiAgICBmbGV4LWdyb3c6IDE7XFxuICAgIC13ZWJraXQtZmxleC1iYXNpczogMTAwJTtcXG4gICAgZmxleC1iYXNpczogMTAwJTtcXG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICAgIC13ZWJraXQtb3JkZXI6IDE7XFxuICAgIG9yZGVyOiAxXFxufVxcblxcbi5jb2x1bW5zIC5zaWRlYmFyLWFkZGl0aW9uYWwge1xcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogMTtcXG4gICAgZmxleC1ncm93OiAxO1xcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIGZsZXgtYmFzaXM6IDEwMCU7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xcbiAgICAtd2Via2l0LW9yZGVyOiAyO1xcbiAgICBvcmRlcjogMlxcbn1cXG5cXG4udGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxudGFibGU+Y2FwdGlvbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi50YWJsZSB0Zm9vdCB7XFxuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjVcXG59XFxuXFxuLnRhYmxlIHRmb290PnRyOmZpcnN0LWNoaWxkIHRoLFxcbi50YWJsZSB0Zm9vdD50cjpmaXJzdC1jaGlsZCB0ZCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4udGFibGUgdGZvb3QgdGgsXFxuLnRhYmxlIHRmb290IHRkIHtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbi50YWJsZSB0Zm9vdCAubWFyayB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0XFxufVxcblxcbi5tZXNzYWdlLmluZm8ge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggMTJweCAyNXB4O1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxLjNyZW07XFxuICAgIGJhY2tncm91bmQ6ICNmZGYwZDU7XFxuICAgIGNvbG9yOiAjNmY0NDAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubWVzc2FnZS5pbmZvIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5pbmZvIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5pbmZvIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1lc3NhZ2UuaW5mbz4qOmZpcnN0LWNoaWxkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgICBjb2xvcjogI2MwNzYwMDtcXG4gICAgY29udGVudDogJ1xcXFxFNjAyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAtMTJweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHRvcDogMjJweDtcXG4gICAgd2lkdGg6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tZXNzYWdlLmVycm9yIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcXG4gICAgcGFkZGluZzogMTJweCAyMHB4IDEycHggMjVweDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xcbiAgICBiYWNrZ3JvdW5kOiAjZmFlNWU1O1xcbiAgICBjb2xvcjogI2UwMmIyNztcXG4gICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLm1lc3NhZ2UuZXJyb3IgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmVycm9yIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5lcnJvciBhOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmVycm9yPio6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICAgIGNvbG9yOiAjYjMwMDAwO1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUYnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IC0xMnB4IDAgMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgbGVmdDogMDtcXG4gICAgdG9wOiAyMnB4O1xcbiAgICB3aWR0aDogNDVweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1lc3NhZ2Uud2FybmluZyB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHBhZGRpbmc6IDEycHggMjBweCAxMnB4IDI1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuM3JlbTtcXG4gICAgYmFja2dyb3VuZDogI2ZkZjBkNTtcXG4gICAgY29sb3I6ICM2ZjQ0MDA7XFxuICAgIHBhZGRpbmctbGVmdDogNDVweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5tZXNzYWdlLndhcm5pbmcgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLndhcm5pbmcgYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLndhcm5pbmcgYTphY3RpdmUge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS53YXJuaW5nPio6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICAgIGNvbG9yOiAjYzA3NjAwO1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IC0xMnB4IDAgMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgbGVmdDogMDtcXG4gICAgdG9wOiAyMnB4O1xcbiAgICB3aWR0aDogNDVweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1lc3NhZ2Uubm90aWNlIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweDtcXG4gICAgcGFkZGluZzogMTJweCAyMHB4IDEycHggMjVweDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xcbiAgICBiYWNrZ3JvdW5kOiAjZmRmMGQ1O1xcbiAgICBjb2xvcjogIzZmNDQwMDtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLm1lc3NhZ2Uubm90aWNlIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5ub3RpY2UgYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLm5vdGljZSBhOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLm5vdGljZT4qOmZpcnN0LWNoaWxkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgICBjb2xvcjogI2MwNzYwMDtcXG4gICAgY29udGVudDogJ1xcXFxFNjAyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAtMTJweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHRvcDogMjJweDtcXG4gICAgd2lkdGg6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tZXNzYWdlLnN1Y2Nlc3Mge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggMTJweCAyNXB4O1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxLjNyZW07XFxuICAgIGJhY2tncm91bmQ6ICNlNWVmZTU7XFxuICAgIGNvbG9yOiAjMDA2NDAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubWVzc2FnZS5zdWNjZXNzIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5zdWNjZXNzIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5zdWNjZXNzIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1lc3NhZ2Uuc3VjY2Vzcz4qOmZpcnN0LWNoaWxkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgICBjb2xvcjogIzAwNjQwMDtcXG4gICAgY29udGVudDogJ1xcXFxFNjBFJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAtMTJweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHRvcDogMjJweDtcXG4gICAgd2lkdGg6IDQ1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYW5lbC5oZWFkZXIgLmxpbmtzLFxcbi5wYW5lbC5oZWFkZXIgLnN3aXRjaGVyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubmF2LXNlY3Rpb25zIHtcXG4gICAgYmFja2dyb3VuZDogI2YwZjBmMFxcbn1cXG5cXG4ubmF2LXRvZ2dsZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIGxlZnQ6IDE1cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxNXB4O1xcbiAgICB6LWluZGV4OiAxNFxcbn1cXG5cXG4ubmF2LXRvZ2dsZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyOHB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwOSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubmF2LXRvZ2dsZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4ubmF2LXRvZ2dsZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xcbiAgICBtaW4td2lkdGg6IDIxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNXB4O1xcbiAgICBsZWZ0OiAwO1xcbiAgICB0b3A6IDEwMCVcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50OmFmdGVyLFxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAwXFxufVxcblxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudDphZnRlciB7XFxuICAgIGJvcmRlci13aWR0aDogNXB4O1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50XFxufVxcblxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXItd2lkdGg6IDZweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQ6YWZ0ZXIsXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvdHRvbTogMTAwJVxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xcbiAgICBsZWZ0OiAxNXB4O1xcbiAgICBtYXJnaW4tbGVmdDogLTVweFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQ6YmVmb3JlIHtcXG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2JiYjtcXG4gICAgbGVmdDogMTVweDtcXG4gICAgbWFyZ2luLWxlZnQ6IC02cHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciB0b29sdGlwLnRvZ2dsZSB7XFxuICAgIGN1cnNvcjogaGVscFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIHRvb2x0aXAudG9nZ2xlOmhvdmVyKy50b29sdGlwLmNvbnRlbnQsXFxuLnRvb2x0aXAud3JhcHBlciB0b29sdGlwLnRvZ2dsZTpmb2N1cysudG9vbHRpcC5jb250ZW50LFxcbi50b29sdGlwLndyYXBwZXI6aG92ZXIgLnRvb2x0aXAuY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi50b29sdGlwLndyYXBwZXIgLnRvb2x0aXAuY29udGVudCBkbCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IGRkIHtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG4udG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQgLnN1YnRpdGxlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IDE2cHg7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDE1cHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IC5sYWJlbCB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IC5sYWJlbDpmaXJzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi10b3A6IDBcXG59XFxuXFxuLnRvb2x0aXAud3JhcHBlciAudG9vbHRpcC5jb250ZW50IC52YWx1ZXMge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnVpLXRvb2x0aXAge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHotaW5kZXg6IDk5OTlcXG59XFxuXFxuLmxvYWQuaW5kaWNhdG9yIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xcbiAgICB6LWluZGV4OiA5OTk5O1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlXFxufVxcblxcbi5sb2FkLmluZGljYXRvcjpiZWZvcmUge1xcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICAgIGhlaWdodDogMTYwcHg7XFxuICAgIHdpZHRoOiAxNjBweDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgbGVmdDogMDtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDBcXG59XFxuXFxuLmxvYWQuaW5kaWNhdG9yPnNwYW4ge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5sb2FkaW5nLW1hc2sge1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIG1hcmdpbjogYXV0bztcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwO1xcbiAgICB6LWluZGV4OiAxMDA7XFxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KVxcbn1cXG5cXG4ubG9hZGluZy1tYXNrIC5sb2FkZXI+aW1nIHtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgei1pbmRleDogMTAwXFxufVxcblxcbi5sb2FkaW5nLW1hc2sgLmxvYWRlcj5wIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG5ib2R5Pi5sb2FkaW5nLW1hc2sge1xcbiAgICB6LWluZGV4OiA5OTk5XFxufVxcblxcbi5fYmxvY2stY29udGVudC1sb2FkaW5nIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5maWVsZHNldCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgbWFyZ2luOiAwIDAgNDBweDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0uMzFlbVxcbn1cXG5cXG4uZmllbGRzZXQ+KiB7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWxcXG59XFxuXFxuLmZpZWxkc2V0Pi5sZWdlbmQge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xcbiAgICBwYWRkaW5nOiAwIDAgMTBweDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4yO1xcbiAgICBmb250LXNpemU6IDEuOHJlbVxcbn1cXG5cXG4uZmllbGRzZXQ+LmxlZ2VuZCticiB7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW5cXG59XFxuXFxuLmZpZWxkc2V0Omxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkPi5sYWJlbCxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQ+LmxhYmVsIHtcXG4gICAgbWFyZ2luOiAwIDAgOHB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZDpsYXN0LWNoaWxkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZDpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkPi5sYWJlbCxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQ+LmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkPi5sYWJlbCticixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQ+LmxhYmVsK2JyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5jaG9pY2UgaW5wdXQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5jaG9pY2UgaW5wdXQge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cDpiZWZvcmUsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXA6YmVmb3JlLFxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cDphZnRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmZpZWxkcy5ncm91cDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXA6YWZ0ZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXA6YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXAgLmZpZWxkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuZmllbGRzLmdyb3VwIC5maWVsZCB7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cC5ncm91cC0yIC5maWVsZCxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmZpZWxkcy5ncm91cC5ncm91cC0yIC5maWVsZCB7XFxuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtMyAuZmllbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtMyAuZmllbGQge1xcbiAgICB3aWR0aDogMzMuMyUgIWltcG9ydGFudFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtNCAuZmllbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZHMuZ3JvdXAuZ3JvdXAtNCAuZmllbGQge1xcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnRcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuZmllbGRzLmdyb3VwLmdyb3VwLTUgLmZpZWxkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuZmllbGRzLmdyb3VwLmdyb3VwLTUgLmZpZWxkIHtcXG4gICAgd2lkdGg6IDIwJSAhaW1wb3J0YW50XFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmFkZG9uLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24ge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gdGV4dGFyZWEsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiB0ZXh0YXJlYSxcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiBzZWxlY3QsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiBzZWxlY3QsXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gaW5wdXQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiBpbnB1dCB7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAyO1xcbiAgICAtd2Via2l0LW9yZGVyOiAyO1xcbiAgICBvcmRlcjogMjtcXG4gICAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxMDAlO1xcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZSxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmFkZG9uIC5hZGRiZWZvcmUsXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gLmFkZGFmdGVyLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGFmdGVyIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MyYzJjMjtcXG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgcGFkZGluZzogMCA5cHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAzO1xcbiAgICAtd2Via2l0LW9yZGVyOiAzO1xcbiAgICBvcmRlcjogMztcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOmRpc2FibGVkLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZTpkaXNhYmxlZCxcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6ZGlzYWJsZWQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOjotbW96LXBsYWNlaG9sZGVyLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZTo6LW1vei1wbGFjZWhvbGRlcixcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi1tb3otcGxhY2Vob2xkZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgICBjb2xvcjogIzU3NTc1N1xcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgICBjb2xvcjogIzU3NTc1N1xcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5hZGRvbiAuYWRkYmVmb3JlOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmFkZG9uIC5hZGRiZWZvcmU6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbi5maWVsZHNldD4uZmllbGQgLmFkZG9uIC5hZGRhZnRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRvbiAuYWRkYWZ0ZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuYWRkb24gLmFkZGJlZm9yZSxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmFkZG9uIC5hZGRiZWZvcmUge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICAgIC13ZWJraXQtb3JkZXI6IDE7XFxuICAgIG9yZGVyOiAxXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmFkZGl0aW9uYWwsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5hZGRpdGlvbmFsIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkLnJlcXVpcmVkPi5sYWJlbDphZnRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQucmVxdWlyZWQ+LmxhYmVsOmFmdGVyLFxcbi5maWVsZHNldD4uZmllbGQuX3JlcXVpcmVkPi5sYWJlbDphZnRlcixcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQuX3JlcXVpcmVkPi5sYWJlbDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcqJztcXG4gICAgY29sb3I6ICNlMDJiMjc7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBtYXJnaW46IDAgMCAwIDVweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkIC5ub3RlLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAubm90ZSB7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBtYXJnaW46IDNweCAwIDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLm5vdGU6YmVmb3JlLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZCAubm90ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICBsaW5lLWhlaWdodDogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQubm8tbGFiZWw+LmxhYmVsLFxcbi5maWVsZHNldD4uZmllbGRzPi5maWVsZC5uby1sYWJlbD4ubGFiZWwge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uZmllbGRzZXQ+LmZpZWxkLmNob2ljZSAubGFiZWwsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkLmNob2ljZSAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uY29sdW1uOm5vdCgubWFpbikgLmZpZWxkc2V0Pi5maWVsZCAubGFiZWwsXFxuLmNvbHVtbjpub3QoLm1haW4pIC5maWVsZHNldD4uZmllbGRzPi5maWVsZCAubGFiZWwge1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsXFxufVxcblxcbi5maWVsZHNldD4uZmllbGQgLmZpZWxkLmNob2ljZSxcXG4uZmllbGRzZXQ+LmZpZWxkcz4uZmllbGQgLmZpZWxkLmNob2ljZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLmZpZWxkc2V0Pi5maWVsZCAuZmllbGQuY2hvaWNlOmxhc3QtY2hpbGQsXFxuLmZpZWxkc2V0Pi5maWVsZHM+LmZpZWxkIC5maWVsZC5jaG9pY2U6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmxlZ2VuZCsuZmllbGRzZXQsXFxuLmxlZ2VuZCtkaXYge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ubGVnZW5kPnNwYW4ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweFxcbn1cXG5cXG5maWVsZHNldC5maWVsZCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uZmllbGQuZGF0ZSAudGltZS1waWNrZXIge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi10b3A6IDEwcHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmZpZWxkIC5tZXNzYWdlLndhcm5pbmcge1xcbiAgICBtYXJnaW4tdG9wOiAxMHB4XFxufVxcblxcbnNlbGVjdCB7XFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoXCIgKyByZXF1aXJlKFwiLi4vLi4vLi4vaW1hZ2VzL3NlbGVjdC1iZy5zdmdcIikgKyBcIikgbm8tcmVwZWF0IDEwMCUgNDUlO1xcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHggNjBweDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xcbiAgICB0ZXh0LWluZGVudDogLjAxZW07XFxuICAgIHRleHQtb3ZlcmZsb3c6ICcnXFxufVxcblxcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmx0LWllMTAgc2VsZWN0IHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgcGFkZGluZy1yaWdodDogNHB4XFxufVxcblxcbi5maWVsZC1lcnJvcixcXG5kaXYubWFnZS1lcnJvcltnZW5lcmF0ZWRdIHtcXG4gICAgbWFyZ2luLXRvcDogN3B4XFxufVxcblxcbi5maWVsZC1lcnJvciB7XFxuICAgIGNvbG9yOiAjZTAyYjI3O1xcbiAgICBmb250LXNpemU6IDEuMnJlbVxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmZpZWxkIC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xcbiAgICBtaW4td2lkdGg6IDIxMHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50OmFmdGVyLFxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLmZpZWxkIC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBib3JkZXItd2lkdGg6IDVweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXItd2lkdGg6IDZweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudFxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDphZnRlcixcXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDpiZWZvcmUge1xcbiAgICByaWdodDogMTAwJVxcbn1cXG5cXG4uZmllbGQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudDphZnRlciB7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2ZmZjtcXG4gICAgbWFyZ2luLXRvcDogLTVweDtcXG4gICAgdG9wOiAxNXB4XFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogLTZweDtcXG4gICAgdG9wOiAxNXB4XFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC10b2dnbGUge1xcbiAgICBjdXJzb3I6IGhlbHBcXG59XFxuXFxuLmZpZWxkIC50b29sdGlwIC50b29sdGlwLXRvZ2dsZTpob3ZlcisudG9vbHRpcC1jb250ZW50LFxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC10b2dnbGU6Zm9jdXMrLnRvb2x0aXAtY29udGVudCxcXG4uZmllbGQgLnRvb2x0aXA6aG92ZXIgLnRvb2x0aXAtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5maWVsZCAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50IHtcXG4gICAgbWluLXdpZHRoOiAyMDBweDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG5pbnB1dDpmb2N1c34udG9vbHRpcCAudG9vbHRpcC1jb250ZW50LFxcbnNlbGVjdDpmb2N1c34udG9vbHRpcCAudG9vbHRpcC1jb250ZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyIHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcjpmb2N1cyxcXG4uX2hhcy1kYXRlcGlja2Vyfi51aS1kYXRlcGlja2VyLXRyaWdnZXI6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcjpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uX2hhcy1kYXRlcGlja2Vyfi51aS1kYXRlcGlja2VyLXRyaWdnZXIuZGlzYWJsZWQsXFxuLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcj5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLl9oYXMtZGF0ZXBpY2tlcn4udWktZGF0ZXBpY2tlci10cmlnZ2VyOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDIzcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xcbiAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgY29udGVudDogJ1xcXFxFNjEyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5faGFzLWRhdGVwaWNrZXJ+LnVpLWRhdGVwaWNrZXItdHJpZ2dlcjpmb2N1cyB7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIG91dGxpbmU6IDBcXG59XFxuXFxuLnNpZGViYXIgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5zaWRlYmFyIC5maWVsZHNldD4uZmllbGQ6bm90KC5jaG9pY2UpOm5vdCg6bGFzdC1jaGlsZCksXFxuLnNpZGViYXIgLmZpZWxkc2V0IC5maWVsZHM+LmZpZWxkOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5zaWRlYmFyIC5maWVsZHNldD4uZmllbGQ6bm90KC5jaG9pY2UpIC5sYWJlbCxcXG4uc2lkZWJhciAuZmllbGRzZXQgLmZpZWxkcz4uZmllbGQgLmxhYmVsIHtcXG4gICAgbWFyZ2luOiAwIDAgNHB4O1xcbiAgICBwYWRkaW5nOiAwIDAgNXB4O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uc2lkZWJhciAuZmllbGRzZXQ+LmZpZWxkOm5vdCguY2hvaWNlKSAuY29udHJvbCxcXG4uc2lkZWJhciAuZmllbGRzZXQgLmZpZWxkcz4uZmllbGQgLmNvbnRyb2wge1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG5AZm9udC1mYWNlIHtcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgc3JjOiB1cmwoXCIgKyByZXF1aXJlKFwiLi4vLi4vLi4vZm9udHMvTHVtYS1JY29ucy53b2ZmMlwiKSArIFwiKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxcbn1cXG5cXG5idXR0b24sXFxuYS5hY3Rpb24ucHJpbWFyeSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweFxcbn1cXG5cXG5idXR0b246bm90KC5wcmltYXJ5KSB7XFxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAjZmZmLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG5idXR0b246bm90KC5wcmltYXJ5KTphY3RpdmUge1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjgpLCBpbnNldCAwIC0xcHggMCAwIHJnYmEoMjA0LCAyMDQsIDIwNCwgMC4zKVxcbn1cXG5cXG5ib2R5Om5vdCguX2tleWZvY3VzKSBidXR0b246Zm9jdXMge1xcbiAgICBib3gtc2hhZG93OiBub25lXFxufVxcblxcbmEuYWN0aW9uLnByaW1hcnkge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG5hLmFjdGlvbi5wcmltYXJ5OmhvdmVyLFxcbmEuYWN0aW9uLnByaW1hcnk6YWN0aXZlLFxcbmEuYWN0aW9uLnByaW1hcnk6Zm9jdXMge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmFjdGlvbi5wcmltYXJ5IHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogIzE5NzljMztcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzE5NzljMztcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIHBhZGRpbmc6IDdweCAxNXB4O1xcbiAgICBmb250LXNpemU6IDEuNHJlbTtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4uYWN0aW9uLnByaW1hcnk6Zm9jdXMsXFxuLmFjdGlvbi5wcmltYXJ5OmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6ICMwMDZiYjQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDZiYjQ7XFxuICAgIGNvbG9yOiAjZmZmXFxufVxcblxcbi5hY3Rpb24ucHJpbWFyeTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICMwMDZiYjQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDZiYjQ7XFxuICAgIGNvbG9yOiAjZmZmXFxufVxcblxcbi5hY3Rpb24ucHJpbWFyeS5kaXNhYmxlZCxcXG4uYWN0aW9uLnByaW1hcnlbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYWN0aW9uLnByaW1hcnkge1xcbiAgICBvcGFjaXR5OiAuNTtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4XFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUge1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZT4uc3dpdGNoIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50IHtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZsb2F0OiBub25lO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50OmJlZm9yZSxcXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLmNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgZGlzcGxheTogdGFibGVcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50OmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS5jb250ZW50LmFjdGl2ZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZT4uc3dpdGNoIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGhlaWdodDogNDBweDtcXG4gICAgcGFkZGluZzogMXB4IDEwcHggMXB4IDEwcHg7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgICBmb250LXNpemU6IDEuNHJlbTtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlPi5zd2l0Y2g6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZT4uc3dpdGNoOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlPi5zd2l0Y2g6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlOm5vdCguZGlzYWJsZWQpPi5zd2l0Y2g6YWN0aXZlLFxcbi5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUuYWN0aXZlPi5zd2l0Y2gsXFxuLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZS5hY3RpdmU+LnN3aXRjaDpmb2N1cyxcXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlLmFjdGl2ZT4uc3dpdGNoOmhvdmVyIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDFweFxcbn1cXG5cXG4ucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLmNvbnRlbnQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHggMTBweCAzMHB4XFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUgYSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUgYTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUgYTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDEwcHg7XFxuICAgIHRvcDogMXB4XFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLml0ZW0udGl0bGUuYWN0aXZlIGE6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxufVxcblxcbi5wcm9kdWN0LmRhdGEuaXRlbXMgLnZhbHVlIHA6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnByb2R1Y3QuZGF0YS5pdGVtcyAudGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ucGFnZXM+LmxhYmVsIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnBhZ2VzIC5pdGVtcyB7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAwO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5wYWdlcyAuaXRlbSB7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xcbiAgICBtYXJnaW46IDAgOHB4IDAgMDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5wYWdlcyAuaXRlbSAubGFiZWwge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcGFkZGluZzogMCA1cHg7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlOnZpc2l0ZWQge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgYS5wYWdlOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmY1NTAxXFxufVxcblxcbi5wYWdlcyBzdHJvbmcucGFnZSB7XFxuICAgIGJhY2tncm91bmQ6ICNlNWU1ZTU7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBwYWRkaW5nOiAwIDVweFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbiB7XFxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbjp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb246aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZGVkZWRlO1xcbiAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uLm5leHQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5uZXh0OnZpc2l0ZWQ6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dD5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwOCc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uLm5leHQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ubmV4dDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ucHJldmlvdXMge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91czp2aXNpdGVkOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkXFxufVxcblxcbi5wYWdlcyAuYWN0aW9uLnByZXZpb3VzOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzdkN2Q3ZFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91cz5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ucHJldmlvdXM6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTcnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91czpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzdkN2Q3ZFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5wcmV2aW91czphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2RcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ge1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgI2ZmZiwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuMyk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgcGFkZGluZzogMCA4cHhcXG59XFxuXFxuLnBhZ2VzIC5hY3Rpb24ucHJldmlvdXMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweFxcbn1cXG5cXG4ucGFnZXMgLmFjdGlvbi5uZXh0IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweFxcbn1cXG5cXG4uYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5LFxcbi5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24sXFxuLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbjpsYXN0LWNoaWxkLFxcbi5hY3Rpb25zLXRvb2xiYXI+LnNlY29uZGFyeSAuYWN0aW9uOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnk6bGFzdC1jaGlsZCxcXG4uYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnk6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIHtcXG4gICAgbWFyZ2luOiAwIDAgMTVweFxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgLml0ZW1zIHtcXG4gICAgZm9udC1zaXplOiAxLjJyZW07XFxuICAgIGNvbG9yOiAjNzA3MDcwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZVxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgLml0ZW1zPmxpIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5icmVhZGNydW1icyAuaXRlbSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmJyZWFkY3J1bWJzIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uYnJlYWRjcnVtYnMgLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5icmVhZGNydW1icyAuaXRlbTpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwOCc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMCAxMHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnVpLWRpYWxvZy5wb3B1cCAuYWN0aW9uLmNsb3NlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHdpZHRoOiA0MHB4O1xcbiAgICB6LWluZGV4OiAxMDAxO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29sb3I6ICM4YzhjOGM7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzczNzM3M1xcbn1cXG5cXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2U6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzM3MzczXFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpmb2N1cyxcXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2U6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi51aS1kaWFsb2cucG9wdXAgLmFjdGlvbi5jbG9zZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4udWktZGlhbG9nLnBvcHVwIC5hY3Rpb24uY2xvc2UuZGlzYWJsZWQsXFxuLnVpLWRpYWxvZy5wb3B1cCAuYWN0aW9uLmNsb3NlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLnVpLWRpYWxvZy5wb3B1cCAuYWN0aW9uLmNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5wb3B1cCAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY2FuY2VsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ucG9wdXAtcG9pbnRlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTRweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5wb3B1cC1wb2ludGVyOmJlZm9yZSxcXG4ucG9wdXAtcG9pbnRlcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aWR0aDogMDtcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZFxcbn1cXG5cXG4ucG9wdXAtcG9pbnRlcjpiZWZvcmUge1xcbiAgICBsZWZ0OiAycHg7XFxuICAgIHRvcDogMnB4O1xcbiAgICBib3JkZXI6IHNvbGlkIDZweDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OVxcbn1cXG5cXG4ucG9wdXAtcG9pbnRlcjphZnRlciB7XFxuICAgIGxlZnQ6IDFweDtcXG4gICAgdG9wOiAwcHg7XFxuICAgIGJvcmRlcjogc29saWQgN3B4O1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNhZWFlYWUgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk4XFxufVxcblxcbi5wcmljZS10aWVyX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4LFxcbi5wcmljZS10aWVyX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5wcmljZS1leGNsdWRpbmctdGF4IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBsaW5lLWhlaWdodDogMVxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXFxuLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ud2VlZVtkYXRhLWxhYmVsXSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuOHJlbVxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDpiZWZvcmUsXFxuLndlZWVbZGF0YS1sYWJlbF06YmVmb3JlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSAnOiAnO1xcbiAgICBmb250LXNpemU6IDEuMXJlbVxcbn1cXG5cXG4ucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLndlZWVbZGF0YS1sYWJlbF0gLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjFyZW1cXG59XFxuXFxuYm9keS5faGFzLW1vZGFsIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4ubW9kYWxzLW92ZXJsYXkge1xcbiAgICB6LWluZGV4OiA4OTlcXG59XFxuXFxuLm1vZGFsLXNsaWRlLFxcbi5tb2RhbC1wb3B1cCB7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzIC4zcywgb3BhY2l0eSAuM3MgZWFzZTtcXG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyAuM3MsIG9wYWNpdHkgLjNzIGVhc2VcXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9zaG93LFxcbi5tb2RhbC1wb3B1cC5fc2hvdyB7XFxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZVxcbn1cXG5cXG4ubW9kYWwtc2xpZGUuX3Nob3cgLm1vZGFsLWlubmVyLXdyYXAsXFxuLm1vZGFsLXBvcHVwLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMClcXG59XFxuXFxuLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwLFxcbi5tb2RhbC1wb3B1cCAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICBwb2ludGVyLWV2ZW50czogYXV0b1xcbn1cXG5cXG4ubW9kYWwtc2xpZGUge1xcbiAgICBsZWZ0OiA0NHB4O1xcbiAgICB6LWluZGV4OiA5MDBcXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKVxcbn1cXG5cXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG92ZXJmbG93LXk6IGF1dG87XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4ubW9kYWwtc2xpZGUuX2lubmVyLXNjcm9sbCAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9pbm5lci1zY3JvbGwgLm1vZGFsLWhlYWRlcixcXG4ubW9kYWwtc2xpZGUuX2lubmVyLXNjcm9sbCAubW9kYWwtZm9vdGVyIHtcXG4gICAgLXdlYmtpdC1mbGV4LWdyb3c6IDA7XFxuICAgIGZsZXgtZ3JvdzogMDtcXG4gICAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcXG4gICAgZmxleC1zaHJpbms6IDBcXG59XFxuXFxuLm1vZGFsLXNsaWRlLl9pbm5lci1zY3JvbGwgLm1vZGFsLWNvbnRlbnQge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvXFxufVxcblxcbi5tb2RhbC1zbGlkZS5faW5uZXItc2Nyb2xsIC5tb2RhbC1mb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvXFxufVxcblxcbi5tb2RhbC1zbGlkZSAubW9kYWwtaGVhZGVyLFxcbi5tb2RhbC1zbGlkZSAubW9kYWwtY29udGVudCxcXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciB7XFxuICAgIHBhZGRpbmc6IDAgMi42cmVtIDIuNnJlbVxcbn1cXG5cXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWhlYWRlciB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyLjFyZW07XFxuICAgIHBhZGRpbmctdG9wOiAyLjFyZW1cXG59XFxuXFxuLm1vZGFsLXBvcHVwIHtcXG4gICAgei1pbmRleDogOTAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvXFxufVxcblxcbi5tb2RhbC1wb3B1cC5fc2hvdyAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMClcXG59XFxuXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgbWFyZ2luOiA1cmVtIGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMCUpO1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMCUpO1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIC4ycyBlYXNlO1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2VcXG59XFxuXFxuLm1vZGFsLXBvcHVwLl9pbm5lci1zY3JvbGwge1xcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlXFxufVxcblxcbi5pZTExIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsLFxcbi5pZTEwIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsLFxcbi5pZTkgLm1vZGFsLXBvcHVwLl9pbm5lci1zY3JvbGwge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvXFxufVxcblxcbi5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgbWF4LWhlaWdodDogOTAlXFxufVxcblxcbi5pZTExIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1pbm5lci13cmFwLFxcbi5pZTEwIC5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1pbm5lci13cmFwLFxcbi5pZTkgLm1vZGFsLXBvcHVwLl9pbm5lci1zY3JvbGwgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICBtYXgtaGVpZ2h0OiBub25lXFxufVxcblxcbi5tb2RhbC1wb3B1cC5faW5uZXItc2Nyb2xsIC5tb2RhbC1jb250ZW50IHtcXG4gICAgb3ZlcmZsb3cteTogYXV0b1xcbn1cXG5cXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlcixcXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWNvbnRlbnQsXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW1cXG59XFxuXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1oZWFkZXIsXFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIge1xcbiAgICAtd2Via2l0LWZsZXgtZ3JvdzogMDtcXG4gICAgZmxleC1ncm93OiAwO1xcbiAgICAtd2Via2l0LWZsZXgtc2hyaW5rOiAwO1xcbiAgICBmbGV4LXNocmluazogMFxcbn1cXG5cXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlciB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtXFxufVxcblxcbi5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIHtcXG4gICAgbWFyZ2luLXRvcDogYXV0bztcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtXFxufVxcblxcbi5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyLWFjdGlvbnMge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodFxcbn1cXG5cXG4ubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2UsXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2UsXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2Uge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZTpmb2N1cyxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZTpmb2N1cyxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTpmb2N1cyxcXG4ubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2U6YWN0aXZlLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlOmFjdGl2ZSxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmhvdmVyLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlOmhvdmVyLFxcbi5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZS5kaXNhYmxlZCxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZS5kaXNhYmxlZCxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZS5kaXNhYmxlZCxcXG4ubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2VbZGlzYWJsZWRdLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlW2Rpc2FibGVkXSxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2UsXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZT5zcGFuLFxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlPnNwYW4sXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZTpiZWZvcmUsXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YmVmb3JlLFxcbi5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgY29udGVudDogJ1xcXFxFNjE2JztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmhvdmVyOmJlZm9yZSxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZTpob3ZlcjpiZWZvcmUsXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2U6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmFjdGl2ZTpiZWZvcmUsXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YWN0aXZlOmJlZm9yZSxcXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmhvdmVyOmJlZm9yZSxcXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZTpob3ZlcjpiZWZvcmUsXFxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2U6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMxYTFhMWFcXG59XFxuXFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlIHtcXG4gICAgbWFyZ2luOiAyNXB4XFxufVxcblxcbi5tb2RhbC1wb3B1cCAubW9kYWwtdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgIGZvbnQtc2l6ZTogMjZweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgbWluLWhlaWdodDogMWVtO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2Uge1xcbiAgICBwYWRkaW5nOiAyMHB4XFxufVxcblxcbi5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHtcXG4gICAgcGFkZGluZzogMi4xcmVtIDNyZW1cXG59XFxuXFxuLm1vZGFsLXNsaWRlIC5wYWdlLW1haW4tYWN0aW9ucyB7XFxuICAgIG1hcmdpbi1ib3R0b206IC0xMi45cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAyLjFyZW1cXG59XFxuXFxuLm1vZGFscy1vdmVybGF5IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjU1KTtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDBcXG59XFxuXFxuYm9keS5faGFzLW1vZGFsLWN1c3RvbSAubW9kYWwtY3VzdG9tLW92ZXJsYXkge1xcbiAgICBoZWlnaHQ6IDEwMHZoO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMHZ3O1xcbiAgICB6LWluZGV4OiA4OTlcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzJjMmMyO1xcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBwYWRkaW5nOiAwIDlweDtcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB3aWR0aDogMjI1cHhcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2w6ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNTc1NzU3XFxufVxcblxcbi5wYXltZW50LW1ldGhvZC1icmFpbnRyZWUgLmhvc3RlZC1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2w6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM1NzU3NTdcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtZm9jdXNlZCB7XFxuICAgIGJvcmRlci1jb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtY29udHJvbC5icmFpbnRyZWUtaG9zdGVkLWZpZWxkcy1pbnZhbGlkOm5vdCguYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtZm9jdXNlZCkge1xcbiAgICBib3JkZXItY29sb3I6ICNlMDJiMjdcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtaW52YWxpZDpub3QoLmJyYWludHJlZS1ob3N0ZWQtZmllbGRzLWZvY3VzZWQpfi5ob3N0ZWQtZXJyb3Ige1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG9wYWNpdHk6IDFcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuYnJhaW50cmVlLWhvc3RlZC1maWVsZHMtdmFsaWQge1xcbiAgICBib3JkZXItY29sb3I6ICMwMDY0MDBcXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuaG9zdGVkLWNpZCB7XFxuICAgIHdpZHRoOiA1cmVtXFxufVxcblxcbi5wYXltZW50LW1ldGhvZC1icmFpbnRyZWUgLmhvc3RlZC1jb250cm9sLmhvc3RlZC1kYXRlIHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDdweDtcXG4gICAgd2lkdGg6IDZyZW1cXG59XFxuXFxuLnBheW1lbnQtbWV0aG9kLWJyYWludHJlZSAuaG9zdGVkLWNvbnRyb2wuaG9zdGVkLWRhdGU6Zmlyc3Qtb2YtdHlwZSB7XFxuICAgIG1hcmdpbi1yaWdodDogNTBweFxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtY29udHJvbC5ob3N0ZWQtZGF0ZTpmaXJzdC1vZi10eXBlOmFmdGVyIHtcXG4gICAgY29udGVudDogJy8nO1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIHBhZGRpbmctYm90dG9tOiBpbmhlcml0O1xcbiAgICBwYWRkaW5nLXRvcDogaW5oZXJpdDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogLTI1cHg7XFxuICAgIHRvcDogNXB4XFxufVxcblxcbi5wYXltZW50LW1ldGhvZC1icmFpbnRyZWUgLmZpZWxkLXRvb2x0aXAge1xcbiAgICByaWdodDogMFxcbn1cXG5cXG4ucGF5bWVudC1tZXRob2QtYnJhaW50cmVlIC5ob3N0ZWQtZXJyb3Ige1xcbiAgICBjbGVhcjogYm90aDtcXG4gICAgY29sb3I6ICNlMDJiMjc7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIG1hcmdpbi10b3A6IDdweDtcXG4gICAgb3BhY2l0eTogMFxcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1sb2dvIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5icmFpbnRyZWUtcGF5cGFsLWFjY291bnQge1xcbiAgICBwYWRkaW5nOiAxNXB4IDAgMTVweCA1MHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1hY2NvdW50OmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogMDtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwO1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICB3aWR0aDogMTZweDtcXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1hY2NvdW50OmJlZm9yZSB7XFxuICAgIGxlZnQ6IDE3cHg7XFxuICAgIG1hcmdpbi10b3A6IC04cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiA1MCVcXG59XFxuXFxuLmJyYWludHJlZS1wYXlwYWwtYWNjb3VudCAucGF5bWVudC1tZXRob2QtdHlwZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmJyYWludHJlZS1wYXlwYWwtYWNjb3VudCAucGF5bWVudC1tZXRob2QtZGVzY3JpcHRpb24ge1xcbiAgICBjb2xvcjogIzU3NTc1N1xcbn1cXG5cXG4uYnJhaW50cmVlLXBheXBhbC1maWVsZHNldCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvIHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvOmZvY3VzLFxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvOmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uYWN0aW9uLWJyYWludHJlZS1wYXlwYWwtbG9nbzpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uYWN0aW9uLWJyYWludHJlZS1wYXlwYWwtbG9nby5kaXNhYmxlZCxcXG4uYWN0aW9uLWJyYWludHJlZS1wYXlwYWwtbG9nb1tkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5hY3Rpb24tYnJhaW50cmVlLXBheXBhbC1sb2dvIGltZyB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgd2lkdGg6IDExNHB4XFxufVxcblxcbi5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtY29udGVudCAuYWN0aW9ucy10b29sYmFyLmJyYWludHJlZS1wYXlwYWwtYWN0aW9ucyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwXFxufVxcblxcbi5hY2NvdW50IC50YWJsZSAuY29sLnBheXBhbC1hY2NvdW50IGltZyB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlIC5jb2wucGF5cGFsLWFjY291bnQrLmFjdGlvbnMge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCB7XFxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBwYWRkaW5nOiAxMHB4IDAgMTVweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudC5ibG9jazpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLmJsb2NrLXRpdGxlIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAudGlja2VyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBsaXN0LXN0eWxlOiBub25lIG5vbmVcXG59XFxuXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC50aWNrZXIgbGkge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBtYXJnaW46IDAgMTVweFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLnRpY2tlciAudmFsdWUge1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLnRpY2tlciAubGFiZWwge1xcbiAgICBmb250LXNpemU6IDFyZW07XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAuZGF0ZXMge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgbWFyZ2luOiAwIGF1dG9cXG59XFxuXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC5kYXRlcyAuc3RhcnQsXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC5kYXRlcyAuZW5kIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4uYmxvY2stY2F0ZWdvcnktZXZlbnQgLmRhdGVzIC5kYXRlIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW1cXG59XFxuXFxuLmJsb2NrLWNhdGVnb3J5LWV2ZW50IC5kYXRlcyAudGltZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAuZGF0ZXMgLnN0YXJ0IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5ibG9jay1jYXRlZ29yeS1ldmVudCAuZGF0ZXMgLnN0YXJ0OmFmdGVyIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGNvbnRlbnQ6ICdcXFxcMjAxMyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAxNXB4O1xcbiAgICB0b3A6IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLnRpdGxlIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAudGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAudGFibGUtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5kZWxldGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLnRhYmxlLXdyYXBwZXIgLmNvbCAucXR5IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC50YWJsZS13cmFwcGVyIC5jb2wuaXRlbSAuYWN0aW9uLmVkaXQge1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBtYXJnaW4tbGVmdDogMTBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dDpub3QoLmFkZHJlc3MpIC50YWJsZS13cmFwcGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubXVsdGljaGVja291dD4uYWN0aW9ucy10b29sYmFyIHtcXG4gICAgbWFyZ2luLXRvcDogNDBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnkge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5zZWNvbmRhcnkgLmFjdGlvbiB7XFxuICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW46IDEwcHggMCAwXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jayAubWV0aG9kcy1zaGlwcGluZyAuaXRlbS1jb250ZW50IC5maWVsZHNldD4uZmllbGQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYmxvY2sgLm1ldGhvZHMtc2hpcHBpbmcgLml0ZW0tY29udGVudCAuZmllbGRzZXQ+LmZpZWxkIC5jb250cm9sIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5ibG9jay10aXRsZSxcXG4ubXVsdGljaGVja291dCAuYmxvY2stY29udGVudCAudGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLXRpdGxlIHN0cm9uZyxcXG4ubXVsdGljaGVja291dCAuYmxvY2stY29udGVudCAudGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYmxvY2stdGl0bGUgc3Ryb25nIHNwYW4sXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLnRpdGxlIHN0cm9uZyBzcGFuIHtcXG4gICAgY29sb3I6ICNhNmE2YTZcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLnRpdGxlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gICAgcGFkZGluZy1ib3R0b206IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5ibG9jay10aXRsZT5zdHJvbmcge1xcbiAgICBmb250LXNpemU6IDIuNHJlbVxcbn1cXG5cXG4ubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmJsb2NrLXNoaXBwaW5nIC5ibG9jay1jb250ZW50Om5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxufVxcblxcbi5tdWx0aWNoZWNrb3V0IC5ib3gtdGl0bGUgc3BhbiB7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LXRpdGxlPi5hY3Rpb24ge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm11bHRpY2hlY2tvdXQgLmJveC1zaGlwcGluZy1tZXRob2QgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LWJpbGxpbmctbWV0aG9kIC5maWVsZHNldCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuYm94LWJpbGxpbmctbWV0aG9kIC5maWVsZHNldCAubGVnZW5kLmJveC10aXRsZSB7XFxuICAgIG1hcmdpbjogMCAwIDVweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuY2hlY2tvdXQtcmV2aWV3IC5ncmFuZC50b3RhbHMge1xcbiAgICBmb250LXNpemU6IDIuMXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweFxcbn1cXG5cXG4ubXVsdGljaGVja291dCAuY2hlY2tvdXQtcmV2aWV3IC5ncmFuZC50b3RhbHMgLm1hcmsge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbltjbGFzc149J211bHRpc2hpcHBpbmctJ10gLmxvZ28ge1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4ubXVsdGlzaGlwcGluZy1jaGVja291dC1zdWNjZXNzIC5uYXYtc2VjdGlvbnMge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4udGFibGUtd3JhcHBlci5iaWxsaW5nLWFncmVlbWVudHMge1xcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxufVxcblxcbi5wYXlwYWwge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5wYXlwYWwsXFxuLmNhcnQtc3VtbWFyeSAucGF5cGFsIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnBheXBhbCBpbWcge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiA1cHggYXV0byAwXFxufVxcblxcbi5vcGMgLnBheXBhbCB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLnBheXBhbC5hY2NlcHRhbmNlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm1hcC1mb3JtLWFkZHRvY2FydCAucGF5cGFsIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMTBweCBhdXRvIDVweFxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5wYXlwYWwrLnBheXBhbCB7XFxuICAgIG1hcmdpbi10b3A6IDI1cHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLnBheXBhbC1yZXZpZXctdGl0bGUge1xcbiAgICBwYWRkaW5nOiAwIDAgMTBweFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAucGF5cGFsLXJldmlldy10aXRsZT5zdHJvbmcge1xcbiAgICBmb250LXNpemU6IDIuNHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAucGF5cGFsLXJldmlldy10aXRsZSAuYWN0aW9uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW46IDEycHggMCAwIDMwcHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNvbC5uYW1lIHtcXG4gICAgcGFkZGluZy10b3A6IDE2cHhcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLnRhYmxlLXBheXBhbC1yZXZpZXctaXRlbXMgLmNvbC5xdHkge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnBheXBhbC1yZXZpZXcgLml0ZW0tb3B0aW9ucyBkdCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAuaXRlbS1vcHRpb25zIGR0OmFmdGVyIHtcXG4gICAgY29udGVudDogJzogJ1xcbn1cXG5cXG4ucGF5cGFsLXJldmlldyAuaXRlbS1vcHRpb25zIGRkIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogMCAwIDQwcHg7XFxuICAgIHBhZGRpbmc6IDEwcHggMCAwXFxufVxcblxcbi5mb3RvcmFtYS12aWRlby1jb250YWluZXI6YWZ0ZXIge1xcbiAgICBib3R0b206IDA7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBoZWlnaHQ6IDEwMHB4O1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMTJweDtcXG4gICAgd2lkdGg6IDEwMHB4XFxufVxcblxcbi5mb3RvcmFtYS12aWRlby1jb250YWluZXIgLm1hZ25pZnktbGVucyB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudFxcbn1cXG5cXG4uZm90b3JhbWEtdmlkZW8tY29udGFpbmVyLnZpZGVvLXVucGxheWVkOmhvdmVyIGltZyB7XFxuICAgIG9wYWNpdHk6IC42XFxufVxcblxcbi5mb3RvcmFtYS12aWRlby1jb250YWluZXIudmlkZW8tdW5wbGF5ZWQ6aG92ZXI6YWZ0ZXIge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpXFxufVxcblxcbi52aWRlby10aHVtYi1pY29uOmFmdGVyIHtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMTBweDtcXG4gICAgd2lkdGg6IDQ5cHhcXG59XFxuXFxuLnByb2R1Y3QtdmlkZW8ge1xcbiAgICBib3R0b206IDA7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnByb2R1Y3QtdmlkZW8gaWZyYW1lIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDk5OTlcXG59XFxuXFxuLmZvdG9yYW1hX19zdGFnZV9fc2hhZnQ6Zm9jdXMgLmZvdG9yYW1hX19zdGFnZV9fZnJhbWUuZm90b3JhbWFfX2FjdGl2ZTphZnRlciB7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGhlaWdodDogMTAwcHg7XFxuICAgIGxlZnQ6IDA7XFxuICAgIG1hcmdpbjogYXV0bztcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAxMnB4O1xcbiAgICB3aWR0aDogMTAwcHhcXG59XFxuXFxuLmZvdG9yYW1hX19wcm9kdWN0LXZpZGVvLS1sb2FkaW5nOmFmdGVyIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuXFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6MzIwcHgpIGFuZCAobWF4LWRldmljZS13aWR0aDo3ODBweCkgYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpIHtcXG4gICAgLnByb2R1Y3QtdmlkZW8ge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgd2lkdGg6IDgxJVxcbiAgICB9XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZm9ybS1kaXNjb3VudCB7XFxuICAgIG1heC13aWR0aDogNTAwcHhcXG59XFxuXFxuLm1pbmlsaXN0IC53ZWVlIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93O1xcbiAgICBmb250LXNpemU6IDEuMXJlbVxcbn1cXG5cXG4ubWluaWxpc3QgLndlZWU6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ucHJpY2UtY29udGFpbmVyLndlZWU6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuZmllbGRzZXQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDdweFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuc2t1IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtMTU1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2MHB4O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAucXR5IC5xdHkrLm1hZ2UtZXJyb3Ige1xcbiAgICB3aWR0aDogODBweFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhcjpiZWZvcmUsXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhcjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ibG9jay1jb250ZW50IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnksXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ibG9jay1jb250ZW50IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkgYS5hY3Rpb24sXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IGEuYWN0aW9uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ibG9jay1jb250ZW50IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkgLmFjdGlvbiB7XFxuICAgIG1hcmdpbjogMCAxNXB4IDAgMFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyIC5zZWNvbmRhcnkgYS5hY3Rpb24ge1xcbiAgICBtYXJnaW4tdG9wOiA2cHhcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSxcXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYmxvY2stY29udGVudCAuYWN0aW9ucy10b29sYmFyIC5zZWNvbmRhcnkge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZmxvYXQ6IG5vbmVcXG59XFxuXFxuLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmJsb2NrLWNvbnRlbnQgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IHtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLmFkZCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLmFkZDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMHB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxQyc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uY29sdW1uIC5ibG9jay1hZGRieXNrdSAucmVzZXQge1xcbiAgICBtYXJnaW46IDdweCAwXFxufVxcblxcbi5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5ub3RlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAxMHB4XFxufVxcblxcbi5ibG9jay1jYXJ0LWZhaWxlZCB7XFxuICAgIG1hcmdpbjogNDBweCAwXFxufVxcblxcbi5ibG9jay1jYXJ0LWZhaWxlZCAuYmxvY2stdGl0bGUge1xcbiAgICBmb250LXNpemU6IDIuNnJlbVxcbn1cXG5cXG4uYmxvY2stY2FydC1mYWlsZWQgLmJsb2NrLXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLWNhcnQtZmFpbGVkIC5hY3Rpb25zIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1jYXJ0LWZhaWxlZCAuYWN0aW9ucyAuYWN0aW9uIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCBhdXRvIDEwcHhcXG59XFxuXFxuLmNhdGFsb2dzZWFyY2gtYWR2YW5jZWQtcmVzdWx0IC5tZXNzYWdlLmVycm9yIHtcXG4gICAgbWFyZ2luLXRvcDogLTYwcHhcXG59XFxuXFxuLmJ1bmRsZS1hY3Rpb25zIHtcXG4gICAgbWFyZ2luOiAwIDAgMzBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAubGVnZW5kLnRpdGxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LWFkZC1mb3JtIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0Pi5maWVsZCB7XFxuICAgIGJvcmRlci10b3A6IDFweCAjZTRlNGU0IHNvbGlkO1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGRzZXQ+LmZpZWxkOmZpcnN0LW9mLXR5cGUge1xcbiAgICBib3JkZXItdG9wOiAwO1xcbiAgICBwYWRkaW5nLXRvcDogMFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQuY2hvaWNlIGlucHV0IHtcXG4gICAgZmxvYXQ6IGxlZnRcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luLWxlZnQ6IDI0cHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkLmNob2ljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5hY3Rpb24uYmFjayB7XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnk+LnRpdGxlIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeT4udGl0bGU+c3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeT4udGl0bGUsXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJ1bmRsZS1zdW1tYXJ5IC5zdWJ0aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCAjZTRlNGU0IHNvbGlkO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJpY2UtYm94IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW4tYm90dG9tOiA1cHhcXG59XFxuXFxuLmJ1bmRsZS1vcHRpb25zLWNvbnRhaW5lciAuYmxvY2stYnVuZGxlLXN1bW1hcnkgLmJ1bmRsZS1zdW1tYXJ5IHtcXG4gICAgbWFyZ2luLXRvcDogMzBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAuYnVuZGxlLXN1bW1hcnkuZW1wdHkge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLmJsb2NrLWJ1bmRsZS1zdW1tYXJ5IC5idW5kbGUtc3VtbWFyeT4uc3VidGl0bGUge1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDIuNnJlbTtcXG4gICAgbWFyZ2luLXRvcDogMi41cmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAuYnVuZGxlLml0ZW1zPmxpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcyB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcz4uYWN0aW9uIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA1JVxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5ibG9jay1idW5kbGUtc3VtbWFyeSAucHJvZHVjdC1hZGR0by1saW5rcz4uYWN0aW9uLnRvY29tcGFyZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUUnXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgcC5yZXF1aXJlZCB7XFxuICAgIGNvbG9yOiAjZTAyYjI3XFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLm5lc3RlZCAuZmllbGQucXR5IHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcXG4gICAgbWFyZ2luLXRvcDogMjBweFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5uZXN0ZWQgLmZpZWxkLnF0eT4ubGFiZWwge1xcbiAgICBtYXJnaW46IDAgMCA4cHg7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5uZXN0ZWQgLmZpZWxkLnF0eSAubGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLm5lc3RlZCAuZmllbGQucXR5Omxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5idW5kbGUtb3B0aW9ucy1jb250YWluZXIgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uYnVuZGxlLW9wdGlvbnMtY29udGFpbmVyIC5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNsZWFyOiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMCA0MHB4O1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4ucHJvZHVjdHMge1xcbiAgICBtYXJnaW46IDMwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtIHtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB3aWR0aDogNTAlXFxufVxcblxcbi5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIC1tb3otaHlwaGVuczogYXV0bztcXG4gICAgLW1zLWh5cGhlbnM6IGF1dG87XFxuICAgIC13ZWJraXQtaHlwaGVuczogYXV0bztcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGh5cGhlbnM6IGF1dG87XFxuICAgIG1hcmdpbjogNXB4IDA7XFxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLWluZm8ge1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgIHdpZHRoOiAxNTJweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0cyAucHJvZHVjdC1pdGVtLWluZm8ge1xcbiAgICB3aWR0aDogMjQwcHhcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5PmJ1dHRvbi5hY3Rpb24ge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT5idXR0b24uYWN0aW9uOmZvY3VzLFxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+YnV0dG9uLmFjdGlvbjphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT5idXR0b24uYWN0aW9uOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9ucy1zZWNvbmRhcnk+YnV0dG9uLmFjdGlvbi5kaXNhYmxlZCxcXG4ucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5PmJ1dHRvbi5hY3Rpb25bZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtc2Vjb25kYXJ5PmJ1dHRvbi5hY3Rpb24ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXNlY29uZGFyeT4uYWN0aW9uOmJlZm9yZSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtLWRlc2NyaXB0aW9uIHtcXG4gICAgbWFyZ2luOiAyNXB4IDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJhdGluZy1zdW1tYXJ5IHtcXG4gICAgbWFyZ2luOiAwIDRweCAwIDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJldmlld3MtYWN0aW9ucyB7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgbWFyZ2luLXRvcDogNXB4O1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlXFxufVxcblxcbi5wcm9kdWN0LWl0ZW0gLnByaWNlLWJveCB7XFxuICAgIG1hcmdpbjogMTBweCAwIDI1cHhcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJpY2UtYm94IC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgICBmb250LXNpemU6IDEycHhcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAub2xkLXByaWNlIHtcXG4gICAgbWFyZ2luOiA1cHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtIC5vbGQtcHJpY2UgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbFxcbn1cXG5cXG4ucHJvZHVjdC1pdGVtIC5yZWd1bGFyLXByaWNlIC5wcmljZS1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAubWluaW1hbC1wcmljZSAucHJpY2UtY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAubWluaW1hbC1wcmljZS1saW5rIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5wcm9kdWN0LWl0ZW0gLnByaWNlLWZyb20sXFxuLnByb2R1Y3QtaXRlbSAucHJpY2UtdG8ge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAudG9jb21wYXJlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxRSdcXG59XFxuXFxuLnByb2R1Y3QtaXRlbSAudG9jYXJ0IHtcXG4gICAgZm9udC1zaXplOiAxLjNyZW07XFxuICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmNvbHVtbi5tYWluIC5wcm9kdWN0LWl0ZW1zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4XFxufVxcblxcbi5jb2x1bW4ubWFpbiAucHJvZHVjdC1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4XFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxuLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLnByaWNlLWNvbnRhaW5lciAud2VlZSxcXG4ucHJpY2UtY29udGFpbmVyIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlIC5wcmljZSxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlKy5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSxcXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlKy5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMS4xcmVtXFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLndlZWU6YmVmb3JlIHtcXG4gICAgY29udGVudDogJygnIGF0dHIoZGF0YS1sYWJlbCkgJzogJ1xcbn1cXG5cXG4ucHJpY2UtY29udGFpbmVyIC53ZWVlOmFmdGVyIHtcXG4gICAgY29udGVudDogJyknXFxufVxcblxcbi5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXg6YmVmb3JlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSAnOiAnXFxufVxcblxcbi5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWl0ZW0ge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbS1pbmZvIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93XFxufVxcblxcbi5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICBwYWRkaW5nOiAwIDMwcHggMzBweCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aWR0aDogMSVcXG59XFxuXFxuLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0cyAuY29sdW1ucyB7XFxuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLnRvb2xiYXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnRvb2xiYXIgc2VsZWN0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICNmZmYsIGluc2V0IDAgLTFweCAwIDAgcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjMpO1xcbiAgICBib3JkZXItcmFkaXVzOiAzcHhcXG59XFxuXFxuLnRvb2xiYXItYW1vdW50IHtcXG4gICAgbGVmdDogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogN3B4IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgdG9wOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5wcm9kdWN0cy53cmFwcGVyfi50b29sYmFyIC50b29sYmFyLWFtb3VudCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnBhZ2Utd2l0aC1maWx0ZXIgLnRvb2xiYXItYW1vdW50IHtcXG4gICAgcG9zaXRpb246IHN0YXRpY1xcbn1cXG5cXG4udG9vbGJhci1wcm9kdWN0cyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XFxufVxcblxcbi50b29sYmFyLXByb2R1Y3RzIC5wYWdlcyB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3RzLndyYXBwZXJ+LnRvb2xiYXItcHJvZHVjdHMgLnBhZ2VzIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnRvb2xiYXIgLnBhZ2VzIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweFxcbn1cXG5cXG4uc29ydGVyIHtcXG4gICAgZmxvYXQ6IHJpZ2h0XFxufVxcblxcbi5wYWdlLXByb2R1Y3RzIC5zb3J0ZXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAxMHB4O1xcbiAgICB0b3A6IDA7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLnByb2R1Y3RzLndyYXBwZXJ+LnRvb2xiYXIgLnNvcnRlciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnNvcnRlci1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwIDVweCAwIDdweDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLnNvcnRlci1hY3Rpb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uc29ydGVyLWFjdGlvbjpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMyc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uc29ydGVyLWFjdGlvbjpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uc29ydGVyLWFjdGlvbj5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnNvcnRlci1hY3Rpb24uc29ydC1kZXNjOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNCdcXG59XFxuXFxuLm1vZGVzIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubGltaXRlci1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwIDVweCAwIDdweDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmxpbWl0ZXItbGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5wYWdlLXByb2R1Y3RzIC50b29sYmFyIC5saW1pdGVyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ubGltaXRlciAuY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ub2xkLXByaWNlLFxcbi5vbGQucHJpY2Uge1xcbiAgICBjb2xvcjogIzY2Nlxcbn1cXG5cXG4ucHJpY2VzLXRpZXIgLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheDpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnKCcgYXR0cihkYXRhLWxhYmVsKSAnOidcXG59XFxuXFxuLnByaWNlcy10aWVyIC5wcmljZS1jb250YWluZXIgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXg6bGFzdC1jaGlsZDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcpJ1xcbn1cXG5cXG4ucHJpY2VzLXRpZXIgLnByaWNlLWNvbnRhaW5lciAud2VlZVtkYXRhLWxhYmVsXSB7XFxuICAgIGRpc3BsYXk6IGlubGluZVxcbn1cXG5cXG4ucHJpY2VzLXRpZXIgLnByaWNlLWNvbnRhaW5lciAud2VlZVtkYXRhLWxhYmVsXTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnICsnIGF0dHIoZGF0YS1sYWJlbCkgJzonXFxufVxcblxcbi5hY3R1YWwtcHJpY2Uge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5jYXRlZ29yeS1pbWFnZSAuaW1hZ2Uge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXgtd2lkdGg6IDEwMCVcXG59XFxuXFxuLmNhdGVnb3J5LWNtcyxcXG4uY2F0ZWdvcnktaW1hZ2UsXFxuLmNhdGVnb3J5LWRlc2NyaXB0aW9uIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1heC13aWR0aDogMTAwJVxcbn1cXG5cXG4ucHJvZHVjdC1pbWFnZS13cmFwcGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGhlaWdodDogMDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5wcm9kdWN0LWltYWdlLXBob3RvIHtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5wbGFjZWhvbGRlciAucGhvdG8uY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5ub3RpY2Uge1xcbiAgICBtYXJnaW46IDEwcHggMDtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5wcm9kdWN0LnRodW1icyB7XFxuICAgIG1hcmdpbjogMTBweCAwIDI1cHhcXG59XFxuXFxuLnByb2R1Y3QubWVkaWEgLml0ZW1zLnRodW1icyB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5wcm9kdWN0Lm1lZGlhIC5pdGVtcy50aHVtYnM+bGkge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLnByb2R1Y3QubWVkaWEgLml0ZW1zLnRodW1icz5saSB7XFxuICAgIG1hcmdpbjogMXJlbSAwIDBcXG59XFxuXFxuLnByb2R1Y3QubWVkaWEgLml0ZW1zLnRodW1icyBpbWcge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ucHJvZHVjdC5tZWRpYSAuaXRlbXMudGh1bWJzIC5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbGluZS1oZWlnaHQ6IDFcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCB7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRoLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50aCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGgsXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRkLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50ZCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGQge1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRkLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50ZCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGQge1xcbiAgICBwYWRkaW5nOiA1LjVweCA1cHggMTBweCA1cHhcXG59XFxuXFxuLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzPnRoZWFkPnRyPnRoLFxcbi5wcm9kdWN0LmluZm8uZGV0YWlsZWQgLmFkZGl0aW9uYWwtYXR0cmlidXRlcz50Ym9keT50cj50aCxcXG4ucHJvZHVjdC5pbmZvLmRldGFpbGVkIC5hZGRpdGlvbmFsLWF0dHJpYnV0ZXM+dGZvb3Q+dHI+dGgge1xcbiAgICBwYWRkaW5nOiA1LjVweCAzMHB4IDEwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSB7XFxuICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3gge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lcj5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXI+c3BhbjpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAud2VlZSsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAud2VlZSB7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4Ky5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAud2VlZSsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LWluZm8tcHJpY2UgLndlZWUgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS13cmFwcGVyIC5wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMjJweFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIC5wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMnJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtaW5mby1wcmljZSAuc3BlY2lhbC1wcmljZSAucHJpY2UtbGFiZWw6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZSB7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LWluZm8tc3RvY2stc2t1IHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgIHBhZGRpbmctbGVmdDogMTAlO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnN0b2NrIHtcXG4gICAgbWFyZ2luOiAwIDAgM3B4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAuc3RvY2suYXZhaWxhYmxlLFxcbi5wcm9kdWN0LWluZm8tbWFpbiAuc3RvY2sudW5hdmFpbGFibGUge1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC5hdHRyaWJ1dGUuc2t1IHtcXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LmF0dHJpYnV0ZS5za3UgLnR5cGUge1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QuYXR0cmlidXRlLnNrdSAudHlwZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcjOidcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LmF0dHJpYnV0ZS5za3UgLnZhbHVlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC5hdHRyaWJ1dGUub3ZlcnZpZXcge1xcbiAgICBtYXJnaW46IDIwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QuYWxlcnQge1xcbiAgICBtYXJnaW46IDEwcHggMFxcbn1cXG5cXG4ucHJvZHVjdC1pbmZvLW1haW4gLnByb2R1Y3QtYWRkLWZvcm0ge1xcbiAgICBjbGVhcjogYm90aDtcXG4gICAgcGFkZGluZy10b3A6IDE1cHhcXG59XFxuXFxuLnByb2R1Y3QtaW5mby1tYWluIC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAuYm94LXRvY2FydCB7XFxuICAgIG1hcmdpbi10b3A6IDIwcHhcXG59XFxuXFxuLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZHNldC1wcm9kdWN0LW9wdGlvbnMtaW5uZXIgLmxlZ2VuZCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZmxvYXQ6IG5vbmU7XFxuICAgIG1hcmdpbjogMCAwIDhweDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LXByb2R1Y3Qtb3B0aW9ucy1pbm5lciBpbnB1dC5kYXRldGltZS1waWNrZXJ+c2VsZWN0LmRhdGV0aW1lLXBpY2tlciB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZHNldC1wcm9kdWN0LW9wdGlvbnMtaW5uZXIucmVxdWlyZWQgLmxlZ2VuZDphZnRlcixcXG4ucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkc2V0LXByb2R1Y3Qtb3B0aW9ucy1pbm5lci5fcmVxdWlyZWQgLmxlZ2VuZDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcqJztcXG4gICAgY29sb3I6ICNlMDJiMjc7XFxuICAgIGZvbnQtc2l6ZTogMS4ycmVtXFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtd3JhcHBlciAuZmllbGQgLm5vdGUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3gsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IHtcXG4gICAgY29sb3I6ICM1NzU3NTc7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLm9sZC1wcmljZSxcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XFxuICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMFxcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWNvbnRhaW5lcj5zcGFuLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1jb250YWluZXI+c3BhbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXI+c3BhbixcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lcj5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXI+c3BhbjpsYXN0LWNoaWxkLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyPnNwYW46bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLnByb2R1Y3Qtb3B0aW9ucy1ib3R0b20gLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZSxcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2Uge1xcbiAgICBmb250LXNpemU6IDIycHg7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1pbmZvLXByaWNlIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuLnByb2R1Y3Qtb3B0aW9ucy1ib3R0b20gLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC53ZWVlLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC53ZWVlIHtcXG4gICAgZm9udC1zaXplOiAxLjJyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxNHB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlLWluY2x1ZGluZy10YXgrLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlLFxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAud2VlZSsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUrLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlLFxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAud2VlZSAucHJpY2UsXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLndlZWUgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxLjJyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmJveC10b2NhcnQgLmFjdGlvbi50b2NhcnQge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5ib3gtdG9jYXJ0IC5hY3Rpb24udG9jYXJ0Om5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxufVxcblxcbi5wcm9kdWN0LWFkZHRvLWxpbmtzIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5wcm9kdWN0LWFkZHRvLWxpbmtzIC5hY3Rpb24ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDUlXFxufVxcblxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmU6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjFFJ1xcbn1cXG5cXG4ucHJpY2VzLXRpZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxufVxcblxcbi5wcmljZXMtdGllciAuaXRlbSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnByaWNlcy10aWVyIC5pdGVtOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5wcmljZXMtdGllciAucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJpY2VzLXRpZXIgLnByaWNlLWluY2x1ZGluZy10YXgge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLm1pbmltYWwtcHJpY2UtbGluayxcXG4ucHJpY2UtZXhjbHVkaW5nLXRheCxcXG4ucHJpY2UtaW5jbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Uge1xcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGRpc3BsYXk6IGlubGluZVxcbn1cXG5cXG4udWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlOnZpc2l0ZWQge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2U6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2U6aG92ZXIsXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTphY3RpdmUsXFxuLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZTpmb2N1cyB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4udWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlLmRpc2FibGVkLFxcbi51aS1kaWFsb2ctdGl0bGViYXItY2xvc2VbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIG9wYWNpdHk6IC41O1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0taW5mbyB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1pbmZvIC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICBtYXJnaW4tdG9wOiAwXFxufVxcblxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyB7XFxuICAgIG1hcmdpbjogMCAwIDAgODVweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWFjdGlvbnMge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAucHJpY2UtYm94IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogN3B4IDBcXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLnRleHQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAuY291bnRlciB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnNpZGViYXIgLnByb2R1Y3QtaXRlbXMgLm1pbmlsaXN0IC5wcmljZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZTtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcyAubWluaWxpc3QgLndlZWU6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5zaWRlYmFyIC5wcm9kdWN0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5zaWRlYmFyIC5hY3Rpb24udG9jYXJ0IHtcXG4gICAgYm9yZGVyLXJhZGl1czogMFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXMge1xcbiAgICBtYXJnaW4tbGVmdDogLTVweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1pbWFnZXMgLnByb2R1Y3QtaXRlbSB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDVweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1uYW1lcyAucHJvZHVjdC1pdGVtIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uc2lkZWJhciAucHJvZHVjdC1pdGVtcy1uYW1lcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuYm9keS5jYXRhbG9nLXByb2R1Y3QtY29tcGFyZS1pbmRleCAuYWN0aW9uLnByaW50IHtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICBtYXJnaW46IDE1cHggMFxcbn1cXG5cXG4udGFibGUtd3JhcHBlci5jb21wYXJpc29uIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgb3ZlcmZsb3cteDogYXV0bztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi50YWJsZS13cmFwcGVyLmNvbXBhcmlzb24gLnRhYmxlLWNvbXBhcmlzb24+dGJvZHk+dHI+dGgsXFxuLnRhYmxlLXdyYXBwZXIuY29tcGFyaXNvbiAudGFibGUtY29tcGFyaXNvbj50Ym9keT50cj50ZCB7XFxuICAgIGJvcmRlci10b3A6IDBcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24ge1xcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsIHtcXG4gICAgcGFkZGluZzogMTVweDtcXG4gICAgd2lkdGg6IDE4MHB4XFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsLmxhYmVsIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5sYWJlbCAuYXR0cmlidXRlLmxhYmVsIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwucHJvZHVjdC5pbmZvLFxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsLnByb2R1Y3QubGFiZWwge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5hdHRyaWJ1dGUge1xcbiAgICBmb250LXNpemU6IDEuM3JlbVxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5hdHRyaWJ1dGUgaW1nIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtYXgtd2lkdGg6IDEwMCVcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLmNlbGwucmVtb3ZlIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDA7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodFxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAuY2VsbC5yZW1vdmUgLmFjdGlvbi5kZWxldGUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IC42cmVtXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5jZWxsIC5hdHRyaWJ1dGUudmFsdWUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiB0ZDpsYXN0LWNoaWxkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1pdGVtLXBob3RvIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMCBhdXRvIDE1cHhcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByb2R1Y3QtaW1hZ2UtcGhvdG8ge1xcbiAgICBtYXJnaW4tbGVmdDogMFxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1pdGVtLWFjdGlvbnMsXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByaWNlLWJveCxcXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC5yYXRpbmcsXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMTVweCAwXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5wcm9kdWN0LWFkZHRvLWxpbmtzIHtcXG4gICAgbWFyZ2luLXRvcDogMTVweFxcbn1cXG5cXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1hZGR0by1saW5rcyAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIHBhZGRpbmc6IDBcXG59XFxuXFxuLnRhYmxlLWNvbXBhcmlzb24gLnByb2R1Y3QtYWRkdG8tbGlua3MgLmFjdGlvbi5zcGxpdCxcXG4udGFibGUtY29tcGFyaXNvbiAucHJvZHVjdC1hZGR0by1saW5rcyAuYWN0aW9uLnRvZ2dsZSB7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XFxuICAgIHBhZGRpbmc6IDVweCA4cHg7XFxuICAgIGZvbnQtc2l6ZTogMS4xcmVtXFxufVxcblxcbi50YWJsZS1jb21wYXJpc29uIC5hY3Rpb24udG9jYXJ0IHtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4uY29tcGFyaXNvbi5oZWFkaW5ncyB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgei1pbmRleDogMlxcbn1cXG5cXG4uYmxvY2stY29tcGFyZSAucHJvZHVjdC1pdGVtIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyMnB4XFxufVxcblxcbi5ibG9jay1jb21wYXJlIC5hY3Rpb24uZGVsZXRlIHtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDBcXG59XFxuXFxuLmJsb2NrLWNvbXBhcmUgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbjogMTdweCAwIDBcXG59XFxuXFxuLmJsb2NrLnJlbGF0ZWQgLmFjdGlvbi5zZWxlY3Qge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5ibG9jay5yZWxhdGVkIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgei1pbmRleDogMVxcbn1cXG5cXG4uYmxvY2sucmVsYXRlZCAucmVsYXRlZC1hdmFpbGFibGUgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHhcXG59XFxuXFxuLmJsb2NrLnJlbGF0ZWQgLmZpZWxkLmNob2ljZSB7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAycHhcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCAuYmxvY2stdGl0bGUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5ibG9jay1zZWFyY2ggLmJsb2NrLWNvbnRlbnQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jay1zZWFyY2ggLmxhYmVsIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZsb2F0OiByaWdodFxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5sYWJlbD5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCAubGFiZWw6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMjJweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTUnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMTBweCAwIDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5sYWJlbDpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5sYWJlbDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmJsb2NrLXNlYXJjaCAubGFiZWwuYWN0aXZlKy5jb250cm9sIGlucHV0IHtcXG4gICAgcG9zaXRpb246IHN0YXRpY1xcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5hY3Rpb24uc2VhcmNoIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5jb250cm9sIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBtYXJnaW46IDAgLTE1cHggLTFweDtcXG4gICAgcGFkZGluZzogMCAxNXB4XFxufVxcblxcbi5ibG9jay1zZWFyY2ggaW5wdXQge1xcbiAgICBsZWZ0OiAtMzAwJTtcXG4gICAgbWFyZ2luOiAxNXB4IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxcbn1cXG5cXG4uYmxvY2stc2VhcmNoIC5uZXN0ZWQge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgbWFyZ2luLXRvcDogLTE1cHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgei1pbmRleDogM1xcbn1cXG5cXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHVsOm5vdCg6ZW1wdHkpIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MyYzJjMjtcXG4gICAgYm9yZGVyLXRvcDogMFxcbn1cXG5cXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogNXB4IDQwcHggNXB4IDEwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG4uc2VhcmNoLWF1dG9jb21wbGV0ZSB1bCBsaTpmaXJzdC1jaGlsZCB7XFxuICAgIGJvcmRlci10b3A6IG5vbmVcXG59XFxuXFxuLnNlYXJjaC1hdXRvY29tcGxldGUgdWwgbGk6aG92ZXIsXFxuLnNlYXJjaC1hdXRvY29tcGxldGUgdWwgbGkuc2VsZWN0ZWQge1xcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4XFxufVxcblxcbi5zZWFyY2gtYXV0b2NvbXBsZXRlIHVsIGxpIC5hbW91bnQge1xcbiAgICBjb2xvcjogIzk5OTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogN3B4O1xcbiAgICB0b3A6IDVweFxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6Zmlyc3QtY2hpbGQge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmZvcm0uc2VhcmNoLmFkdmFuY2VkIC5maWVsZHMucmFuZ2UgLmZpZWxkOmZpcnN0LWNoaWxkIC5jb250cm9sIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjVweFxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6Zmlyc3QtY2hpbGQgLmNvbnRyb2w6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnIFxcXFwyMDEzICAgJztcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHRvcDogNnB4O1xcbiAgICB3aWR0aDogMjVweFxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6bGFzdC1jaGlsZCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkcy5yYW5nZSAuZmllbGQ6bGFzdC1jaGlsZCBkaXYubWFnZS1lcnJvcltnZW5lcmF0ZWRdIHtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDMycHhcXG59XFxuXFxuLmZvcm0uc2VhcmNoLmFkdmFuY2VkIC5maWVsZHMucmFuZ2UgLmZpZWxkLndpdGgtYWRkb24gLmNvbnRyb2wge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NXB4XFxufVxcblxcbi5mb3JtLnNlYXJjaC5hZHZhbmNlZCAuZ3JvdXAucHJpY2UgLmFkZG9uIC5hZGRhZnRlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZy10b3A6IDZweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5zZWFyY2gtdGVybXMge1xcbiAgICBsaW5lLWhlaWdodDogMmVtXFxufVxcblxcbi5zZWFyY2gtdGVybXM+bGkge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweFxcbn1cXG5cXG4uc2VhcmNoLmZvdW5kIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uY2hlY2tvdXQtY2FydC1pbmRleCAucGFnZS1tYWluIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwXFxufVxcblxcbi5jaGVja291dC1jYXJ0LWluZGV4IC5wYWdlLXRpdGxlLXdyYXBwZXIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHhcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSB7XFxuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XFxuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XFxuICAgIHBhZGRpbmc6IDFweCAwIDI1cHhcXG59XFxuXFxuLmNhcnQtc3VtbWFyeT4udGl0bGUge1xcbiAgICBmb250LXNpemU6IDIuNHJlbTtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbWFyZ2luOiAxMnB4IDBcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgZm9ybTpub3QoOmxhc3Qtb2YtdHlwZSkgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAwIDAgMjVweFxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5ibG9jayAucHJpY2Uge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5maWVsZCB7XFxuICAgIG1hcmdpbjogMCAwIDE2cHhcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLmZpZWxkLm5vdGUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5hY3Rpb25zLXRvb2xiYXI+LnByaW1hcnkgLmFjdGlvbi5wcmltYXJ5IHtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuYmxvY2sgLnRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW46IDAgMCAxNnB4XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5pdGVtLW9wdGlvbnMgLmZpZWxkIC5yYWRpbyB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmJsb2NrIC5pdGVtLW9wdGlvbnMgLmZpZWxkIC5yYWRpbysubGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuXFxufVxcblxcbi5wYWdlLW1haW4gLmNhcnQtc3VtbWFyeSAuYmxvY2sge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMge1xcbiAgICBtYXJnaW46IDIwcHggMCAwO1xcbiAgICBwYWRkaW5nOiAwIDE1cHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5jaGVja291dC1tZXRob2RzLWl0ZW1zIC5hY3Rpb24ucHJpbWFyeS5jaGVja291dCB7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMgLml0ZW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMgLml0ZW06bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAubWVzc2FnZSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjBweFxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5tZXNzYWdlPio6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uY2FydC1zdW1tYXJ5IC5hY3Rpb24ubXVsdGljaGVja291dCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5jYXJ0LXRvdGFscyB0Ym9keSAubWFyayxcXG4uY2FydC10b3RhbHMgdGZvb3QgLm1hcmsge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNhcnQgdGhlYWQgdHIgdGguY29sIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xcbiAgICBwYWRkaW5nLXRvcDogMjRweFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5jYXJ0IHRib2R5IHRkIHtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNhcnQ+Lml0ZW0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbCB7XFxuICAgIHBhZGRpbmctdG9wOiAxNXB4XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAge1xcbiAgICBwYWRkaW5nOiAyMHB4IDExcHggMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHkge1xcbiAgICBwYWRkaW5nOiAyMHB4IDExcHggMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHkgLmlucHV0LXRleHQge1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuICAgIG1hcmdpbi10b3A6IC03cHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgd2lkdGg6IDQ1cHhcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sPi5wcmljZSB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5pdGVtLWFjdGlvbnMgdGQge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0gLmNvbC5pdGVtIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1pbi1oZWlnaHQ6IDc1cHg7XFxuICAgIHBhZGRpbmc6IDE1cHggMTVweCAxMHB4IDkwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWVkaXQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMTZweDtcXG4gICAgdG9wOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1lZGl0PnNwYW4sXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1lZGl0OmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDEnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZWRpdDpob3ZlcjpiZWZvcmUsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9ucy10b29sYmFyPi5hY3Rpb24tZGVsZXRlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWVkaXQ6YWN0aXZlOmJlZm9yZSxcXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb25zLXRvb2xiYXI+LmFjdGlvbi1kZWxldGU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzU3NTc1XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZSB7XFxuICAgIHJpZ2h0OiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMtdG9vbGJhcj4uYWN0aW9uLWRlbGV0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbiB7XFxuICAgIG1hcmdpbi1yaWdodDogMjVweFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb246bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1yaWdodDogMFxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24uaGVscC5tYXAge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBsZWZ0OiAxNXB4O1xcbiAgICBtYXgtd2lkdGg6IDY1cHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxNXB4O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAtM3B4IDAgNXB4XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmdpZnQtcmVnaXN0cnktbmFtZS1sYWJlbDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICc6J1xcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLnByb2R1Y3QtaXRlbS1uYW1lKy5pdGVtLW9wdGlvbnMge1xcbiAgICBtYXJnaW4tdG9wOiAyMHB4XFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi5jb25maWd1cmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMTBweCAwIDBcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbSAubWVzc2FnZSB7XFxuICAgIG1hcmdpbi10b3A6IDIwcHhcXG59XFxuXFxuLmNhcnQtcHJvZHVjdHMtdG9vbGJhciAudG9vbGJhci1hbW91bnQge1xcbiAgICBsZWZ0OiBpbmhlcml0O1xcbiAgICBtYXJnaW46IDI1cHggMCAxNXB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiBpbmhlcml0XFxufVxcblxcbi5jYXJ0LXByb2R1Y3RzLXRvb2xiYXItdG9wIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmNhcnQtZGlzY291bnQge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgY2xlYXI6IGxlZnRcXG59XFxuXFxuLmNhcnQtZW1wdHkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHhcXG59XFxuXFxuLmNhcnQtdGF4LWluZm8rLmNhcnQtdGF4LXRvdGFsLFxcbi5jYXJ0IC5jYXJ0LXRheC1pbmZvKy5jYXJ0LXRheC10b3RhbCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5wcmljZSxcXG4ub3JkZXItaXRlbXMudGFibGUtd3JhcHBlciAuY29sLnByaWNlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHksXFxuLm9yZGVyLWl0ZW1zLnRhYmxlLXdyYXBwZXIgLmNvbC5xdHksXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLnN1YnRvdGFsLFxcbi5vcmRlci1pdGVtcy50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWwsXFxuLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAsXFxuLm9yZGVyLWl0ZW1zLnRhYmxlLXdyYXBwZXIgLmNvbC5tc3JwIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHRcXG59XFxuXFxuLmJsb2NrLmNyb3Nzc2VsbCB7XFxuICAgIHBhZGRpbmc6IDAgMTVweDtcXG4gICAgbWFyZ2luLXRvcDogNzBweFxcbn1cXG5cXG4uYmxvY2suY3Jvc3NzZWxsIC5wcm9kdWN0LWl0ZW0taW5mbyB7XFxuICAgIHdpZHRoOiAyMDBweFxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLml0ZW1zLXRvdGFsIHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIG1hcmdpbjogMCAxMHB4XFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuaXRlbXMtdG90YWwgLmNvdW50IHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLnN1YnRvdGFsIHtcXG4gICAgbWFyZ2luOiAwIDEwcHggMTBweDtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHRcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5hbW91bnQgLnByaWNlLXdyYXBwZXI6Zmlyc3QtY2hpbGQgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuc3VidGl0bGUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuc3VidGl0bGUuZW1wdHkge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBwYWRkaW5nOiAzMHB4IDAgMjBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAudGV4dC5lbXB0eSB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbnMge1xcbiAgICBtYXJnaW4tdG9wOiAxNXB4XFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stY29udGVudD4uYWN0aW9ucz4uc2Vjb25kYXJ5IHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stY29udGVudD4uYWN0aW9ucz4ucHJpbWFyeSB7XFxuICAgIG1hcmdpbjogMCAxMHB4IDE1cHhcXG59XFxuXFxuLmJsb2NrLW1pbmljYXJ0IC5ibG9jay1jb250ZW50Pi5hY3Rpb25zPi5wcmltYXJ5IC5hY3Rpb24ucHJpbWFyeSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbnMgLnBheXBhbC1sb2dvIHtcXG4gICAgbWFyZ2luLXRvcDogMTVweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stY2F0ZWdvcnktbGluayxcXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLXByb2R1Y3QtbGluayxcXG4uYmxvY2stbWluaWNhcnQgLmJsb2NrLWNtcy1saW5rLFxcbi5ibG9jay1taW5pY2FydCAuYmxvY2stYmFubmVycyB7XFxuICAgIG1hcmdpbjogMTVweCAwIDA7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBmbG9hdDogcmlnaHRcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXI6YmVmb3JlLFxcbi5taW5pY2FydC13cmFwcGVyOmFmdGVyIHtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IHRhYmxlXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGhcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMjhweDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3NTc1NzVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydC5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0LmFjdGl2ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMjhweDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQuYWN0aXZlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQuYWN0aXZlOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYmxvY2stbWluaWNhcnQge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNHB4O1xcbiAgICBtaW4td2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDEwMDtcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydCBsaSB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYmxvY2stbWluaWNhcnQgbGk6aG92ZXIge1xcbiAgICBjdXJzb3I6IHBvaW50ZXJcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmJlZm9yZSxcXG4ubWluaWNhcnQtd3JhcHBlciAuYmxvY2stbWluaWNhcnQ6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmJlZm9yZSB7XFxuICAgIGJvcmRlcjogNnB4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk5XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydDphZnRlciB7XFxuICAgIGJvcmRlcjogN3B4IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNiYmIgdHJhbnNwYXJlbnQ7XFxuICAgIHotaW5kZXg6IDk4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydDpiZWZvcmUge1xcbiAgICBsZWZ0OiAxMHB4O1xcbiAgICB0b3A6IC0xMnB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydDphZnRlciB7XFxuICAgIGxlZnQ6IDlweDtcXG4gICAgdG9wOiAtMTRweFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlci5hY3RpdmUge1xcbiAgICBvdmVyZmxvdzogdmlzaWJsZVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlci5hY3RpdmUgLmJsb2NrLW1pbmljYXJ0IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0IHtcXG4gICAgcGFkZGluZzogMjVweCAyMHB4O1xcbiAgICByaWdodDogMDtcXG4gICAgd2lkdGg6IDMyMHB4O1xcbiAgICB6LWluZGV4OiAxMDFcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0IC5ibG9jay10aXRsZSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmFmdGVyIHtcXG4gICAgbGVmdDogYXV0bztcXG4gICAgcmlnaHQ6IDI1cHhcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmJsb2NrLW1pbmljYXJ0OmJlZm9yZSB7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiAyNnB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5wcm9kdWN0IC5hY3Rpb25zIHtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICBtYXJnaW46IC0yNHB4IDAgMFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAucHJvZHVjdCAuYWN0aW9ucz4ucHJpbWFyeSxcXG4ubWluaWNhcnQtd3JhcHBlciAucHJvZHVjdCAuYWN0aW9ucz4uc2Vjb25kYXJ5IHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5wcm9kdWN0IC5hY3Rpb25zPi5wcmltYXJ5Om5vdCg6bGFzdC1jaGlsZCksXFxuLm1pbmljYXJ0LXdyYXBwZXIgLnByb2R1Y3QgLmFjdGlvbnM+LnNlY29uZGFyeTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2Uge1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U6Zm9jdXMsXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5jbG9zZTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5jbG9zZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLmNsb3NlLmRpc2FibGVkLFxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2VbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLmNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MTYnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLmNsb3NlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uY2xvc2U6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQge1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQgLmNvdW50ZXIucXR5IHtcXG4gICAgYmFja2dyb3VuZDogI2ZmNTUwMTtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGhlaWdodDogMjRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW46IDNweCAwIDA7XFxuICAgIG1pbi13aWR0aDogMThweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMCAzcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbn1cXG5cXG4ubWluaWNhcnQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0IC5jb3VudGVyLnF0eS5lbXB0eSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCAuY291bnRlci5xdHkgLmxvYWRlcj5pbWcge1xcbiAgICBtYXgtd2lkdGg6IDI0cHhcXG59XFxuXFxuLm1pbmljYXJ0LXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydCAuY291bnRlci1udW1iZXIge1xcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDdweCAjMDAwXFxufVxcblxcbi5taW5pY2FydC13cmFwcGVyIC5taW5pY2FydC13aWRnZXRzIHtcXG4gICAgbWFyZ2luLXRvcDogMTVweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMtd3JhcHBlciB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogMCAtMjBweDtcXG4gICAgYm9yZGVyLWxlZnQ6IDA7XFxuICAgIGJvcmRlci1yaWdodDogMDtcXG4gICAgb3ZlcmZsb3cteDogYXV0bztcXG4gICAgcGFkZGluZzogMTVweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbSB7XFxuICAgIHBhZGRpbmc6IDIwcHggMFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gICAgcGFkZGluZy10b3A6IDBcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tcHJpY2luZyAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiA0LjVyZW1cXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcmljZS1taW5pY2FydCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luOiAwIDAgMTBweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4OHB4XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1pbmNsdWRpbmctdGF4LFxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICBtYXJnaW46IDVweCAwXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLndlZWVbZGF0YS1sYWJlbF0ge1xcbiAgICBmb250LXNpemU6IDEuMXJlbVxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5kZXRhaWxzLXF0eSB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Pi5wcm9kdWN0LWl0ZW0tcGhvdG8sXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Pi5wcm9kdWN0LWltYWdlLWNvbnRhaW5lciB7XFxuICAgIGZsb2F0OiBsZWZ0XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAucHJvZHVjdCAudG9nZ2xlIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBwYWRkaW5nOiAwIDQwcHggNXB4IDBcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0IC50b2dnbGU6YWZ0ZXIge1xcbiAgICBjb2xvcjogIzhmOGY4ZjtcXG4gICAgbWFyZ2luOiAwIDAgMCA1cHg7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWNcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0IC5hY3RpdmU+LnRvZ2dsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LnByaWNpbmcge1xcbiAgICBtYXJnaW4tdG9wOiAzcHhcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Lm9wdGlvbnMgLnRvZ2dsZS50b29sdGlwIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Lm9wdGlvbnMgLnRvZ2dsZS50b29sdGlwPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLnByb2R1Y3Qub3B0aW9ucyAudG9nZ2xlLnRvb2x0aXA6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTJweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogLTNweCAwIDAgN3B4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0Lm9wdGlvbnMgLmRldGFpbHMge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAuaXRlbS1xdHkge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgd2lkdGg6IDQwcHhcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC51cGRhdGUtY2FydC1pdGVtIHtcXG4gICAgZm9udC1zaXplOiAxLjFyZW07XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5zdWJ0aXRsZSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZWRpdCxcXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5kZWxldGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5lZGl0PnNwYW4sXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5lZGl0OmJlZm9yZSxcXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5kZWxldGU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDEnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZWRpdDpob3ZlcjpiZWZvcmUsXFxuLm1pbmljYXJ0LWl0ZW1zIC5hY3Rpb24uZGVsZXRlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAuYWN0aW9uLmVkaXQ6YWN0aXZlOmJlZm9yZSxcXG4ubWluaWNhcnQtaXRlbXMgLmFjdGlvbi5kZWxldGU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzU3NTc1XFxufVxcblxcbi5taW5pY2FydC1pdGVtcyAuYWN0aW9uLmRlbGV0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnXFxufVxcblxcbi5jaGVja291dC1jb250YWluZXIge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zdGVwLXRpdGxlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zdGVwLWNvbnRlbnQge1xcbiAgICBtYXJnaW46IDAgMCA0MHB4XFxufVxcblxcbi5jaGVja291dC1pbmRleC1pbmRleCAubmF2LXNlY3Rpb25zLFxcbi5jaGVja291dC1pbmRleC1pbmRleCAubmF2LXRvZ2dsZSB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5sb2dvIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDBcXG59XFxuXFxuLmNoZWNrb3V0LW9uZXBhZ2Utc3VjY2VzcyAucHJpbnQge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgIG1hcmdpbjogLTIxcHggLTE1cHggMTVweDtcXG4gICAgcGFkZGluZzogMThweCAxNXB4XFxufVxcblxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmVzdGltYXRlZC1ibG9jayB7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuZXN0aW1hdGVkLWJsb2NrIC5lc3RpbWF0ZWQtbGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwIDAgNXB4XFxufVxcblxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLm1pbmljYXJ0LXdyYXBwZXIgYnV0dG9uLmFjdGlvbi5zaG93Y2FydCB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyIC5taW5pY2FydC13cmFwcGVyIGJ1dHRvbi5hY3Rpb24uc2hvd2NhcnQ6Zm9jdXMsXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAubWluaWNhcnQtd3JhcHBlciBidXR0b24uYWN0aW9uLnNob3djYXJ0OmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyIC5taW5pY2FydC13cmFwcGVyIGJ1dHRvbi5hY3Rpb24uc2hvd2NhcnQ6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAubWluaWNhcnQtd3JhcHBlciBidXR0b24uYWN0aW9uLnNob3djYXJ0LmRpc2FibGVkLFxcbi5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLm1pbmljYXJ0LXdyYXBwZXIgYnV0dG9uLmFjdGlvbi5zaG93Y2FydFtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLm1pbmljYXJ0LXdyYXBwZXIgYnV0dG9uLmFjdGlvbi5zaG93Y2FydCB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4ub3BjLWVzdGltYXRlZC13cmFwcGVyIC5taW5pY2FydC13cmFwcGVyIGJ1dHRvbi5hY3Rpb24uc2hvd2NhcnQ6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLm9wYy1wcm9ncmVzcy1iYXIge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5maWVsZC5jaG9pY2UgLmZpZWxkLXRvb2x0aXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRvcDogLTNweFxcbn1cXG5cXG4uZmllbGQuY2hvaWNlIC5maWVsZC10b29sdGlwLWFjdGlvbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMXB4XFxufVxcblxcbi5maWVsZC5fZXJyb3IgLmNvbnRyb2wgaW5wdXQsXFxuLmZpZWxkLl9lcnJvciAuY29udHJvbCBzZWxlY3QsXFxuLmZpZWxkLl9lcnJvciAuY29udHJvbCB0ZXh0YXJlYSB7XFxuICAgIGJvcmRlci1jb2xvcjogI2VkODM4MFxcbn1cXG5cXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5maWVsZHNldCAuZmllbGQgLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1oaWRlLXBvcHVwIHtcXG4gICAgbWFyZ2luLXRvcDogOHB4XFxufVxcblxcbi5maWVsZC10b29sdGlwIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDFweFxcbn1cXG5cXG4uZmllbGQtdG9vbHRpcC5fYWN0aXZlIHtcXG4gICAgei1pbmRleDogMTAwXFxufVxcblxcbi5maWVsZC10b29sdGlwLl9hY3RpdmUgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5maWVsZC10b29sdGlwLl9hY3RpdmUgLmZpZWxkLXRvb2x0aXAtYWN0aW9uOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbj5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDIxcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogI2JiYjtcXG4gICAgY29udGVudDogJ1xcXFxFNjIzJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbjpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uX2tleWZvY3VzIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbjpmb2N1cyB7XFxuICAgIHotaW5kZXg6IDEwMFxcbn1cXG5cXG4uX2tleWZvY3VzIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWFjdGlvbjpmb2N1cysuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLl9rZXlmb2N1cyAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb246Zm9jdXM6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICB3aWR0aDogMjcwcHg7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIGxlZnQ6IDM4cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICAgIHRvcDogLTlweDtcXG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxcbi5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICBib3JkZXI6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGhlaWdodDogMDtcXG4gICAgd2lkdGg6IDA7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2Y0ZjRmNDtcXG4gICAgbGVmdDogLTIxcHg7XFxuICAgIHRvcDogMTJweDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHotaW5kZXg6IDNcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUge1xcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICM2NjZcXG59XFxuXFxuLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XFxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2Y0ZjRmNDtcXG4gICAgd2lkdGg6IDFweDtcXG4gICAgei1pbmRleDogNFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmZvcm0tbG9naW4sXFxuLm9wYy13cmFwcGVyIC5mb3JtLXNoaXBwaW5nLWFkZHJlc3Mge1xcbiAgICBtYXJnaW4tdG9wOiAyOHB4O1xcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZm9ybS1sb2dpbiAuZmllbGRzZXQgLmZpZWxkIC5sYWJlbCxcXG4ub3BjLXdyYXBwZXIgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRzZXQgLmZpZWxkIC5sYWJlbCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5mb3JtLWxvZ2luIC5maWVsZHNldCAubm90ZSxcXG4ub3BjLXdyYXBwZXIgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRzZXQgLm5vdGUge1xcbiAgICBmb250LXNpemU6IDE0cHg7XFxuICAgIG1hcmdpbi10b3A6IDEwcHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIHtcXG4gICAgZm9udC1zaXplOiAwXFxufVxcblxcbi5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtIHtcXG4gICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHBhZGRpbmc6IDIwcHggMzVweCAyMHB4IDIwcHg7XFxuICAgIHRyYW5zaXRpb246IC4zcyBib3JkZXItY29sb3I7XFxuICAgIHdpZHRoOiA1MCU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5zaGlwcGluZy1hZGRyZXNzLWl0ZW0uc2VsZWN0ZWQtaXRlbSB7XFxuICAgIGJvcmRlci1jb2xvcjogI2ZmNTUwMVxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbS5zZWxlY3RlZC1pdGVtOmFmdGVyIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmNTUwMTtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxMCc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIGhlaWdodDogMjdweDtcXG4gICAgd2lkdGg6IDI5cHg7XFxuICAgIGZvbnQtc2l6ZTogMTlweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIxcHg7XFxuICAgIHBhZGRpbmctdG9wOiAycHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0gLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbSB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlblxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmFjdGlvbi1zaG93LXBvcHVwIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmFjdGlvbi1zaG93LXBvcHVwPnNwYW46YmVmb3JlIHtcXG4gICAgY29udGVudDogJysnO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHhcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0ge1xcbiAgICBmbG9hdDogcmlnaHQ7XFxuICAgIG1hcmdpbjogMjBweCAwIDBcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluayB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luOiAyNnB4IDVweCAwIDBcXG59XFxuXFxuLmNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAuc3RlcC10aXRsZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAubm8tcXVvdGVzLWJsb2NrIHtcXG4gICAgbWFyZ2luOiAyMHB4IDBcXG59XFxuXFxuLm1ldGhvZHMtc2hpcHBpbmcgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnkge1xcbiAgICBtYXJnaW46IDIwcHggMCAwXFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGhlYWQgdGgge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgdGQge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAyMHB4XFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgIHdpZHRoOiAyMHB4XFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQge1xcbiAgICBib3JkZXItdG9wOiBub25lXFxufVxcblxcbi50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgdGJvZHkgLmNvbC1wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDBcXG59XFxuXFxuLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCB0Ym9keSAucm93LWVycm9yIHRkIHtcXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAwXFxufVxcblxcbi5jaGVja291dC1zaGlwcGluZy1tZXRob2Qge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLnNoaXBwaW5nLXBvbGljeS1ibG9jay5maWVsZC10b29sdGlwIHtcXG4gICAgdG9wOiAxMnB4XFxufVxcblxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgY3Vyc29yOiBwb2ludGVyXFxufVxcblxcbi5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb246YmVmb3JlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgIHdpZHRoOiA0MjBweDtcXG4gICAgdG9wOiAzMHB4XFxufVxcblxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24ge1xcbiAgICBwYWRkaW5nOiAwIDMwcHhcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdCB7XFxuICAgIHRvcDogMTBweDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5vcGMtYmxvY2stc2hpcHBpbmctaW5mb3JtYXRpb24gLnNoaXBwaW5nLWluZm9ybWF0aW9uLXRpdGxlIC5hY3Rpb24tZWRpdDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgY29sb3I6ICM3NTc1NzU7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSAuYWN0aW9uLWVkaXQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgLmFjdGlvbi1lZGl0OmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwcGluZy1pbmZvcm1hdGlvbi1jb250ZW50IHtcXG4gICAgbGluZS1oZWlnaHQ6IDI3cHhcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcHBpbmctaW5mb3JtYXRpb24tY29udGVudCAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDBcXG59XFxuXFxuLm9wYy1ibG9jay1zaGlwcGluZy1pbmZvcm1hdGlvbiAuc2hpcC10byxcXG4ub3BjLWJsb2NrLXNoaXBwaW5nLWluZm9ybWF0aW9uIC5zaGlwLXZpYSB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IHtcXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcXG4gICAgcGFkZGluZzogMjJweCAzMHB4XFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeT4udGl0bGUge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLm1hcmsgLnZhbHVlIHtcXG4gICAgY29sb3I6ICM2NjY7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuZ3JhbmQuaW5jbCsuZ3JhbmQuZXhjbCAubWFyayxcXG4ub3BjLWJsb2NrLXN1bW1hcnkgLmdyYW5kLmluY2wrLmdyYW5kLmV4Y2wgLmFtb3VudCB7XFxuICAgIGJvcmRlci10b3A6IDA7XFxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xcbiAgICBwYWRkaW5nLXRvcDogMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLmdyYW5kLmluY2wrLmdyYW5kLmV4Y2wgLm1hcmsgc3Ryb25nLFxcbi5vcGMtYmxvY2stc3VtbWFyeSAuZ3JhbmQuaW5jbCsuZ3JhbmQuZXhjbCAuYW1vdW50IHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5ub3QtY2FsY3VsYXRlZCB7XFxuICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLml0ZW1zLWluLWNhcnQ+LnRpdGxlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDA7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydD4udGl0bGU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydD4udGl0bGU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTJweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogM3B4IDAgMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydD4udGl0bGU6YWZ0ZXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDEwcHhcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5pdGVtcy1pbi1jYXJ0Pi50aXRsZSBzdHJvbmcge1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydC5hY3RpdmU+LnRpdGxlOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLml0ZW1zLWluLWNhcnQgLnByb2R1Y3Qge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5taW5pY2FydC1pdGVtcy13cmFwcGVyIHtcXG4gICAgbWFyZ2luOiAwIC0xNXB4IDAgMDtcXG4gICAgbWF4LWhlaWdodDogMzcwcHg7XFxuICAgIHBhZGRpbmc6IDE1cHggMTVweCAwIDA7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4uY29sdW1uLm1haW4gLm9wYy1ibG9jay1zdW1tYXJ5IC5wcm9kdWN0LWl0ZW0ge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmctbGVmdDogMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1pdGVtLWlubmVyIHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5vcGMtYmxvY2stc3VtbWFyeSAucHJvZHVjdC1pdGVtIC5wcm9kdWN0LWl0ZW0tbmFtZS1ibG9jayB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAuc3VidG90YWwge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB0ZXh0LWFsaWduOiByaWdodFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAucHJpY2Uge1xcbiAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4ub3BjLWJsb2NrLXN1bW1hcnkgLnByb2R1Y3QtaXRlbSAucHJpY2UtaW5jbHVkaW5nLXRheCsucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xcbiAgICBmb250LXNpemU6IDFyZW1cXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAtMXB4IDAgMDtcXG4gICAgcGFkZGluZzogMTVweCAwIDA7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLm9wYy1ibG9jay1zdW1tYXJ5IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSAuYWN0aW9uIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5hdXRoZW50aWNhdGlvbi1kcm9wZG93biB7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3hcXG59XFxuXFxuLmF1dGhlbnRpY2F0aW9uLWRyb3Bkb3duIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgcGFkZGluZzogMjVweFxcbn1cXG5cXG4uYXV0aGVudGljYXRpb24td3JhcHBlciB7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgbWFyZ2luLXRvcDogLTYwcHg7XFxuICAgIG1heC13aWR0aDogNTAlO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLl9oYXMtYXV0aC1zaG93biAuYXV0aGVudGljYXRpb24td3JhcHBlciB7XFxuICAgIHotaW5kZXg6IDkwMFxcbn1cXG5cXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmJsb2NrLXRpdGxlIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGJvcmRlci1ib3R0b206IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9jay10aXRsZSBzdHJvbmcge1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1hdXRoZW50aWNhdGlvbiAuZmllbGQgLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4uYmxvY2stYXV0aGVudGljYXRpb24gLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IHtcXG4gICAgcGFkZGluZy10b3A6IDI1cHg7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10ge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10gdWwge1xcbiAgICBsaXN0LXN0eWxlOiBub25lO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10gLmZpZWxkIC5jb250cm9sLFxcbi5ibG9jay1hdXRoZW50aWNhdGlvbiAuYmxvY2tbY2xhc3NdIC5maWVsZCAubGFiZWwge1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10rLmJsb2NrIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjMWMxYzE7XFxuICAgIG1hcmdpbi10b3A6IDQwcHg7XFxuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG59XFxuXFxuLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9ja1tjbGFzc10rLmJsb2NrOjpiZWZvcmUge1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xcbiAgICBtYXJnaW46IC0xOXB4IDAgMCAtMThweDtcXG4gICAgbWluLXdpZHRoOiAzNnB4O1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGNvbG9yOiAjYzFjMWMxO1xcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gICAgcGFkZGluZzogMCAuMnJlbTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICAgIHRvcDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnN0ZXAtdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2Q6Zmlyc3QtY2hpbGQgLnBheW1lbnQtbWV0aG9kLXRpdGxlIHtcXG4gICAgYm9yZGVyLXRvcDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLl9hY3RpdmUgLnBheW1lbnQtbWV0aG9kLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kKy5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIHtcXG4gICAgcGFkZGluZzogMjBweCAwO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAucGF5bWVudC1pY29uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5hY3Rpb24taGVscCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luLWxlZnQ6IDVweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBwYWRkaW5nOiAwIDAgMjBweCAyMnB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtY29udGVudCAuZmllbGRzZXQ6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LWdyb3VwKy5wYXltZW50LWdyb3VwIC5zdGVwLXRpdGxlIHtcXG4gICAgbWFyZ2luOiAyMHB4IDAgMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmZpZWxkLXNlbGVjdC1iaWxsaW5nLFxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuYmlsbGluZy1hZGRyZXNzLWZvcm0ge1xcbiAgICBtYXgtd2lkdGg6IDUwMHB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAucHJpbWFyeSAuYWN0aW9uLXVwZGF0ZSB7XFxuICAgIG1hcmdpbi1yaWdodDogMFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyAuYmlsbGluZy1hZGRyZXNzLWRldGFpbHMge1xcbiAgICBsaW5lLWhlaWdodDogMjdweDtcXG4gICAgcGFkZGluZzogMCAwIDAgMjNweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLW5vdGUrLmNoZWNrb3V0LWJpbGxpbmctYWRkcmVzcyB7XFxuICAgIG1hcmdpbi10b3A6IDIwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC1pZnJhbWUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5uby1wYXltZW50cy1ibG9jayB7XFxuICAgIG1hcmdpbjogMjBweCAwXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24uX2FjdGl2ZSAucGF5bWVudC1vcHRpb24tdGl0bGUgLmFjdGlvbi10b2dnbGU6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24uX2NvbGxhcHNpYmxlIC5wYXltZW50LW9wdGlvbi10aXRsZSB7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLl9jb2xsYXBzaWJsZSAucGF5bWVudC1vcHRpb24tY29udGVudCB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbi10aXRsZSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBwYWRkaW5nOiAyMHB4IDBcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbi10aXRsZSAuYWN0aW9uLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLXRpdGxlIC5hY3Rpb24tdG9nZ2xlOmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLXRpdGxlIC5hY3Rpb24tdG9nZ2xlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbi10aXRsZSAuYWN0aW9uLXRvZ2dsZTphY3RpdmU6YWZ0ZXIge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLnBheW1lbnQtb3B0aW9uLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nOiAwIDAgMjBweCAyMnB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24taW5uZXIge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgLml0ZW0ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICAgIG1hcmdpbjogMCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgLml0ZW0uX2FjdGl2ZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jcmVkaXQtY2FyZC10eXBlcyAuaXRlbS5fYWN0aXZlIGltZyB7XFxuICAgIC13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMCUpXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgLml0ZW0uX2luYWN0aXZlIHtcXG4gICAgb3BhY2l0eTogLjRcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jcmVkaXQtY2FyZC10eXBlcyAuaXRlbSBzcGFuIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY3JlZGl0LWNhcmQtdHlwZXMgaW1nIHtcXG4gICAgLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjZzIGVhc2VcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAuZmllbGRzPi55ZWFyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1cHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAuZmllbGRzIC5zZWxlY3Qge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcXG4gICAgcGFkZGluZy1yaWdodDogNXB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2NhcmQgLm1vbnRoIC5zZWxlY3Qge1xcbiAgICB3aWR0aDogMTQwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAueWVhciAuc2VsZWN0IHtcXG4gICAgd2lkdGg6IDgwcHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAubnVtYmVyIC5pbnB1dC10ZXh0IHtcXG4gICAgd2lkdGg6IDIyNXB4XFxufVxcblxcbi5jaGVja291dC1wYXltZW50LW1ldGhvZCAuY2NhcmQ+LmZpZWxkLmN2dj4uY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcGFkZGluZy1yaWdodDogMjBweFxcbn1cXG5cXG4uY2hlY2tvdXQtcGF5bWVudC1tZXRob2QgLmNjYXJkIC5jdnYgLmxhYmVsIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZCAuY3Z2IC5pbnB1dC10ZXh0IHtcXG4gICAgd2lkdGg6IDU1cHhcXG59XFxuXFxuLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jY2FyZC5maWVsZHNldD4uZmllbGQgLmZpZWxkcy5ncm91cC5ncm91cC0yIC5maWVsZCB7XFxuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnRcXG59XFxuXFxuLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sgLmNoZWNrb3V0LWFncmVlbWVudHMge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIC5hY3Rpb24tc2hvdyB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxcbn1cXG5cXG4uY2hlY2tvdXQtYWdyZWVtZW50cy1pdGVtcyB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4XFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW1zIC5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW1zIC5jaGVja291dC1hZ3JlZW1lbnRzLWl0ZW0tdGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAwXFxufVxcblxcbi5jaGVja291dC1hZ3JlZW1lbnQtaXRlbS1jb250ZW50IHtcXG4gICAgb3ZlcmZsb3c6IGF1dG9cXG59XFxuXFxuLmxvZ2luLWNvbnRhaW5lciAuYmxvY2stbmV3LWN1c3RvbWVyIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtYXJnaW4tdG9wOiAyNXB4XFxufVxcblxcbi5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5ibG9jay10aXRsZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtXFxufVxcblxcbi5sb2dpbi1jb250YWluZXIgLmZpZWxkc2V0OmFmdGVyIHtcXG4gICAgbWFyZ2luOiAxMHB4IDAgMDtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWhhc3JlcXVpcmVkKTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICAgIHdvcmQtc3BhY2luZzogbm9ybWFsO1xcbiAgICBjb2xvcjogI2UwMmIyNztcXG4gICAgZm9udC1zaXplOiAxLjJyZW1cXG59XFxuXFxuLmxvZ2luLWNvbnRhaW5lciAuZmllbGRzZXQ6YWZ0ZXIge1xcbiAgICBtYXJnaW4tdG9wOiAzNXB4XFxufVxcblxcbi5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzPi5pdGVtIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3Nlcz4uaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyAuaXRlbS5hY3Rpb25zIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5mb3JtLWFkZHJlc3MtZWRpdCAjcmVnaW9uX2lkIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS1lZGl0LWFjY291bnQgLmZpZWxkc2V0LnBhc3N3b3JkIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS1jcmVhdGUtYWNjb3VudCAuZmllbGRzZXQtZnVsbG5hbWUgLmZpZWxkcyAuZmllbGQge1xcbiAgICBmbG9hdDogbm9uZVxcbn1cXG5cXG4uYWNjb3VudCAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5hY2NvdW50IC5tZXNzYWdlcyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmFjY291bnQgLmNvbHVtbi5tYWluIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweFxcbn1cXG5cXG4uYWNjb3VudCAuY29sdW1uLm1haW4gaDIge1xcbiAgICBtYXJnaW4tdG9wOiAwXFxufVxcblxcbi5hY2NvdW50IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xcbiAgICBtYXJnaW4tdG9wOiA0MHB4XFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTRcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXI6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmFjY291bnQgLmRhdGEudGFibGUgLmNvbC5hY3Rpb25zIC5hY3Rpb24uZGVsZXRlLFxcbltjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5kYXRhLnRhYmxlIC5jb2wuYWN0aW9ucyAuYWN0aW9uLmRlbGV0ZSxcXG4uc2FsZXMtZ3Vlc3QtdmlldyAuZGF0YS50YWJsZSAuY29sLmFjdGlvbnMgLmFjdGlvbi5kZWxldGUge1xcbiAgICBjb2xvcjogI2QxMDAyOVxcbn1cXG5cXG4uY29sdW1uLm1haW4gLmJsb2NrOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jayAudGl0bGUge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5ibG9jayAudGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIG1hcmdpbi10b3A6IDJyZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW1cXG59XFxuXFxuLmJsb2NrIHA6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYmxvY2sgLmJveC1hY3Rpb25zIHtcXG4gICAgbWFyZ2luLXRvcDogNXB4XFxufVxcblxcbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cXG59XFxuXFxuLmZpZWxkLnBhc3N3b3JkIC5jb250cm9sIC5tYWdlLWVycm9yIHtcXG4gICAgLW1zLWZsZXgtb3JkZXI6IDI7XFxuICAgIC13ZWJraXQtb3JkZXI6IDI7XFxuICAgIG9yZGVyOiAyXFxufVxcblxcbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCAuaW5wdXQtdGV4dCB7XFxuICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xcbiAgICAtd2Via2l0LW9yZGVyOiAwO1xcbiAgICBvcmRlcjogMDtcXG4gICAgei1pbmRleDogMlxcbn1cXG5cXG4ucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nOiAwIDlweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5wYXNzd29yZC1zdHJlbmd0aC1tZXRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnJztcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgei1pbmRleDogLTFcXG59XFxuXFxuLnBhc3N3b3JkLW5vbmUgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyOmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5wYXNzd29yZC13ZWFrIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlcjpiZWZvcmUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZmFlO1xcbiAgICB3aWR0aDogMjUlXFxufVxcblxcbi5wYXNzd29yZC1tZWRpdW0gLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyOmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmQ2YjM7XFxuICAgIHdpZHRoOiA1MCVcXG59XFxuXFxuLnBhc3N3b3JkLXN0cm9uZyAucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXI6YmVmb3JlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M1ZWVhYztcXG4gICAgd2lkdGg6IDc1JVxcbn1cXG5cXG4ucGFzc3dvcmQtdmVyeS1zdHJvbmcgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyOmJlZm9yZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM4MWI1NjI7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5jb250cm9sLmNhcHRjaGEtaW1hZ2Uge1xcbiAgICBtYXJnaW4tdG9wOiAxMHB4XFxufVxcblxcbi5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4ub3JkZXItcHJvZHVjdHMtdG9vbGJhciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ub3JkZXItcHJvZHVjdHMtdG9vbGJhciAudG9vbGJhci1hbW91bnQge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2stYmFsYW5jZSAucHJpY2Uge1xcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcXG4gICAgZm9udC1zaXplOiAzLjJyZW07XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbGluZS1oZWlnaHQ6IDMycHhcXG59XFxuXFxuLnRhYmxlLWRvd25sb2FkYWJsZS1wcm9kdWN0cyAucHJvZHVjdC1uYW1lIHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4XFxufVxcblxcbi50YWJsZS1kb3dubG9hZGFibGUtcHJvZHVjdHMgLmFjdGlvbi5kb3dubG9hZCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi50YWJsZS1kb3dubG9hZGFibGUtcHJvZHVjdHMgLmFjdGlvbi5kb3dubG9hZDpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3QtYWRkLWZvcm0ge1xcbiAgICBjbGVhcjogYm90aDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1vcHRpb25zLWJvdHRvbSAuZmllbGQucXR5IHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uc2FtcGxlcy1pdGVtLXRpdGxlIHtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIG1hcmdpbjogMCAwIDEwcHhcXG59XFxuXFxuLnNhbXBsZXMtaXRlbSB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHhcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3QtYWRkLWZvcm0gLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIC5maWVsZC5kb3dubG9hZHM+LmNvbnRyb2wge1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzIC5wcmljZS1jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAucHJpY2UtY29udGFpbmVyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICcgKyAnO1xcbiAgICBkaXNwbGF5OiBpbmxpbmVcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAucHJpY2UtZXhjbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGlubGluZVxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzIC5wcmljZS1leGNsdWRpbmctdGF4OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICcgKCcgYXR0cihkYXRhLWxhYmVsKSAnOiAnXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMgLnByaWNlLWV4Y2x1ZGluZy10YXg6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnKSdcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAucHJpY2UtaW5jbHVkaW5nLXRheCB7XFxuICAgIGRpc3BsYXk6IGlubGluZTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiAxLjRyZW1cXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAuZmllbGQuY2hvaWNlIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLmZpZWxkLmRvd25sb2FkcyAuZmllbGQuY2hvaWNlIGlucHV0IHtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDJweFxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzIC5maWVsZC5kb3dubG9hZHMtYWxsIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMgLnNhbXBsZS5saW5rIHtcXG4gICAgZmxvYXQ6IHJpZ2h0XFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMtYWxsIC5sYWJlbCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4uZmllbGQuZG93bmxvYWRzLWFsbCAubGFiZWw6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmZpZWxkLmRvd25sb2Fkcy1hbGwgLmxhYmVsOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMtYWxsIC5sYWJlbDphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmZpZWxkLmRvd25sb2Fkcy1hbGwgaW5wdXQge1xcbiAgICBvcGFjaXR5OiAwXFxufVxcblxcbi5maWVsZC5kb3dubG9hZHMuZG93bmxvYWRzLW5vLXNlcGFyYXRlbHkgLmZpZWxkLmNob2ljZSB7XFxuICAgIHBhZGRpbmctbGVmdDogMFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5naWZ0Y2FyZC1hbW91bnQge1xcbiAgICBib3JkZXItdG9wOiAxcHggI2MxYzFjMSBzb2xpZDtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLmdpZnRjYXJkLWFtb3VudCAuZmllbGQ6bGFzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4ICFpbXBvcnRhbnRcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1naWZ0Y2FyZCAucHJvZHVjdC1pbmZvLW1haW4gLnByaWNlLWJveCAub2xkLXByaWNlIHtcXG4gICAgZm9udC1zaXplOiAyMHB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1tYWluIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lci5wcmljZS1maW5hbD5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWw+c3BhbjpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWwgLnByaWNlIHtcXG4gICAgZm9udC1zaXplOiAyMnB4O1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMjJweFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJpY2UtYm94Ky5naWZ0Y2FyZC5mb3JtIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4ICNjMWMxYzEgc29saWQ7XFxuICAgIHBhZGRpbmctdG9wOiAxNXB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1tYWluIC5hbGVydCB7XFxuICAgIGNsZWFyOiBsZWZ0XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1zdG9jay1za3Uge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWFkZC1mb3JtIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGVhcjogbm9uZTtcXG4gICAgcGFkZGluZy10b3A6IDBcXG59XFxuXFxuLnBhZ2UtcHJvZHVjdC1naWZ0Y2FyZCAucHJvZHVjdC1hZGQtZm9ybSAucHJvZHVjdC1vcHRpb25zLXdyYXBwZXIgLmZpZWxkOm5vdCgudGV4dCkge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICBtYXJnaW4tdG9wOiAyMHB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLmdpZnRjYXJkLmZvcm0ge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcmljZS1ib3gge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5wYWdlLXByb2R1Y3QtZ2lmdGNhcmQgLnByb2R1Y3QtaW5mby1wcmljZSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmdpZnRjYXJkLWFjY291bnQgLnBsZWFzZS13YWl0IHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZ2lmdGNhcmQtYWNjb3VudCAuZm9ybS1naWZ0Y2FyZC1yZWRlZW0gLmdpZnRjYXJkLmluZm8ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZm9ybS1naWZ0Y2FyZC1hY2NvdW50IHtcXG4gICAgbWF4LXdpZHRoOiA1MDBweFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmZvcm0tZ2lmdGNhcmQtYWNjb3VudCAuZmllbGQge1xcbiAgICBtYXJnaW46IDAgMCAyMHB4XFxufVxcblxcbi5vcGMtd3JhcHBlciAuZ2lmdGNhcmQtYWNjb3VudC1pbmZvIHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmdpZnRjYXJkLWFjY291bnQtaW5mbyAuZ2lmdGNhcmQtYWNjb3VudC1udW1iZXIge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5naWZ0LW1lc3NhZ2UgLmZpZWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uZ2lmdC1tZXNzYWdlIC5maWVsZCAubGFiZWwge1xcbiAgICBjb2xvcjogIzY2NjtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uZ2lmdC1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAyMHB4IDBcXG59XFxuXFxuLmdpZnQtb3B0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24tY2FuY2VsIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZ2lmdC1vcHRpb25zLXRpdGxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uZ2lmdC1vcHRpb25zLWNvbnRlbnQgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uZ2lmdC1zdW1tYXJ5IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBtYXJnaW4tdG9wOiAxMHB4XFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbnMtdG9vbGJhcj4uc2Vjb25kYXJ5IC5hY3Rpb24ge1xcbiAgICBtYXJnaW46IDAgMCAwIDIwcHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0LFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZWRpdD5zcGFuLFxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1kZWxldGU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmJlZm9yZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE4cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgY29udGVudDogJ1xcXFxFNjAxJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmhvdmVyOmJlZm9yZSxcXG4uZ2lmdC1zdW1tYXJ5IC5hY3Rpb24tZGVsZXRlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLmFjdGlvbi1lZGl0OmFjdGl2ZTpiZWZvcmUsXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3NTc1NzVcXG59XFxuXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9uLWRlbGV0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnXFxufVxcblxcbi5hY3Rpb24tZ2lmdCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5hY3Rpb24tZ2lmdDphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYWN0aW9uLWdpZnQ6aG92ZXI6YWZ0ZXIge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4uYWN0aW9uLWdpZnQ6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6ICM3NTc1NzVcXG59XFxuXFxuLmFjdGlvbi1naWZ0LmFjdGl2ZTphZnRlcixcXG4uYWN0aW9uLWdpZnQuX2FjdGl2ZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLmdpZnQtc3VtbWFyeSAuYWN0aW9ucy10b29sYmFyLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmdpZnQtc3VtbWFyeSAuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLmdpZnQtY29udGVudCB7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGNsZWFyOiBsZWZ0O1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcXG4gICAgcGFkZGluZzogMjBweCAwO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uY2FydC50YWJsZS13cmFwcGVyIC5naWZ0LWNvbnRlbnQuX2FjdGl2ZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0tZ2lmdC5fYWN0aXZlIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjMWMxYzFcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAuaXRlbS1naWZ0IC5hY3Rpb24ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDBcXG59XFxuXFxuLmdpZnQtaXRlbS1ibG9jayB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmdpZnQtaXRlbS1ibG9jay5fYWN0aXZlIC50aXRsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLmdpZnQtaXRlbS1ibG9jayAudGl0bGUge1xcbiAgICBjb2xvcjogIzE5NzljMztcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAxMHB4IDE1cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZ2lmdC1pdGVtLWJsb2NrIC50aXRsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjODU4NTg1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uZ2lmdC1pdGVtLWJsb2NrIC50aXRsZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5naWZ0LWl0ZW0tYmxvY2sgLmNvbnRlbnQge1xcbiAgICBwYWRkaW5nOiAxMHB4IDAgMjBweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5vcmRlci1naWZ0LW1lc3NhZ2UgZHQ6YWZ0ZXIsXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmJsb2NrLW9yZGVyLWRldGFpbHMtZ2lmdC1tZXNzYWdlIGR0OmFmdGVyIHtcXG4gICAgY29udGVudDogJydcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAuaXRlbS1tZXNzYWdlLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZSAuaXRlbS1tZXNzYWdlIHtcXG4gICAgY2xlYXI6IGxlZnRcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLWdpZnQtbWVzc2FnZSAuaXRlbS1vcHRpb25zIGR0LFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZSAuaXRlbS1vcHRpb25zIGR0IHtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmdpZnQtbWVzc2FnZXMtb3JkZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5mb3JtLWdpZnRyZWdpc3RyeS1zaGFyZSAuYWN0aW9ucy10b29sYmFyOm5vdCg6bGFzdC1jaGlsZCksXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LWVkaXQgLmFjdGlvbnMtdG9vbGJhcjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweFxcbn1cXG5cXG4uZm9ybS1naWZ0cmVnaXN0cnktc2hhcmUgLmZpZWxkc2V0IC5uZXN0ZWQgLmZpZWxkOm5vdCguY2hvaWNlKSAuY29udHJvbCxcXG4uZm9ybS1naWZ0cmVnaXN0cnktZWRpdCAuZmllbGRzZXQgLm5lc3RlZCAuZmllbGQ6bm90KC5jaG9pY2UpIC5jb250cm9sIHtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLmdpZnRyZWdpc3R5LWRyb3Bkb3duIC5hY3Rpb24udG9nZ2xlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLnRhYmxlLWdpZnRyZWdpc3RyeS1pdGVtcyAucHJvZHVjdC1pbWFnZSB7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcXG4gICAgZmxvYXQ6IGxlZnRcXG59XFxuXFxuLmNhcnQtc3VtbWFyeSAuZm9ybS5naWZ0cmVnaXN0cnkgLmZpZWxkc2V0IHtcXG4gICAgbWFyZ2luOiAxNXB4IDAgNXB4O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuZmllbGQge1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5jYXJ0LXN1bW1hcnkgLmZvcm0uZ2lmdHJlZ2lzdHJ5IC5maWVsZHNldCAuZmllbGQgLmNvbnRyb2wge1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDYwcHhcXG59XFxuXFxuLmZvcm0tZ2lmdHJlZ2lzdHJ5LXNlYXJjaCAuZmllbGRzLXNwZWNpZmljLW9wdGlvbnMgLmZpZWxkOm50aC1sYXN0LW9mLXR5cGUoMSkge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jay1naWZ0cmVnaXN0cnkgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbjogMTdweCAwIDBcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQgLml0ZW0tb3B0aW9ucyAuaXRlbS12YWx1ZSB7XFxuICAgIG1hcmdpbjogMCAwIDI1cHhcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLml0ZW0gLmNvbCB7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyB0aCB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjXFxufVxcblxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5jb2wge1xcbiAgICBwYWRkaW5nOiAyMHB4IDExcHggMTBweFxcbn1cXG5cXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAuY29sIC5wcmljZS1ib3gge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLmNvbCAucHJpY2Utd3JhcHBlciB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4uYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAucHJvZHVjdCAuaXRlbS1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWF4LXdpZHRoOiA2NXB4O1xcbiAgICBwYWRkaW5nOiAxMHB4IDBcXG59XFxuXFxuLmJsb2NrLWdpZnRyZWdpc3RyeS1zaGFyZWQtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDAgMCA1cHhcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmcgLmxhYmVsIHtcXG4gICAgbWFyZ2luOiAwIDAgOHB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmcgLmZpZWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1pbmZvIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICBtYXJnaW46IDIwcHggMFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1saXN0IHtcXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcXG4gICAgbWFyZ2luOiAyMHB4IDAgMTBweDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1saXN0IC5uby1pbWFnZSB7XFxuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWxpc3QgLm5vLWltYWdlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy1saXN0IC5uby1pbWFnZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDIycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xcbiAgICBjb2xvcjogIzQ5NDk0OTtcXG4gICAgY29udGVudDogJ1xcXFxFNjJBJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWxpc3QgLm5vLWltYWdlOmFmdGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctcHJldmlldyxcXG4uZ2lmdC13cmFwcGluZy1pdGVtPnNwYW4ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDFcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctaXRlbSB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMTBweCAxMHB4IDBcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWl0ZW0uX2FjdGl2ZSBzcGFuOmJlZm9yZSB7XFxuICAgIGJvcmRlcjogM3B4IHNvbGlkICMzMzM7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5naWZ0LXdyYXBwaW5nLWl0ZW0+c3BhbiB7XFxuICAgIGhlaWdodDogNHJlbTtcXG4gICAgd2lkdGg6IDRyZW1cXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUge1xcbiAgICBtYXJnaW46IDEwcHggMFxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZSB7XFxuICAgIG1hcmdpbjogLTVweCAwIDAgNXB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZ2lmdC13cmFwcGluZy10aXRsZSAuYWN0aW9uLXJlbW92ZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDQnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctdGl0bGUgLmFjdGlvbi1yZW1vdmU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzU3NTc1XFxufVxcblxcbi5naWZ0LW9wdGlvbnMtY29udGVudCAuZmllbGRzZXQgLmZpZWxkIHtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctc3VtbWFyeSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDdyZW1cXG59XFxuXFxuLmdpZnQtd3JhcHBpbmctc3VtbWFyeSAuZ2lmdC13cmFwcGluZy10aXRsZSB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5vcGMtd3JhcHBlciAuZmllbGRzZXQuZ2lmdC1tZXNzYWdlIC5maWVsZC5naWZ0LXdyYXBwaW5nIHtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgd2lkdGg6IDEwMCVcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5kYXRhLnRhYmxlIC5naWZ0LXdyYXBwaW5nLFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyB7XFxuICAgIG1hcmdpbjogMjBweCAwIDBcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5kYXRhLnRhYmxlIC5naWZ0LXdyYXBwaW5nIC50aXRsZSxcXG4udGFibGUtb3JkZXItaXRlbXMgLmdpZnQtd3JhcHBpbmcgLnRpdGxlIHtcXG4gICAgZmxvYXQ6IG5vbmVcXG59XFxuXFxuLm9wYy13cmFwcGVyIC5kYXRhLnRhYmxlIC5naWZ0LXdyYXBwaW5nIC5jb250ZW50LFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyAuY29udGVudCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ub3BjLXdyYXBwZXIgLmRhdGEudGFibGUgLmdpZnQtd3JhcHBpbmcgLmNvbnRlbnQ+aW1nLFxcbi50YWJsZS1vcmRlci1pdGVtcyAuZ2lmdC13cmFwcGluZyAuY29udGVudD5pbWcge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luOiAwIDEwcHggMCAwO1xcbiAgICBtYXgtaGVpZ2h0OiA1MHB4O1xcbiAgICBtYXgtd2lkdGg6IDUwcHhcXG59XFxuXFxuLmdpZnQtc3VtbWFyeSAucHJpY2UtYm94LFxcbi5naWZ0LW9wdGlvbnMgLnByaWNlLWJveCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyMnB4XFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLnJlZ3VsYXItcHJpY2U6YmVmb3JlLFxcbi5naWZ0LW9wdGlvbnMgLnJlZ3VsYXItcHJpY2U6YmVmb3JlIHtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKSAnOiAnXFxufVxcblxcbi5naWZ0LXN1bW1hcnkgLnJlZ3VsYXItcHJpY2UgLnByaWNlLFxcbi5naWZ0LW9wdGlvbnMgLnJlZ3VsYXItcHJpY2UgLnByaWNlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMFxcbn1cXG5cXG4ub3JkZXItb3B0aW9ucyAuaXRlbSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4XFxufVxcblxcbi5vcmRlci1vcHRpb25zIC5wcm9kdWN0IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ub3JkZXItb3B0aW9ucyAucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgcGFkZGluZy1yaWdodDogMTBweFxcbn1cXG5cXG4ub3JkZXItb3B0aW9ucyAuZ2lmdC13cmFwcGluZyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCB7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi50YWJsZS5ncm91cGVkIC5yb3ctdGllci1wcmljZT50ZCB7XFxuICAgIGJvcmRlci10b3A6IDBcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLmNvbC5pdGVtIHtcXG4gICAgd2lkdGg6IDkwJVxcbn1cXG5cXG4udGFibGUuZ3JvdXBlZCAuY29sLnF0eSB7XFxuICAgIHdpZHRoOiAxMCVcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi50YWJsZS5ncm91cGVkIC5wcmljZS1ib3ggcCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4udGFibGUuZ3JvdXBlZCAucHJpY2UtYm94IC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWxcXG59XFxuXFxuLnRhYmxlLmdyb3VwZWQgLnN0b2NrLnVuYXZhaWxhYmxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnByb2R1Y3QtaW5mby1tYWluIC5hbGVydCB7XFxuICAgIGNsZWFyOiBsZWZ0XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWRkaXRpb25hbCxcXG4uZm9ybS1hZGQtaW52aXRhdGlvbnMgLmZpZWxkLm1lc3NhZ2Uge1xcbiAgICBtYXJnaW4tdG9wOiAyMHB4XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSB7XFxuICAgIHRvcDogNHB4XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLmFkZCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHdpZHRoOiBhdXRvXFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLmFkZD5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24uYWRkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE4cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjFDJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24uYWRkOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLmFkZDphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLmZpbHRlci5ibG9jayB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmZpbHRlci10aXRsZSBzdHJvbmcge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgI2ZmZiwgaW5zZXQgMCAtMXB4IDAgMCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuMyk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGVmdDogMDtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIHBhZGRpbmc6IDdweCAxMHB4O1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiAwO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5maWx0ZXItdGl0bGUgc3Ryb25nW2RhdGEtY291bnRdOmFmdGVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQ6ICNmZjU1MDE7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgY29udGVudDogYXR0cihkYXRhLWNvdW50KTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IC44ZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxO1xcbiAgICBtYXJnaW46IDAgNXB4O1xcbiAgICBtaW4td2lkdGg6IDFlbTtcXG4gICAgcGFkZGluZzogMnB4XFxufVxcblxcbi5maWx0ZXItdGl0bGUgc3Ryb25nLmRpc2FibGVkIHtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLmZpbHRlciAuYmxvY2stc3VidGl0bGUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMWVtO1xcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggMjBweFxcbn1cXG5cXG4uZmlsdGVyLXN1YnRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZmlsdGVyLWN1cnJlbnQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmZpbHRlci1jdXJyZW50IC5pdGVtcyB7XFxuICAgIHBhZGRpbmc6IDVweCAxMHB4XFxufVxcblxcbi5maWx0ZXItY3VycmVudCAuaXRlbSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTdweDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlIHtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG59XFxuXFxuLmZpbHRlci1jdXJyZW50IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgbGVmdDogLTJweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IC0xcHhcXG59XFxuXFxuLmZpbHRlci1hY3Rpb25zIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcXG4gICAgcGFkZGluZzogMCAxMHB4XFxufVxcblxcbi5maWx0ZXItbGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNzAwXFxufVxcblxcbi5maWx0ZXItbGFiZWw6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5maWx0ZXItdmFsdWUge1xcbiAgICBjb2xvcjogIzc1NzU3NVxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLWl0ZW0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLXRpdGxlIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDEwcHggNDBweCAwIDEwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbiAgICB6LWluZGV4OiAxO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy10aXRsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEzcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy10aXRsZTphZnRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IDEzcHg7XFxuICAgIHRvcDogMTJweFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtdGl0bGU6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwMFxcbn1cXG5cXG4uYWN0aXZlPi5maWx0ZXItb3B0aW9ucy10aXRsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLWNvbnRlbnQge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDEwcHhcXG59XFxuXFxuLmZpbHRlci1vcHRpb25zLWNvbnRlbnQgLml0ZW0ge1xcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XFxuICAgIG1hcmdpbjogMTBweCAwXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IGEge1xcbiAgICBjb2xvcjogIzQ5NDk0OTtcXG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XFxuICAgIG1hcmdpbi1yaWdodDogLTVweDtcXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDdweFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtY29udGVudCBhOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IGE6aG92ZXIrLmNvdW50IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlOFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtY29udGVudCAuY291bnQge1xcbiAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDVweFxcbn1cXG5cXG4uZmlsdGVyLW9wdGlvbnMtY29udGVudCAuY291bnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJygnXFxufVxcblxcbi5maWx0ZXItb3B0aW9ucy1jb250ZW50IC5jb3VudDphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcpJ1xcbn1cXG5cXG4ubWFwLXBvcHVwLXdyYXBwZXIucG9wdXAgLmFjdGlvbi5jbG9zZSB7XFxuICAgIHRvcDogMTBweFxcbn1cXG5cXG4ubWFwLXBvcHVwIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FkYWRhZDtcXG4gICAgcGFkZGluZzogMjJweDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJveC1zaGFkb3c6IDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBsaW5lYXI7XFxuICAgIGxlZnQ6IDA7XFxuICAgIG1hcmdpbi10b3A6IDEwcHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICB6LWluZGV4OiAxMDAxO1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94XFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWhlYWRlciB7XFxuICAgIG1hcmdpbjogMCAwIDI1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHhcXG59XFxuXFxuLm1hcC1wb3B1cCAucG9wdXAtaGVhZGVyIC50aXRsZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XFxuICAgIG1hcmdpbi1ib3R0b206IDJyZW1cXG59XFxuXFxuLm1hcC1wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgcmlnaHQ6IDEwcHg7XFxuICAgIHRvcDogMTBweFxcbn1cXG5cXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2U+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29sb3I6ICM4YzhjOGM7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogIzczNzM3M1xcbn1cXG5cXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2U6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzM3MzczXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpmb2N1cyxcXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2U6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ubWFwLXBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2UuZGlzYWJsZWQsXFxuLm1hcC1wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm1hcC1wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbi5tYXAtcG9wdXAuYWN0aXZlIHtcXG4gICAgb3BhY2l0eTogMVxcbn1cXG5cXG4ubWFwLXBvcHVwIC5tYXAtaW5mby1wcmljZSB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm1hcC1wb3B1cCAubWFwLWluZm8tcHJpY2UgLnByaWNlLWJveCB7XFxuICAgIG1hcmdpbjogMCAwIDIwcHhcXG59XFxuXFxuLm1hcC1wb3B1cCAubWFwLWluZm8tcHJpY2UgLnByaWNlLWJveCAubGFiZWw6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5tYXAtcG9wdXAgLmFjdGlvbi5wcmltYXJ5IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi5tYXAtcG9wdXAgLm1hcC1tc3JwIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ubWFwLXBvcHVwIC5hY3R1YWwtcHJpY2Uge1xcbiAgICBtYXJnaW46IDNweCAwIDE1cHhcXG59XFxuXFxuLm1hcC1wb3B1cCAucmVndWxhci1wcmljZSAucHJpY2UtbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5tYXAtcG9wdXAgLnBvcHVwLWhlYWRlciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm1hcC1vbGQtcHJpY2Uge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1hcC1vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaFxcbn1cXG5cXG4ubWFwLW9sZC1wcmljZSxcXG4ucHJvZHVjdC1pdGVtIC5tYXAtb2xkLXByaWNlLFxcbi5wcm9kdWN0LWluZm8tcHJpY2UgLm1hcC1zaG93LWluZm8ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1pbi13aWR0aDogMTByZW1cXG59XFxuXFxuLm1hcC1vbGQtcHJpY2U6bm90KDpsYXN0LWNoaWxkKSxcXG4ucHJvZHVjdC1pdGVtIC5tYXAtb2xkLXByaWNlOm5vdCg6bGFzdC1jaGlsZCksXFxuLnByb2R1Y3QtaW5mby1wcmljZSAubWFwLXNob3ctaW5mbzpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi5wcm9kdWN0LW9wdGlvbnMtYm90dG9tIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtY29udGFpbmVyPnNwYW4sXFxuLnByb2R1Y3QtaW5mby1wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWNvbnRhaW5lcj5zcGFuIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5tYXAtZm9ybS1hZGR0b2NhcnQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ubWFwLWZvcm0tYWRkdG9jYXJ0IGltZyB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDAgYXV0b1xcbn1cXG5cXG5idXR0b24ubWFwLXNob3ctaW5mbyB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86Zm9jdXMsXFxuYnV0dG9uLm1hcC1zaG93LWluZm86YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvLmRpc2FibGVkLFxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gYnV0dG9uLm1hcC1zaG93LWluZm8ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuYnV0dG9uLm1hcC1zaG93LWluZm86aG92ZXIsXFxuYnV0dG9uLm1hcC1zaG93LWluZm86YWN0aXZlLFxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvOmZvY3VzIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvLmRpc2FibGVkLFxcbmJ1dHRvbi5tYXAtc2hvdy1pbmZvW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gYnV0dG9uLm1hcC1zaG93LWluZm8ge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgbWFyZ2luLXJpZ2h0OiA1JTtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uOmJlZm9yZSxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uOmFmdGVyIHtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IHRhYmxlXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b246YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24uc3BsaXQge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi50b2dnbGUge1xcbiAgICBmbG9hdDogcmlnaHQ7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24udG9nZ2xlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICBjb2xvcjogIzY2NjtcXG4gICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM2NjY7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLmFjdGlvbi50b2dnbGUuYWN0aXZlOmhvdmVyOmFmdGVyIHtcXG4gICAgY29sb3I6ICMzMzNcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXMge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgbWFyZ2luLXRvcDogNHB4O1xcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xcbiAgICB6LWluZGV4OiAxMDA7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxMDAlO1xcbiAgICBib3gtc2hhZG93OiAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE1KVxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtcyBsaSB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogNXB4IDVweCA1cHggMjNweFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtcyBsaTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtczpiZWZvcmUsXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXM6YmVmb3JlIHtcXG4gICAgYm9yZGVyOiA2cHggc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDtcXG4gICAgei1pbmRleDogOTlcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXM6YWZ0ZXIge1xcbiAgICBib3JkZXI6IDdweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYmJiIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uIC5pdGVtczpiZWZvcmUge1xcbiAgICBsZWZ0OiAxMHB4O1xcbiAgICB0b3A6IC0xMnB4XFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24gLml0ZW1zOmFmdGVyIHtcXG4gICAgbGVmdDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi53aXNobGlzdC5zcGxpdC5idXR0b24uYWN0aXZlIHtcXG4gICAgb3ZlcmZsb3c6IHZpc2libGVcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbi5hY3RpdmUgLml0ZW1zIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLndpc2hsaXN0LnNwbGl0LmJ1dHRvbiAuaXRlbXMge1xcbiAgICBwYWRkaW5nOiA2cHggMDtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDVweFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjAwJ1xcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB3aWR0aDogMThweFxcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246YWN0aXZlLFxcbi53aXNobGlzdC5zcGxpdC5idXR0b24+LmFjdGlvbjpmb2N1cyxcXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb246aG92ZXIge1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4ud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24udG9nZ2xlOmJlZm9yZSB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzY2NjtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBoZWlnaHQ6IDE1cHg7XFxuICAgIG1hcmdpbjogM3B4IDRweCAwIDBcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uIHtcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXFxufVxcblxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnNwbGl0IHtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmVcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24udG9nZ2xlOmFmdGVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQsXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24udG9nZ2xlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLmNhcnQudGFibGUtd3JhcHBlciAud2lzaGxpc3Quc3BsaXQuYnV0dG9uPi5hY3Rpb24uc3BsaXQ6YmVmb3JlLFxcbi5jYXJ0LnRhYmxlLXdyYXBwZXIgLndpc2hsaXN0LnNwbGl0LmJ1dHRvbj4uYWN0aW9uLnRvZ2dsZTpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWRhZGFkO1xcbiAgICBwYWRkaW5nOiAyMnB4O1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm94LXNoYWRvdzogMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGxpbmVhcjtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHotaW5kZXg6IDEwMDE7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3hcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtaGVhZGVyIHtcXG4gICAgbWFyZ2luOiAwIDAgMjVweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTZweFxcbn1cXG5cXG4ud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1oZWFkZXIgLnRpdGxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG4ud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2Uge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICByaWdodDogMTBweDtcXG4gICAgdG9wOiAxMHB4XFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZT5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDE2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICBjb2xvcjogIzhjOGM4YztcXG4gICAgY29udGVudDogJ1xcXFxFNjE2JztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmhvdmVyOmJlZm9yZSB7XFxuICAgIGNvbG9yOiAjNzM3MzczXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgY29sb3I6ICM3MzczNzNcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmZvY3VzLFxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cCAucG9wdXAtYWN0aW9ucyAuYWN0aW9uLmNsb3NlOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAgLnBvcHVwLWFjdGlvbnMgLmFjdGlvbi5jbG9zZS5kaXNhYmxlZCxcXG4ud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2VbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAud2lzaGxpc3Qud2luZG93LnBvcHVwIC5wb3B1cC1hY3Rpb25zIC5hY3Rpb24uY2xvc2Uge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLndpc2hsaXN0LndpbmRvdy5wb3B1cC5hY3RpdmUge1xcbiAgICBvcGFjaXR5OiAxXFxufVxcblxcbi53aXNobGlzdC53aW5kb3cucG9wdXAuYWN0aXZlIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLndpc2hsaXN0Lm92ZXJsYXkge1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgbGluZWFyO1xcbiAgICBiYWNrZ3JvdW5kOiAjOGM4YzhjO1xcbiAgICB6LWluZGV4OiA4OTk7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICByaWdodDogMDtcXG4gICAgdG9wOiAwXFxufVxcblxcbi53aXNobGlzdC5vdmVybGF5LmFjdGl2ZSB7XFxuICAgIG9wYWNpdHk6IC43O1xcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NzApXFxufVxcblxcbi53aXNobGlzdC5vdmVybGF5LmFjdGl2ZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi53aXNobGlzdC1kcm9wZG93bi5tb3ZlIC5hY3Rpb24udG9nZ2xlLFxcbi53aXNobGlzdC1kcm9wZG93bi5jb3B5IC5hY3Rpb24udG9nZ2xlIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLnBhZ2UtbXVsdGlwbGUtd2lzaGxpc3QgLmFjdGlvbnMtdG9vbGJhcj4ucHJpbWFyeSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmbG9hdDogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogbGVmdFxcbn1cXG5cXG4ucGFnZS1tdWx0aXBsZS13aXNobGlzdCAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgZmxvYXQ6IHJpZ2h0XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QgLndpc2hsaXN0LW5hbWUtbGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC10aXRsZSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRpdGxlIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICAgIG1hcmdpbi1yaWdodDogMTBweFxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtbm90aWNlIHtcXG4gICAgY29sb3I6ICM3ZDdkN2Q7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1ub3RpY2UucHJpdmF0ZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1ub3RpY2UucHJpdmF0ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICNhM2EzYTM7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyOSc7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMCA1cHggMCAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtdG9vbGJhci1zZWxlY3QsXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXItYWN0aW9ucyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtdG9vbGJhci1zZWxlY3Qge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHhcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXIgLmNvcHkgLmRyb3Bkb3duIHtcXG4gICAgcmlnaHQ6IDBcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXIgLmNvcHkgLmRyb3Bkb3duOmJlZm9yZSB7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiAxMXB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC10b29sYmFyIC5jb3B5IC5kcm9wZG93bjphZnRlciB7XFxuICAgIGxlZnQ6IGF1dG87XFxuICAgIHJpZ2h0OiAxMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1kcm9wZG93bi5tb3ZlIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtZm9ybSAuZm9ybS13aXNobGlzdC1zZWFyY2gge1xcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xcbiAgICBtYXgtd2lkdGg6IDUwMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1zZWFyY2gtcmVzdWx0cyAudGFibGUtd3JhcHBlciB7XFxuICAgIGJvcmRlci10b3A6IG5vbmVcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LWluZm8taXRlbXMgLmJsb2NrLXRpdGxlIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG4gICAgZm9udC1zaXplOiAyLjJyZW1cXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LWluZm8taXRlbXMgLmJsb2NrLXRpdGxlPnN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LWluZm8taXRlbXMgLnByb2R1Y3QtaXRlbSB7XFxuICAgIHdpZHRoOiAxMDAlXFxufVxcblxcbi5ibG9jay13aXNobGlzdC1pbmZvLWl0ZW1zIC5wcm9kdWN0LWl0ZW0tcGhvdG8ge1xcbiAgICBtYXJnaW4tbGVmdDogMjBweFxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm8ge1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm86aG92ZXIgLnNwbGl0IHtcXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZVxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAucHJpY2Utd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDAgMCAxMHB4XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1pbmZvLWl0ZW1zIC5zcGxpdCB7XFxuICAgIGNsZWFyOiBib3RoO1xcbiAgICBwYWRkaW5nOiAxMHB4IDA7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlblxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAud2lzaGxpc3QtZHJvcGRvd24gLmNoYW5nZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5ibG9jay13aXNobGlzdC1pbmZvLWl0ZW1zIC5hY3Rpb24udG93aXNobGlzdCB7XFxuICAgIHBhZGRpbmc6IDEwcHggMFxcbn1cXG5cXG4uYmxvY2std2lzaGxpc3QtaW5mby1pdGVtcyAuaW5wdXQtdGV4dC5xdHkge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHhcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5ibG9jay5uZXdzbGV0dGVyIC5mb3JtLnN1YnNjcmliZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuZmllbGRzZXQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIgLmZpZWxkIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay5uZXdzbGV0dGVyIC5maWVsZCAuY29udHJvbCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuZmllbGQgLmNvbnRyb2w6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUQnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDAgMCAwIDhweDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay5uZXdzbGV0dGVyIC5maWVsZCAuY29udHJvbDpiZWZvcmUge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGVcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIgaW5wdXQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM1cHhcXG59XFxuXFxuLmJsb2NrLm5ld3NsZXR0ZXIgLnRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuYWN0aW9ucyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIHdpZHRoOiAxJVxcbn1cXG5cXG4uYmxvY2submV3c2xldHRlciAuYWN0aW9uLnN1YnNjcmliZSB7XFxuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMXB4XFxufVxcblxcbi5kYXRhLnN3aXRjaCAuY291bnRlciB7XFxuICAgIGNvbG9yOiAjN2Q3ZDdkXFxufVxcblxcbi5kYXRhLnN3aXRjaCAuY291bnRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnKCdcXG59XFxuXFxuLmRhdGEuc3dpdGNoIC5jb3VudGVyOmFmdGVyIHtcXG4gICAgY29udGVudDogJyknXFxufVxcblxcbi5yYXRpbmctc3VtbWFyeSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLnJhdGluZy1zdW1tYXJ5IC5yYXRpbmctcmVzdWx0IHtcXG4gICAgd2lkdGg6IDg4cHg7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5yYXRpbmctc3VtbWFyeSAucmF0aW5nLXJlc3VsdDpiZWZvcmUge1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHotaW5kZXg6IDE7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBjb2xvcjogI2M3YzdjNztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNSc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIHNwZWFrOiBub25lXFxufVxcblxcbi5yYXRpbmctc3VtbWFyeSAucmF0aW5nLXJlc3VsdD5zcGFuIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG92ZXJmbG93OiBoaWRkZW5cXG59XFxuXFxuLnJhdGluZy1zdW1tYXJ5IC5yYXRpbmctcmVzdWx0PnNwYW46YmVmb3JlIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAyO1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgY29udGVudDogJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBzcGVhazogbm9uZVxcbn1cXG5cXG4ucmF0aW5nLXN1bW1hcnkgLnJhdGluZy1yZXN1bHQ+c3BhbiBzcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yYXRpbmctc3VtbWFyeSAubGFiZWwsXFxuLnRhYmxlLXJldmlld3MgLnJhdGluZy1zdW1tYXJ5IC5sYWJlbCB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogI2M3YzdjNztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgY29udGVudDogJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB6LWluZGV4OiAxXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdOmZvY3VzK2xhYmVsOmJlZm9yZSxcXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdOmNoZWNrZWQrbGFiZWw6YmVmb3JlIHtcXG4gICAgb3BhY2l0eTogMVxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCBzcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWw6YmVmb3JlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIG9wYWNpdHk6IDBcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWw6aG92ZXI6YmVmb3JlIHtcXG4gICAgb3BhY2l0eTogMVxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbDpob3Zlcn5sYWJlbDpiZWZvcmUge1xcbiAgICBvcGFjaXR5OiAwXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNSB7XFxuICAgIHotaW5kZXg6IDJcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1J1xcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQge1xcbiAgICB6LWluZGV4OiAzXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNDpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDUnICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMyB7XFxuICAgIHotaW5kZXg6IDRcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0zOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwNScgJ1xcXFxFNjA1JyAnXFxcXEU2MDUnXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMiB7XFxuICAgIHotaW5kZXg6IDVcXG59XFxuXFxuLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwNScgJ1xcXFxFNjA1J1xcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTEge1xcbiAgICB6LWluZGV4OiA2XFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMTpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnXFxcXEU2MDUnXFxufVxcblxcbi5yZXZpZXctY29udHJvbC12b3RlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyNScgJ1xcXFxFNjI1JyAnXFxcXEU2MjUnICdcXFxcRTYyNScgJ1xcXFxFNjI1J1xcbn1cXG5cXG4ucHJvZHVjdHMtcmV2aWV3cy10b29sYmFyIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5wcm9kdWN0cy1yZXZpZXdzLXRvb2xiYXIgLnRvb2xiYXItYW1vdW50IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnJldmlldy10b29sYmFyIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjOWM5Yzk7XFxuICAgIG1hcmdpbjogMCAwIDIwcHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4ucmV2aWV3LXRvb2xiYXI6Zmlyc3QtY2hpbGQge1xcbiAgICBkaXNwbGF5OiBub25lXFxufVxcblxcbi5yZXZpZXctdG9vbGJhciAucGFnZXMge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M5YzljOTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBhZGRpbmc6IDIwcHggMDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5yZXZpZXctdG9vbGJhciAubGltaXRlciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLnJldmlldy1hZGQgLmJsb2NrLXRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeSB7XFxuICAgIGJhY2tncm91bmQ6ICNlZWU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBmb250LXNpemU6IDEuNHJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNnJlbTtcXG4gICAgcGFkZGluZzogN3B4IDE1cHg7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeTpmb2N1cyxcXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeTphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjZTJlMmUyO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBjb2xvcjogIzMzM1xcbn1cXG5cXG4ucmV2aWV3LWZvcm0gLmFjdGlvbi5zdWJtaXQucHJpbWFyeTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlMWUxZTE7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5yZXZpZXctZm9ybSAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb25zLXByaW1hcnkge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5maWVsZHNldCAucmV2aWV3LWxlZ2VuZC5sZWdlbmQge1xcbiAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4zO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5maWVsZHNldCAucmV2aWV3LWxlZ2VuZC5sZWdlbmQgc3BhbiB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uZmllbGRzZXQgLnJldmlldy1sZWdlbmQubGVnZW5kIHN0cm9uZyB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5maWVsZHNldCAucmV2aWV3LWZpZWxkLXJhdGluZ3M+LmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gICAgcGFkZGluZzogMFxcbn1cXG5cXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbDpiZWZvcmUsXFxuLnJldmlldy1jb250cm9sLXZvdGU6YmVmb3JlIHtcXG4gICAgZm9udC1zaXplOiAzMnB4O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIGxldHRlci1zcGFjaW5nOiAxMHB4O1xcbiAgICBsaW5lLWhlaWdodDogMzJweFxcbn1cXG5cXG4ucmV2aWV3LWZpZWxkLXJhdGluZyAubGFiZWwge1xcbiAgICBmb250LXdlaWdodDogNjAwXFxufVxcblxcbi5yZXZpZXctZmllbGQtcmF0aW5nIC5jb250cm9sIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4ucmV2aWV3LWxpc3Qge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5yZXZpZXctbGlzdCAuYmxvY2stdGl0bGUgc3Ryb25nIHtcXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcXG4gICAgZm9udC1zaXplOiAyLjZyZW07XFxuICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbVxcbn1cXG5cXG4ucmV2aWV3LWl0ZW0ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M5YzljOTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAyMHB4IDBcXG59XFxuXFxuLnJldmlldy1pdGVtOmFmdGVyIHtcXG4gICAgY2xlYXI6IGJvdGg7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4ucmV2aWV3LWl0ZW06bGFzdC1jaGlsZCB7XFxuICAgIGJvcmRlci13aWR0aDogMFxcbn1cXG5cXG4ucmV2aWV3LXJhdGluZ3Mge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlXFxufVxcblxcbi5yZXZpZXctYXV0aG9yIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5yZXZpZXctYXV0aG9yIC5yZXZpZXctZGV0YWlscy12YWx1ZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLnJldmlldy1kYXRlIHtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5yZXZpZXctdGl0bGUge1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4ucmV2aWV3LWNvbnRlbnQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5wYWdlLW1haW4gLmNvbHVtbiAucmV2aWV3LWFkZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmRhdGEudGFibGUucmV2aWV3cyAucmF0aW5nLXN1bW1hcnkge1xcbiAgICBtYXJnaW4tdG9wOiAtNHB4XFxufVxcblxcbi5jdXN0b21lci5yZXZpZXcudmlldyAucmV2aWV3LnRpdGxlLFxcbi5jdXN0b21lci5yZXZpZXcudmlldyAucmF0aW5ncy5zdW1tYXJ5Lml0ZW1zLFxcbi5jdXN0b21lci5yZXZpZXcudmlldyAucHJvZHVjdC5kZXRhaWxzIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkge1xcbiAgICBtYXJnaW4tYm90dG9tOiA1cHhcXG59XFxuXFxuLnByb2R1Y3RzLndyYXBwZXIubGlzdCAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkge1xcbiAgICBtYXJnaW46IDAgYXV0b1xcbn1cXG5cXG4ucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJhdGluZy1zdW1tYXJ5IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxufVxcblxcbi5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmV2aWV3cy1hY3Rpb25zIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IDExcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yZXZpZXdzLWFjdGlvbnMgYTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4XFxufVxcblxcbi5wcm9kdWN0LWluZm8tbWFpbiAucmF0aW5nLXN1bW1hcnksXFxuLmN1c3RvbWVyLXJldmlldyAucmF0aW5nLXN1bW1hcnkge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHhcXG59XFxuXFxuLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIC5pdGVtcyAuaXRlbSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIC5pdGVtcyAuaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4uYmxvY2stcmV2aWV3cy1kYXNoYm9hcmQgLnByb2R1Y3QtbmFtZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYmxvY2stcmV2aWV3cy1kYXNoYm9hcmQgLnByb2R1Y3QtbmFtZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4XFxufVxcblxcbi5ibG9jay1yZXZpZXdzLWRhc2hib2FyZCAucmF0aW5nLXN1bW1hcnkgLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxufVxcblxcbi50YWJsZS1yZXZpZXdzIC5wcm9kdWN0LW5hbWUsXFxuLmJsb2NrLXJldmlld3MtZGFzaGJvYXJkIC5wcm9kdWN0LW5hbWUge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi50YWJsZS1yZXZpZXdzIC5yYXRpbmctc3VtbWFyeSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXFxufVxcblxcbi5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtbWVkaWEge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzJTtcXG4gICAgbWF4LXdpZHRoOiAyODVweDtcXG4gICAgd2lkdGg6IDMwJVxcbn1cXG5cXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAuY3VzdG9tZXItcmV2aWV3LXJhdGluZyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcgLml0ZW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIC5pdGVtOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5yZXZpZXctdGl0bGUge1xcbiAgICBsaW5lLWhlaWdodDogMS4xO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgbWFyZ2luLXRvcDogMnJlbTtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4uY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LWNvbnRlbnQge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLnJldmlldy1kYXRlIHtcXG4gICAgY29sb3I6ICNhNmE2YTZcXG59XFxuXFxuLmJsb2NrLXJld2FyZC1pbmZvIC5yZXdhcmQtYmFsYW5jZSB7XFxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5ibG9jay1yZXdhcmQtaW5mbyAucmV3YXJkLXJhdGVzOm5vdCg6bGFzdC1jaGlsZCksXFxuLmJsb2NrLXJld2FyZC1pbmZvIC5yZXdhcmQtbGltaXQ6bm90KDpsYXN0LWNoaWxkKSxcXG4uYmxvY2stcmV3YXJkLWluZm8gLnJld2FyZC1leHBpcmluZzpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweFxcbn1cXG5cXG4uYmxvY2stcmV3YXJkLWluZm8gLnJld2FyZC1yYXRlcyAudGl0bGUsXFxuLmJsb2NrLXJld2FyZC1pbmZvIC5yZXdhcmQtbGltaXQgLnRpdGxlLFxcbi5ibG9jay1yZXdhcmQtaW5mbyAucmV3YXJkLWV4cGlyaW5nIC50aXRsZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcy5ybWEgLm9yZGVyLXRpdGxlIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcy5ybWEgLm9yZGVyLXRpdGxlKy50b29sYmFyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5hZGRpdGlvbmFsOmZpcnN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG4uZm9ybS1jcmVhdGUtcmV0dXJuIC5maWVsZC5jb21tZW50IHtcXG4gICAgbWFyZ2luLXRvcDogNTVweFxcbn1cXG5cXG4uYmxvY2stcmV0dXJucy1jb21tZW50cyAucmV0dXJucy1jb21tZW50cyBkdCxcXG4uYmxvY2stcmV0dXJucy1jb21tZW50cyAucmV0dXJucy1jb21tZW50cyBkZCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4uYmxvY2stcmV0dXJucy1jb21tZW50cyAucmV0dXJucy1jb21tZW50cyBkdCB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLmJsb2NrLXJldHVybnMtY29tbWVudHMgLnJldHVybnMtY29tbWVudHMgZGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxufVxcblxcbi5ibG9jay1yZXR1cm5zLWNvbW1lbnRzIC5yZXR1cm5zLWNvbW1lbnRzIGRkOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwXFxufVxcblxcbi5ibG9jay1yZXR1cm5zLWNvbW1lbnRzIC5maWVsZHNldCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYSB7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgICBtYXJnaW46IDAgMzBweCAwIDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgZGlzcGxheTogaW5saW5lXFxufVxcblxcbi5tYWdlbnRvLXJtYS1ndWVzdC1jcmVhdGUgLm9yZGVyLWxpbmtzIC5pdGVtIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmFjdGl2ZSB7XFxuICAgIGNvbG9yOiAjZmY1NTAxO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYTpob3ZlcixcXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmFjdGl2ZSxcXG4ubWFnZW50by1ybWEtZ3Vlc3QtY3JlYXRlIC5vcmRlci1saW5rcyAuaXRlbSBhOmZvY3VzIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwXFxufVxcblxcbi5tYWdlbnRvLXJtYS1ndWVzdC1jcmVhdGUgLm9yZGVyLWxpbmtzIC5pdGVtIGEuZGlzYWJsZWQsXFxuLm1hZ2VudG8tcm1hLWd1ZXN0LWNyZWF0ZSAub3JkZXItbGlua3MgLml0ZW0gYVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5tYWdlbnRvLXJtYS1ndWVzdC1jcmVhdGUgLm9yZGVyLWxpbmtzIC5pdGVtIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5vcmRlci1saW5rcyAuaXRlbSB7XFxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgICBtYXJnaW46IDAgMCAtMXB4XFxufVxcblxcbi5vcmRlci1saW5rcyAuaXRlbSBzdHJvbmcge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgcGFkZGluZzogMCAyMHB4XFxufVxcblxcbi5vcmRlci1saW5rcyAuaXRlbSBhIHtcXG4gICAgYmFja2dyb3VuZDogI2Y2ZjZmNjtcXG4gICAgY29sb3I6ICM2ZDZkNmQ7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBwYWRkaW5nOiAwIDIwcHhcXG59XFxuXFxuLm9yZGVyLWxpbmtzIC5pdGVtIGE6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xcbiAgICBwYWRkaW5nOiAxMHB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5vcmRlci10aXRsZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgICBwYWRkaW5nOiAwIDAgMTBweFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItdGl0bGU+c3Ryb25nIHtcXG4gICAgZm9udC1zaXplOiAyLjRyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLXRpdGxlIC5hY3Rpb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIrLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIGRpc3BsYXk6IG5vbmVcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXI6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDMwcHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zPnRoZWFkPnRyPnRoIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5K3Rib2R5IHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmFjY291bnQgLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmVcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5IHRkIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxuICAgIHBhZGRpbmctdG9wOiAyMHB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keSAuY29sLmxhYmVsIHtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcXG4gICAgcGFkZGluZy10b3A6IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLW9yZGVyLWl0ZW1zIHRib2R5IC5jb2wub3B0aW9ucyB7XFxuICAgIHBhZGRpbmc6IDAgMCAxNXB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keT4uaXRlbS1wYXJlbnQgdGQge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keT4uaXRlbS1wYXJlbnQrdHIgdGQge1xcbiAgICBwYWRkaW5nLXRvcDogNXB4XFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keSAuaXRlbS1vcHRpb25zLWNvbnRhaW5lciB0ZCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xcbiAgICBwYWRkaW5nLXRvcDogMFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtb3JkZXItaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgbWFyZ2luOiAwIDAgMTBweFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zIHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtLW9wdGlvbnMgZHQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLml0ZW0tb3B0aW9ucyBkZCB7XFxuICAgIG1hcmdpbjogMCAwIDE1cHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLml0ZW0tb3B0aW9ucyBkZDpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLmxpbmtzIGR0IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtLW9wdGlvbnMubGlua3MgZHQ6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtLW9wdGlvbnMubGlua3MgZGQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgdGhlYWQgLmNvbC5xdHkge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmNvbC5uYW1lIHtcXG4gICAgcGFkZGluZy10b3A6IDE2cHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmFjdGlvbi5zaG93IHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGNvbG9yOiAjMzMzXFxufVxcblxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5hY3Rpb24uc2hvdz5zcGFuIHtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICBoZWlnaHQ6IDFweDtcXG4gICAgbWFyZ2luOiAtMXB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAxcHhcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmFjdGlvbi5zaG93OmFmdGVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMTBweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLmFjdGlvbi5zaG93LmV4cGFuZGVkOmFmdGVyIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJ1xcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICBmb250LXNpemU6IDEuOHJlbVxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbXMtcXR5IC5pdGVtIHtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbXMtcXR5IC50aXRsZTphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICc6ICdcXG59XFxuXFxuLm9yZGVyLWRldGFpbHMtaXRlbXMgLnBhZ2VzLWl0ZW1zIC5pdGVtOmZpcnN0LWNoaWxkLFxcbi5vcmRlci1kZXRhaWxzLWl0ZW1zIC5wYWdlcy1pdGVtcyAuaXRlbTpsYXN0LWNoaWxkIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLWNvbW1lbnRzIHtcXG4gICAgbWFyZ2luOiAwIDAgNDBweFxcbn1cXG5cXG4uYmxvY2stb3JkZXItZGV0YWlscy1jb21tZW50cyAuY29tbWVudC1kYXRlIHtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uYmxvY2stb3JkZXItZGV0YWlscy1jb21tZW50cyAuY29tbWVudC1jb250ZW50IHtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcXG4gICAgbWFyZ2luOiAwIDAgMjBweFxcbn1cXG5cXG4uYmxvY2stb3JkZXItZGV0YWlscy12aWV3IC5ibG9jay1jb250ZW50IC5ib3gge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4XFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcgLmJveC10aXRsZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDBcXG59XFxuXFxuLmJsb2NrLW9yZGVyLWRldGFpbHMtdmlldyAuYm94LWNvbnRlbnQgLnBheW1lbnQtbWV0aG9kIC50aXRsZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLmJsb2NrLW9yZGVyLWRldGFpbHMtdmlldyAuYm94LWNvbnRlbnQgLnBheW1lbnQtbWV0aG9kIC5jb250ZW50IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcgLmJveC1jb250ZW50IC5wYXltZW50LW1ldGhvZCAuY29udGVudD5zdHJvbmcge1xcbiAgICBmb250LXdlaWdodDogNDAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLXZpZXcgLmJveC1jb250ZW50IC5wYXltZW50LW1ldGhvZCAuY29udGVudD5zdHJvbmc6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnOiAnXFxufVxcblxcbi5jb2x1bW4ubWFpbiAub3JkZXItZGV0YWlscy1pdGVtcyAuYmxvY2stb3JkZXItZGV0YWlscy1naWZ0LW1lc3NhZ2Uge1xcbiAgICBtYXJnaW46IDQwcHggMCAwXFxufVxcblxcbi5ibG9jay1vcmRlci1kZXRhaWxzLWdpZnQtbWVzc2FnZSsuYWN0aW9ucy10b29sYmFyIHtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4ub3JkZXItdHJhY2tpbmcge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDIwcHggMFxcbn1cXG5cXG4ub3JkZXItdGl0bGUrLm9yZGVyLXRyYWNraW5nIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLm9yZGVyLXRyYWNraW5nIC50cmFja2luZy10aXRsZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4ub3JkZXItdHJhY2tpbmcgLnRyYWNraW5nLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbjogMCAwIDAgNXB4XFxufVxcblxcbi5vcmRlci1hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4XFxufVxcblxcbi5vcmRlci1hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbiB7XFxuICAgIG1hcmdpbi1yaWdodDogMzBweFxcbn1cXG5cXG4ub3JkZXItYWN0aW9ucy10b29sYmFyIC5hY3Rpb24ucHJpbnQge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmZvcm0tb3JkZXJzLXNlYXJjaCAuZmllbGQ6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLXJlb3JkZXIgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbjogMTdweCAwXFxufVxcblxcbi5ibG9jay1yZW9yZGVyIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbn1cXG5cXG4uYmxvY2stcmVvcmRlciAucHJvZHVjdC1pdGVtIC5maWVsZC5pdGVtIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxufVxcblxcbi5wcm9kdWN0LXNvY2lhbC1saW5rcyAuYWN0aW9uLm1haWx0by5mcmllbmQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjFEJ1xcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5jb250ZW50IHtcXG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG4gICAgcGFkZGluZzogMTVweCAwXFxufVxcblxcbi5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLml0ZW0ge1xcbiAgICBtYXJnaW46IDNweCAwIDBcXG59XFxuXFxuLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuaXRlbTpmaXJzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi10b3A6IDBcXG59XFxuXFxuLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuaXRlbSBhLFxcbi5ibG9jay1jb2xsYXBzaWJsZS1uYXYgLml0ZW0+c3Ryb25nIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6ICM1NzU3NTc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBwYWRkaW5nOiA1cHggMThweCA1cHggMTVweFxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtIGEge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuaXRlbSBhOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogI2U4ZThlOFxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtLmN1cnJlbnQgYSxcXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtLmN1cnJlbnQ+c3Ryb25nIHtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZmY1NTAxO1xcbiAgICBjb2xvcjogIzAwMDtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMFxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtLmN1cnJlbnQgYSB7XFxuICAgIGJvcmRlci1jb2xvcjogI2ZmNTUwMVxcbn1cXG5cXG4uYmxvY2stY29sbGFwc2libGUtbmF2IC5pdGVtIC5kZWxpbWl0ZXIge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDFkMTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMTBweCAxLjhyZW1cXG59XFxuXFxuYm9keSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZcXG59XFxuXFxuLmllOSAucGFnZS13cmFwcGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgbWluLWhlaWdodDogMFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnBhbmVsLndyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmU3MTZlO1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3Mge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICBmb250LXNpemU6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHhcXG59XFxuXFxuLmhlYWRlci5wYW5lbD4uaGVhZGVyLmxpbmtzPmxpIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5oZWFkZXIucGFuZWw+LmhlYWRlci5saW5rcz5saSB7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbWFyZ2luOiAwIDAgMCAxNXB4XFxufVxcblxcbi5oZWFkZXIucGFuZWw+LmhlYWRlci5saW5rcz5saT5hIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3M+bGk+YTp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3M+bGk+YTpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4uaGVhZGVyLnBhbmVsPi5oZWFkZXIubGlua3M+bGk+YTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmhlYWRlci5jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubG9nbyB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBtYXJnaW46IDAgMCAxMHB4IDQwcHg7XFxuICAgIG1heC13aWR0aDogNTAlO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDVcXG59XFxuXFxuLmxvZ28gaW1nIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLnBhZ2UtcHJpbnQgLmxvZ28ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZsb2F0OiBub25lXFxufVxcblxcbi5wYWdlLW1haW4+LnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSsuYWN0aW9uIHtcXG4gICAgbWFyZ2luLXRvcDogMzBweFxcbn1cXG5cXG4uYWN0aW9uLnNraXA6Zm9jdXMge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xcbiAgICBwYWRkaW5nOiAxMHB4O1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBsZWZ0OiAwO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgdG9wOiAwO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgei1pbmRleDogMTVcXG59XFxuXFxuLmFjdGlvbi1za2lwLXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwgcCB7XFxuICAgIG1hcmdpbjogMFxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwubm9zY3JpcHQsXFxuLm1lc3NhZ2UuZ2xvYmFsLmNvb2tpZSB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHBhZGRpbmc6IDEycHggMjBweCAxMnB4IDI1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuM3JlbTtcXG4gICAgYmFja2dyb3VuZDogI2ZmZWU5YztcXG4gICAgYm9yZGVyLWNvbG9yOiAjZDZjYThlO1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5ub3NjcmlwdCBhLFxcbi5tZXNzYWdlLmdsb2JhbC5jb29raWUgYSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5ub3NjcmlwdCBhOmhvdmVyLFxcbi5tZXNzYWdlLmdsb2JhbC5jb29raWUgYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5ub3NjcmlwdCBhOmFjdGl2ZSxcXG4ubWVzc2FnZS5nbG9iYWwuY29va2llIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDFcXG59XFxuXFxuLm1lc3NhZ2UuZ2xvYmFsLmNvb2tpZSB7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgcG9zaXRpb246IGZpeGVkO1xcbiAgICByaWdodDogMDtcXG4gICAgei1pbmRleDogM1xcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwuY29va2llIC5hY3Rpb25zIHtcXG4gICAgbWFyZ2luLXRvcDogMTBweFxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwuZGVtbyB7XFxuICAgIG1hcmdpbjogMCAwIDEwcHg7XFxuICAgIHBhZGRpbmc6IDEycHggMjBweCAxMnB4IDI1cHg7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuM3JlbTtcXG4gICAgYmFja2dyb3VuZDogI2ZmMDEwMTtcXG4gICAgYm9yZGVyLWNvbG9yOiBub25lO1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5tZXNzYWdlLmdsb2JhbC5kZW1vIGEge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubWVzc2FnZS5nbG9iYWwuZGVtbyBhOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjRcXG59XFxuXFxuLm1lc3NhZ2UuZ2xvYmFsLmRlbW8gYTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMVxcbn1cXG5cXG4ucGFnZS1mb290ZXIge1xcbiAgICBtYXJnaW4tdG9wOiAyNXB4XFxufVxcblxcbi5mb290ZXIuY29udGVudCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2VjZWNlO1xcbiAgICBwYWRkaW5nLXRvcDogMjBweFxcbn1cXG5cXG4uZm9vdGVyLmNvbnRlbnQgLmxpbmtzPmxpIHtcXG4gICAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcXG4gICAgZm9udC1zaXplOiAxLjZyZW07XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2VjZWNlO1xcbiAgICBtYXJnaW46IDAgLTE1cHg7XFxuICAgIHBhZGRpbmc6IDAgMTVweFxcbn1cXG5cXG4uZm9vdGVyLmNvbnRlbnQgLmxpbmtzIGEsXFxuLmZvb3Rlci5jb250ZW50IC5saW5rcyBzdHJvbmcge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcGFkZGluZzogMTBweCAwXFxufVxcblxcbi5mb290ZXIuY29udGVudCAubGlua3Mgc3Ryb25nIHtcXG4gICAgY29sb3I6ICNhNmE2YTY7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWxcXG59XFxuXFxuLmZvb3Rlci5jb250ZW50IC5saW5rcyBhIHtcXG4gICAgY29sb3I6ICM1NzU3NTc7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uZm9vdGVyLmNvbnRlbnQgLmxpbmtzIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLmZvb3Rlci5jb250ZW50IC5saW5rcyBhOmhvdmVyIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5mb290ZXIuY29udGVudCAubGlua3MgYTphY3RpdmUge1xcbiAgICBjb2xvcjogIzMzMztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLmNvcHlyaWdodCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM2ZTcxNmU7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgcGFkZGluZzogMTBweDtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnM6YmVmb3JlLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnM6YmVmb3JlLFxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnM6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9uczphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICcnO1xcbiAgICBkaXNwbGF5OiB0YWJsZVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnM6YWZ0ZXIge1xcbiAgICBjbGVhcjogYm90aFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGUge1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU+c3BhbixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6YWZ0ZXIge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMHB4O1xcbiAgICBsaW5lLWhlaWdodDogMjJweDtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYyMic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6aG92ZXI6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZTpob3ZlcjphZnRlciB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZT5zcGFuLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgLmFjdGlvbi50b2dnbGUuYWN0aXZlPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphZnRlcixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphZnRlciB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDEwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjIxJztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6aG92ZXI6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6aG92ZXI6YWZ0ZXIge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIC5hY3Rpb24udG9nZ2xlLmFjdGl2ZTphY3RpdmU6YWZ0ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyAuYWN0aW9uLnRvZ2dsZS5hY3RpdmU6YWN0aXZlOmFmdGVyIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBsaXN0LXN0eWxlOiBub25lIG5vbmU7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XFxuICAgIG1hcmdpbi10b3A6IDRweDtcXG4gICAgbWluLXdpZHRoOiAxNjBweDtcXG4gICAgei1pbmRleDogMTAwO1xcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMTAwJTtcXG4gICAgYm94LXNoYWRvdzogMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNSlcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBsaSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGxpIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd24gbGk6aG92ZXIsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBsaTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XFxuICAgIGN1cnNvcjogcG9pbnRlclxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gICAgY29udGVudDogJyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDBcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bjpiZWZvcmUsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bjpiZWZvcmUge1xcbiAgICBib3JkZXI6IDZweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmFmdGVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd246YWZ0ZXIge1xcbiAgICBib3JkZXI6IDdweCBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYmJiIHRyYW5zcGFyZW50O1xcbiAgICB6LWluZGV4OiA5OFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmJlZm9yZSB7XFxuICAgIGxlZnQ6IDEwcHg7XFxuICAgIHRvcDogLTEycHhcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93bjphZnRlcixcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duOmFmdGVyIHtcXG4gICAgbGVmdDogOXB4O1xcbiAgICB0b3A6IC0xNHB4XFxufVxcblxcbi5wYWdlLWhlYWRlciAuc3dpdGNoZXIgLm9wdGlvbnMuYWN0aXZlLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMuYWN0aXZlIHtcXG4gICAgb3ZlcmZsb3c6IHZpc2libGVcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucy5hY3RpdmUgdWwuZHJvcGRvd24sXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucy5hY3RpdmUgdWwuZHJvcGRvd24ge1xcbiAgICBkaXNwbGF5OiBibG9ja1xcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGEsXFxuLnBhZ2UtZm9vdGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBhIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBhZGRpbmc6IDhweFxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGE6dmlzaXRlZCxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGE6dmlzaXRlZCB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBhOmhvdmVyLFxcbi5wYWdlLWZvb3RlciAuc3dpdGNoZXIgLm9wdGlvbnMgdWwuZHJvcGRvd24gYTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG59XFxuXFxuLnBhZ2UtaGVhZGVyIC5zd2l0Y2hlciAub3B0aW9ucyB1bC5kcm9wZG93biBhOmFjdGl2ZSxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIC5vcHRpb25zIHVsLmRyb3Bkb3duIGE6YWN0aXZlIHtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ucGFnZS1oZWFkZXIgLnN3aXRjaGVyIHN0cm9uZyxcXG4ucGFnZS1mb290ZXIgLnN3aXRjaGVyIHN0cm9uZyB7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDBcXG59XFxuXFxuLnNpZGViYXIgLndpZGdldC5ibG9jazpub3QoOmxhc3QtY2hpbGQpLFxcbi5zaWRlYmFyIC53aWRnZXQ6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG59XFxuXFxuLndpZGdldCB7XFxuICAgIGNsZWFyOiBib3RoXFxufVxcblxcbi5wYWdlLWhlYWRlciAud2lkZ2V0LmJsb2NrLFxcbi5wYWdlLWZvb3RlciAud2lkZ2V0LmJsb2NrIHtcXG4gICAgbWFyZ2luOiAyMHB4IDBcXG59XFxuXFxuLnVpLWRhdGVwaWNrZXIgdGQge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi51aS10b29sdGlwIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgcGFkZGluZzogMTBweFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5zdGF0dXMge1xcbiAgICBmb250LXN0eWxlOiBpdGFsaWNcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZSB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZTpmb2N1cyxcXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGUuZGlzYWJsZWQsXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZVtkaXNhYmxlZF0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGUge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgb3BhY2l0eTogLjVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZTp2aXNpdGVkIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZjU1MDE7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlOmhvdmVyLFxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6YWN0aXZlLFxcbi5teS1jcmVkaXQtY2FyZHMgLmFjdGlvbi5kZWxldGU6Zm9jdXMge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IDBcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZS5kaXNhYmxlZCxcXG4ubXktY3JlZGl0LWNhcmRzIC5hY3Rpb24uZGVsZXRlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm15LWNyZWRpdC1jYXJkcyAuYWN0aW9uLmRlbGV0ZSB7XFxuICAgIGNvbG9yOiAjMDA2YmI0O1xcbiAgICBvcGFjaXR5OiAuNTtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAubW9kYWwtZm9vdGVyIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHRcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeSB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgIG1hcmdpbi1yaWdodDogMjBweFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5OmZvY3VzLFxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBib3JkZXI6IG5vbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeS5kaXNhYmxlZCxcXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeSB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICBvcGFjaXR5OiAuNVxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5OnZpc2l0ZWQge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6aG92ZXIge1xcbiAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTphY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmNTUwMTtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG59XFxuXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDA2YmI0XFxufVxcblxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnk6aG92ZXIsXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTphY3RpdmUsXFxuLm15LWNyZWRpdC1jYXJkcy1wb3B1cCAuYWN0aW9uLnNlY29uZGFyeTpmb2N1cyB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogMFxcbn1cXG5cXG4ubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5LmRpc2FibGVkLFxcbi5teS1jcmVkaXQtY2FyZHMtcG9wdXAgLmFjdGlvbi5zZWNvbmRhcnlbZGlzYWJsZWRdLFxcbmZpZWxkc2V0W2Rpc2FibGVkXSAubXktY3JlZGl0LWNhcmRzLXBvcHVwIC5hY3Rpb24uc2Vjb25kYXJ5IHtcXG4gICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgIG9wYWNpdHk6IC41O1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxcbn1cXG5cXG4ucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSxcXG4uYmxvY2stYnVuZGxlLXN1bW1hcnkgLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSxcXG4ucHJvZHVjdC1pdGVtIC5hY3Rpb24udG93aXNobGlzdDpiZWZvcmUsXFxuLnRhYmxlLWNvbXBhcmlzb24gLmFjdGlvbi50b3dpc2hsaXN0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYwMCdcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGhlYWQ+dHI+dGgsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGJvZHk+dHI+dGgsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGZvb3Q+dHI+dGgsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGhlYWQ+dHI+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGJvZHk+dHI+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGZvb3Q+dHI+dGQge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdD5jYXB0aW9uK3RoZWFkPnRyOmZpcnN0LWNoaWxkPnRoLFxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PmNvbGdyb3VwK3RoZWFkPnRyOmZpcnN0LWNoaWxkPnRoLFxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkPnRoLFxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PmNhcHRpb24rdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+Y29sZ3JvdXArdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3Q+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQ+dGQge1xcbiAgICBib3JkZXItdG9wOiAwXFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0PnRib2R5K3Rib2R5IHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgdGhlYWQ+dHI+dGgge1xcbiAgICBib3JkZXItYm90dG9tOiAwXFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IHRib2R5PnRyOmxhc3QtY2hpbGQ+dGQge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAucHJvZHVjdC5uYW1lIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4XFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IC5ib3gtdG9jYXJ0IHtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmJveC10b2NhcnQgLnF0eSB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmNvbC5pdGVtIHtcXG4gICAgd2lkdGg6IDUwJVxcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAuY29sLnBob3RvIHtcXG4gICAgbWF4LXdpZHRoOiAxNTBweFxcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAuY29sLnNlbGVjdG9yIHtcXG4gICAgbWF4LXdpZHRoOiAxNXB4XFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IHRleHRhcmVhIHtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmRhdGEudGFibGUud2lzaGxpc3QgLmlucHV0LXRleHQucXR5IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbn1cXG5cXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuZGF0YS50YWJsZS53aXNobGlzdCAuYWN0aW9uLnByaW1hcnkge1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wXFxufVxcblxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5kYXRhLnRhYmxlLndpc2hsaXN0IC5wcmljZSB7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDBcXG59XFxuXFxuLmxpbmsud2lzaGxpc3QgLmNvdW50ZXIge1xcbiAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcFxcbn1cXG5cXG4ubGluay53aXNobGlzdCAuY291bnRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiAnKCdcXG59XFxuXFxuLmxpbmsud2lzaGxpc3QgLmNvdW50ZXI6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAnKSdcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgIG1hcmdpbi1yaWdodDogMjVweFxcbn1cXG5cXG4ucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLXBob3RvIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgbWFyZ2luLXRvcDogMFxcbn1cXG5cXG4ucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5wcmljZS1ib3gge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1jb21tZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGhlaWdodDogNDJweDtcXG4gICAgbWFyZ2luOiAxMHB4IDBcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1hY3Rpb25zPioge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHhcXG59XFxuXFxuLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1hY3Rpb25zPio6bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1yaWdodDogMFxcbn1cXG5cXG4uYmxvY2stYmFubmVycyAuYmFubmVyLWl0ZW0sXFxuLmJsb2NrLWJhbm5lcnMtaW5saW5lIC5iYW5uZXItaXRlbSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1iYW5uZXJzIC5iYW5uZXItaXRlbS1jb250ZW50LFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSAuYmFubmVyLWl0ZW0tY29udGVudCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLWJhbm5lcnMgLmJhbm5lci1pdGVtLWNvbnRlbnQgaW1nLFxcbi5ibG9jay1iYW5uZXJzLWlubGluZSAuYmFubmVyLWl0ZW0tY29udGVudCBpbWcge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwIGF1dG9cXG59XFxuXFxuLmJsb2NrLXByb2R1Y3QtbGluay53aWRnZXQsXFxuLmJsb2NrLWNhdGVnb3J5LWxpbmsud2lkZ2V0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLXByb2R1Y3QtbGluay1pbmxpbmUud2lkZ2V0IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5ibG9jay53aWRnZXQgLnByb2R1Y3QtaXRlbS1pbmZvIHtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLmJsb2NrLndpZGdldCAucGFnZXIge1xcbiAgICBwYWRkaW5nOiAwXFxufVxcblxcbi5ibG9jay53aWRnZXQgLnBhZ2VyIC50b29sYmFyLWFtb3VudCB7XFxuICAgIGZsb2F0OiBub25lO1xcbiAgICBmb250LXNpemU6IDEuMnJlbVxcbn1cXG5cXG4uYmxvY2sud2lkZ2V0IC5wYWdlciAucGFnZXMtaXRlbS1wcmV2aW91cyB7XFxuICAgIHBhZGRpbmctbGVmdDogMFxcbn1cXG5cXG4uYmxvY2sud2lkZ2V0IC5wYWdlciAucGFnZXMtaXRlbS1uZXh0IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5ibG9jay53aWRnZXQgLnBhZ2VyIC5pdGVtcyB7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmNvbHVtbnMgLmJsb2NrLWV2ZW50IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAyXFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbiB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgbWFyZ2luLXRvcDogLTZweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDUwJTtcXG4gICAgei1pbmRleDogM1xcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5iYWNrd2FyZCxcXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkIHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHdpZHRoOiAyMHB4O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5iYWNrd2FyZD5zcGFuLFxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmZvcndhcmQ+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmJhY2t3YXJkOmJlZm9yZSxcXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkOmJlZm9yZSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICBmb250LXNpemU6IDU1cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgY29udGVudDogJ1xcXFxFNjE3JztcXG4gICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmJhY2t3YXJkOmJlZm9yZSxcXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkOmJlZm9yZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTVweFxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5iYWNrd2FyZCB7XFxuICAgIGxlZnQ6IDBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5ibG9jay1jb250ZW50Pi5hY3Rpb24uZm9yd2FyZCB7XFxuICAgIHJpZ2h0OiAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuYmxvY2stY29udGVudD4uYWN0aW9uLmZvcndhcmQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogJ1xcXFxFNjA4J1xcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5mb3J3YXJkOmJlZm9yZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMjBweFxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbi5pbmFjdGl2ZSB7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgZGlzcGxheTogbm9uZVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLmJsb2NrLWNvbnRlbnQ+LmFjdGlvbjpob3ZlciB7XFxuICAgIG9wYWNpdHk6IDFcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDJcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciB7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSB7XFxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICB3aWR0aDogMTYuMzUlXFxufVxcblxcbi5zaWRlYmFyLW1haW4gLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSxcXG4uc2lkZWJhci1hZGRpdGlvbmFsIC5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0ge1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIGltZyB7XFxuICAgIG1heC13aWR0aDogMTAwJVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5jYXRlZ29yeS1uYW1lIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXNpemU6IDEuOHJlbTtcXG4gICAgcGFkZGluZzogMTVweCA1cHggMDtcXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLnRpY2tlciB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbGlzdC1zdHlsZTogbm9uZSBub25lXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLnRpY2tlciBsaSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIG1hcmdpbjogMCA1cHhcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAudGlja2VyIC52YWx1ZSB7XFxuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLnRpY2tlciAubGFiZWwge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgZm9udC1zaXplOiAxLjNyZW1cXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuZGF0ZXMge1xcbiAgICBmb250LXdlaWdodDogMzAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmRhdGVzIC5zdGFydCxcXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5kYXRlcyAuZW5kLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmRhdGVzIC5kYXRlIHtcXG4gICAgZGlzcGxheTogYmxvY2tcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuZGF0ZXMgLnN0YXJ0OmFmdGVyIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGNvbnRlbnQ6ICdcXFxcMjAxMyc7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmRhdGVzIC5kYXRlIHtcXG4gICAgZm9udC1zaXplOiAxLjhyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuZGF0ZXMgLnRpbWUge1xcbiAgICBmb250LXNpemU6IDEuM3JlbVxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5ib3gtZXZlbnQgLmJveC1jb250ZW50IHtcXG4gICAgcGFkZGluZzogNXB4IDAgMTBweFxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5ib3gtZXZlbnQgLmJveC10aXRsZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBmb250LXdlaWdodDogMzAwO1xcbiAgICBtYXJnaW46IDEwcHggMCAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5zaG93IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBhZGRpbmc6IDBcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLnNob3cgLmNhdGVnb3J5Lm5hbWUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBhZGRpbmc6IDMwcHggMTBweCAwXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5zaG93IGltZyB7XFxuICAgIGRpc3BsYXk6IGJsb2NrXFxufVxcblxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudCB7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6ICMxOTc5YzM7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxOTc5YzM7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBwYWRkaW5nOiA3cHggMTVweDtcXG4gICAgZm9udC1zaXplOiAxLjRyZW07XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIG1hcmdpbi10b3A6IDE1cHhcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmZvY3VzLFxcbi5ibG9jay1ldmVudCAuc2xpZGVyLXBhbmVsIC5zbGlkZXIgLml0ZW0gLmFjdGlvbi5ldmVudDphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQ6aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjMDA2YmI0O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDA2YmI0O1xcbiAgICBjb2xvcjogI2ZmZlxcbn1cXG5cXG4uYmxvY2stZXZlbnQgLnNsaWRlci1wYW5lbCAuc2xpZGVyIC5pdGVtIC5hY3Rpb24uZXZlbnQuZGlzYWJsZWQsXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50W2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50IHtcXG4gICAgb3BhY2l0eTogLjU7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmVcXG59XFxuXFxuLmJsb2NrLWV2ZW50IC5zbGlkZXItcGFuZWwgLnNsaWRlciAuaXRlbSAuYWN0aW9uLmV2ZW50OmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxufVxcblxcbi5ibG9jay1zdGF0aWMtYmxvY2sud2lkZ2V0LFxcbi5ibG9jay1jbXMtbGluay53aWRnZXQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxufVxcblxcbi5saW5rcyAuYmxvY2stc3RhdGljLWJsb2NrLndpZGdldCxcXG4ubGlua3MgLmJsb2NrLWNtcy1saW5rLndpZGdldCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDBcXG59XFxuXFxuLmJsb2NrLWNtcy1saW5rLWlubGluZS53aWRnZXQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLmJsb2NrLXdpc2hsaXN0LXNlYXJjaCAuZm9ybS13aXNobGlzdC1zZWFyY2gge1xcbiAgICBtYXJnaW46IDIwcHggMCAwXFxufVxcblxcbi5ibG9jay1jbXMtaGllcmFyY2h5LWxpbmsud2lkZ2V0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLmJsb2NrLWNtcy1oaWVyYXJjaHktbGluay1pbmxpbmUud2lkZ2V0IHtcXG4gICAgbWFyZ2luOiAwXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuZmllbGRzZXQge1xcbiAgICBtYXJnaW46IDBcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuZmllbGRzZXQgLmZpZWxkcyAuZmllbGQge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3BcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5maWVsZC5za3Uge1xcbiAgICBtYXJnaW4tcmlnaHQ6IC04NXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5MHB4O1xcbiAgICB3aWR0aDogMTAwJVxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkLnF0eSAucXR5Ky5tYWdlLWVycm9yIHtcXG4gICAgd2lkdGg6IDgwcHhcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5maWVsZHNldCAuZmllbGRzIC5hY3Rpb25zLXRvb2xiYXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICB0b3A6IDdweFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZvcm0tYWRkYnlza3UgLmFjdGlvbnMtdG9vbGJhciB7XFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHhcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5mb3JtLWFkZGJ5c2t1IC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuZm9ybS1hZGRieXNrdSAuYWN0aW9ucy10b29sYmFyIC5wcmltYXJ5IC5hY3Rpb24ge1xcbiAgICB3aWR0aDogYXV0b1xcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmZvcm0tYWRkYnlza3UgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IHtcXG4gICAgZmxvYXQ6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGxlZnRcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgd2lkdGg6IGF1dG9cXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkPnNwYW4ge1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgIGhlaWdodDogMXB4O1xcbiAgICBtYXJnaW46IC0xcHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDFweFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5hZGQ6YmVmb3JlIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBjb250ZW50OiAnXFxcXEU2MUMnO1xcbiAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlclxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5hZGQ6aG92ZXI6YmVmb3JlIHtcXG4gICAgY29sb3I6IGluaGVyaXRcXG59XFxuXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24uYWRkOmFjdGl2ZTpiZWZvcmUge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5saW5rcyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luOiAyMHB4IDAgMFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZXNldCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDEwcHggMFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC13ZWlnaHQ6IDQwMFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU+c3BhbiB7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgaGVpZ2h0OiAxcHg7XFxuICAgIG1hcmdpbjogLTFweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogMXB4XFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpiZWZvcmUge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgY29sb3I6ICM5OTk7XFxuICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBzcGVhazogbm9uZTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlcjpiZWZvcmUge1xcbiAgICBjb2xvcjogaW5oZXJpdFxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlOmJlZm9yZSB7XFxuICAgIGNvbG9yOiBpbmhlcml0XFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpmb2N1cyxcXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgYm9yZGVyOiBub25lXFxufVxcblxcbi5zaWRlYmFyIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZVxcbn1cXG5cXG4uc2lkZWJhciAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLnNpZGViYXIgLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIG9wYWNpdHk6IC41XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0NzlweCkge1xcbiAgICAudG9vbHRpcC53cmFwcGVyIC50b29sdGlwLmNvbnRlbnQge1xcbiAgICAgICAgbWluLXdpZHRoOiAxMHJlbVxcbiAgICB9XFxuICAgIC5taW5pY2FydC13cmFwcGVyIC5ibG9jay1taW5pY2FydCB7XFxuICAgICAgICB3aWR0aDogMjkwcHhcXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgICAgICB3aWR0aDogMjAwcHhcXG4gICAgfVxcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjM5cHgpIHtcXG4gICAgLmFicy12aXN1YWxseS1oaWRkZW4tbW9iaWxlLFxcbiAgICAudGFibGUtZG93bmxvYWRhYmxlLXByb2R1Y3RzIC5jb2wudGl0bGU6YmVmb3JlLFxcbiAgICAudGFibGUtZ2lmdHJlZ2lzdHJ5LWl0ZW1zIC5jb2wucHJvZHVjdDpiZWZvcmUge1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgICAgIGhlaWdodDogMXB4O1xcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB3aWR0aDogMXB4XFxuICAgIH1cXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtbW9iaWxlOmJlZm9yZSxcXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtbW9iaWxlOmFmdGVyLFxcbiAgICAuYWJzLWNoZWNrb3V0LW9yZGVyLXJldmlldyB0Ym9keT50cjpiZWZvcmUsXFxuICAgIC5hYnMtY2hlY2tvdXQtb3JkZXItcmV2aWV3IHRib2R5PnRyOmFmdGVyLFxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHI6YmVmb3JlLFxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHI6YWZ0ZXIsXFxuICAgIC50YWJsZS1naWZ0cmVnaXN0cnktaXRlbXMgLmNvbC5wcm9kdWN0OmJlZm9yZSxcXG4gICAgLnRhYmxlLWdpZnRyZWdpc3RyeS1pdGVtcyAuY29sLnByb2R1Y3Q6YWZ0ZXIsXFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cjpiZWZvcmUsXFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cjphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXFxuICAgIH1cXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtbW9iaWxlOmFmdGVyLFxcbiAgICAuYWJzLWNoZWNrb3V0LW9yZGVyLXJldmlldyB0Ym9keT50cjphZnRlcixcXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRmb290IHRyOmFmdGVyLFxcbiAgICAudGFibGUtZ2lmdHJlZ2lzdHJ5LWl0ZW1zIC5jb2wucHJvZHVjdDphZnRlcixcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyOmFmdGVyIHtcXG4gICAgICAgIGNsZWFyOiBib3RoXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgdGJvZHk+dHI+dGQuY29sLml0ZW06YmVmb3JlIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgdGJvZHk+dHI+dGQuY29sLnF0eSxcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyPnRkLmNvbC5wcmljZSxcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyPnRkLmNvbC5zdWJ0b3RhbCB7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICAgICAgd2lkdGg6IDMzJVxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cj50ZC5jb2wucXR5OmJlZm9yZSxcXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5kYXRhLnRhYmxlIHRib2R5PnRyPnRkLmNvbC5wcmljZTpiZWZvcmUsXFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuZGF0YS50YWJsZSB0Ym9keT50cj50ZC5jb2wuc3VidG90YWw6YmVmb3JlIHtcXG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgJzonO1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHhcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgdGJvZHk+dHI+dGQuY29sOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyOiAwXFxuICAgIH1cXG4gICAgLmFicy1jaGVja291dC1vcmRlci1yZXZpZXcgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmRhdGEudGFibGUgLnByb2R1Y3QtaXRlbS1uYW1lIHtcXG4gICAgICAgIG1hcmdpbjogMFxcbiAgICB9XFxuICAgIC5hYnMtcHJvZHVjdC1pdGVtcy1zdW1tYXJ5IHRib2R5IC5jb2wge1xcbiAgICAgICAgcGFkZGluZzogMTBweCAwIDBcXG4gICAgfVxcbiAgICAuYWJzLXByb2R1Y3QtaXRlbXMtc3VtbWFyeSB0Zm9vdCAubWFyayB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxcbiAgICB9XFxuICAgIC5hYnMtcHJvZHVjdC1pdGVtcy1zdW1tYXJ5IHRmb290IC5hbW91bnQge1xcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0XFxuICAgIH1cXG4gICAgLmFicy1wcm9kdWN0LWl0ZW1zLXN1bW1hcnkgdGZvb3QgLmdyYW5kLnRvdGFscyB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbVxcbiAgICB9XFxuICAgIC5hYnMtcHJvZHVjdC1pdGVtcy1zdW1tYXJ5IHRmb290IC5ncmFuZC50b3RhbHMgLm1hcmsge1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XFxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4XFxuICAgIH1cXG4gICAgLmFicy1wcm9kdWN0LWl0ZW1zLXN1bW1hcnkgdGZvb3QgLmdyYW5kLnRvdGFscyAuYW1vdW50IHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xcbiAgICAgICAgcGFkZGluZy10b3A6IDBcXG4gICAgfVxcbiAgICAuYWJzLXByb2R1Y3QtaXRlbXMtc3VtbWFyeSB0Zm9vdCAuZ3JhbmQudG90YWxzIC5hbW91bnQgc3Ryb25nIHtcXG4gICAgICAgIGJvcmRlci10b3A6IG5vbmVcXG4gICAgfVxcbiAgICAuYWJzLWFjY291bnQtdGFibGUtbWFyZ2luLW1vYmlsZSxcXG4gICAgLnRhYmxlLXdyYXBwZXIuYmFsYW5jZS1oaXN0b3J5LFxcbiAgICAudGFibGUtd3JhcHBlci5yZXdhcmQtaGlzdG9yeSxcXG4gICAgLnRhYmxlLXdyYXBwZXIub3JkZXJzLXJlY2VudCB7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtMjBweFxcbiAgICB9XFxuICAgIC5hYnMtc2lkZWJhci10b3RhbHMtbW9iaWxlIHRoOmJlZm9yZSxcXG4gICAgLmFicy1zaWRlYmFyLXRvdGFscy1tb2JpbGUgdGQ6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAudGFibGUtYmlsbGluZy1hZ3JlZW1lbnRzIC5jb2wuYWN0aW9uczpiZWZvcmUsXFxuICAgIC5hY2NvdW50IC50YWJsZS1iaWxsaW5nLWFncmVlbWVudHMtcmVsYXRlZCAuY29sLmFjdGlvbnM6YmVmb3JlLFxcbiAgICAudGFibGUtd3JhcHBlci5jb21wYXJpc29uIC50YWJsZS1jb21wYXJpc29uPnRib2R5PnRyPnRoOmJlZm9yZSxcXG4gICAgLnRhYmxlLXdyYXBwZXIuY29tcGFyaXNvbiAudGFibGUtY29tcGFyaXNvbj50Ym9keT50cj50ZDpiZWZvcmUsXFxuICAgIC5jYXJ0IC50YWJsZS5pdGVtcyAuY29sLml0ZW06YmVmb3JlLFxcbiAgICAuY2FydCAudGFibGUuaXRlbXMgLml0ZW0tYWN0aW9ucyB0ZDpiZWZvcmUsXFxuICAgIC5hY2NvdW50IC50YWJsZS1naWZ0cmVnaXN0cnkgLmNvbC5hY3Rpb25zOmJlZm9yZSxcXG4gICAgLnRhYmxlLmdyb3VwZWQ+dGJvZHk+dHI+dGQ6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAudGFibGUtcmV2aWV3cyAuY29sLmFjdGlvbnM6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAudGFibGUtb3JkZXItaXRlbXMgLmNvbC5hY3Rpb25zOmJlZm9yZSxcXG4gICAgLmFjY291bnQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5jb2wub3B0aW9uczpiZWZvcmUsXFxuICAgIC5jYXJ0LXRvdGFscyAudG90YWxzIHRoOmJlZm9yZSxcXG4gICAgLmNhcnQtdG90YWxzIC50b3RhbHMgdGQ6YmVmb3JlLFxcbiAgICAub3BjLWJsb2NrLXN1bW1hcnkgLnRvdGFscyB0aDpiZWZvcmUsXFxuICAgIC5vcGMtYmxvY2stc3VtbWFyeSAudG90YWxzIHRkOmJlZm9yZSB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuYWJzLW5vLWRpc3BsYXktcyxcXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLmNhcnQpOm5vdCgudGFibGUtY29tcGFyaXNvbikuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHRib2R5IHRoLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAudGFibGUtb3JkZXItaXRlbXMgLm9wdGlvbnMtbGFiZWwsXFxuICAgIC5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0gLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbSB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmFicy10aXRsZS1vcmRlcnMtbW9iaWxlIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4gICAgLm1hZ2VudG8tcm1hLXJldHVybnMtcmV0dXJucyAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUsXFxuICAgIC5tYWdlbnRvLXJtYS1yZXR1cm5zLXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlLFxcbiAgICAuYWNjb3VudCAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLnBhZ2UtdGl0bGUsXFxuICAgIFtjbGFzc149J3NhbGVzLWd1ZXN0LSddIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAucGFnZS10aXRsZSxcXG4gICAgLnNhbGVzLWd1ZXN0LXZpZXcgLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5wYWdlLXRpdGxlIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmFicy10aXRsZS1vcmRlcnMtbW9iaWxlIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzLFxcbiAgICAubWFnZW50by1ybWEtcmV0dXJucy1yZXR1cm5zIC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzLFxcbiAgICAubWFnZW50by1ybWEtcmV0dXJucy12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzLFxcbiAgICAuYWNjb3VudCAucGFnZS1tYWluIC5wYWdlLXRpdGxlLXdyYXBwZXIgLm9yZGVyLXN0YXR1cyxcXG4gICAgW2NsYXNzXj0nc2FsZXMtZ3Vlc3QtJ10gLnBhZ2UtbWFpbiAucGFnZS10aXRsZS13cmFwcGVyIC5vcmRlci1zdGF0dXMsXFxuICAgIC5zYWxlcy1ndWVzdC12aWV3IC5wYWdlLW1haW4gLnBhZ2UtdGl0bGUtd3JhcHBlciAub3JkZXItc3RhdHVzIHtcXG4gICAgICAgIG1hcmdpbjogLTEwcHggMCAxMHB4XFxuICAgIH1cXG4gICAgLmFicy10YWJsZS1zdHJpcGVkLW1vYmlsZT50Ym9keT50cj50ZDpsYXN0LWNoaWxkLFxcbiAgICAuYWNjb3VudCAuZGF0YS50YWJsZT50Ym9keT50cj50ZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlcjogMFxcbiAgICB9XFxuICAgIC5hYnMtbm8tYm9yZGVyLXRvcCxcXG4gICAgLnByb2R1Y3QuaW5mby5kZXRhaWxlZCAuYWRkaXRpb25hbC1hdHRyaWJ1dGVzLXdyYXBwZXIsXFxuICAgIC50YWJsZS13cmFwcGVyLmJhbGFuY2UtaGlzdG9yeSxcXG4gICAgLnRhYmxlLXdyYXBwZXIudGFibGUtcmV0dXJucyxcXG4gICAgLnRhYmxlLXdyYXBwZXIub3JkZXJzLXJlY2VudCxcXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLnRhYmxlLXdyYXBwZXIge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMFxcbiAgICB9XFxuICAgIC5hYnMtbm8tYm9yZGVyLWJvdHRvbSB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmFicy1zaWRlYmFyLXRvdGFscy1tb2JpbGUgLmFtb3VudCxcXG4gICAgLmNhcnQtdG90YWxzIC50b3RhbHMgLmFtb3VudCxcXG4gICAgLm9wYy1ibG9jay1zdW1tYXJ5IC50b3RhbHMgLmFtb3VudCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcXG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XFxuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKSB7XFxuICAgICAgICBib3JkZXI6IG5vbmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRoZWFkPnRyPnRoIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKT50Ym9keSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLmNhcnQpOm5vdCgudGFibGUtY29tcGFyaXNvbik+dGJvZHk+dHIgdGQsXFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyIHRoIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4XFxuICAgIH1cXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLmNhcnQpOm5vdCgudGFibGUtY29tcGFyaXNvbik+dGJvZHk+dHIgdGQ6YmVmb3JlLFxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKT50Ym9keT50ciB0aDpiZWZvcmUge1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcXG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgJzogJztcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGNvbG9yOiAjMTExO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyPnRoIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjZcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Ym9keT50cj50ZDpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogMTVweFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRib2R5PnRyPnRkOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTVweFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRib2R5PnRyPnRkLmNvbC5xdHkge1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSB0ZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlcjogbm9uZTtcXG4gICAgICAgIHBhZGRpbmc6IDAgMCA1cHhcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3Qge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHIge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtY29tcGFyaXNvbikgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGgsXFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0ZCB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogMjBweFxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCAubWFyayB7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgd2lkdGg6IDcwJVxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCAuYW1vdW50IHtcXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICBmbG9hdDogbGVmdDtcXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICAgICAgd2lkdGg6IDMwJVxcbiAgICB9XFxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS1jb21wYXJpc29uKSB0Zm9vdCAuZ3JhbmQudG90YWxzIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtXFxuICAgIH1cXG4gICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIHRmb290IC5ncmFuZC50b3RhbHMgLmFtb3VudCB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5kYXRhLXRhYmxlLWRlZmluaXRpb24tbGlzdCB0aGVhZCB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRoIHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRoLFxcbiAgICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3QgdGJvZHkgdGQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwXFxuICAgIH1cXG4gICAgLnBhZ2VzIC5wYWdlcy1pdGVtcyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmc6IDJweCA0MHB4IDA7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICAgICAgei1pbmRleDogMVxcbiAgICB9XFxuICAgIC5wYWdlcy1pdGVtLXByZXZpb3VzIHtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDA7XFxuICAgICAgICB6LWluZGV4OiAxXFxuICAgIH1cXG4gICAgLnBhZ2VzLWl0ZW0tbmV4dCB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHotaW5kZXg6IDFcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuZGF0YS50YWJsZSAuYWRkcmVzczpiZWZvcmUge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4XFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAubXVsdGljaGVja291dCAucHJpY2UtaW5jbHVkaW5nLXRheCxcXG4gICAgLm11bHRpY2hlY2tvdXQgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLmJveDpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHhcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stY29udGVudCAuYm94Omxhc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMFxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuYm94LWl0ZW1zIC5kYXRhLnRhYmxlIHRoZWFkIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQub3JkZXItcmV2aWV3IC5ib3gtaXRlbXMgLmRhdGEudGFibGUgdGhlYWQgdHIge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmJveC1pdGVtcyAuZGF0YS50YWJsZSB0aGVhZCAuY29sLml0ZW0ge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBwYWRkaW5nOiAwXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYWN0aW9ucy10b29sYmFyPi5wcmltYXJ5IHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBcXG4gICAgfVxcbiAgICAuZm9ybS1uZXctYWdyZWVtZW50IHNlbGVjdCB7XFxuICAgICAgICB3aWR0aDogYXV0b1xcbiAgICB9XFxuICAgIC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5jb2wuc3VidG90YWwge1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdFxcbiAgICB9XFxuICAgIC50YWJsZS1wYXlwYWwtcmV2aWV3LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuc2t1IHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTg1cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA5MHB4XFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMFxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlPnNwYW4ge1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgICAgIGhlaWdodDogMXB4O1xcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB3aWR0aDogMXB4XFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YmVmb3JlIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MDQnO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIG1hcmdpbjogLTRweCAwIDA7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmhvdmVyOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogaW5oZXJpdFxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZTpiZWZvcmUge1xcbiAgICAgICAgY29sb3I6IGluaGVyaXRcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpmb2N1cyxcXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IG5vbmVcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAgICAgYm9yZGVyOiBub25lXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUuZGlzYWJsZWQsXFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlW2Rpc2FibGVkXSxcXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlIHtcXG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgICAgIG9wYWNpdHk6IC41XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbSB7XFxuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkXFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgICAgICBwYWRkaW5nOiAwIDEwcHggMTBweCAwO1xcbiAgICAgICAgd2lkdGg6IDMwJVxcbiAgICB9XFxuICAgIC50b29sYmFyLXByb2R1Y3RzIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBcXG4gICAgfVxcbiAgICAucHJvZHVjdC1zb2NpYWwtbGlua3MgLmFjdGlvbi50b2NvbXBhcmUge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5wcm9kdWN0LWluZm8tcHJpY2Uge1xcbiAgICAgICAgbWFyZ2luOiAwIC0xMHB4IDA7XFxuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMioxMHB4KSAhaW1wb3J0YW50XFxuICAgIH1cXG4gICAgLnByb2R1Y3QtaW5mby1wcmljZT4qOmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0LWluZm8tcHJpY2U+KjpsYXN0LWNoaWxkIHtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHhcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlci5jb21wYXJpc29uIC50YWJsZS1jb21wYXJpc29uPnRib2R5PnRyPnRoLFxcbiAgICAudGFibGUtd3JhcHBlci5jb21wYXJpc29uIC50YWJsZS1jb21wYXJpc29uPnRib2R5PnRyPnRkIHtcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGxcXG4gICAgfVxcbiAgICAuYmxvY2stc2VhcmNoIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHhcXG4gICAgfVxcbiAgICAuY2FydCAudGFibGUuaXRlbXMgLmNvbC5xdHkge1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweFxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuc3RlcC10aXRsZSB7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLnN0ZXAtY29udGVudCB7XFxuICAgICAgICBtYXJnaW46IDAgMCAxNXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5mb3JtLWxvZ2luLFxcbiAgICAub3BjLXdyYXBwZXIgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyxcXG4gICAgLm9wYy13cmFwcGVyIC5tZXRob2RzLXNoaXBwaW5nIHtcXG4gICAgICAgIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XFxuICAgICAgICBtYXJnaW46IDIwcHggLTE1cHggMTVweDtcXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTVweFxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuZm9ybS1sb2dpbisuZm9ybS1zaGlwcGluZy1hZGRyZXNzIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IC0xNXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5zaGlwcGluZy1hZGRyZXNzLWl0ZW0ge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBtYXJnaW46IDAgMCAxNXB4O1xcbiAgICAgICAgcGFkZGluZzogMCAwIDE1cHg7XFxuICAgICAgICB3aWR0aDogMTAwJVxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0ge1xcbiAgICAgICAgcGFkZGluZzogMTVweCAzNXB4IDE1cHggMThweDtcXG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweFxcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuc2hpcHBpbmctYWRkcmVzcy1pdGVtLnNlbGVjdGVkLWl0ZW0gLmVkaXQtYWRkcmVzcy1saW5rIHtcXG4gICAgICAgIHJpZ2h0OiAzOXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0ge1xcbiAgICAgICAgZmxvYXQ6IG5vbmU7XFxuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmFjdGlvbi1zaG93LXBvcHVwIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5tZXRob2RzLXNoaXBwaW5nIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgICAgICAgcGFkZGluZy10b3A6IDMwcHhcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rIHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHJpZ2h0OiAwO1xcbiAgICAgICAgdG9wOiA1cHhcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rPnNwYW4ge1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gICAgICAgIGhlaWdodDogMXB4O1xcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB3aWR0aDogMXB4XFxuICAgIH1cXG4gICAgLm9wYy13cmFwcGVyIC5lZGl0LWFkZHJlc3MtbGluazpiZWZvcmUge1xcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYwMSc7XFxuICAgICAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgc3BlYWs6IG5vbmU7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAub3BjLXdyYXBwZXIgLmVkaXQtYWRkcmVzcy1saW5rOmhvdmVyOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogIzMzM1xcbiAgICB9XFxuICAgIC5vcGMtd3JhcHBlciAuZWRpdC1hZGRyZXNzLWxpbms6YWN0aXZlOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogIzc1NzU3NVxcbiAgICB9XFxuICAgIC5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgcmlnaHQ6IGF1dG87XFxuICAgICAgICB0b3A6IGF1dG9cXG4gICAgfVxcbiAgICAuc2hpcHBpbmctcG9saWN5LWJsb2NrLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XFxuICAgICAgICB3aWR0aDogMzAwcHg7XFxuICAgICAgICByaWdodDogYXV0b1xcbiAgICB9XFxuICAgIC5zaGlwcGluZy1wb2xpY3ktYmxvY2suZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcXG4gICAgLnNoaXBwaW5nLXBvbGljeS1ibG9jay5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICAgICAgcmlnaHQ6IGF1dG9cXG4gICAgfVxcbiAgICAub3BjLWJsb2NrLXN1bW1hcnk+LnRpdGxlIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4sXFxuICAgIC5hY2NvdW50IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xcbiAgICAgICAgbWFyZ2luOiAwXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnByb2R1Y3Qtb3B0aW9ucy13cmFwcGVyIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHhcXG4gICAgfVxcbiAgICAudGFibGUtZG93bmxvYWRhYmxlLXByb2R1Y3RzIC5wcm9kdWN0LW5hbWUge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHhcXG4gICAgfVxcbiAgICAucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAucHJvZHVjdC1pbmZvLXByaWNlfio6bGFzdC1jaGlsZDphZnRlciB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBoZWlnaHQ6IDA7XFxuICAgICAgICBtYXJnaW46IDI1cHggLTEwcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgd2lkdGg6IGF1dG9cXG4gICAgfVxcbiAgICAudGFibGUtZ2lmdHJlZ2lzdHJ5LWl0ZW1zIC5maWVsZC5jaG9pY2UsXFxuICAgIC50YWJsZS1naWZ0cmVnaXN0cnktaXRlbXMgLmZpZWxkLnF0eSB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcXG4gICAgfVxcbiAgICAuZm9ybS1naWZ0cmVnaXN0cnktc2VhcmNoIC5maWVsZHNldCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxuICAgIH1cXG4gICAgLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC5ibG9jay10aXRsZSB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmJsb2NrLWdpZnRyZWdpc3RyeS1yZXN1bHRzIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2stZ2lmdHJlZ2lzdHJ5LXNoYXJlZC1pdGVtcyAuYmxvY2stdGl0bGUge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5ibG9jay1naWZ0cmVnaXN0cnktc2hhcmVkLWl0ZW1zIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IDBcXG4gICAgfVxcbiAgICAudGFibGUuZ3JvdXBlZD50aGVhZD50cj50aCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGxcXG4gICAgfVxcbiAgICAudGFibGUuZ3JvdXBlZD50Ym9keSB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbiAgICB9XFxuICAgIC50YWJsZS5ncm91cGVkPnRib2R5PnRyPnRkIHtcXG4gICAgICAgIHBhZGRpbmc6IDExcHggMTBweDtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGxcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlciAudGFibGUuZ3JvdXBlZDpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pPnRib2R5PnRyPnRkOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMFxcbiAgICB9XFxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCAubWluaW1hbC1wcmljZSB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnByb2R1Y3QtaW5mby1wcmljZSB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIC5wcm9kdWN0LWluZm8tcHJpY2UgLnByaWNlLWJveCB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMFxcbiAgICB9XFxuICAgIC5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZSB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU+c3BhbiB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuZm9ybS1hZGQtaW52aXRhdGlvbnMgLmFjdGlvbi5yZW1vdmU6YmVmb3JlIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MDQnO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLmZvcm0tYWRkLWludml0YXRpb25zIC5hY3Rpb24ucmVtb3ZlOmhvdmVyOmJlZm9yZSB7XFxuICAgICAgICBjb2xvcjogaW5oZXJpdFxcbiAgICB9XFxuICAgIC5mb3JtLWFkZC1pbnZpdGF0aW9ucyAuYWN0aW9uLnJlbW92ZTphY3RpdmU6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0XFxuICAgIH1cXG4gICAgLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1uYW1lIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweFxcbiAgICB9XFxuICAgIC5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtcmV2aWV3cy1zdW1tYXJ5IC5yYXRpbmctc3VtbWFyeSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweFxcbiAgICB9XFxuICAgIC5mb3JtLWNyZWF0ZS1yZXR1cm4gLmFkZGl0aW9uYWwgLmZpZWxkOm50aC1sYXN0LWNoaWxkKDIpIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuZm9ybS1jcmVhdGUtcmV0dXJuIC5hZGRpdGlvbmFsIC5maWVsZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHhcXG4gICAgfVxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLnJldHVybnMtZGV0YWlscy1pdGVtcyAuYmxvY2stcmV0dXJucy10cmFja2luZyAuYmxvY2stdGl0bGU+LmFjdGlvbi50cmFjayB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZsb2F0OiBub25lO1xcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMFxcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIHRoZWFkIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgdGhlYWQgdHIge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAub3JkZXItcGFnZXItd3JhcHBlciB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5hY2NvdW50IC50YWJsZS1vcmRlci1pdGVtcyB0Ym9keSB0ciB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5hY2NvdW50IC50YWJsZS1vcmRlci1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgbWFyZ2luOiAwXFxuICAgIH1cXG4gICAgLmFjY291bnQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5hY3Rpb24uc2hvdyB7XFxuICAgICAgICBtYXJnaW4tdG9wOiAwXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9yZGVyLXRpdGxlIHN0cm9uZyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5hY3Rpb24ge1xcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweFxcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5pdGVtcy1xdHkge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcFxcbiAgICB9XFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWluY2x1ZGluZy10YXgsXFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wucHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgsXFxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zIC5jb2wuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLmRhdGEudGFibGUgLmNvbC5vcHRpb25zIHtcXG4gICAgICAgIHBhZGRpbmc6IDAgMTBweCAxNXB4XFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLmRhdGEudGFibGUgLmNvbC5vcHRpb25zOmJlZm9yZSB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9wdGlvbnMtbGFiZWwrLml0ZW0tb3B0aW9ucy1jb250YWluZXI6YmVmb3JlLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLWNvbnRhaW5lcisuaXRlbS1vcHRpb25zLWNvbnRhaW5lcjpiZWZvcmUge1xcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSAnOic7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHhcXG4gICAgfVxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAub3B0aW9ucy1sYWJlbCsuaXRlbS1vcHRpb25zLWNvbnRhaW5lciAuY29sLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLWNvbnRhaW5lcisuaXRlbS1vcHRpb25zLWNvbnRhaW5lciAuY29sIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xcbiAgICAgICAgcGFkZGluZzogMCAxMHB4XFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9wdGlvbnMtbGFiZWwrLml0ZW0tb3B0aW9ucy1jb250YWluZXIgLmNvbDpmaXJzdC1jaGlsZCxcXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLml0ZW0tb3B0aW9ucy1jb250YWluZXIrLml0ZW0tb3B0aW9ucy1jb250YWluZXIgLmNvbDpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogM3B4XFxuICAgIH1cXG4gICAgLm9yZGVyLWRldGFpbHMtaXRlbXMgLm9wdGlvbnMtbGFiZWwrLml0ZW0tb3B0aW9ucy1jb250YWluZXIgLmNvbDpsYXN0LWNoaWxkLFxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAuaXRlbS1vcHRpb25zLWNvbnRhaW5lcisuaXRlbS1vcHRpb25zLWNvbnRhaW5lciAuY29sOmxhc3QtY2hpbGQge1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHhcXG4gICAgfVxcbiAgICAubG9nbyB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxM3B4O1xcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4XFxuICAgIH1cXG4gICAgLm15LWNyZWRpdC1jYXJkcyAudGFibGU6bm90KC50b3RhbHMpOm5vdCguY2FydCk6bm90KC50YWJsZS1jb21wYXJpc29uKSAuc3RhdHVzIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXktY3JlZGl0LWNhcmRzIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIC5zdGF0dXM6YmVmb3JlIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXktY3JlZGl0LWNhcmRzIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC5jYXJ0KTpub3QoLnRhYmxlLWNvbXBhcmlzb24pIC5zdGF0dXMuX2RlZmF1bHQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAubXktY3JlZGl0LWNhcmRzIC5jYXJkLXR5cGUgaW1nIHtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbTpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U4ZThlOFxcbiAgICB9XFxufVxcblxcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjdweCkge1xcbiAgICAuYWJzLXZpc3VhbGx5LWhpZGRlbi1tb2JpbGUtbSB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuYWJzLWFkZC1jbGVhcmZpeC1tb2JpbGUtbTpiZWZvcmUsXFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LW1vYmlsZS1tOmFmdGVyLFxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU6YmVmb3JlLFxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU6YWZ0ZXIge1xcbiAgICAgICAgY29udGVudDogJyc7XFxuICAgICAgICBkaXNwbGF5OiB0YWJsZVxcbiAgICB9XFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LW1vYmlsZS1tOmFmdGVyLFxcbiAgICAuYWNjb3VudCAuY29sdW1uLm1haW4gLmJsb2NrOm5vdCgud2lkZ2V0KSAuYmxvY2stdGl0bGU6YWZ0ZXIge1xcbiAgICAgICAgY2xlYXI6IGJvdGhcXG4gICAgfVxcbiAgICAuYWJzLXRvZ2dsaW5nLXRpdGxlLW1vYmlsZSxcXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXNlbGVjdCAud2lzaGxpc3QtbmFtZSxcXG4gICAgLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAudGl0bGUge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBwYWRkaW5nOiAxMHB4IDQwcHggMTBweCAxNXB4O1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lOmFmdGVyLFxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IC50aXRsZTphZnRlciB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogMjBweDtcXG4gICAgICAgIHRvcDogMTBweFxcbiAgICB9XFxuICAgIC5hYnMtdG9nZ2xpbmctdGl0bGUtbW9iaWxlOmFmdGVyLFxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lOmFmdGVyLFxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IC50aXRsZTphZnRlciB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDNweCAwIDAgMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLmFicy10b2dnbGluZy10aXRsZS1tb2JpbGUuYWN0aXZlOmFmdGVyLFxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IC53aXNobGlzdC1uYW1lLmFjdGl2ZTphZnRlcixcXG4gICAgLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAudGl0bGUuYWN0aXZlOmFmdGVyIHtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG4gICAgfVxcbiAgICAuYWJzLWljb24tYWRkLW1vYmlsZSxcXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LWFkZC5pdGVtIC5hZGQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYWJzLWljb24tYWRkLW1vYmlsZTpiZWZvcmUsXFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1hZGQuaXRlbSAuYWRkOmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDEwcHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjFDJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDAgNXB4IDAgMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24sXFxuICAgIC5icmVhZGNydW1icyxcXG4gICAgLnBhZ2UtaGVhZGVyIC5oZWFkZXIucGFuZWwsXFxuICAgIC5oZWFkZXIuY29udGVudCxcXG4gICAgLmZvb3Rlci5jb250ZW50LFxcbiAgICAucGFnZS1tYWluLFxcbiAgICAucGFnZS13cmFwcGVyPi53aWRnZXQsXFxuICAgIC5wYWdlLXdyYXBwZXI+LnBhZ2UtYm90dG9tLFxcbiAgICAuYmxvY2suY2F0ZWdvcnkuZXZlbnQsXFxuICAgIC50b3AtY29udGFpbmVyIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHhcXG4gICAgfVxcbiAgICAuYWNjb3VudCAucGFnZS1tYWluLFxcbiAgICAuY21zLXByaXZhY3ktcG9saWN5IC5wYWdlLW1haW4ge1xcbiAgICAgICAgcGFkZGluZy10b3A6IDQxcHg7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiB7XFxuICAgICAgICBwYWRkaW5nOiAwXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnBhcmVudCAubGV2ZWwtdG9wIHtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnBhcmVudCAubGV2ZWwtdG9wOmFmdGVyIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogNDJweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnBhcmVudCAubGV2ZWwtdG9wOmFmdGVyIHtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHJpZ2h0OiA3cHg7XFxuICAgICAgICB0b3A6IC04cHhcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAucGFyZW50IC5sZXZlbC10b3AudWktc3RhdGUtYWN0aXZlOmFmdGVyIHtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIHtcXG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAuM3M7XFxuICAgICAgICAtbW96LXRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgLW1zLXRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAuM3M7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBsZWZ0OiAtODAlO1xcbiAgICAgICAgbGVmdDogY2FsYygtMSAqICgxMDAlIC0gNTRweCkpO1xcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICB0b3A6IDA7XFxuICAgICAgICB3aWR0aDogODAlO1xcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDU0cHgpXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuc3dpdGNoZXIge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMWQxZDE7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICBwYWRkaW5nOiAuOHJlbSAzLjVyZW0gLjhyZW0gMnJlbVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyIC5sYWJlbCB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweFxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQxZDFcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5zd2l0Y2hlci10cmlnZ2VyIHN0cm9uZyB7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyLXRyaWdnZXIgc3Ryb25nOmFmdGVyIHtcXG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gICAgICAgIGZvbnQtc2l6ZTogNDJweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MjInO1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdsdW1hLWljb25zJztcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuc3dpdGNoZXItdHJpZ2dlciBzdHJvbmc6YWZ0ZXIge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgcmlnaHQ6IC00MHB4O1xcbiAgICAgICAgdG9wOiAtMTZweFxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLnN3aXRjaGVyLXRyaWdnZXIuYWN0aXZlIHN0cm9uZzphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnXFxcXEU2MjEnXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuc3dpdGNoZXItZHJvcGRvd24ge1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgbm9uZTtcXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMFxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMgLmhlYWRlci5saW5rcyB7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSBub25lO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQxZDFcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5oZWFkZXIubGlua3MgbGkge1xcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5oZWFkZXIubGlua3MgbGkuZ3JlZXQud2VsY29tZSB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDFkMTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nOiAuOHJlbSAyMHB4XFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuaGVhZGVyLmxpbmtzIGxpPmEge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMWQxZDFcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5oZWFkZXIubGlua3MgYSxcXG4gICAgLm5hdi1zZWN0aW9ucyAuaGVhZGVyLmxpbmtzIGE6aG92ZXIge1xcbiAgICAgICAgY29sb3I6ICM1NzU3NTc7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nOiAuOHJlbSAyMHB4XFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucyAuaGVhZGVyLmxpbmtzIC5oZWFkZXIubGlua3Mge1xcbiAgICAgICAgYm9yZGVyOiAwXFxuICAgIH1cXG4gICAgLm5hdi1iZWZvcmUtb3BlbiB7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICAgICAgICB3aWR0aDogMTAwJVxcbiAgICB9XFxuICAgIC5uYXYtYmVmb3JlLW9wZW4gLnBhZ2Utd3JhcHBlciB7XFxuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgLW1vei10cmFuc2l0aW9uOiBsZWZ0IC4zcztcXG4gICAgICAgIC1tcy10cmFuc2l0aW9uOiBsZWZ0IC4zcztcXG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgLjNzO1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgbGVmdDogMDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcXG4gICAgfVxcbiAgICAubmF2LWJlZm9yZS1vcGVuIGJvZHkge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLm5hdi1vcGVuIC5wYWdlLXdyYXBwZXIge1xcbiAgICAgICAgbGVmdDogODAlO1xcbiAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gNTRweClcXG4gICAgfVxcbiAgICAubmF2LW9wZW4gLm5hdi1zZWN0aW9ucyB7XFxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcXG4gICAgICAgIC1tcy1ib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTtcXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xcbiAgICAgICAgbGVmdDogMDtcXG4gICAgICAgIHotaW5kZXg6IDk5XFxuICAgIH1cXG4gICAgLm5hdi1vcGVuIC5uYXYtdG9nZ2xlOmFmdGVyIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgei1pbmRleDogMVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMtaXRlbXMge1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgei1pbmRleDogMVxcbiAgICB9XFxuICAgIC5uYXYtc2VjdGlvbnMtaXRlbXM6YmVmb3JlLFxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW1zOmFmdGVyIHtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgZGlzcGxheTogdGFibGVcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW1zOmFmdGVyIHtcXG4gICAgICAgIGNsZWFyOiBib3RoXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLXRpdGxlIHtcXG4gICAgICAgIGJhY2tncm91bmQ6ICNlM2UzZTM7XFxuICAgICAgICBib3JkZXI6IHNvbGlkICNkN2Q3ZDc7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMXB4O1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xcbiAgICAgICAgaGVpZ2h0OiA3MXB4O1xcbiAgICAgICAgcGFkZGluZy10b3A6IDI0cHg7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICB3aWR0aDogMzMuMzMlXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLXRpdGxlLmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDBcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tdGl0bGUgLm5hdi1zZWN0aW9ucy1pdGVtLXN3aXRjaDpob3ZlciB7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tY29udGVudCB7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMDAlO1xcbiAgICAgICAgbWFyZ2luLXRvcDogNzFweDtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgcGFkZGluZzogMjVweCAwXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLWNvbnRlbnQ6YmVmb3JlLFxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tY29udGVudDphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXFxuICAgIH1cXG4gICAgLm5hdi1zZWN0aW9ucy1pdGVtLWNvbnRlbnQ6YWZ0ZXIge1xcbiAgICAgICAgY2xlYXI6IGJvdGhcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zLWl0ZW0tY29udGVudC5hY3RpdmUge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIHVsIHtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHBhZGRpbmc6IDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiBsaSB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiBhIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHhcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiBhLFxcbiAgICAubmF2aWdhdGlvbiBhOmhvdmVyIHtcXG4gICAgICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMCB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2QxZDFkMTtcXG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMD4ubGV2ZWwtdG9wIHtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBwYWRkaW5nOiA4cHggNDBweCA4cHggMTVweDtcXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmRcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAubGV2ZWwwLmFjdGl2ZSAuYWxsLWNhdGVnb3J5IC51aS1zdGF0ZS1mb2N1cyB7XFxuICAgICAgICBib3JkZXItY29sb3I6ICNmZjU1MDE7XFxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCA4cHg7XFxuICAgICAgICBjb2xvcjogIzMzMztcXG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMD4ubGV2ZWwxIHtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAubGV2ZWwwLmFjdGl2ZT5hOm5vdCgudWktc3RhdGUtYWN0aXZlKSxcXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMC5oYXMtYWN0aXZlPmE6bm90KC51aS1zdGF0ZS1hY3RpdmUpIHtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogI2ZmNTUwMTtcXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAwIDhweDtcXG4gICAgICAgIGNvbG9yOiAjMzMzXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLmxldmVsMC5hY3RpdmU+YTpub3QoLnVpLXN0YXRlLWFjdGl2ZSkgc3Bhbjpub3QoLnVpLW1lbnUtaWNvbiksXFxuICAgIC5uYXZpZ2F0aW9uIC5sZXZlbDAuaGFzLWFjdGl2ZT5hOm5vdCgudWktc3RhdGUtYWN0aXZlKSBzcGFuOm5vdCgudWktbWVudS1pY29uKSB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogLThweFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIGxpLmxldmVsMDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDFkMWQxXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU+bGkge1xcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XFxuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IC4zcyBlYXNlLW91dFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIC5zdWJtZW51Om5vdCg6Zmlyc3QtY2hpbGQpPmxpPmEge1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4XFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCk+bGk6bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkgdWwge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHhcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAuc3VibWVudTpub3QoOmZpcnN0LWNoaWxkKSB1bD5saSB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAubmF2aWdhdGlvbiAuc3VibWVudTpub3QoOmZpcnN0LWNoaWxkKSB1bD5saSBhIHtcXG4gICAgICAgIGNvbG9yOiAjNTc1NzU3O1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsXFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkuZXhwYW5kZWQge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgICAgICB0b3A6IDAgIWltcG9ydGFudFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIC5zdWJtZW51Om5vdCg6Zmlyc3QtY2hpbGQpIC5hY3RpdmU+YSB7XFxuICAgICAgICBib3JkZXItY29sb3I6ICNmZjU1MDE7XFxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCA4cHg7XFxuICAgICAgICBjb2xvcjogIzMzMztcXG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4XFxuICAgIH1cXG4gICAgLm5hdmlnYXRpb24gLnN1Ym1lbnU6bm90KDpmaXJzdC1jaGlsZCkgLmxldmVsMS5hY3RpdmU+YSB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDdweFxcbiAgICB9XFxuICAgIC5icmVhZGNydW1icyB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIHtcXG4gICAgICAgIGxlZnQ6IDQ0cHg7XFxuICAgICAgICB6LWluZGV4OiA5MDBcXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUuX3Nob3cgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMClcXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dDtcXG4gICAgICAgIHdpZHRoOiBhdXRvXFxuICAgIH1cXG4gICAgLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmVcXG4gICAgfVxcbiAgICAuY3VzdG9tLXNsaWRlIHtcXG4gICAgICAgIGJvdHRvbTogMDtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBtaW4td2lkdGg6IDA7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgICAgIG9wYWNpdHk6IDA7XFxuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgLjNzLCBvcGFjaXR5IC4zcyBlYXNlO1xcbiAgICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyAuM3MsIG9wYWNpdHkgLjNzIGVhc2U7XFxuICAgICAgICBsZWZ0OiA0NHB4O1xcbiAgICAgICAgei1pbmRleDogOTAwXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZS5fc2hvdyB7XFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcXG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2VcXG4gICAgfVxcbiAgICAuY3VzdG9tLXNsaWRlLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKVxcbiAgICB9XFxuICAgIC5jdXN0b20tc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xcbiAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZS5fc2hvdyAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKVxcbiAgICB9XFxuICAgIC5jdXN0b20tc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O1xcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dDtcXG4gICAgICAgIHdpZHRoOiBhdXRvXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZS5fc2hvdyB7XFxuICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvXFxuICAgIH1cXG4gICAgLmN1c3RvbS1zbGlkZSAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgIGhlaWdodDogYXV0bztcXG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCVcXG4gICAgfVxcbiAgICBib2R5Ll9oYXMtbW9kYWwtY3VzdG9tIHtcXG4gICAgICAgIGhlaWdodDogMTAwdmg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgd2lkdGg6IDEwMHZ3XFxuICAgIH1cXG4gICAgYm9keS5faGFzLW1vZGFsLWN1c3RvbSAubW9kYWwtY3VzdG9tLW92ZXJsYXkge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjU1KVxcbiAgICB9XFxuICAgIC5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcFtjbGFzc10ge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNFxcbiAgICB9XFxuICAgIC5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZS5faW5uZXItc2Nyb2xsLl9zaG93IHtcXG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG9cXG4gICAgfVxcbiAgICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUuX2lubmVyLXNjcm9sbCAubW9kYWwtaW5uZXItd3JhcCB7XFxuICAgICAgICBoZWlnaHQ6IGF1dG87XFxuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlXFxuICAgIH1cXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC10aXRsZSB7XFxuICAgICAgICBmb250LXNpemU6IDE0cHg7XFxuICAgICAgICBmb250LXdlaWdodDogNzAwXFxuICAgIH1cXG4gICAgLm11bHRpc2hpcHBpbmctY2hlY2tvdXQtc3VjY2VzcyAubmF2LXRvZ2dsZSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5tdWx0aXNoaXBwaW5nLWNoZWNrb3V0LXN1Y2Nlc3MgLmxvZ28ge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHhcXG4gICAgfVxcbiAgICAuYmxvY2stY2FydC1mYWlsZWQgLmJsb2NrLXRpdGxlIHtcXG4gICAgICAgIG1hcmdpbjogMCAyMHB4IDIwcHhcXG4gICAgfVxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNvbHVtbi5tYWluIHtcXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtblxcbiAgICB9XFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC5tZWRpYSB7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAtd2Via2l0LW9yZGVyOiAtMTtcXG4gICAgICAgIG9yZGVyOiAtMVxcbiAgICB9XFxuICAgIC5jb21wYXJlLndyYXBwZXIsXFxuICAgIFtjbGFzcyo9J2Jsb2NrLWNvbXBhcmUnXSB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmNhcnQtY29udGFpbmVyIC5mb3JtLWNhcnQgLmFjdGlvbnMubWFpbiB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuY2FydC1kaXNjb3VudCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY1xcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIHRoZWFkIC5jb2wuaXRlbSxcXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciB0aGVhZCAuY29sLnF0eSxcXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciB0aGVhZCAuY29sLnByaWNlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIHRoZWFkIC5jb2wuc3VidG90YWwsXFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgdGhlYWQgLmNvbC5tc3JwIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wucXR5LFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wucHJpY2UsXFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5zdWJ0b3RhbCxcXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAge1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICAgICAgd2lkdGg6IDMzJVxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmNvbC5xdHk6YmVmb3JlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wucHJpY2U6YmVmb3JlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wuc3VidG90YWw6YmVmb3JlLFxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5jb2wubXNycDpiZWZvcmUge1xcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKTtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4XFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuY29sLm1zcnAge1xcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbFxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLml0ZW0gLmNvbC5pdGVtIHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciB0Ym9keT50cj50ZDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlcjogMFxcbiAgICB9XFxuICAgIC5jYXJ0LXRvdGFscyB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4XFxuICAgIH1cXG4gICAgLmNhcnQtdG90YWxzIC50YWJsZS13cmFwcGVyIHtcXG4gICAgICAgIGJvcmRlci10b3A6IDBcXG4gICAgfVxcbiAgICAuY2FydC10b3RhbHMgLnRvdGFscyB0Ym9keT50cjpub3QoOmxhc3QtY2hpbGQpPnRkOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyOiAwXFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2F2ZS1hZGRyZXNzIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24taGlkZS1wb3B1cCB7XFxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZHMge1xcbiAgICAgICAgbWFyZ2luOiAwIC0xNXB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSB7XFxuICAgICAgICBwYWRkaW5nOiAxNXB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC1jb250ZW50IHtcXG4gICAgICAgIHBhZGRpbmc6IDAgMTVweCAyMHB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgLmFjdGlvbi1jYW5jZWwge1xcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweFxcbiAgICB9XFxuICAgIC5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24ge1xcbiAgICAgICAgbWFyZ2luOiAwIC0xNXB4XFxuICAgIH1cXG4gICAgLmNoZWNrb3V0LXBheW1lbnQtbWV0aG9kIC5wYXltZW50LW9wdGlvbiAucGF5bWVudC1vcHRpb24tdGl0bGUge1xcbiAgICAgICAgcGFkZGluZzogMTVweFxcbiAgICB9XFxuICAgIC5jaGVja291dC1wYXltZW50LW1ldGhvZCAucGF5bWVudC1vcHRpb24gLnBheW1lbnQtb3B0aW9uLWNvbnRlbnQge1xcbiAgICAgICAgcGFkZGluZzogMCAxNXB4IDIwcHhcXG4gICAgfVxcbiAgICAubG9naW4tY29udGFpbmVyIC5maWVsZHNldDphZnRlciB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuYWNjb3VudCAucGFnZS5tZXNzYWdlcyB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxuICAgIH1cXG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLXRpdGxlPi5hY3Rpb24ge1xcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4XFxuICAgIH1cXG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLWNvbnRlbnQgLmJveCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxuICAgIH1cXG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluIC5ibG9jazpub3QoLndpZGdldCkgLmJsb2NrLWNvbnRlbnQgLmJveDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHhcXG4gICAgfVxcbiAgICAuY3VzdG9tZXItYWNjb3VudC1pbmRleCAucGFnZS10aXRsZS13cmFwcGVyIHtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxcbiAgICB9XFxuICAgIC5jYXJ0LWRpc2NvdW50IC5naWZ0Y2FyZCAuY29udGVudCB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzVweFxcbiAgICB9XFxuICAgIC5jYXJ0LWRpc2NvdW50IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSB7XFxuICAgICAgICBib3R0b206IDE3cHhcXG4gICAgfVxcbiAgICAuZmllbGQub3Blbi1hbW91bnQge1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAucGFnZS1wcm9kdWN0LWdpZnRjYXJkIC5wcm9kdWN0LWluZm8tbWFpbiAucHJvZHVjdC1pbmZvLXN0b2NrLXNrdSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnRcXG4gICAgfVxcbiAgICAuZ2lmdC1tZXNzYWdlIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi11cGRhdGUge1xcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xcbiAgICAgICAgcGFkZGluZzogMTVweDtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmdpZnQtaXRlbS1ibG9jayB7XFxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDBcXG4gICAgfVxcbiAgICAuZ2lmdC1pdGVtLWJsb2NrIC50aXRsZTphZnRlciB7XFxuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHJpZ2h0OiAyMHB4O1xcbiAgICAgICAgdG9wOiAxMHB4XFxuICAgIH1cXG4gICAgLmdpZnQtaXRlbS1ibG9jayAuY29udGVudCB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbVxcbiAgICB9XFxuICAgIC5naWZ0LW1lc3NhZ2Utc3VtbWFyeSB7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA3cmVtXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuZ2lmdC1jb250ZW50IHtcXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4XFxuICAgIH1cXG4gICAgLmNhcnQgLmFjdGlvbi1naWZ0IHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdD5zcGFuIHtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgICAgICBoZWlnaHQ6IDFweDtcXG4gICAgICAgIG1hcmdpbjogLTFweDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgd2lkdGg6IDFweFxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdDphZnRlciB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjJBJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdDpob3ZlcjphZnRlciB7XFxuICAgICAgICBjb2xvcjogIzMzM1xcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdDphY3RpdmU6YWZ0ZXIge1xcbiAgICAgICAgY29sb3I6ICM3NTc1NzVcXG4gICAgfVxcbiAgICAuY2FydCAuYWN0aW9uLWdpZnQuX2FjdGl2ZSB7XFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzFjMWMxO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcXG4gICAgICAgIG1hcmdpbjogLTVweCAxNHB4IC0xcHggLTE1cHg7XFxuICAgICAgICBwYWRkaW5nOiA0cHggMTBweCA5cHggMTRweFxcbiAgICB9XFxuICAgIC5jYXJ0IC5hY3Rpb24tZ2lmdC5fYWN0aXZlOmFmdGVyIHtcXG4gICAgICAgIGNvbG9yOiAjMzMzXFxuICAgIH1cXG4gICAgLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0rLmFjdGlvbi10b3dpc2hsaXN0IHtcXG4gICAgICAgIGxlZnQ6IDQzcHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGVcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tZ2lmdHJlZ2lzdHJ5IHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi1naWZ0cmVnaXN0cnk+c3BhbiB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tZ2lmdHJlZ2lzdHJ5OmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDE4cHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjJCJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5jYXJ0LnRhYmxlLXdyYXBwZXIgLmFjdGlvbi1naWZ0cmVnaXN0cnk6aG92ZXI6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiAjMzMzXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLWdpZnRyZWdpc3RyeTphY3RpdmU6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1XFxuICAgIH1cXG4gICAgLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0gLmdpZnQtd3JhcHBpbmcsXFxuICAgIC5jYXJ0LWdpZnQtaXRlbSAuZ2lmdC13cmFwcGluZyB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5naWZ0LXdyYXBwaW5nLWxpc3Qge1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAuZ2lmdC13cmFwcGluZy1zdW1tYXJ5Ky5naWZ0LW1lc3NhZ2Utc3VtbWFyeSB7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwXFxuICAgIH1cXG4gICAgLmdpZnQtb3B0aW9ucy1jYXJ0LWl0ZW0ge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB3aWR0aDogMTAwJVxcbiAgICB9XFxuICAgIC5naWZ0LXdyYXBwaW5nLXByZXZpZXcgaW1nIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLml0ZW0tYWN0aW9ucyAuYWN0aW9ucy10b29sYmFyIC5naWZ0LW9wdGlvbnMgLmdpZnQtd3JhcHBpbmcsXFxuICAgIC5pdGVtLWFjdGlvbnMgLmFjdGlvbnMtdG9vbGJhciAuZ2lmdC1vcHRpb25zIC5naWZ0LW1lc3NhZ2Uge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAudGFibGUtd3JhcHBlci5ncm91cGVkIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHhcXG4gICAgfVxcbiAgICBib2R5LmZpbHRlci1hY3RpdmUgLnBhZ2UtaGVhZGVyIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICBib2R5LmZpbHRlci1hY3RpdmUgLnBhZ2Utd3JhcHBlciB7XFxuICAgICAgICBoZWlnaHQ6IDA7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtOTk5OTk5ZW07XFxuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW5cXG4gICAgfVxcbiAgICBib2R5LmZpbHRlci1hY3RpdmUgLmNvbHVtbnMge1xcbiAgICAgICAgei1pbmRleDogOTk5XFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUge1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgICAgIHotaW5kZXg6IDk5XFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUgLmZpbHRlci1vcHRpb25zLWl0ZW06bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4XFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUgLmZpbHRlci10aXRsZSB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgICAgIGhlaWdodDogNDhweDtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHotaW5kZXg6IDJcXG4gICAgfVxcbiAgICAuZmlsdGVyLmFjdGl2ZSAuZmlsdGVyLXRpdGxlIHN0cm9uZyB7XFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGxlZnQ6IGF1dG87XFxuICAgICAgICByaWdodDogM3B4O1xcbiAgICAgICAgdG9wOiAxMHB4O1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLmZpbHRlci5hY3RpdmUgLmZpbHRlci10aXRsZSBzdHJvbmc6YWZ0ZXIge1xcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICBjb2xvcjogIzdkN2Q3ZDtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYxNic7XFxuICAgICAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgc3BlYWs6IG5vbmU7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuZmlsdGVyLmFjdGl2ZSAuZmlsdGVyLXN1YnRpdGxlIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICBoZWlnaHQ6IDUwcHg7XFxuICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogMDtcXG4gICAgICAgIHotaW5kZXg6IDFcXG4gICAgfVxcbiAgICAuZmlsdGVyLmFjdGl2ZSAuZmlsdGVyLW9wdGlvbnMge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgIGJvdHRvbTogMDtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgbGVmdDogMDtcXG4gICAgICAgIG92ZXJmbG93OiBzY3JvbGw7XFxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgICAgICByaWdodDogMDtcXG4gICAgICAgIHRvcDogNTBweDtcXG4gICAgICAgIHotaW5kZXg6IDEwXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLXN1YnRpdGxlIHtcXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDBcXG4gICAgfVxcbiAgICAuZmlsdGVyLWFjdGlvbnMge1xcbiAgICAgICAgbWFyZ2luOiAtMzVweCAtMTBweCAyNXB4XFxuICAgIH1cXG4gICAgLmZpbHRlci1vcHRpb25zLWNvbnRlbnQge1xcbiAgICAgICAgcGFkZGluZzogNXB4IDEwcHhcXG4gICAgfVxcbiAgICAuZmlsdGVyIC5maWx0ZXItY3VycmVudCB7XFxuICAgICAgICBib3JkZXI6IHNvbGlkICNjY2M7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwO1xcbiAgICAgICAgbWFyZ2luOiA1cHggLTEwcHggMFxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50IC5pdGVtcyB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLWN1cnJlbnQtc3VidGl0bGUge1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gICAgICAgIHotaW5kZXg6IDE7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZVxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlOmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDEzcHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjIyJztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBzcGVhazogbm9uZTtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlOmJlZm9yZSB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogMTBweDtcXG4gICAgICAgIHRvcDogMTBweFxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LXN1YnRpdGxlOmFmdGVyIHtcXG4gICAgICAgIGNvbG9yOiAjN2Q3ZDdkO1xcbiAgICAgICAgY29udGVudDogJyAoJyBhdHRyKGRhdGEtY291bnQpICcpJztcXG4gICAgICAgIGZvbnQtc2l6ZTogLjllbVxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LmFjdGl2ZSB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzBweFxcbiAgICB9XFxuICAgIC5maWx0ZXIgLmZpbHRlci1jdXJyZW50LmFjdGl2ZSAuYmxvY2stc3VidGl0bGU6YmVmb3JlIHtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYyMSdcXG4gICAgfVxcbiAgICAuZmlsdGVyIC5maWx0ZXItY3VycmVudC5hY3RpdmUgLml0ZW1zIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLWN1cnJlbnQuYWN0aXZlKy5ibG9jay1hY3Rpb25zIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmZpbHRlciAuZmlsdGVyLWN1cnJlbnQrLmJsb2NrLWFjdGlvbnMge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5maWx0ZXItbm8tb3B0aW9ucyAuZmlsdGVyLXRpdGxlOmJlZm9yZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xcbiAgICAgICAgbGVmdDogLTE1cHg7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtNjBweDtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHdpZHRoOiAxMDBweDtcXG4gICAgICAgIHotaW5kZXg6IDk5XFxuICAgIH1cXG4gICAgLmZpbHRlci1uby1vcHRpb25zIC5maWx0ZXItY29udGVudCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4XFxuICAgIH1cXG4gICAgLnBhZ2Utd2l0aC1maWx0ZXIgLmNvbHVtbnMgLnNpZGViYXItbWFpbiB7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgIC13ZWJraXQtb3JkZXI6IDA7XFxuICAgICAgICBvcmRlcjogMFxcbiAgICB9XFxuICAgIC5tYXAtcG9wdXAge1xcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLm1hcC1vbGQtcHJpY2UsXFxuICAgIC5tYXAtc2hvdy1pbmZvIHtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9ja1xcbiAgICB9XFxuICAgIC5tYXAtb2xkLXByaWNlOm5vdCg6bGFzdC1jaGlsZCksXFxuICAgIC5tYXAtc2hvdy1pbmZvOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweFxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IHtcXG4gICAgICAgIGNsZWFyOiBib3RoO1xcbiAgICAgICAgbWFyZ2luLXRvcDogLTIxcHhcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0IHtcXG4gICAgICAgIG1hcmdpbjogMCAtMTVweCAyMHB4XFxuICAgIH1cXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXNlbGVjdCAud2lzaGxpc3QtbmFtZSB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbVxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QtaXRlbXMge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIHBhZGRpbmc6IDE1cHggMFxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QtaXRlbXMuYWN0aXZlIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXNlbGVjdC1pdGVtcyAuaXRlbSB7XFxuICAgICAgICBtYXJnaW46IDNweCAwIDBcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0LWl0ZW1zIC5pdGVtOmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi10b3A6IDBcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0LWl0ZW1zIC5pdGVtLmN1cnJlbnQge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC1zZWxlY3QtaXRlbXMgLml0ZW0gYSB7XFxuICAgICAgICBjb2xvcjogIzMzMztcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgcGFkZGluZzogNXB4IDE4cHg7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3Qtc2VsZWN0LWl0ZW1zIC5pdGVtIGE6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlOFxcbiAgICB9XFxuICAgIC5ibG9jay13aXNobGlzdC1tYW5hZ2VtZW50IC53aXNobGlzdC10aXRsZSBzdHJvbmcge1xcbiAgICAgICAgZm9udC1zaXplOiAyLjZyZW1cXG4gICAgfVxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtaW5mbyB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4XFxuICAgIH1cXG4gICAgLmJsb2NrLXdpc2hsaXN0LW1hbmFnZW1lbnQgLndpc2hsaXN0LXRvb2xiYXItc2VsZWN0LFxcbiAgICAuYmxvY2std2lzaGxpc3QtbWFuYWdlbWVudCAud2lzaGxpc3QtdG9vbGJhci1hY3Rpb25zIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWNoZWNrYm94IHtcXG4gICAgICAgIGxlZnQ6IDIwcHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDIwcHhcXG4gICAgfVxcbiAgICAucGFnZS1tdWx0aXBsZS13aXNobGlzdCAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLXBob3RvIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4XFxuICAgIH1cXG4gICAgLnBhZ2UtbXVsdGlwbGUtd2lzaGxpc3QgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAucGFnZS1tdWx0aXBsZS13aXNobGlzdCAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWRlc2NyaXB0aW9uLFxcbiAgICAucGFnZS1tdWx0aXBsZS13aXNobGlzdCAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5wcmljZS1ib3gsXFxuICAgIC5wYWdlLW11bHRpcGxlLXdpc2hsaXN0IC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tdG9vbHRpcCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMTE1cHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAud2lzaGxpc3QtZHJvcGRvd24ge1xcbiAgICAgICAgZGlzcGxheTogbm9uZVxcbiAgICB9XFxuICAgIC5vcmRlci1wYWdlci13cmFwcGVyIC50b29sYmFyLWFtb3VudCB7XFxuICAgICAgICBsZWZ0OiBpbmhlcml0O1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgdG9wOiBpbmhlcml0XFxuICAgIH1cXG4gICAgLm9yZGVyLXBhZ2VyLXdyYXBwZXIgLnBhZ2VzIHtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxcbiAgICB9XFxuICAgIC5vcmRlci1wYWdlci13cmFwcGVyIC5hY3Rpb24ucHJldmlvdXMsXFxuICAgIC5vcmRlci1wYWdlci13cmFwcGVyIC5hY3Rpb24ubmV4dCB7XFxuICAgICAgICBtYXJnaW46IDBcXG4gICAgfVxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IHtcXG4gICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IC0yMXB4O1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICB6LWluZGV4OiA1XFxuICAgIH1cXG4gICAgLmJsb2NrLWNvbGxhcHNpYmxlLW5hdiAuY29udGVudCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAuYmxvY2stY29sbGFwc2libGUtbmF2IC5jb250ZW50LmFjdGl2ZSB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5jdXN0b21lci1uYW1lLFxcbiAgICAuY3VzdG9tZXItd2VsY29tZSsuYXV0aG9yaXphdGlvbi1saW5rIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubmF2LXNlY3Rpb25zIC5zd2l0Y2hlci10cmlnZ2VyIHN0cm9uZzphZnRlciB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgICAgIHJpZ2h0OiAtMjVweDtcXG4gICAgICAgIHRvcDogLTJweFxcbiAgICB9XFxuICAgIC5uYXZpZ2F0aW9uIC5wYXJlbnQgLmxldmVsLXRvcDphZnRlciB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcXG4gICAgICAgIHJpZ2h0OiAxMHB4O1xcbiAgICAgICAgdG9wOiA3cHhcXG4gICAgfVxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XFxuICAgICAgICBtYXJnaW46IDAgLTE1cHhcXG4gICAgfVxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSAuc3dpdGNoZXItb3B0aW9ucyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5wYWdlLWZvb3RlciAuZm9vdGVyLmNvbnRlbnQgLnN3aXRjaGVyLXN0b3JlIC5zd2l0Y2hlci1vcHRpb25zIHVsLmRyb3Bkb3duIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXFxuICAgIH1cXG4gICAgLnBhZ2UtZm9vdGVyIC5mb290ZXIuY29udGVudCAuc3dpdGNoZXItc3RvcmUgLnN3aXRjaGVyLW9wdGlvbnMgdWwuZHJvcGRvd246YmVmb3JlLFxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSAuc3dpdGNoZXItb3B0aW9ucyB1bC5kcm9wZG93bjphZnRlciB7XFxuICAgICAgICBkaXNwbGF5OiBub25lXFxuICAgIH1cXG4gICAgLnBhZ2UtZm9vdGVyIC5mb290ZXIuY29udGVudCAuc3dpdGNoZXItc3RvcmUgLnN3aXRjaGVyLW9wdGlvbnMgLnN3aXRjaGVyLXRyaWdnZXIsXFxuICAgIC5wYWdlLWZvb3RlciAuZm9vdGVyLmNvbnRlbnQgLnN3aXRjaGVyLXN0b3JlIC5zd2l0Y2hlci1vcHRpb25zIC5zd2l0Y2hlci1vcHRpb24ge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjZWNlY2U7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweFxcbiAgICB9XFxuICAgIC5wYWdlLWZvb3RlciAuZm9vdGVyLmNvbnRlbnQgLnN3aXRjaGVyLXN0b3JlIC5zd2l0Y2hlci1vcHRpb25zIC5zd2l0Y2hlci10cmlnZ2VyIHN0cm9uZyB7XFxuICAgICAgICBwYWRkaW5nOiAxMHB4IDBcXG4gICAgfVxcbiAgICAucGFnZS1mb290ZXIgLmZvb3Rlci5jb250ZW50IC5zd2l0Y2hlci1zdG9yZSAuc3dpdGNoZXItb3B0aW9ucyAuc3dpdGNoZXItb3B0aW9uIGEge1xcbiAgICAgICAgcGFkZGluZzogMFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbSB7XFxuICAgICAgICBwYWRkaW5nOiAyMHB4IDEwcHggMjBweCAyMHB4O1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgICAgICBmbG9hdDogbGVmdDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tbmFtZSB7XFxuICAgICAgICBmb250LXNpemU6IDEuNnJlbVxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9ja1xcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9uIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9uOmxhc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwXFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb24uZWRpdCB7XFxuICAgICAgICBmbG9hdDogbGVmdFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tYWN0aW9ucyAuYWN0aW9uLmRlbGV0ZSB7XFxuICAgICAgICBmbG9hdDogcmlnaHRcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbi5lZGl0LFxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbi5kZWxldGUge1xcbiAgICAgICAgbWFyZ2luLXRvcDogN3B4XFxuICAgIH1cXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbS1uYW1lLFxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtLWRlc2NyaXB0aW9uLFxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5wcmljZS1ib3gsXFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0tdG9vbHRpcCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogOTVweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkLndpc2hsaXN0IC5wcm9kdWN0LWl0ZW0gLmJveC10b2NhcnQge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5ib3gtdG9jYXJ0IC5zdG9jayB7XFxuICAgICAgICBtYXJnaW4tdG9wOiA3cHhcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pdGVtIC5naWZ0cmVnaXN0eS1kcm9wZG93bixcXG4gICAgLnByb2R1Y3RzLWdyaWQud2lzaGxpc3QgLnByb2R1Y3QtaXRlbSAuZmllbGQucXR5IHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZC53aXNobGlzdCAucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xcbiAgICAgICAgbWF4LXdpZHRoOiA4MHB4XFxuICAgIH1cXG4gICAgLndpc2hsaXN0LWluZGV4LWluZGV4IC5wcm9kdWN0LWl0ZW0ge1xcbiAgICAgICAgd2lkdGg6IDEwMCVcXG4gICAgfVxcbiAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXggLnByb2R1Y3QtaXRlbS1pbmZvIHtcXG4gICAgICAgIHdpZHRoOiBhdXRvXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLXRvd2lzaGxpc3Qge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXFxuICAgIH1cXG4gICAgLmNhcnQudGFibGUtd3JhcHBlciAuYWN0aW9uLXRvd2lzaGxpc3Q+c3BhbiB7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgICAgICAgaGVpZ2h0OiAxcHg7XFxuICAgICAgICBtYXJnaW46IC0xcHg7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHdpZHRoOiAxcHhcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tdG93aXNobGlzdDpiZWZvcmUge1xcbiAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgICBjb2xvcjogIzc1NzU3NTtcXG4gICAgICAgIGNvbnRlbnQ6ICdcXFxcRTYwMCc7XFxuICAgICAgICBmb250LWZhbWlseTogJ2x1bWEtaWNvbnMnO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgc3BlYWs6IG5vbmU7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tdG93aXNobGlzdDpob3ZlcjpiZWZvcmUge1xcbiAgICAgICAgY29sb3I6ICMzMzNcXG4gICAgfVxcbiAgICAuY2FydC50YWJsZS13cmFwcGVyIC5hY3Rpb24tdG93aXNobGlzdDphY3RpdmU6YmVmb3JlIHtcXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1XFxuICAgIH1cXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2OHB4KSB7XFxuICAgIC5hYnMtY2hlY2tvdXQtdG9vbHRpcC1jb250ZW50LXBvc2l0aW9uLXRvcC1tb2JpbGUge1xcbiAgICAgICAgcmlnaHQ6IC0xMHB4O1xcbiAgICAgICAgdG9wOiA0MHB4O1xcbiAgICAgICAgbGVmdDogYXV0b1xcbiAgICB9XFxufVxcblxcbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6NjQwcHgpIHtcXG4gICAgLmFicy1ibG9ja3MtMmNvbHVtbnMtcyB7XFxuICAgICAgICB3aWR0aDogNDglXFxuICAgIH1cXG4gICAgLmFicy1yZXNldC1sZWZ0LW1hcmdpbi1kZXNrdG9wLXMsXFxuICAgIC5jb2x1bW46bm90KC5zaWRlYmFyLW1haW4pIC5tdWx0aWNoZWNrb3V0IC5hY3Rpb25zLXRvb2xiYXIsXFxuICAgIC5tdWx0aWNoZWNrb3V0IC5ibG9jay1zaGlwcGluZyAuYm94LXNoaXBwaW5nLW1ldGhvZCAuZmllbGRzZXQgLmxlZ2VuZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMFxcbiAgICB9XFxuICAgIC5hYnMtdmlzdWFsbHktaGlkZGVuLWRlc2t0b3AtcyxcXG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvOm5vdCg6aG92ZXIpOm5vdCguYWN0aXZlKSAucHJvZHVjdC1pdGVtLWlubmVyIHtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICAgICAgICBoZWlnaHQ6IDFweDtcXG4gICAgICAgIG1hcmdpbjogLTFweDtcXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgd2lkdGg6IDFweFxcbiAgICB9XFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LWRlc2t0b3AtczpiZWZvcmUsXFxuICAgIC5hYnMtYWRkLWNsZWFyZml4LWRlc2t0b3AtczphZnRlcixcXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWJpbGxpbmc6YmVmb3JlLFxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZzphZnRlciB7XFxuICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlXFxuICAgIH1cXG4gICAgLmFicy1hZGQtY2xlYXJmaXgtZGVza3RvcC1zOmFmdGVyLFxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZzphZnRlciB7XFxuICAgICAgICBjbGVhcjogYm90aFxcbiAgICB9XFxuICAgIC5hYnMtYWRkLWJveC1zaXppbmctZGVza3RvcC1zLFxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stc2hpcHBpbmcgLmJveCxcXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWJpbGxpbmcgLmJveC1iaWxsaW5nLWFkZHJlc3MsXFxuICAgIC5tdWx0aWNoZWNrb3V0IC5ibG9jay1iaWxsaW5nIC5ib3gtYmlsbGluZy1tZXRob2Qge1xcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveFxcbiAgICB9XFxuICAgIC5hYnMtZm9ybS1maWVsZC1jb2x1bW4tMi1zIC5maWVsZHNldCAuZmllbGQge1xcbiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgMDtcXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICB3aWR0aDogNTAlO1xcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcFxcbiAgICB9XFxuICAgIC5hYnMtZm9ybS1maWVsZC1jb2x1bW4tMi1zIC5maWVsZHNldCAuZmllbGQrLmZpZWxkc2V0IHtcXG4gICAgICAgIGNsZWFyOiBib3RoXFxuICAgIH1cXG4gICAgLmFicy1mb3JtLWZpZWxkLWNvbHVtbi0yLXMgLmZpZWxkc2V0IC5maWVsZCAuZmllbGQge1xcbiAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmFicy1mb3JtLWZpZWxkLXJldmVydC1jb2x1bW4tMS1zIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmFicy1hY3Rpb24tcHJpbnQtcyB7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuYWJzLWFjdGlvbi1wcmludC1zOmJlZm9yZSB7XFxuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICAgICAgICBmb250LXNpemU6IDE2cHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICAgICAgY29udGVudDogJ1xcXFxFNjI0JztcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnbHVtYS1pY29ucyc7XFxuICAgICAgICBtYXJnaW46IDAgNHB4IDAgMDtcXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIHNwZWFrOiBub25lO1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyXFxuICAgIH1cXG4gICAgLnRhYmxlPnRib2R5PnRyPnRoLFxcbiAgICAudGFibGU+dGJvZHk+dHI+dGQge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAudGFibGU+dGJvZHkrdGJvZHkge1xcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NcXG4gICAgfVxcbiAgICAudWktZGlhbG9nLnBvcHVwIHtcXG4gICAgICAgIHdpZHRoOiA0MjBweFxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSB7XFxuICAgICAgICBmbG9hdDogbm9uZTtcXG4gICAgICAgIG1hcmdpbi10b3A6IDExcHg7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodFxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSAuYWN0aW9uIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4XFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIGZsb2F0OiBsZWZ0XFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLml0ZW0tb3B0aW9ucyB7XFxuICAgICAgICBtYXJnaW46IDIwcHggMCAwXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLWNvbnRlbnQgLmJveCB7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLXNoaXBwaW5nIC5ib3gge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB3aWR0aDogMjUlXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLXNoaXBwaW5nIC5ib3gtc2hpcHBpbmctbWV0aG9kIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjVweDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XFxuICAgICAgICB3aWR0aDogNTAlXFxuICAgIH1cXG4gICAgLm11bHRpY2hlY2tvdXQgLmJsb2NrLXNoaXBwaW5nIC5ib3gtc2hpcHBpbmctbWV0aG9kIC5maWVsZHNldCAuZmllbGQ6YmVmb3JlIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmVcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZyAuYm94LWJpbGxpbmctYWRkcmVzcyB7XFxuICAgICAgICBmbG9hdDogbGVmdDtcXG4gICAgICAgIHdpZHRoOiAyNSVcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAuYmxvY2stYmlsbGluZyAuYm94LWJpbGxpbmctbWV0aG9kIHtcXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbiAgICAgICAgd2lkdGg6IDUwJVxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0LmZvcm0uYWRkcmVzcyAudGFibGUtd3JhcHBlciAuYXBwbGljYWJsZSB7XFxuICAgICAgICBtYXJnaW46IDdweCAwIDBcXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dC5vcmRlci1yZXZpZXcgLmJveC1pdGVtcyB7XFxuICAgICAgICBjbGVhcjogbGVmdDtcXG4gICAgICAgIGZsb2F0OiBub25lO1xcbiAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7XFxuICAgICAgICB3aWR0aDogYXV0b1xcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0Lm9yZGVyLXJldmlldyAuY29sLml0ZW0ge1xcbiAgICAgICAgd2lkdGg6IDc1JVxcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5tZXRob2RzLXBheW1lbnQgLml0ZW0tY29udGVudD4uZmllbGRzZXQge1xcbiAgICAgICAgd2lkdGg6IGF1dG9cXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAubWV0aG9kcy1wYXltZW50IC5pdGVtLWNvbnRlbnQ+LmZpZWxkc2V0IC5maWVsZC5jdnYge1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgd2lkdGg6IGF1dG9cXG4gICAgfVxcbiAgICAubXVsdGljaGVja291dCAubWV0aG9kcy1wYXltZW50IC5maWVsZHNldD4uZmllbGQ6bm90KC5jaG9pY2UpPi5sYWJlbCB7XFxuICAgICAgICBmbG9hdDogbm9uZTtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICB3aWR0aDogYXV0b1xcbiAgICB9XFxuICAgIC5tdWx0aWNoZWNrb3V0IC5tZXRob2RzLXBheW1lbnQgLmZpZWxkc2V0Pi5maWVsZDpub3QoLmNob2ljZSk6bm90KC5jdnYpIC5jb250cm9sIHtcXG4gICAgICAgIHdpZHRoOiAxMDAlXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgICAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XFxuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4XFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6Zm9jdXMsXFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICAgICAgYm9yZGVyOiBub25lXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgICAgIGJvcmRlcjogbm9uZVxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlLmRpc2FibGVkLFxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZVtkaXNhYmxlZF0sXFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZSB7XFxuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgICAgICBvcGFjaXR5OiAuNVxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOnZpc2l0ZWQge1xcbiAgICAgICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgICAgICBjb2xvcjogIzAwNmJiNDtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lXFxuICAgIH1cXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmU6YWN0aXZlIHtcXG4gICAgICAgIGNvbG9yOiAjZmY1NTAxO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTpob3ZlciB7XFxuICAgICAgICBjb2xvcjogIzAwNmJiNFxcbiAgICB9XFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmhvdmVyLFxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZTphY3RpdmUsXFxuICAgIC5jb2x1bW4gLmJsb2NrLWFkZGJ5c2t1IC5hY3Rpb24ucmVtb3ZlOmZvY3VzIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgICAgICBib3JkZXI6IDBcXG4gICAgfVxcbiAgICAuY29sdW1uIC5ibG9jay1hZGRieXNrdSAuYWN0aW9uLnJlbW92ZS5kaXNhYmxlZCxcXG4gICAgLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmVbZGlzYWJsZWRdLFxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gLmNvbHVtbiAuYmxvY2stYWRkYnlza3UgLmFjdGlvbi5yZW1vdmUge1xcbiAgICAgICAgY29sb3I6ICMwMDZiYjQ7XFxuICAgICAgICBvcGFjaXR5OiAuNTtcXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcXG4gICAgfVxcbiAgICAuY2F0YWxvZ3NlYXJjaC1hZHZhbmNlZC1yZXN1bHQgLm1lc3NhZ2UuZXJyb3Ige1xcbiAgICAgICAgbWFyZ2luLXRvcDogMFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0taW5mbzpob3ZlcixcXG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvLmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICAgICAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xcbiAgICAgICAgbWFyZ2luOiAtMTBweDtcXG4gICAgICAgIHBhZGRpbmc6IDlweDtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHotaW5kZXg6IDJcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtLWluZm86aG92ZXIgLnByb2R1Y3QtaXRlbS1pbm5lcixcXG4gICAgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvLmFjdGl2ZSAucHJvZHVjdC1pdGVtLWlubmVyIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXFxuICAgIH1cXG4gICAgLnNpZGViYXIgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbmZvOmhvdmVyIC5wcm9kdWN0LWl0ZW0tcGhvdG8sXFxuICAgIC5zaWRlYmFyIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0taW5mby5hY3RpdmUgLnByb2R1Y3QtaXRlbS1waG90byB7XFxuICAgICAgICB0b3A6IDlweDtcXG4gICAgICAgIGxlZnQ6IDlweFxcbiAgICB9XFxuICAgIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0taW5uZXIge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcXG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XFxuICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgbWFyZ2luOiA5cHggMCAwIC0xcHg7XFxuICAgICAgICBwYWRkaW5nOiAwIDlweCA5cHg7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICByaWdodDogLTFweDtcXG4gICAgICAgIHotaW5kZXg6IDJcXG4gICAgfVxcbiAgICAucHJvZHVjdC1pdGVtLWFjdGlvbnMge1xcbiAgICAgICAgZGlzcGxheTogYmxvY2tcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtLWFjdGlvbnMge1xcbiAgICAgICAgbWFyZ2luOiAtMTBweCAwIDEwcHhcXG4gICAgfVxcbiAgICAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtcHJpbWFyeSsuYWN0aW9ucy1zZWNvbmRhcnkge1xcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcXG4gICAgICAgIHdpZHRoOiA1MCU7XFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXFxuICAgIH1cXG4gICAgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXByaW1hcnkrLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb24ge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4XFxuICAgIH1cXG4gICAgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIC5hY3Rpb25zLXByaW1hcnkrLmFjdGlvbnMtc2Vjb25kYXJ5Pi5hY3Rpb246bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBcXG4gICAgfVxcbiAgICAucHJvZHVjdC1pdGVtLWFjdGlvbnMgLmFjdGlvbnMtcHJpbWFyeSB7XFxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdHMgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1pbm5lcjpiZWZvcmUge1xcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgICAgaGVpZ2h0OiAzcHg7XFxuICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiAtMnB4O1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICB6LWluZGV4OiAxXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdHMgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIHtcXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgIHotaW5kZXg6IDFcXG4gICAgfVxcbiAgICAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtIHtcXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XFxuICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMlXFxuICAgIH1cXG4gICAgLnBhZ2UtcHJvZHVjdHMgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtbGF5b3V0LTNjb2x1bW5zIC5wcm9kdWN0cy1ncmlkIC5wcm9kdWN0LWl0ZW0sXFxuICAgIC5wYWdlLXByb2R1Y3RzLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtcHJvZHVjdHMucGFnZS1sYXlvdXQtM2NvbHVtbnMgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSB7XFxuICAgICAgICB3aWR0aDogMzMuMzMzMzMzMzMlXFxuICAgIH1cXG4gICAgLnJldmlldy1mb3JtIHtcXG4gICAgICAgIG1heC13aWR0aDogNTAwcHhcXG4gICAgfVxcbiAgICAucmV2aWV3LXJhdGluZ3Mge1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgICAgbWF4LXdpZHRoOiAyNDBweFxcbiAgICB9XFxuICAgIC5yZXZpZXctcmF0aW5nc34ucmV2aWV3LWNvbnRlbnQsXFxuICAgIC5yZXZpZXctcmF0aW5nc34ucmV2aWV3LWRldGFpbHMge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4MHB4XFxuICAgIH1cXG4gICAgLnJldmlldy10b29sYmFyIHtcXG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHhcXG4gICAgfVxcbiAgICAucmV2aWV3LXRvb2xiYXIgLnBhZ2VzIHtcXG4gICAgICAgIHBhZGRpbmc6IDMwcHggMFxcbiAgICB9XFxuICAgIC5maWVsZHNldCAucmV2aWV3LWxlZ2VuZC5sZWdlbmQge1xcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweFxcbiAgICB9XFxuICAgIC5yZXZpZXctaXRlbSB7XFxuICAgICAgICBwYWRkaW5nOiAzMHB4IDBcXG4gICAgfVxcbiAgICAucmV2aWV3LXRpdGxlIHtcXG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHhcXG4gICAgfVxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItdGl0bGUgLmFjdGlvbiB7XFxuICAgICAgICBtYXJnaW46IDEycHggMCAwIDMwcHhcXG4gICAgfVxcbiAgICAub3JkZXItZGV0YWlscy1pdGVtcyAub3JkZXItdGl0bGUgLmFjdGlvbi50cmFjayB7XFxuICAgICAgICBmbG9hdDogcmlnaHRcXG4gICAgfVxcbiAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXggLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbS1hY3Rpb25zIHtcXG4gICAgICAgIG1hcmdpbjogMFxcbiAgICB9XFxuICAgIC5ibG9jay53aWRnZXQgLnByb2R1Y3RzLWdyaWQgLnByb2R1Y3QtaXRlbSxcXG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLmJsb2NrLndpZGdldCAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtLFxcbiAgICAucGFnZS1sYXlvdXQtM2NvbHVtbnMgLmJsb2NrLndpZGdldCAucHJvZHVjdHMtZ3JpZCAucHJvZHVjdC1pdGVtIHtcXG4gICAgICAgIHdpZHRoOiAzMy4zMzMzMzMzMyVcXG4gICAgfVxcbn1cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyIS4vc3JjL2NvbXBvbmVudHMvTWFnZW50b1Byb2R1Y3RMaXN0L1Byb2R1Y3RMaXN0LmNzc1xuLy8gbW9kdWxlIGlkID0gMjM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///236\n"); /***/ }), /* 237 */ @@ -3007,7 +3007,7 @@ eval("\n/**\n * When source maps are enabled, `style-loader` uses a link element /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__ = __webpack_require__(/*! ./transport/networkInterface */ 62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transport_batchedNetworkInterface__ = __webpack_require__(/*! ./transport/batchedNetworkInterface */ 249);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_graphql_language_printer__ = __webpack_require__(/*! graphql/language/printer */ 42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_graphql_language_printer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_graphql_language_printer__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__store__ = __webpack_require__(/*! ./store */ 63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_ObservableQuery__ = __webpack_require__(/*! ./core/ObservableQuery */ 65);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_readFromStore__ = __webpack_require__(/*! ./data/readFromStore */ 26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_writeToStore__ = __webpack_require__(/*! ./data/writeToStore */ 32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__ = __webpack_require__(/*! ./queries/getFromAST */ 16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__queries_networkStatus__ = __webpack_require__(/*! ./queries/networkStatus */ 33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__queries_queryTransform__ = __webpack_require__(/*! ./queries/queryTransform */ 31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__errors_ApolloError__ = __webpack_require__(/*! ./errors/ApolloError */ 66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ApolloClient__ = __webpack_require__(/*! ./ApolloClient */ 272);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__data_storeUtils__ = __webpack_require__(/*! ./data/storeUtils */ 17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__data_fragmentMatcher__ = __webpack_require__(/*! ./data/fragmentMatcher */ 70);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__[\"b\"]; });\n/* unused harmony reexport createBatchingNetworkInterface */\n/* unused harmony reexport createApolloStore */\n/* unused harmony reexport createApolloReducer */\n/* unused harmony reexport readQueryFromStore */\n/* unused harmony reexport writeQueryToStore */\n/* unused harmony reexport addTypenameToDocument */\n/* unused harmony reexport createFragmentMap */\n/* unused harmony reexport NetworkStatus */\n/* unused harmony reexport ApolloError */\n/* unused harmony reexport getQueryDefinition */\n/* unused harmony reexport getMutationDefinition */\n/* unused harmony reexport getFragmentDefinitions */\n/* unused harmony reexport toIdValue */\n/* unused harmony reexport IntrospectionFragmentMatcher */\n/* unused harmony reexport printAST */\n/* unused harmony reexport HTTPFetchNetworkInterface */\n/* unused harmony reexport HTTPBatchedNetworkInterface */\n/* unused harmony reexport ObservableQuery */\n/* unused harmony reexport ApolloClient */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (__WEBPACK_IMPORTED_MODULE_11__ApolloClient__[\"a\" /* default */]);\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQ2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvaW5kZXguanM/YmI1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlLCBIVFRQRmV0Y2hOZXR3b3JrSW50ZXJmYWNlLCB9IGZyb20gJy4vdHJhbnNwb3J0L25ldHdvcmtJbnRlcmZhY2UnO1xuaW1wb3J0IHsgY3JlYXRlQmF0Y2hpbmdOZXR3b3JrSW50ZXJmYWNlLCBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UsIH0gZnJvbSAnLi90cmFuc3BvcnQvYmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UnO1xuaW1wb3J0IHsgcHJpbnQgfSBmcm9tICdncmFwaHFsL2xhbmd1YWdlL3ByaW50ZXInO1xuaW1wb3J0IHsgY3JlYXRlQXBvbGxvU3RvcmUsIGNyZWF0ZUFwb2xsb1JlZHVjZXIgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGVRdWVyeSwgfSBmcm9tICcuL2NvcmUvT2JzZXJ2YWJsZVF1ZXJ5JztcbmltcG9ydCB7IHJlYWRRdWVyeUZyb21TdG9yZSB9IGZyb20gJy4vZGF0YS9yZWFkRnJvbVN0b3JlJztcbmltcG9ydCB7IHdyaXRlUXVlcnlUb1N0b3JlIH0gZnJvbSAnLi9kYXRhL3dyaXRlVG9TdG9yZSc7XG5pbXBvcnQgeyBnZXRRdWVyeURlZmluaXRpb24sIGdldE11dGF0aW9uRGVmaW5pdGlvbiwgZ2V0RnJhZ21lbnREZWZpbml0aW9ucywgY3JlYXRlRnJhZ21lbnRNYXAsIH0gZnJvbSAnLi9xdWVyaWVzL2dldEZyb21BU1QnO1xuaW1wb3J0IHsgTmV0d29ya1N0YXR1cyB9IGZyb20gJy4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbmltcG9ydCB7IGFkZFR5cGVuYW1lVG9Eb2N1bWVudCB9IGZyb20gJy4vcXVlcmllcy9xdWVyeVRyYW5zZm9ybSc7XG5pbXBvcnQgeyBBcG9sbG9FcnJvciB9IGZyb20gJy4vZXJyb3JzL0Fwb2xsb0Vycm9yJztcbmltcG9ydCBBcG9sbG9DbGllbnQgZnJvbSAnLi9BcG9sbG9DbGllbnQnO1xuaW1wb3J0IHsgdG9JZFZhbHVlIH0gZnJvbSAnLi9kYXRhL3N0b3JlVXRpbHMnO1xuaW1wb3J0IHsgSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlciwgfSBmcm9tICcuL2RhdGEvZnJhZ21lbnRNYXRjaGVyJztcbmV4cG9ydCB7IGNyZWF0ZU5ldHdvcmtJbnRlcmZhY2UsIGNyZWF0ZUJhdGNoaW5nTmV0d29ya0ludGVyZmFjZSwgY3JlYXRlQXBvbGxvU3RvcmUsIGNyZWF0ZUFwb2xsb1JlZHVjZXIsIHJlYWRRdWVyeUZyb21TdG9yZSwgd3JpdGVRdWVyeVRvU3RvcmUsIGFkZFR5cGVuYW1lVG9Eb2N1bWVudCwgY3JlYXRlRnJhZ21lbnRNYXAsIE5ldHdvcmtTdGF0dXMsIEFwb2xsb0Vycm9yLCBnZXRRdWVyeURlZmluaXRpb24sIGdldE11dGF0aW9uRGVmaW5pdGlvbiwgZ2V0RnJhZ21lbnREZWZpbml0aW9ucywgdG9JZFZhbHVlLCBJbnRyb3NwZWN0aW9uRnJhZ21lbnRNYXRjaGVyLCBwcmludCBhcyBwcmludEFTVCwgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZSwgSFRUUEJhdGNoZWROZXR3b3JrSW50ZXJmYWNlLCBPYnNlcnZhYmxlUXVlcnksIEFwb2xsb0NsaWVudCwgfTtcbmV4cG9ydCBkZWZhdWx0IEFwb2xsb0NsaWVudDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDI0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///246\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__ = __webpack_require__(/*! ./transport/networkInterface */ 63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transport_batchedNetworkInterface__ = __webpack_require__(/*! ./transport/batchedNetworkInterface */ 249);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_graphql_language_printer__ = __webpack_require__(/*! graphql/language/printer */ 42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_graphql_language_printer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_graphql_language_printer__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__store__ = __webpack_require__(/*! ./store */ 64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_ObservableQuery__ = __webpack_require__(/*! ./core/ObservableQuery */ 66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__data_readFromStore__ = __webpack_require__(/*! ./data/readFromStore */ 26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_writeToStore__ = __webpack_require__(/*! ./data/writeToStore */ 32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__ = __webpack_require__(/*! ./queries/getFromAST */ 16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__queries_networkStatus__ = __webpack_require__(/*! ./queries/networkStatus */ 33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__queries_queryTransform__ = __webpack_require__(/*! ./queries/queryTransform */ 31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__errors_ApolloError__ = __webpack_require__(/*! ./errors/ApolloError */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ApolloClient__ = __webpack_require__(/*! ./ApolloClient */ 272);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__data_storeUtils__ = __webpack_require__(/*! ./data/storeUtils */ 17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__data_fragmentMatcher__ = __webpack_require__(/*! ./data/fragmentMatcher */ 71);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return __WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__[\"b\"]; });\n/* unused harmony reexport createBatchingNetworkInterface */\n/* unused harmony reexport createApolloStore */\n/* unused harmony reexport createApolloReducer */\n/* unused harmony reexport readQueryFromStore */\n/* unused harmony reexport writeQueryToStore */\n/* unused harmony reexport addTypenameToDocument */\n/* unused harmony reexport createFragmentMap */\n/* unused harmony reexport NetworkStatus */\n/* unused harmony reexport ApolloError */\n/* unused harmony reexport getQueryDefinition */\n/* unused harmony reexport getMutationDefinition */\n/* unused harmony reexport getFragmentDefinitions */\n/* unused harmony reexport toIdValue */\n/* unused harmony reexport IntrospectionFragmentMatcher */\n/* unused harmony reexport printAST */\n/* unused harmony reexport HTTPFetchNetworkInterface */\n/* unused harmony reexport HTTPBatchedNetworkInterface */\n/* unused harmony reexport ObservableQuery */\n/* unused harmony reexport ApolloClient */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (__WEBPACK_IMPORTED_MODULE_11__ApolloClient__[\"a\" /* default */]);\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQ2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvaW5kZXguanM/YmI1ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlLCBIVFRQRmV0Y2hOZXR3b3JrSW50ZXJmYWNlLCB9IGZyb20gJy4vdHJhbnNwb3J0L25ldHdvcmtJbnRlcmZhY2UnO1xuaW1wb3J0IHsgY3JlYXRlQmF0Y2hpbmdOZXR3b3JrSW50ZXJmYWNlLCBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UsIH0gZnJvbSAnLi90cmFuc3BvcnQvYmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UnO1xuaW1wb3J0IHsgcHJpbnQgfSBmcm9tICdncmFwaHFsL2xhbmd1YWdlL3ByaW50ZXInO1xuaW1wb3J0IHsgY3JlYXRlQXBvbGxvU3RvcmUsIGNyZWF0ZUFwb2xsb1JlZHVjZXIgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGVRdWVyeSwgfSBmcm9tICcuL2NvcmUvT2JzZXJ2YWJsZVF1ZXJ5JztcbmltcG9ydCB7IHJlYWRRdWVyeUZyb21TdG9yZSB9IGZyb20gJy4vZGF0YS9yZWFkRnJvbVN0b3JlJztcbmltcG9ydCB7IHdyaXRlUXVlcnlUb1N0b3JlIH0gZnJvbSAnLi9kYXRhL3dyaXRlVG9TdG9yZSc7XG5pbXBvcnQgeyBnZXRRdWVyeURlZmluaXRpb24sIGdldE11dGF0aW9uRGVmaW5pdGlvbiwgZ2V0RnJhZ21lbnREZWZpbml0aW9ucywgY3JlYXRlRnJhZ21lbnRNYXAsIH0gZnJvbSAnLi9xdWVyaWVzL2dldEZyb21BU1QnO1xuaW1wb3J0IHsgTmV0d29ya1N0YXR1cyB9IGZyb20gJy4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbmltcG9ydCB7IGFkZFR5cGVuYW1lVG9Eb2N1bWVudCB9IGZyb20gJy4vcXVlcmllcy9xdWVyeVRyYW5zZm9ybSc7XG5pbXBvcnQgeyBBcG9sbG9FcnJvciB9IGZyb20gJy4vZXJyb3JzL0Fwb2xsb0Vycm9yJztcbmltcG9ydCBBcG9sbG9DbGllbnQgZnJvbSAnLi9BcG9sbG9DbGllbnQnO1xuaW1wb3J0IHsgdG9JZFZhbHVlIH0gZnJvbSAnLi9kYXRhL3N0b3JlVXRpbHMnO1xuaW1wb3J0IHsgSW50cm9zcGVjdGlvbkZyYWdtZW50TWF0Y2hlciwgfSBmcm9tICcuL2RhdGEvZnJhZ21lbnRNYXRjaGVyJztcbmV4cG9ydCB7IGNyZWF0ZU5ldHdvcmtJbnRlcmZhY2UsIGNyZWF0ZUJhdGNoaW5nTmV0d29ya0ludGVyZmFjZSwgY3JlYXRlQXBvbGxvU3RvcmUsIGNyZWF0ZUFwb2xsb1JlZHVjZXIsIHJlYWRRdWVyeUZyb21TdG9yZSwgd3JpdGVRdWVyeVRvU3RvcmUsIGFkZFR5cGVuYW1lVG9Eb2N1bWVudCwgY3JlYXRlRnJhZ21lbnRNYXAsIE5ldHdvcmtTdGF0dXMsIEFwb2xsb0Vycm9yLCBnZXRRdWVyeURlZmluaXRpb24sIGdldE11dGF0aW9uRGVmaW5pdGlvbiwgZ2V0RnJhZ21lbnREZWZpbml0aW9ucywgdG9JZFZhbHVlLCBJbnRyb3NwZWN0aW9uRnJhZ21lbnRNYXRjaGVyLCBwcmludCBhcyBwcmludEFTVCwgSFRUUEZldGNoTmV0d29ya0ludGVyZmFjZSwgSFRUUEJhdGNoZWROZXR3b3JrSW50ZXJmYWNlLCBPYnNlcnZhYmxlUXVlcnksIEFwb2xsb0NsaWVudCwgfTtcbmV4cG9ydCBkZWZhdWx0IEFwb2xsb0NsaWVudDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcFxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDI0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///246\n"); /***/ }), /* 247 */ @@ -3042,7 +3042,7 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = cloneDeep;\n /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* unused harmony export HTTPBatchedNetworkInterface */\n/* unused harmony export createBatchingNetworkInterface */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__ = __webpack_require__(/*! whatwg-fetch */ 106);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__networkInterface__ = __webpack_require__(/*! ./networkInterface */ 62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__ = __webpack_require__(/*! ../queries/queryTransform */ 31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__batching__ = __webpack_require__(/*! ./batching */ 250);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_assign__ = __webpack_require__(/*! ../util/assign */ 24);\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\nvar HTTPBatchedNetworkInterface = (function (_super) {\n __extends(HTTPBatchedNetworkInterface, _super);\n function HTTPBatchedNetworkInterface(_a) {\n var uri = _a.uri, _b = _a.batchInterval, batchInterval = _b === void 0 ? 10 : _b, _c = _a.batchMax, batchMax = _c === void 0 ? 0 : _c, fetchOpts = _a.fetchOpts;\n var _this = _super.call(this, uri, fetchOpts) || this;\n if (typeof batchInterval !== 'number') {\n throw new Error(\"batchInterval must be a number, got \" + batchInterval);\n }\n if (typeof batchMax !== 'number') {\n throw new Error(\"batchMax must be a number, got \" + batchMax);\n }\n _this.batcher = new __WEBPACK_IMPORTED_MODULE_3__batching__[\"a\" /* QueryBatcher */]({\n batchInterval: batchInterval,\n batchMax: batchMax,\n batchFetchFunction: _this.batchQuery.bind(_this),\n });\n return _this;\n }\n HTTPBatchedNetworkInterface.prototype.query = function (request) {\n return this.batcher.enqueueRequest(request);\n };\n HTTPBatchedNetworkInterface.prototype.batchQuery = function (requests) {\n var _this = this;\n var options = __assign({}, this._opts);\n var middlewarePromise = this.applyBatchMiddlewares({\n requests: requests,\n options: options,\n });\n return new Promise(function (resolve, reject) {\n middlewarePromise\n .then(function (batchRequestAndOptions) {\n batchRequestAndOptions.requests.forEach(function (r) {\n if (r.query)\n r.query = Object(__WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__[\"b\" /* removeConnectionDirectiveFromDocument */])(r.query);\n });\n return _this.batchedFetchFromRemoteEndpoint(batchRequestAndOptions)\n .then(function (result) {\n var httpResponse = result;\n if (!httpResponse.ok) {\n return _this.applyBatchAfterwares({\n responses: [httpResponse],\n options: batchRequestAndOptions.options,\n }).then(function () {\n var httpError = new Error(\"Network request failed with status \" + httpResponse.status + \" - \\\"\" + httpResponse.statusText + \"\\\"\");\n httpError.response = httpResponse;\n throw httpError;\n });\n }\n return result.json();\n })\n .then(function (responses) {\n if (typeof responses.map !== 'function') {\n throw new Error('BatchingNetworkInterface: server response is not an array');\n }\n _this.applyBatchAfterwares({\n responses: responses,\n options: batchRequestAndOptions.options,\n })\n .then(function (responseAndOptions) {\n resolve(responseAndOptions.responses);\n })\n .catch(function (error) {\n reject(error);\n });\n });\n })\n .catch(function (error) {\n reject(error);\n });\n });\n };\n HTTPBatchedNetworkInterface.prototype.applyBatchMiddlewares = function (_a) {\n var _this = this;\n var requests = _a.requests, options = _a.options;\n return new Promise(function (resolve, reject) {\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyBatchMiddleware.apply(scope, [\n { requests: requests, options: options },\n next,\n ]);\n }\n }\n else {\n resolve({\n requests: requests,\n options: options,\n });\n }\n };\n next();\n };\n queue(_this._middlewares.slice(), _this);\n });\n };\n HTTPBatchedNetworkInterface.prototype.applyBatchAfterwares = function (_a) {\n var _this = this;\n var responses = _a.responses, options = _a.options;\n return new Promise(function (resolve, reject) {\n var responseObject = { responses: responses, options: options };\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyBatchAfterware.apply(scope, [responseObject, next]);\n }\n }\n else {\n resolve(responseObject);\n }\n };\n next();\n };\n queue(_this._afterwares.slice(), _this);\n });\n };\n HTTPBatchedNetworkInterface.prototype.use = function (middlewares) {\n var _this = this;\n middlewares.map(function (middleware) {\n if (typeof middleware.applyBatchMiddleware === 'function') {\n _this._middlewares.push(middleware);\n }\n else {\n throw new Error('Batch middleware must implement the applyBatchMiddleware function');\n }\n });\n return this;\n };\n HTTPBatchedNetworkInterface.prototype.useAfter = function (afterwares) {\n var _this = this;\n afterwares.map(function (afterware) {\n if (typeof afterware.applyBatchAfterware === 'function') {\n _this._afterwares.push(afterware);\n }\n else {\n throw new Error('Batch afterware must implement the applyBatchAfterware function');\n }\n });\n return this;\n };\n HTTPBatchedNetworkInterface.prototype.batchedFetchFromRemoteEndpoint = function (batchRequestAndOptions) {\n var options = {};\n Object(__WEBPACK_IMPORTED_MODULE_4__util_assign__[\"a\" /* assign */])(options, batchRequestAndOptions.options);\n var printedRequests = batchRequestAndOptions.requests.map(function (request) {\n return Object(__WEBPACK_IMPORTED_MODULE_1__networkInterface__[\"c\" /* printRequest */])(request);\n });\n return fetch(this._uri, __assign({}, this._opts, { body: JSON.stringify(printedRequests), method: 'POST' }, options, { headers: __assign({ Accept: '*/*', 'Content-Type': 'application/json' }, options.headers) }));\n };\n return HTTPBatchedNetworkInterface;\n}(__WEBPACK_IMPORTED_MODULE_1__networkInterface__[\"a\" /* BaseNetworkInterface */]));\n\nfunction createBatchingNetworkInterface(options) {\n if (!options) {\n throw new Error('You must pass an options argument to createNetworkInterface.');\n }\n return new HTTPBatchedNetworkInterface({\n uri: options.uri,\n batchInterval: options.batchInterval,\n batchMax: options.batchMax,\n fetchOpts: options.opts || {},\n });\n}\n//# sourceMappingURL=batchedNetworkInterface.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQ5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvdHJhbnNwb3J0L2JhdGNoZWROZXR3b3JrSW50ZXJmYWNlLmpzP2Q3MTEiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCAnd2hhdHdnLWZldGNoJztcbmltcG9ydCB7IEJhc2VOZXR3b3JrSW50ZXJmYWNlLCBwcmludFJlcXVlc3QsIH0gZnJvbSAnLi9uZXR3b3JrSW50ZXJmYWNlJztcbmltcG9ydCB7IHJlbW92ZUNvbm5lY3Rpb25EaXJlY3RpdmVGcm9tRG9jdW1lbnQgfSBmcm9tICcuLi9xdWVyaWVzL3F1ZXJ5VHJhbnNmb3JtJztcbmltcG9ydCB7IFF1ZXJ5QmF0Y2hlciB9IGZyb20gJy4vYmF0Y2hpbmcnO1xuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnLi4vdXRpbC9hc3NpZ24nO1xudmFyIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZSA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UoX2EpIHtcbiAgICAgICAgdmFyIHVyaSA9IF9hLnVyaSwgX2IgPSBfYS5iYXRjaEludGVydmFsLCBiYXRjaEludGVydmFsID0gX2IgPT09IHZvaWQgMCA/IDEwIDogX2IsIF9jID0gX2EuYmF0Y2hNYXgsIGJhdGNoTWF4ID0gX2MgPT09IHZvaWQgMCA/IDAgOiBfYywgZmV0Y2hPcHRzID0gX2EuZmV0Y2hPcHRzO1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCB1cmksIGZldGNoT3B0cykgfHwgdGhpcztcbiAgICAgICAgaWYgKHR5cGVvZiBiYXRjaEludGVydmFsICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYmF0Y2hJbnRlcnZhbCBtdXN0IGJlIGEgbnVtYmVyLCBnb3QgXCIgKyBiYXRjaEludGVydmFsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGJhdGNoTWF4ICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYmF0Y2hNYXggbXVzdCBiZSBhIG51bWJlciwgZ290IFwiICsgYmF0Y2hNYXgpO1xuICAgICAgICB9XG4gICAgICAgIF90aGlzLmJhdGNoZXIgPSBuZXcgUXVlcnlCYXRjaGVyKHtcbiAgICAgICAgICAgIGJhdGNoSW50ZXJ2YWw6IGJhdGNoSW50ZXJ2YWwsXG4gICAgICAgICAgICBiYXRjaE1heDogYmF0Y2hNYXgsXG4gICAgICAgICAgICBiYXRjaEZldGNoRnVuY3Rpb246IF90aGlzLmJhdGNoUXVlcnkuYmluZChfdGhpcyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5iYXRjaGVyLmVucXVldWVSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIH07XG4gICAgSFRUUEJhdGNoZWROZXR3b3JrSW50ZXJmYWNlLnByb3RvdHlwZS5iYXRjaFF1ZXJ5ID0gZnVuY3Rpb24gKHJlcXVlc3RzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBvcHRpb25zID0gX19hc3NpZ24oe30sIHRoaXMuX29wdHMpO1xuICAgICAgICB2YXIgbWlkZGxld2FyZVByb21pc2UgPSB0aGlzLmFwcGx5QmF0Y2hNaWRkbGV3YXJlcyh7XG4gICAgICAgICAgICByZXF1ZXN0czogcmVxdWVzdHMsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIG1pZGRsZXdhcmVQcm9taXNlXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBiYXRjaFJlcXVlc3RBbmRPcHRpb25zLnJlcXVlc3RzLmZvckVhY2goZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIucXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICByLnF1ZXJ5ID0gcmVtb3ZlQ29ubmVjdGlvbkRpcmVjdGl2ZUZyb21Eb2N1bWVudChyLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuYmF0Y2hlZEZldGNoRnJvbVJlbW90ZUVuZHBvaW50KGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGh0dHBSZXNwb25zZSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFodHRwUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpcy5hcHBseUJhdGNoQWZ0ZXJ3YXJlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzOiBbaHR0cFJlc3BvbnNlXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBiYXRjaFJlcXVlc3RBbmRPcHRpb25zLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHR0cEVycm9yID0gbmV3IEVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBcIiArIGh0dHBSZXNwb25zZS5zdGF0dXMgKyBcIiAtIFxcXCJcIiArIGh0dHBSZXNwb25zZS5zdGF0dXNUZXh0ICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBFcnJvci5yZXNwb25zZSA9IGh0dHBSZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwRXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Lmpzb24oKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2VzLm1hcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYXRjaGluZ05ldHdvcmtJbnRlcmZhY2U6IHNlcnZlciByZXNwb25zZSBpcyBub3QgYW4gYXJyYXknKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5hcHBseUJhdGNoQWZ0ZXJ3YXJlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXM6IHJlc3BvbnNlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZUFuZE9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2VBbmRPcHRpb25zLnJlc3BvbnNlcyk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLmFwcGx5QmF0Y2hNaWRkbGV3YXJlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcmVxdWVzdHMgPSBfYS5yZXF1ZXN0cywgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgcXVldWUgPSBmdW5jdGlvbiAoZnVuY3MsIHNjb3BlKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmdW5jcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZiA9IGZ1bmNzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYuYXBwbHlCYXRjaE1pZGRsZXdhcmUuYXBwbHkoc2NvcGUsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXF1ZXN0czogcmVxdWVzdHMsIG9wdGlvbnM6IG9wdGlvbnMgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzOiByZXF1ZXN0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBxdWV1ZShfdGhpcy5fbWlkZGxld2FyZXMuc2xpY2UoKSwgX3RoaXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUuYXBwbHlCYXRjaEFmdGVyd2FyZXMgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHJlc3BvbnNlcyA9IF9hLnJlc3BvbnNlcywgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgcmVzcG9uc2VPYmplY3QgPSB7IHJlc3BvbnNlczogcmVzcG9uc2VzLCBvcHRpb25zOiBvcHRpb25zIH07XG4gICAgICAgICAgICB2YXIgcXVldWUgPSBmdW5jdGlvbiAoZnVuY3MsIHNjb3BlKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmdW5jcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZiA9IGZ1bmNzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYuYXBwbHlCYXRjaEFmdGVyd2FyZS5hcHBseShzY29wZSwgW3Jlc3BvbnNlT2JqZWN0LCBuZXh0XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHF1ZXVlKF90aGlzLl9hZnRlcndhcmVzLnNsaWNlKCksIF90aGlzKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uIChtaWRkbGV3YXJlcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBtaWRkbGV3YXJlcy5tYXAoZnVuY3Rpb24gKG1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWlkZGxld2FyZS5hcHBseUJhdGNoTWlkZGxld2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9taWRkbGV3YXJlcy5wdXNoKG1pZGRsZXdhcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYXRjaCBtaWRkbGV3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseUJhdGNoTWlkZGxld2FyZSBmdW5jdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLnVzZUFmdGVyID0gZnVuY3Rpb24gKGFmdGVyd2FyZXMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgYWZ0ZXJ3YXJlcy5tYXAoZnVuY3Rpb24gKGFmdGVyd2FyZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBhZnRlcndhcmUuYXBwbHlCYXRjaEFmdGVyd2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9hZnRlcndhcmVzLnB1c2goYWZ0ZXJ3YXJlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQmF0Y2ggYWZ0ZXJ3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseUJhdGNoQWZ0ZXJ3YXJlIGZ1bmN0aW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUuYmF0Y2hlZEZldGNoRnJvbVJlbW90ZUVuZHBvaW50ID0gZnVuY3Rpb24gKGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgYXNzaWduKG9wdGlvbnMsIGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMub3B0aW9ucyk7XG4gICAgICAgIHZhciBwcmludGVkUmVxdWVzdHMgPSBiYXRjaFJlcXVlc3RBbmRPcHRpb25zLnJlcXVlc3RzLm1hcChmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHByaW50UmVxdWVzdChyZXF1ZXN0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmZXRjaCh0aGlzLl91cmksIF9fYXNzaWduKHt9LCB0aGlzLl9vcHRzLCB7IGJvZHk6IEpTT04uc3RyaW5naWZ5KHByaW50ZWRSZXF1ZXN0cyksIG1ldGhvZDogJ1BPU1QnIH0sIG9wdGlvbnMsIHsgaGVhZGVyczogX19hc3NpZ24oeyBBY2NlcHQ6ICcqLyonLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sIG9wdGlvbnMuaGVhZGVycykgfSkpO1xuICAgIH07XG4gICAgcmV0dXJuIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZTtcbn0oQmFzZU5ldHdvcmtJbnRlcmZhY2UpKTtcbmV4cG9ydCB7IEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZSB9O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhdGNoaW5nTmV0d29ya0ludGVyZmFjZShvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcGFzcyBhbiBvcHRpb25zIGFyZ3VtZW50IHRvIGNyZWF0ZU5ldHdvcmtJbnRlcmZhY2UuJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSFRUUEJhdGNoZWROZXR3b3JrSW50ZXJmYWNlKHtcbiAgICAgICAgdXJpOiBvcHRpb25zLnVyaSxcbiAgICAgICAgYmF0Y2hJbnRlcnZhbDogb3B0aW9ucy5iYXRjaEludGVydmFsLFxuICAgICAgICBiYXRjaE1heDogb3B0aW9ucy5iYXRjaE1heCxcbiAgICAgICAgZmV0Y2hPcHRzOiBvcHRpb25zLm9wdHMgfHwge30sXG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXRjaGVkTmV0d29ya0ludGVyZmFjZS5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L3RyYW5zcG9ydC9iYXRjaGVkTmV0d29ya0ludGVyZmFjZS5qc1xuLy8gbW9kdWxlIGlkID0gMjQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///249\n"); +eval("/* unused harmony export HTTPBatchedNetworkInterface */\n/* unused harmony export createBatchingNetworkInterface */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__ = __webpack_require__(/*! whatwg-fetch */ 106);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__networkInterface__ = __webpack_require__(/*! ./networkInterface */ 63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__ = __webpack_require__(/*! ../queries/queryTransform */ 31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__batching__ = __webpack_require__(/*! ./batching */ 250);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_assign__ = __webpack_require__(/*! ../util/assign */ 24);\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\nvar HTTPBatchedNetworkInterface = (function (_super) {\n __extends(HTTPBatchedNetworkInterface, _super);\n function HTTPBatchedNetworkInterface(_a) {\n var uri = _a.uri, _b = _a.batchInterval, batchInterval = _b === void 0 ? 10 : _b, _c = _a.batchMax, batchMax = _c === void 0 ? 0 : _c, fetchOpts = _a.fetchOpts;\n var _this = _super.call(this, uri, fetchOpts) || this;\n if (typeof batchInterval !== 'number') {\n throw new Error(\"batchInterval must be a number, got \" + batchInterval);\n }\n if (typeof batchMax !== 'number') {\n throw new Error(\"batchMax must be a number, got \" + batchMax);\n }\n _this.batcher = new __WEBPACK_IMPORTED_MODULE_3__batching__[\"a\" /* QueryBatcher */]({\n batchInterval: batchInterval,\n batchMax: batchMax,\n batchFetchFunction: _this.batchQuery.bind(_this),\n });\n return _this;\n }\n HTTPBatchedNetworkInterface.prototype.query = function (request) {\n return this.batcher.enqueueRequest(request);\n };\n HTTPBatchedNetworkInterface.prototype.batchQuery = function (requests) {\n var _this = this;\n var options = __assign({}, this._opts);\n var middlewarePromise = this.applyBatchMiddlewares({\n requests: requests,\n options: options,\n });\n return new Promise(function (resolve, reject) {\n middlewarePromise\n .then(function (batchRequestAndOptions) {\n batchRequestAndOptions.requests.forEach(function (r) {\n if (r.query)\n r.query = Object(__WEBPACK_IMPORTED_MODULE_2__queries_queryTransform__[\"b\" /* removeConnectionDirectiveFromDocument */])(r.query);\n });\n return _this.batchedFetchFromRemoteEndpoint(batchRequestAndOptions)\n .then(function (result) {\n var httpResponse = result;\n if (!httpResponse.ok) {\n return _this.applyBatchAfterwares({\n responses: [httpResponse],\n options: batchRequestAndOptions.options,\n }).then(function () {\n var httpError = new Error(\"Network request failed with status \" + httpResponse.status + \" - \\\"\" + httpResponse.statusText + \"\\\"\");\n httpError.response = httpResponse;\n throw httpError;\n });\n }\n return result.json();\n })\n .then(function (responses) {\n if (typeof responses.map !== 'function') {\n throw new Error('BatchingNetworkInterface: server response is not an array');\n }\n _this.applyBatchAfterwares({\n responses: responses,\n options: batchRequestAndOptions.options,\n })\n .then(function (responseAndOptions) {\n resolve(responseAndOptions.responses);\n })\n .catch(function (error) {\n reject(error);\n });\n });\n })\n .catch(function (error) {\n reject(error);\n });\n });\n };\n HTTPBatchedNetworkInterface.prototype.applyBatchMiddlewares = function (_a) {\n var _this = this;\n var requests = _a.requests, options = _a.options;\n return new Promise(function (resolve, reject) {\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyBatchMiddleware.apply(scope, [\n { requests: requests, options: options },\n next,\n ]);\n }\n }\n else {\n resolve({\n requests: requests,\n options: options,\n });\n }\n };\n next();\n };\n queue(_this._middlewares.slice(), _this);\n });\n };\n HTTPBatchedNetworkInterface.prototype.applyBatchAfterwares = function (_a) {\n var _this = this;\n var responses = _a.responses, options = _a.options;\n return new Promise(function (resolve, reject) {\n var responseObject = { responses: responses, options: options };\n var queue = function (funcs, scope) {\n var next = function () {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyBatchAfterware.apply(scope, [responseObject, next]);\n }\n }\n else {\n resolve(responseObject);\n }\n };\n next();\n };\n queue(_this._afterwares.slice(), _this);\n });\n };\n HTTPBatchedNetworkInterface.prototype.use = function (middlewares) {\n var _this = this;\n middlewares.map(function (middleware) {\n if (typeof middleware.applyBatchMiddleware === 'function') {\n _this._middlewares.push(middleware);\n }\n else {\n throw new Error('Batch middleware must implement the applyBatchMiddleware function');\n }\n });\n return this;\n };\n HTTPBatchedNetworkInterface.prototype.useAfter = function (afterwares) {\n var _this = this;\n afterwares.map(function (afterware) {\n if (typeof afterware.applyBatchAfterware === 'function') {\n _this._afterwares.push(afterware);\n }\n else {\n throw new Error('Batch afterware must implement the applyBatchAfterware function');\n }\n });\n return this;\n };\n HTTPBatchedNetworkInterface.prototype.batchedFetchFromRemoteEndpoint = function (batchRequestAndOptions) {\n var options = {};\n Object(__WEBPACK_IMPORTED_MODULE_4__util_assign__[\"a\" /* assign */])(options, batchRequestAndOptions.options);\n var printedRequests = batchRequestAndOptions.requests.map(function (request) {\n return Object(__WEBPACK_IMPORTED_MODULE_1__networkInterface__[\"c\" /* printRequest */])(request);\n });\n return fetch(this._uri, __assign({}, this._opts, { body: JSON.stringify(printedRequests), method: 'POST' }, options, { headers: __assign({ Accept: '*/*', 'Content-Type': 'application/json' }, options.headers) }));\n };\n return HTTPBatchedNetworkInterface;\n}(__WEBPACK_IMPORTED_MODULE_1__networkInterface__[\"a\" /* BaseNetworkInterface */]));\n\nfunction createBatchingNetworkInterface(options) {\n if (!options) {\n throw new Error('You must pass an options argument to createNetworkInterface.');\n }\n return new HTTPBatchedNetworkInterface({\n uri: options.uri,\n batchInterval: options.batchInterval,\n batchMax: options.batchMax,\n fetchOpts: options.opts || {},\n });\n}\n//# sourceMappingURL=batchedNetworkInterface.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQ5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvdHJhbnNwb3J0L2JhdGNoZWROZXR3b3JrSW50ZXJmYWNlLmpzP2Q3MTEiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCAnd2hhdHdnLWZldGNoJztcbmltcG9ydCB7IEJhc2VOZXR3b3JrSW50ZXJmYWNlLCBwcmludFJlcXVlc3QsIH0gZnJvbSAnLi9uZXR3b3JrSW50ZXJmYWNlJztcbmltcG9ydCB7IHJlbW92ZUNvbm5lY3Rpb25EaXJlY3RpdmVGcm9tRG9jdW1lbnQgfSBmcm9tICcuLi9xdWVyaWVzL3F1ZXJ5VHJhbnNmb3JtJztcbmltcG9ydCB7IFF1ZXJ5QmF0Y2hlciB9IGZyb20gJy4vYmF0Y2hpbmcnO1xuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnLi4vdXRpbC9hc3NpZ24nO1xudmFyIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZSA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UoX2EpIHtcbiAgICAgICAgdmFyIHVyaSA9IF9hLnVyaSwgX2IgPSBfYS5iYXRjaEludGVydmFsLCBiYXRjaEludGVydmFsID0gX2IgPT09IHZvaWQgMCA/IDEwIDogX2IsIF9jID0gX2EuYmF0Y2hNYXgsIGJhdGNoTWF4ID0gX2MgPT09IHZvaWQgMCA/IDAgOiBfYywgZmV0Y2hPcHRzID0gX2EuZmV0Y2hPcHRzO1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCB1cmksIGZldGNoT3B0cykgfHwgdGhpcztcbiAgICAgICAgaWYgKHR5cGVvZiBiYXRjaEludGVydmFsICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYmF0Y2hJbnRlcnZhbCBtdXN0IGJlIGEgbnVtYmVyLCBnb3QgXCIgKyBiYXRjaEludGVydmFsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGJhdGNoTWF4ICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYmF0Y2hNYXggbXVzdCBiZSBhIG51bWJlciwgZ290IFwiICsgYmF0Y2hNYXgpO1xuICAgICAgICB9XG4gICAgICAgIF90aGlzLmJhdGNoZXIgPSBuZXcgUXVlcnlCYXRjaGVyKHtcbiAgICAgICAgICAgIGJhdGNoSW50ZXJ2YWw6IGJhdGNoSW50ZXJ2YWwsXG4gICAgICAgICAgICBiYXRjaE1heDogYmF0Y2hNYXgsXG4gICAgICAgICAgICBiYXRjaEZldGNoRnVuY3Rpb246IF90aGlzLmJhdGNoUXVlcnkuYmluZChfdGhpcyksXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5iYXRjaGVyLmVucXVldWVSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIH07XG4gICAgSFRUUEJhdGNoZWROZXR3b3JrSW50ZXJmYWNlLnByb3RvdHlwZS5iYXRjaFF1ZXJ5ID0gZnVuY3Rpb24gKHJlcXVlc3RzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBvcHRpb25zID0gX19hc3NpZ24oe30sIHRoaXMuX29wdHMpO1xuICAgICAgICB2YXIgbWlkZGxld2FyZVByb21pc2UgPSB0aGlzLmFwcGx5QmF0Y2hNaWRkbGV3YXJlcyh7XG4gICAgICAgICAgICByZXF1ZXN0czogcmVxdWVzdHMsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIG1pZGRsZXdhcmVQcm9taXNlXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBiYXRjaFJlcXVlc3RBbmRPcHRpb25zLnJlcXVlc3RzLmZvckVhY2goZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIucXVlcnkpXG4gICAgICAgICAgICAgICAgICAgICAgICByLnF1ZXJ5ID0gcmVtb3ZlQ29ubmVjdGlvbkRpcmVjdGl2ZUZyb21Eb2N1bWVudChyLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuYmF0Y2hlZEZldGNoRnJvbVJlbW90ZUVuZHBvaW50KGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGh0dHBSZXNwb25zZSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFodHRwUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpcy5hcHBseUJhdGNoQWZ0ZXJ3YXJlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VzOiBbaHR0cFJlc3BvbnNlXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBiYXRjaFJlcXVlc3RBbmRPcHRpb25zLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHR0cEVycm9yID0gbmV3IEVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBcIiArIGh0dHBSZXNwb25zZS5zdGF0dXMgKyBcIiAtIFxcXCJcIiArIGh0dHBSZXNwb25zZS5zdGF0dXNUZXh0ICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBFcnJvci5yZXNwb25zZSA9IGh0dHBSZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwRXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Lmpzb24oKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2VzLm1hcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYXRjaGluZ05ldHdvcmtJbnRlcmZhY2U6IHNlcnZlciByZXNwb25zZSBpcyBub3QgYW4gYXJyYXknKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5hcHBseUJhdGNoQWZ0ZXJ3YXJlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZXM6IHJlc3BvbnNlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZUFuZE9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2VBbmRPcHRpb25zLnJlc3BvbnNlcyk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLmFwcGx5QmF0Y2hNaWRkbGV3YXJlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcmVxdWVzdHMgPSBfYS5yZXF1ZXN0cywgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgcXVldWUgPSBmdW5jdGlvbiAoZnVuY3MsIHNjb3BlKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmdW5jcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZiA9IGZ1bmNzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYuYXBwbHlCYXRjaE1pZGRsZXdhcmUuYXBwbHkoc2NvcGUsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyByZXF1ZXN0czogcmVxdWVzdHMsIG9wdGlvbnM6IG9wdGlvbnMgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzOiByZXF1ZXN0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBxdWV1ZShfdGhpcy5fbWlkZGxld2FyZXMuc2xpY2UoKSwgX3RoaXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUuYXBwbHlCYXRjaEFmdGVyd2FyZXMgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHJlc3BvbnNlcyA9IF9hLnJlc3BvbnNlcywgb3B0aW9ucyA9IF9hLm9wdGlvbnM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgcmVzcG9uc2VPYmplY3QgPSB7IHJlc3BvbnNlczogcmVzcG9uc2VzLCBvcHRpb25zOiBvcHRpb25zIH07XG4gICAgICAgICAgICB2YXIgcXVldWUgPSBmdW5jdGlvbiAoZnVuY3MsIHNjb3BlKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmdW5jcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZiA9IGZ1bmNzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYuYXBwbHlCYXRjaEFmdGVyd2FyZS5hcHBseShzY29wZSwgW3Jlc3BvbnNlT2JqZWN0LCBuZXh0XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHF1ZXVlKF90aGlzLl9hZnRlcndhcmVzLnNsaWNlKCksIF90aGlzKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uIChtaWRkbGV3YXJlcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBtaWRkbGV3YXJlcy5tYXAoZnVuY3Rpb24gKG1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWlkZGxld2FyZS5hcHBseUJhdGNoTWlkZGxld2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9taWRkbGV3YXJlcy5wdXNoKG1pZGRsZXdhcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYXRjaCBtaWRkbGV3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseUJhdGNoTWlkZGxld2FyZSBmdW5jdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBIVFRQQmF0Y2hlZE5ldHdvcmtJbnRlcmZhY2UucHJvdG90eXBlLnVzZUFmdGVyID0gZnVuY3Rpb24gKGFmdGVyd2FyZXMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgYWZ0ZXJ3YXJlcy5tYXAoZnVuY3Rpb24gKGFmdGVyd2FyZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBhZnRlcndhcmUuYXBwbHlCYXRjaEFmdGVyd2FyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9hZnRlcndhcmVzLnB1c2goYWZ0ZXJ3YXJlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQmF0Y2ggYWZ0ZXJ3YXJlIG11c3QgaW1wbGVtZW50IHRoZSBhcHBseUJhdGNoQWZ0ZXJ3YXJlIGZ1bmN0aW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZS5wcm90b3R5cGUuYmF0Y2hlZEZldGNoRnJvbVJlbW90ZUVuZHBvaW50ID0gZnVuY3Rpb24gKGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB7fTtcbiAgICAgICAgYXNzaWduKG9wdGlvbnMsIGJhdGNoUmVxdWVzdEFuZE9wdGlvbnMub3B0aW9ucyk7XG4gICAgICAgIHZhciBwcmludGVkUmVxdWVzdHMgPSBiYXRjaFJlcXVlc3RBbmRPcHRpb25zLnJlcXVlc3RzLm1hcChmdW5jdGlvbiAocmVxdWVzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHByaW50UmVxdWVzdChyZXF1ZXN0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmZXRjaCh0aGlzLl91cmksIF9fYXNzaWduKHt9LCB0aGlzLl9vcHRzLCB7IGJvZHk6IEpTT04uc3RyaW5naWZ5KHByaW50ZWRSZXF1ZXN0cyksIG1ldGhvZDogJ1BPU1QnIH0sIG9wdGlvbnMsIHsgaGVhZGVyczogX19hc3NpZ24oeyBBY2NlcHQ6ICcqLyonLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sIG9wdGlvbnMuaGVhZGVycykgfSkpO1xuICAgIH07XG4gICAgcmV0dXJuIEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZTtcbn0oQmFzZU5ldHdvcmtJbnRlcmZhY2UpKTtcbmV4cG9ydCB7IEhUVFBCYXRjaGVkTmV0d29ya0ludGVyZmFjZSB9O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhdGNoaW5nTmV0d29ya0ludGVyZmFjZShvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcGFzcyBhbiBvcHRpb25zIGFyZ3VtZW50IHRvIGNyZWF0ZU5ldHdvcmtJbnRlcmZhY2UuJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSFRUUEJhdGNoZWROZXR3b3JrSW50ZXJmYWNlKHtcbiAgICAgICAgdXJpOiBvcHRpb25zLnVyaSxcbiAgICAgICAgYmF0Y2hJbnRlcnZhbDogb3B0aW9ucy5iYXRjaEludGVydmFsLFxuICAgICAgICBiYXRjaE1heDogb3B0aW9ucy5iYXRjaE1heCxcbiAgICAgICAgZmV0Y2hPcHRzOiBvcHRpb25zLm9wdHMgfHwge30sXG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXRjaGVkTmV0d29ya0ludGVyZmFjZS5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L3RyYW5zcG9ydC9iYXRjaGVkTmV0d29ya0ludGVyZmFjZS5qc1xuLy8gbW9kdWxlIGlkID0gMjQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///249\n"); /***/ }), /* 250 */ @@ -3316,7 +3316,7 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = replaceQuery /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__ = __webpack_require__(/*! ./transport/networkInterface */ 62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_apollo_link_core__ = __webpack_require__(/*! apollo-link-core */ 273);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_apollo_link_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_apollo_link_core__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__data_fragmentMatcher__ = __webpack_require__(/*! ./data/fragmentMatcher */ 70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__store__ = __webpack_require__(/*! ./store */ 63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_QueryManager__ = __webpack_require__(/*! ./core/QueryManager */ 282);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_environment__ = __webpack_require__(/*! ./util/environment */ 25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_storeUtils__ = __webpack_require__(/*! ./data/storeUtils */ 17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__data_proxy__ = __webpack_require__(/*! ./data/proxy */ 115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__version__ = __webpack_require__(/*! ./version */ 288);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__version___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__version__);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\nvar DEFAULT_REDUX_ROOT_KEY = 'apollo';\nfunction defaultReduxRootSelector(state) {\n return state[DEFAULT_REDUX_ROOT_KEY];\n}\nfunction defaultDataIdFromObject(result) {\n if (result.__typename) {\n if (result.id !== undefined) {\n return result.__typename + \":\" + result.id;\n }\n if (result._id !== undefined) {\n return result.__typename + \":\" + result._id;\n }\n }\n return null;\n}\nvar hasSuggestedDevtools = false;\nvar ApolloClient = (function () {\n function ApolloClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n this.middleware = function () {\n return function (store) {\n _this.setStore(store);\n return function (next) { return function (action) {\n var previousApolloState = _this.queryManager.selectApolloState(store);\n var returnValue = next(action);\n var newApolloState = _this.queryManager.selectApolloState(store);\n if (newApolloState !== previousApolloState) {\n _this.queryManager.broadcastNewStore(store.getState());\n }\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: action,\n state: {\n queries: _this.queryManager.queryStore.getStore(),\n mutations: _this.queryManager.mutationStore.getStore(),\n },\n dataWithOptimisticResults: _this.queryManager.getDataWithOptimisticResults(),\n });\n }\n return returnValue;\n }; };\n };\n };\n var dataIdFromObject = options.dataIdFromObject;\n var networkInterface = options.networkInterface, reduxRootSelector = options.reduxRootSelector, initialState = options.initialState, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, _c = options.addTypename, addTypename = _c === void 0 ? true : _c, customResolvers = options.customResolvers, connectToDevTools = options.connectToDevTools, fragmentMatcher = options.fragmentMatcher, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d;\n if (typeof reduxRootSelector === 'function') {\n this.reduxRootSelector = reduxRootSelector;\n }\n else if (typeof reduxRootSelector !== 'undefined') {\n throw new Error('\"reduxRootSelector\" must be a function.');\n }\n if (typeof fragmentMatcher === 'undefined') {\n this.fragmentMatcher = new __WEBPACK_IMPORTED_MODULE_2__data_fragmentMatcher__[\"a\" /* HeuristicFragmentMatcher */]();\n }\n else {\n this.fragmentMatcher = fragmentMatcher;\n }\n var createQuery = function (getResult) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n var resolved = false;\n var subscription = getResult(request).subscribe({\n next: function (data) {\n if (!resolved) {\n resolve(data);\n resolved = true;\n }\n else {\n console.warn('Apollo Client does not support multiple results from an Observable');\n }\n },\n error: reject,\n complete: function () { return subscription.unsubscribe(); },\n });\n });\n };\n };\n if (networkInterface instanceof __WEBPACK_IMPORTED_MODULE_1_apollo_link_core__[\"ApolloLink\"]) {\n var count_1 = 0;\n this.networkInterface = {\n query: createQuery(function (request) {\n return Object(__WEBPACK_IMPORTED_MODULE_1_apollo_link_core__[\"execute\"])(networkInterface, request);\n }),\n subscribe: function (request, handler) {\n if (!_this.subscriptionMap) {\n _this.subscriptionMap = new Map();\n }\n var subscription = Object(__WEBPACK_IMPORTED_MODULE_1_apollo_link_core__[\"execute\"])(networkInterface, request).subscribe({\n next: function (data) { return handler(undefined, data); },\n error: function (error) { return handler([error]); },\n complete: handler,\n });\n var id = count_1.toString();\n _this.subscriptionMap.set(id, subscription);\n count_1++;\n return id;\n },\n unsubscribe: function (id) {\n if (_this.subscriptionMap) {\n var subscription = _this.subscriptionMap.get(id);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n },\n };\n }\n else {\n this.networkInterface = networkInterface\n ? networkInterface\n : Object(__WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__[\"b\" /* createNetworkInterface */])({ uri: '/graphql' });\n }\n this.initialState = initialState ? initialState : {};\n this.addTypename = addTypename;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.dataId = dataIdFromObject =\n dataIdFromObject || defaultDataIdFromObject;\n this.dataIdFromObject = this.dataId;\n this.fieldWithArgs = __WEBPACK_IMPORTED_MODULE_6__data_storeUtils__[\"a\" /* getStoreKeyName */];\n this.queryDeduplication = queryDeduplication;\n this.ssrMode = ssrMode;\n if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n }\n this.reducerConfig = {\n dataIdFromObject: dataIdFromObject,\n customResolvers: customResolvers,\n addTypename: addTypename,\n fragmentMatcher: this.fragmentMatcher.match,\n };\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.setStore = this.setStore.bind(this);\n this.resetStore = this.resetStore.bind(this);\n var defaultConnectToDevTools = !Object(__WEBPACK_IMPORTED_MODULE_5__util_environment__[\"b\" /* isProduction */])() &&\n typeof window !== 'undefined' &&\n !window.__APOLLO_CLIENT__;\n if (typeof connectToDevTools === 'undefined'\n ? defaultConnectToDevTools\n : connectToDevTools) {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && !Object(__WEBPACK_IMPORTED_MODULE_5__util_environment__[\"b\" /* isProduction */])()) {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self) {\n if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n if (navigator.userAgent.indexOf('Chrome') > -1) {\n console.debug('Download the Apollo DevTools ' +\n 'for a better development experience: ' +\n 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm');\n }\n }\n }\n }\n this.version = __WEBPACK_IMPORTED_MODULE_8__version__[\"version\"];\n }\n ApolloClient.prototype.watchQuery = function (options) {\n this.initStore();\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign({}, options, { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n this.initStore();\n if (options.fetchPolicy === 'cache-and-network') {\n throw new Error('cache-and-network fetchPolicy can only be used with watchQuery');\n }\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign({}, options, { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n this.initStore();\n return this.queryManager.mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n this.initStore();\n return this.queryManager.startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options) {\n return this.initProxy().readQuery(options);\n };\n ApolloClient.prototype.readFragment = function (options) {\n return this.initProxy().readFragment(options);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n return this.initProxy().writeQuery(options);\n };\n ApolloClient.prototype.writeFragment = function (options) {\n return this.initProxy().writeFragment(options);\n };\n ApolloClient.prototype.reducer = function () {\n return Object(__WEBPACK_IMPORTED_MODULE_3__store__[\"a\" /* createApolloReducer */])(this.reducerConfig);\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.initStore = function () {\n var _this = this;\n if (this.store) {\n return;\n }\n if (this.reduxRootSelector) {\n throw new Error('Cannot initialize the store because \"reduxRootSelector\" is provided. ' +\n 'reduxRootSelector should only be used when the store is created outside of the client. ' +\n 'This may lead to unexpected results when querying the store internally. ' +\n \"Please remove that option from ApolloClient constructor.\");\n }\n this.setStore(Object(__WEBPACK_IMPORTED_MODULE_3__store__[\"b\" /* createApolloStore */])({\n reduxRootKey: DEFAULT_REDUX_ROOT_KEY,\n initialState: this.initialState,\n config: this.reducerConfig,\n logger: function (store) { return function (next) { return function (action) {\n var result = next(action);\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: action,\n state: {\n queries: _this.queryManager.queryStore.getStore(),\n mutations: _this.queryManager.mutationStore.getStore(),\n },\n dataWithOptimisticResults: _this.queryManager.getDataWithOptimisticResults(),\n });\n }\n return result;\n }; }; },\n }));\n };\n ApolloClient.prototype.resetStore = function () {\n return this.queryManager ? this.queryManager.resetStore() : null;\n };\n ApolloClient.prototype.getInitialState = function () {\n this.initStore();\n return this.queryManager.getInitialState();\n };\n ApolloClient.prototype.setStore = function (store) {\n var reduxRootSelector;\n if (this.reduxRootSelector) {\n reduxRootSelector = this.reduxRootSelector;\n }\n else {\n reduxRootSelector = defaultReduxRootSelector;\n }\n if (typeof reduxRootSelector(store.getState()) === 'undefined') {\n throw new Error('Existing store does not use apolloReducer. Please make sure the store ' +\n 'is properly configured and \"reduxRootSelector\" is correctly specified.');\n }\n this.store = store;\n this.queryManager = new __WEBPACK_IMPORTED_MODULE_4__core_QueryManager__[\"a\" /* QueryManager */]({\n networkInterface: this.networkInterface,\n reduxRootSelector: reduxRootSelector,\n store: store,\n addTypename: this.addTypename,\n reducerConfig: this.reducerConfig,\n queryDeduplication: this.queryDeduplication,\n fragmentMatcher: this.fragmentMatcher,\n ssrMode: this.ssrMode,\n });\n };\n ApolloClient.prototype.initProxy = function () {\n if (!this.proxy) {\n this.initStore();\n this.proxy = new __WEBPACK_IMPORTED_MODULE_7__data_proxy__[\"a\" /* ReduxDataProxy */](this.store, this.reduxRootSelector || defaultReduxRootSelector, this.fragmentMatcher, this.reducerConfig);\n }\n return this.proxy;\n };\n return ApolloClient;\n}());\n/* harmony default export */ __webpack_exports__[\"a\"] = (ApolloClient);\n//# sourceMappingURL=ApolloClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvQXBvbGxvQ2xpZW50LmpzP2M4ZGIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlLCB9IGZyb20gJy4vdHJhbnNwb3J0L25ldHdvcmtJbnRlcmZhY2UnO1xuaW1wb3J0IHsgZXhlY3V0ZSwgQXBvbGxvTGluaywgfSBmcm9tICdhcG9sbG8tbGluay1jb3JlJztcbmltcG9ydCB7IEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlciwgfSBmcm9tICcuL2RhdGEvZnJhZ21lbnRNYXRjaGVyJztcbmltcG9ydCB7IGNyZWF0ZUFwb2xsb1N0b3JlLCBjcmVhdGVBcG9sbG9SZWR1Y2VyLCB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgUXVlcnlNYW5hZ2VyIH0gZnJvbSAnLi9jb3JlL1F1ZXJ5TWFuYWdlcic7XG5pbXBvcnQgeyBpc1Byb2R1Y3Rpb24gfSBmcm9tICcuL3V0aWwvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgZ2V0U3RvcmVLZXlOYW1lIH0gZnJvbSAnLi9kYXRhL3N0b3JlVXRpbHMnO1xuaW1wb3J0IHsgUmVkdXhEYXRhUHJveHksIH0gZnJvbSAnLi9kYXRhL3Byb3h5JztcbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24nO1xudmFyIERFRkFVTFRfUkVEVVhfUk9PVF9LRVkgPSAnYXBvbGxvJztcbmZ1bmN0aW9uIGRlZmF1bHRSZWR1eFJvb3RTZWxlY3RvcihzdGF0ZSkge1xuICAgIHJldHVybiBzdGF0ZVtERUZBVUxUX1JFRFVYX1JPT1RfS0VZXTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHREYXRhSWRGcm9tT2JqZWN0KHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHQuX190eXBlbmFtZSkge1xuICAgICAgICBpZiAocmVzdWx0LmlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuX190eXBlbmFtZSArIFwiOlwiICsgcmVzdWx0LmlkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQuX2lkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuX190eXBlbmFtZSArIFwiOlwiICsgcmVzdWx0Ll9pZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbnZhciBoYXNTdWdnZXN0ZWREZXZ0b29scyA9IGZhbHNlO1xudmFyIEFwb2xsb0NsaWVudCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQXBvbGxvQ2xpZW50KG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChzdG9yZSkge1xuICAgICAgICAgICAgICAgIF90aGlzLnNldFN0b3JlKHN0b3JlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG5leHQpIHsgcmV0dXJuIGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXZpb3VzQXBvbGxvU3RhdGUgPSBfdGhpcy5xdWVyeU1hbmFnZXIuc2VsZWN0QXBvbGxvU3RhdGUoc3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmV0dXJuVmFsdWUgPSBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdBcG9sbG9TdGF0ZSA9IF90aGlzLnF1ZXJ5TWFuYWdlci5zZWxlY3RBcG9sbG9TdGF0ZShzdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdBcG9sbG9TdGF0ZSAhPT0gcHJldmlvdXNBcG9sbG9TdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMucXVlcnlNYW5hZ2VyLmJyb2FkY2FzdE5ld1N0b3JlKHN0b3JlLmdldFN0YXRlKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpcy5kZXZUb29sc0hvb2tDYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuZGV2VG9vbHNIb29rQ2Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJpZXM6IF90aGlzLnF1ZXJ5TWFuYWdlci5xdWVyeVN0b3JlLmdldFN0b3JlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0aW9uczogX3RoaXMucXVlcnlNYW5hZ2VyLm11dGF0aW9uU3RvcmUuZ2V0U3RvcmUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHM6IF90aGlzLnF1ZXJ5TWFuYWdlci5nZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gICAgICAgICAgICAgICAgfTsgfTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIHZhciBkYXRhSWRGcm9tT2JqZWN0ID0gb3B0aW9ucy5kYXRhSWRGcm9tT2JqZWN0O1xuICAgICAgICB2YXIgbmV0d29ya0ludGVyZmFjZSA9IG9wdGlvbnMubmV0d29ya0ludGVyZmFjZSwgcmVkdXhSb290U2VsZWN0b3IgPSBvcHRpb25zLnJlZHV4Um9vdFNlbGVjdG9yLCBpbml0aWFsU3RhdGUgPSBvcHRpb25zLmluaXRpYWxTdGF0ZSwgX2EgPSBvcHRpb25zLnNzck1vZGUsIHNzck1vZGUgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSwgX2IgPSBvcHRpb25zLnNzckZvcmNlRmV0Y2hEZWxheSwgc3NyRm9yY2VGZXRjaERlbGF5ID0gX2IgPT09IHZvaWQgMCA/IDAgOiBfYiwgX2MgPSBvcHRpb25zLmFkZFR5cGVuYW1lLCBhZGRUeXBlbmFtZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIGN1c3RvbVJlc29sdmVycyA9IG9wdGlvbnMuY3VzdG9tUmVzb2x2ZXJzLCBjb25uZWN0VG9EZXZUb29scyA9IG9wdGlvbnMuY29ubmVjdFRvRGV2VG9vbHMsIGZyYWdtZW50TWF0Y2hlciA9IG9wdGlvbnMuZnJhZ21lbnRNYXRjaGVyLCBfZCA9IG9wdGlvbnMucXVlcnlEZWR1cGxpY2F0aW9uLCBxdWVyeURlZHVwbGljYXRpb24gPSBfZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9kO1xuICAgICAgICBpZiAodHlwZW9mIHJlZHV4Um9vdFNlbGVjdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnJlZHV4Um9vdFNlbGVjdG9yID0gcmVkdXhSb290U2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlZHV4Um9vdFNlbGVjdG9yICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdcInJlZHV4Um9vdFNlbGVjdG9yXCIgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRNYXRjaGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5mcmFnbWVudE1hdGNoZXIgPSBuZXcgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50TWF0Y2hlciA9IGZyYWdtZW50TWF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY3JlYXRlUXVlcnkgPSBmdW5jdGlvbiAoZ2V0UmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IGdldFJlc3VsdChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQXBvbGxvIENsaWVudCBkb2VzIG5vdCBzdXBwb3J0IG11bHRpcGxlIHJlc3VsdHMgZnJvbSBhbiBPYnNlcnZhYmxlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiByZWplY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG5ldHdvcmtJbnRlcmZhY2UgaW5zdGFuY2VvZiBBcG9sbG9MaW5rKSB7XG4gICAgICAgICAgICB2YXIgY291bnRfMSA9IDA7XG4gICAgICAgICAgICB0aGlzLm5ldHdvcmtJbnRlcmZhY2UgPSB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGNyZWF0ZVF1ZXJ5KGZ1bmN0aW9uIChyZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGVjdXRlKG5ldHdvcmtJbnRlcmZhY2UsIHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN1YnNjcmliZTogZnVuY3Rpb24gKHJlcXVlc3QsIGhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFfdGhpcy5zdWJzY3JpcHRpb25NYXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbk1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gZXhlY3V0ZShuZXR3b3JrSW50ZXJmYWNlLCByZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIGhhbmRsZXIodW5kZWZpbmVkLCBkYXRhKTsgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHsgcmV0dXJuIGhhbmRsZXIoW2Vycm9yXSk7IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogaGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpZCA9IGNvdW50XzEudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3Vic2NyaXB0aW9uTWFwLnNldChpZCwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgY291bnRfMSsrO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWQ7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZTogZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpcy5zdWJzY3JpcHRpb25NYXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdWJzY3JpcHRpb24gPSBfdGhpcy5zdWJzY3JpcHRpb25NYXAuZ2V0KGlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZXR3b3JrSW50ZXJmYWNlID0gbmV0d29ya0ludGVyZmFjZVxuICAgICAgICAgICAgICAgID8gbmV0d29ya0ludGVyZmFjZVxuICAgICAgICAgICAgICAgIDogY3JlYXRlTmV0d29ya0ludGVyZmFjZSh7IHVyaTogJy9ncmFwaHFsJyB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxTdGF0ZSA9IGluaXRpYWxTdGF0ZSA/IGluaXRpYWxTdGF0ZSA6IHt9O1xuICAgICAgICB0aGlzLmFkZFR5cGVuYW1lID0gYWRkVHlwZW5hbWU7XG4gICAgICAgIHRoaXMuZGlzYWJsZU5ldHdvcmtGZXRjaGVzID0gc3NyTW9kZSB8fCBzc3JGb3JjZUZldGNoRGVsYXkgPiAwO1xuICAgICAgICB0aGlzLmRhdGFJZCA9IGRhdGFJZEZyb21PYmplY3QgPVxuICAgICAgICAgICAgZGF0YUlkRnJvbU9iamVjdCB8fCBkZWZhdWx0RGF0YUlkRnJvbU9iamVjdDtcbiAgICAgICAgdGhpcy5kYXRhSWRGcm9tT2JqZWN0ID0gdGhpcy5kYXRhSWQ7XG4gICAgICAgIHRoaXMuZmllbGRXaXRoQXJncyA9IGdldFN0b3JlS2V5TmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeURlZHVwbGljYXRpb24gPSBxdWVyeURlZHVwbGljYXRpb247XG4gICAgICAgIHRoaXMuc3NyTW9kZSA9IHNzck1vZGU7XG4gICAgICAgIGlmIChzc3JGb3JjZUZldGNoRGVsYXkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKF90aGlzLmRpc2FibGVOZXR3b3JrRmV0Y2hlcyA9IGZhbHNlKTsgfSwgc3NyRm9yY2VGZXRjaERlbGF5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZHVjZXJDb25maWcgPSB7XG4gICAgICAgICAgICBkYXRhSWRGcm9tT2JqZWN0OiBkYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgY3VzdG9tUmVzb2x2ZXJzOiBjdXN0b21SZXNvbHZlcnMsXG4gICAgICAgICAgICBhZGRUeXBlbmFtZTogYWRkVHlwZW5hbWUsXG4gICAgICAgICAgICBmcmFnbWVudE1hdGNoZXI6IHRoaXMuZnJhZ21lbnRNYXRjaGVyLm1hdGNoLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLndhdGNoUXVlcnkgPSB0aGlzLndhdGNoUXVlcnkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHRoaXMucXVlcnkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5tdXRhdGUgPSB0aGlzLm11dGF0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnNldFN0b3JlID0gdGhpcy5zZXRTdG9yZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnJlc2V0U3RvcmUgPSB0aGlzLnJlc2V0U3RvcmUuYmluZCh0aGlzKTtcbiAgICAgICAgdmFyIGRlZmF1bHRDb25uZWN0VG9EZXZUb29scyA9ICFpc1Byb2R1Y3Rpb24oKSAmJlxuICAgICAgICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgICF3aW5kb3cuX19BUE9MTE9fQ0xJRU5UX187XG4gICAgICAgIGlmICh0eXBlb2YgY29ubmVjdFRvRGV2VG9vbHMgPT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICA/IGRlZmF1bHRDb25uZWN0VG9EZXZUb29sc1xuICAgICAgICAgICAgOiBjb25uZWN0VG9EZXZUb29scykge1xuICAgICAgICAgICAgd2luZG93Ll9fQVBPTExPX0NMSUVOVF9fID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhhc1N1Z2dlc3RlZERldnRvb2xzICYmICFpc1Byb2R1Y3Rpb24oKSkge1xuICAgICAgICAgICAgaGFzU3VnZ2VzdGVkRGV2dG9vbHMgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50ICYmXG4gICAgICAgICAgICAgICAgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5fX0FQT0xMT19ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdEb3dubG9hZCB0aGUgQXBvbGxvIERldlRvb2xzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vY2hyb21lLmdvb2dsZS5jb20vd2Vic3RvcmUvZGV0YWlsL2Fwb2xsby1jbGllbnQtZGV2ZWxvcGVyLXQvamRra25ra2JlYmJhcGlsZ29lY2NjaWdsa2ZibWJuZm0nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIH1cbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLndhdGNoUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlTmV0d29ya0ZldGNoZXMgJiYgb3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seScpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBfX2Fzc2lnbih7fSwgb3B0aW9ucywgeyBmZXRjaFBvbGljeTogJ2NhY2hlLWZpcnN0JyB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeU1hbmFnZXIud2F0Y2hRdWVyeShvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgICAgICBpZiAob3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ2NhY2hlLWFuZC1uZXR3b3JrJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYWNoZS1hbmQtbmV0d29yayBmZXRjaFBvbGljeSBjYW4gb25seSBiZSB1c2VkIHdpdGggd2F0Y2hRdWVyeScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVOZXR3b3JrRmV0Y2hlcyAmJiBvcHRpb25zLmZldGNoUG9saWN5ID09PSAnbmV0d29yay1vbmx5Jykge1xuICAgICAgICAgICAgb3B0aW9ucyA9IF9fYXNzaWduKHt9LCBvcHRpb25zLCB7IGZldGNoUG9saWN5OiAnY2FjaGUtZmlyc3QnIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5TWFuYWdlci5xdWVyeShvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUubXV0YXRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyLm11dGF0ZShvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyLnN0YXJ0R3JhcGhRTFN1YnNjcmlwdGlvbihvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUucmVhZFF1ZXJ5ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdFByb3h5KCkucmVhZFF1ZXJ5KG9wdGlvbnMpO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5yZWFkRnJhZ21lbnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0UHJveHkoKS5yZWFkRnJhZ21lbnQob3B0aW9ucyk7XG4gICAgfTtcbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLndyaXRlUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0UHJveHkoKS53cml0ZVF1ZXJ5KG9wdGlvbnMpO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS53cml0ZUZyYWdtZW50ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdFByb3h5KCkud3JpdGVGcmFnbWVudChvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUucmVkdWNlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUFwb2xsb1JlZHVjZXIodGhpcy5yZWR1Y2VyQ29uZmlnKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUuX19hY3Rpb25Ib29rRm9yRGV2VG9vbHMgPSBmdW5jdGlvbiAoY2IpIHtcbiAgICAgICAgdGhpcy5kZXZUb29sc0hvb2tDYiA9IGNiO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5pbml0U3RvcmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLnN0b3JlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVkdXhSb290U2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGluaXRpYWxpemUgdGhlIHN0b3JlIGJlY2F1c2UgXCJyZWR1eFJvb3RTZWxlY3RvclwiIGlzIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgICAgICAncmVkdXhSb290U2VsZWN0b3Igc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIHRoZSBzdG9yZSBpcyBjcmVhdGVkIG91dHNpZGUgb2YgdGhlIGNsaWVudC4gJyArXG4gICAgICAgICAgICAgICAgJ1RoaXMgbWF5IGxlYWQgdG8gdW5leHBlY3RlZCByZXN1bHRzIHdoZW4gcXVlcnlpbmcgdGhlIHN0b3JlIGludGVybmFsbHkuICcgK1xuICAgICAgICAgICAgICAgIFwiUGxlYXNlIHJlbW92ZSB0aGF0IG9wdGlvbiBmcm9tIEFwb2xsb0NsaWVudCBjb25zdHJ1Y3Rvci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdG9yZShjcmVhdGVBcG9sbG9TdG9yZSh7XG4gICAgICAgICAgICByZWR1eFJvb3RLZXk6IERFRkFVTFRfUkVEVVhfUk9PVF9LRVksXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHRoaXMuaW5pdGlhbFN0YXRlLFxuICAgICAgICAgICAgY29uZmlnOiB0aGlzLnJlZHVjZXJDb25maWcsXG4gICAgICAgICAgICBsb2dnZXI6IGZ1bmN0aW9uIChzdG9yZSkgeyByZXR1cm4gZnVuY3Rpb24gKG5leHQpIHsgcmV0dXJuIGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV4dChhY3Rpb24pO1xuICAgICAgICAgICAgICAgIGlmIChfdGhpcy5kZXZUb29sc0hvb2tDYikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5kZXZUb29sc0hvb2tDYih7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcmllczogX3RoaXMucXVlcnlNYW5hZ2VyLnF1ZXJ5U3RvcmUuZ2V0U3RvcmUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbnM6IF90aGlzLnF1ZXJ5TWFuYWdlci5tdXRhdGlvblN0b3JlLmdldFN0b3JlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0czogX3RoaXMucXVlcnlNYW5hZ2VyLmdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHMoKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9OyB9OyB9LFxuICAgICAgICB9KSk7XG4gICAgfTtcbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLnJlc2V0U3RvcmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5TWFuYWdlciA/IHRoaXMucXVlcnlNYW5hZ2VyLnJlc2V0U3RvcmUoKSA6IG51bGw7XG4gICAgfTtcbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyLmdldEluaXRpYWxTdGF0ZSgpO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5zZXRTdG9yZSA9IGZ1bmN0aW9uIChzdG9yZSkge1xuICAgICAgICB2YXIgcmVkdXhSb290U2VsZWN0b3I7XG4gICAgICAgIGlmICh0aGlzLnJlZHV4Um9vdFNlbGVjdG9yKSB7XG4gICAgICAgICAgICByZWR1eFJvb3RTZWxlY3RvciA9IHRoaXMucmVkdXhSb290U2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZWR1eFJvb3RTZWxlY3RvciA9IGRlZmF1bHRSZWR1eFJvb3RTZWxlY3RvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlZHV4Um9vdFNlbGVjdG9yKHN0b3JlLmdldFN0YXRlKCkpID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGlzdGluZyBzdG9yZSBkb2VzIG5vdCB1c2UgYXBvbGxvUmVkdWNlci4gUGxlYXNlIG1ha2Ugc3VyZSB0aGUgc3RvcmUgJyArXG4gICAgICAgICAgICAgICAgJ2lzIHByb3Blcmx5IGNvbmZpZ3VyZWQgYW5kIFwicmVkdXhSb290U2VsZWN0b3JcIiBpcyBjb3JyZWN0bHkgc3BlY2lmaWVkLicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIgPSBuZXcgUXVlcnlNYW5hZ2VyKHtcbiAgICAgICAgICAgIG5ldHdvcmtJbnRlcmZhY2U6IHRoaXMubmV0d29ya0ludGVyZmFjZSxcbiAgICAgICAgICAgIHJlZHV4Um9vdFNlbGVjdG9yOiByZWR1eFJvb3RTZWxlY3RvcixcbiAgICAgICAgICAgIHN0b3JlOiBzdG9yZSxcbiAgICAgICAgICAgIGFkZFR5cGVuYW1lOiB0aGlzLmFkZFR5cGVuYW1lLFxuICAgICAgICAgICAgcmVkdWNlckNvbmZpZzogdGhpcy5yZWR1Y2VyQ29uZmlnLFxuICAgICAgICAgICAgcXVlcnlEZWR1cGxpY2F0aW9uOiB0aGlzLnF1ZXJ5RGVkdXBsaWNhdGlvbixcbiAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlcjogdGhpcy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICBzc3JNb2RlOiB0aGlzLnNzck1vZGUsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5pbml0UHJveHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5wcm94eSkge1xuICAgICAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgICAgIHRoaXMucHJveHkgPSBuZXcgUmVkdXhEYXRhUHJveHkodGhpcy5zdG9yZSwgdGhpcy5yZWR1eFJvb3RTZWxlY3RvciB8fCBkZWZhdWx0UmVkdXhSb290U2VsZWN0b3IsIHRoaXMuZnJhZ21lbnRNYXRjaGVyLCB0aGlzLnJlZHVjZXJDb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3h5O1xuICAgIH07XG4gICAgcmV0dXJuIEFwb2xsb0NsaWVudDtcbn0oKSk7XG5leHBvcnQgZGVmYXVsdCBBcG9sbG9DbGllbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcG9sbG9DbGllbnQuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9BcG9sbG9DbGllbnQuanNcbi8vIG1vZHVsZSBpZCA9IDI3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///272\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__ = __webpack_require__(/*! ./transport/networkInterface */ 63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_apollo_link_core__ = __webpack_require__(/*! apollo-link-core */ 273);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_apollo_link_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_apollo_link_core__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__data_fragmentMatcher__ = __webpack_require__(/*! ./data/fragmentMatcher */ 71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__store__ = __webpack_require__(/*! ./store */ 64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__core_QueryManager__ = __webpack_require__(/*! ./core/QueryManager */ 282);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_environment__ = __webpack_require__(/*! ./util/environment */ 25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_storeUtils__ = __webpack_require__(/*! ./data/storeUtils */ 17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__data_proxy__ = __webpack_require__(/*! ./data/proxy */ 115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__version__ = __webpack_require__(/*! ./version */ 288);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__version___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__version__);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\nvar DEFAULT_REDUX_ROOT_KEY = 'apollo';\nfunction defaultReduxRootSelector(state) {\n return state[DEFAULT_REDUX_ROOT_KEY];\n}\nfunction defaultDataIdFromObject(result) {\n if (result.__typename) {\n if (result.id !== undefined) {\n return result.__typename + \":\" + result.id;\n }\n if (result._id !== undefined) {\n return result.__typename + \":\" + result._id;\n }\n }\n return null;\n}\nvar hasSuggestedDevtools = false;\nvar ApolloClient = (function () {\n function ApolloClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n this.middleware = function () {\n return function (store) {\n _this.setStore(store);\n return function (next) { return function (action) {\n var previousApolloState = _this.queryManager.selectApolloState(store);\n var returnValue = next(action);\n var newApolloState = _this.queryManager.selectApolloState(store);\n if (newApolloState !== previousApolloState) {\n _this.queryManager.broadcastNewStore(store.getState());\n }\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: action,\n state: {\n queries: _this.queryManager.queryStore.getStore(),\n mutations: _this.queryManager.mutationStore.getStore(),\n },\n dataWithOptimisticResults: _this.queryManager.getDataWithOptimisticResults(),\n });\n }\n return returnValue;\n }; };\n };\n };\n var dataIdFromObject = options.dataIdFromObject;\n var networkInterface = options.networkInterface, reduxRootSelector = options.reduxRootSelector, initialState = options.initialState, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, _c = options.addTypename, addTypename = _c === void 0 ? true : _c, customResolvers = options.customResolvers, connectToDevTools = options.connectToDevTools, fragmentMatcher = options.fragmentMatcher, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d;\n if (typeof reduxRootSelector === 'function') {\n this.reduxRootSelector = reduxRootSelector;\n }\n else if (typeof reduxRootSelector !== 'undefined') {\n throw new Error('\"reduxRootSelector\" must be a function.');\n }\n if (typeof fragmentMatcher === 'undefined') {\n this.fragmentMatcher = new __WEBPACK_IMPORTED_MODULE_2__data_fragmentMatcher__[\"a\" /* HeuristicFragmentMatcher */]();\n }\n else {\n this.fragmentMatcher = fragmentMatcher;\n }\n var createQuery = function (getResult) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n var resolved = false;\n var subscription = getResult(request).subscribe({\n next: function (data) {\n if (!resolved) {\n resolve(data);\n resolved = true;\n }\n else {\n console.warn('Apollo Client does not support multiple results from an Observable');\n }\n },\n error: reject,\n complete: function () { return subscription.unsubscribe(); },\n });\n });\n };\n };\n if (networkInterface instanceof __WEBPACK_IMPORTED_MODULE_1_apollo_link_core__[\"ApolloLink\"]) {\n var count_1 = 0;\n this.networkInterface = {\n query: createQuery(function (request) {\n return Object(__WEBPACK_IMPORTED_MODULE_1_apollo_link_core__[\"execute\"])(networkInterface, request);\n }),\n subscribe: function (request, handler) {\n if (!_this.subscriptionMap) {\n _this.subscriptionMap = new Map();\n }\n var subscription = Object(__WEBPACK_IMPORTED_MODULE_1_apollo_link_core__[\"execute\"])(networkInterface, request).subscribe({\n next: function (data) { return handler(undefined, data); },\n error: function (error) { return handler([error]); },\n complete: handler,\n });\n var id = count_1.toString();\n _this.subscriptionMap.set(id, subscription);\n count_1++;\n return id;\n },\n unsubscribe: function (id) {\n if (_this.subscriptionMap) {\n var subscription = _this.subscriptionMap.get(id);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n },\n };\n }\n else {\n this.networkInterface = networkInterface\n ? networkInterface\n : Object(__WEBPACK_IMPORTED_MODULE_0__transport_networkInterface__[\"b\" /* createNetworkInterface */])({ uri: '/graphql' });\n }\n this.initialState = initialState ? initialState : {};\n this.addTypename = addTypename;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.dataId = dataIdFromObject =\n dataIdFromObject || defaultDataIdFromObject;\n this.dataIdFromObject = this.dataId;\n this.fieldWithArgs = __WEBPACK_IMPORTED_MODULE_6__data_storeUtils__[\"a\" /* getStoreKeyName */];\n this.queryDeduplication = queryDeduplication;\n this.ssrMode = ssrMode;\n if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n }\n this.reducerConfig = {\n dataIdFromObject: dataIdFromObject,\n customResolvers: customResolvers,\n addTypename: addTypename,\n fragmentMatcher: this.fragmentMatcher.match,\n };\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.setStore = this.setStore.bind(this);\n this.resetStore = this.resetStore.bind(this);\n var defaultConnectToDevTools = !Object(__WEBPACK_IMPORTED_MODULE_5__util_environment__[\"b\" /* isProduction */])() &&\n typeof window !== 'undefined' &&\n !window.__APOLLO_CLIENT__;\n if (typeof connectToDevTools === 'undefined'\n ? defaultConnectToDevTools\n : connectToDevTools) {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && !Object(__WEBPACK_IMPORTED_MODULE_5__util_environment__[\"b\" /* isProduction */])()) {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self) {\n if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n if (navigator.userAgent.indexOf('Chrome') > -1) {\n console.debug('Download the Apollo DevTools ' +\n 'for a better development experience: ' +\n 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm');\n }\n }\n }\n }\n this.version = __WEBPACK_IMPORTED_MODULE_8__version__[\"version\"];\n }\n ApolloClient.prototype.watchQuery = function (options) {\n this.initStore();\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign({}, options, { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n this.initStore();\n if (options.fetchPolicy === 'cache-and-network') {\n throw new Error('cache-and-network fetchPolicy can only be used with watchQuery');\n }\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign({}, options, { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n this.initStore();\n return this.queryManager.mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n this.initStore();\n return this.queryManager.startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options) {\n return this.initProxy().readQuery(options);\n };\n ApolloClient.prototype.readFragment = function (options) {\n return this.initProxy().readFragment(options);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n return this.initProxy().writeQuery(options);\n };\n ApolloClient.prototype.writeFragment = function (options) {\n return this.initProxy().writeFragment(options);\n };\n ApolloClient.prototype.reducer = function () {\n return Object(__WEBPACK_IMPORTED_MODULE_3__store__[\"a\" /* createApolloReducer */])(this.reducerConfig);\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.initStore = function () {\n var _this = this;\n if (this.store) {\n return;\n }\n if (this.reduxRootSelector) {\n throw new Error('Cannot initialize the store because \"reduxRootSelector\" is provided. ' +\n 'reduxRootSelector should only be used when the store is created outside of the client. ' +\n 'This may lead to unexpected results when querying the store internally. ' +\n \"Please remove that option from ApolloClient constructor.\");\n }\n this.setStore(Object(__WEBPACK_IMPORTED_MODULE_3__store__[\"b\" /* createApolloStore */])({\n reduxRootKey: DEFAULT_REDUX_ROOT_KEY,\n initialState: this.initialState,\n config: this.reducerConfig,\n logger: function (store) { return function (next) { return function (action) {\n var result = next(action);\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: action,\n state: {\n queries: _this.queryManager.queryStore.getStore(),\n mutations: _this.queryManager.mutationStore.getStore(),\n },\n dataWithOptimisticResults: _this.queryManager.getDataWithOptimisticResults(),\n });\n }\n return result;\n }; }; },\n }));\n };\n ApolloClient.prototype.resetStore = function () {\n return this.queryManager ? this.queryManager.resetStore() : null;\n };\n ApolloClient.prototype.getInitialState = function () {\n this.initStore();\n return this.queryManager.getInitialState();\n };\n ApolloClient.prototype.setStore = function (store) {\n var reduxRootSelector;\n if (this.reduxRootSelector) {\n reduxRootSelector = this.reduxRootSelector;\n }\n else {\n reduxRootSelector = defaultReduxRootSelector;\n }\n if (typeof reduxRootSelector(store.getState()) === 'undefined') {\n throw new Error('Existing store does not use apolloReducer. Please make sure the store ' +\n 'is properly configured and \"reduxRootSelector\" is correctly specified.');\n }\n this.store = store;\n this.queryManager = new __WEBPACK_IMPORTED_MODULE_4__core_QueryManager__[\"a\" /* QueryManager */]({\n networkInterface: this.networkInterface,\n reduxRootSelector: reduxRootSelector,\n store: store,\n addTypename: this.addTypename,\n reducerConfig: this.reducerConfig,\n queryDeduplication: this.queryDeduplication,\n fragmentMatcher: this.fragmentMatcher,\n ssrMode: this.ssrMode,\n });\n };\n ApolloClient.prototype.initProxy = function () {\n if (!this.proxy) {\n this.initStore();\n this.proxy = new __WEBPACK_IMPORTED_MODULE_7__data_proxy__[\"a\" /* ReduxDataProxy */](this.store, this.reduxRootSelector || defaultReduxRootSelector, this.fragmentMatcher, this.reducerConfig);\n }\n return this.proxy;\n };\n return ApolloClient;\n}());\n/* harmony default export */ __webpack_exports__[\"a\"] = (ApolloClient);\n//# sourceMappingURL=ApolloClient.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjcyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvQXBvbGxvQ2xpZW50LmpzP2M4ZGIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlLCB9IGZyb20gJy4vdHJhbnNwb3J0L25ldHdvcmtJbnRlcmZhY2UnO1xuaW1wb3J0IHsgZXhlY3V0ZSwgQXBvbGxvTGluaywgfSBmcm9tICdhcG9sbG8tbGluay1jb3JlJztcbmltcG9ydCB7IEhldXJpc3RpY0ZyYWdtZW50TWF0Y2hlciwgfSBmcm9tICcuL2RhdGEvZnJhZ21lbnRNYXRjaGVyJztcbmltcG9ydCB7IGNyZWF0ZUFwb2xsb1N0b3JlLCBjcmVhdGVBcG9sbG9SZWR1Y2VyLCB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgUXVlcnlNYW5hZ2VyIH0gZnJvbSAnLi9jb3JlL1F1ZXJ5TWFuYWdlcic7XG5pbXBvcnQgeyBpc1Byb2R1Y3Rpb24gfSBmcm9tICcuL3V0aWwvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgZ2V0U3RvcmVLZXlOYW1lIH0gZnJvbSAnLi9kYXRhL3N0b3JlVXRpbHMnO1xuaW1wb3J0IHsgUmVkdXhEYXRhUHJveHksIH0gZnJvbSAnLi9kYXRhL3Byb3h5JztcbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24nO1xudmFyIERFRkFVTFRfUkVEVVhfUk9PVF9LRVkgPSAnYXBvbGxvJztcbmZ1bmN0aW9uIGRlZmF1bHRSZWR1eFJvb3RTZWxlY3RvcihzdGF0ZSkge1xuICAgIHJldHVybiBzdGF0ZVtERUZBVUxUX1JFRFVYX1JPT1RfS0VZXTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHREYXRhSWRGcm9tT2JqZWN0KHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHQuX190eXBlbmFtZSkge1xuICAgICAgICBpZiAocmVzdWx0LmlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuX190eXBlbmFtZSArIFwiOlwiICsgcmVzdWx0LmlkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQuX2lkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuX190eXBlbmFtZSArIFwiOlwiICsgcmVzdWx0Ll9pZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbnZhciBoYXNTdWdnZXN0ZWREZXZ0b29scyA9IGZhbHNlO1xudmFyIEFwb2xsb0NsaWVudCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQXBvbGxvQ2xpZW50KG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChzdG9yZSkge1xuICAgICAgICAgICAgICAgIF90aGlzLnNldFN0b3JlKHN0b3JlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG5leHQpIHsgcmV0dXJuIGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXZpb3VzQXBvbGxvU3RhdGUgPSBfdGhpcy5xdWVyeU1hbmFnZXIuc2VsZWN0QXBvbGxvU3RhdGUoc3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmV0dXJuVmFsdWUgPSBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdBcG9sbG9TdGF0ZSA9IF90aGlzLnF1ZXJ5TWFuYWdlci5zZWxlY3RBcG9sbG9TdGF0ZShzdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdBcG9sbG9TdGF0ZSAhPT0gcHJldmlvdXNBcG9sbG9TdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMucXVlcnlNYW5hZ2VyLmJyb2FkY2FzdE5ld1N0b3JlKHN0b3JlLmdldFN0YXRlKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpcy5kZXZUb29sc0hvb2tDYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuZGV2VG9vbHNIb29rQ2Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJpZXM6IF90aGlzLnF1ZXJ5TWFuYWdlci5xdWVyeVN0b3JlLmdldFN0b3JlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0aW9uczogX3RoaXMucXVlcnlNYW5hZ2VyLm11dGF0aW9uU3RvcmUuZ2V0U3RvcmUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHM6IF90aGlzLnF1ZXJ5TWFuYWdlci5nZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gICAgICAgICAgICAgICAgfTsgfTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIHZhciBkYXRhSWRGcm9tT2JqZWN0ID0gb3B0aW9ucy5kYXRhSWRGcm9tT2JqZWN0O1xuICAgICAgICB2YXIgbmV0d29ya0ludGVyZmFjZSA9IG9wdGlvbnMubmV0d29ya0ludGVyZmFjZSwgcmVkdXhSb290U2VsZWN0b3IgPSBvcHRpb25zLnJlZHV4Um9vdFNlbGVjdG9yLCBpbml0aWFsU3RhdGUgPSBvcHRpb25zLmluaXRpYWxTdGF0ZSwgX2EgPSBvcHRpb25zLnNzck1vZGUsIHNzck1vZGUgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSwgX2IgPSBvcHRpb25zLnNzckZvcmNlRmV0Y2hEZWxheSwgc3NyRm9yY2VGZXRjaERlbGF5ID0gX2IgPT09IHZvaWQgMCA/IDAgOiBfYiwgX2MgPSBvcHRpb25zLmFkZFR5cGVuYW1lLCBhZGRUeXBlbmFtZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIGN1c3RvbVJlc29sdmVycyA9IG9wdGlvbnMuY3VzdG9tUmVzb2x2ZXJzLCBjb25uZWN0VG9EZXZUb29scyA9IG9wdGlvbnMuY29ubmVjdFRvRGV2VG9vbHMsIGZyYWdtZW50TWF0Y2hlciA9IG9wdGlvbnMuZnJhZ21lbnRNYXRjaGVyLCBfZCA9IG9wdGlvbnMucXVlcnlEZWR1cGxpY2F0aW9uLCBxdWVyeURlZHVwbGljYXRpb24gPSBfZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9kO1xuICAgICAgICBpZiAodHlwZW9mIHJlZHV4Um9vdFNlbGVjdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnJlZHV4Um9vdFNlbGVjdG9yID0gcmVkdXhSb290U2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHJlZHV4Um9vdFNlbGVjdG9yICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdcInJlZHV4Um9vdFNlbGVjdG9yXCIgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRNYXRjaGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5mcmFnbWVudE1hdGNoZXIgPSBuZXcgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50TWF0Y2hlciA9IGZyYWdtZW50TWF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY3JlYXRlUXVlcnkgPSBmdW5jdGlvbiAoZ2V0UmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IGdldFJlc3VsdChyZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignQXBvbGxvIENsaWVudCBkb2VzIG5vdCBzdXBwb3J0IG11bHRpcGxlIHJlc3VsdHMgZnJvbSBhbiBPYnNlcnZhYmxlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiByZWplY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG5ldHdvcmtJbnRlcmZhY2UgaW5zdGFuY2VvZiBBcG9sbG9MaW5rKSB7XG4gICAgICAgICAgICB2YXIgY291bnRfMSA9IDA7XG4gICAgICAgICAgICB0aGlzLm5ldHdvcmtJbnRlcmZhY2UgPSB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGNyZWF0ZVF1ZXJ5KGZ1bmN0aW9uIChyZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGVjdXRlKG5ldHdvcmtJbnRlcmZhY2UsIHJlcXVlc3QpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN1YnNjcmliZTogZnVuY3Rpb24gKHJlcXVlc3QsIGhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFfdGhpcy5zdWJzY3JpcHRpb25NYXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnN1YnNjcmlwdGlvbk1hcCA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gZXhlY3V0ZShuZXR3b3JrSW50ZXJmYWNlLCByZXF1ZXN0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIGhhbmRsZXIodW5kZWZpbmVkLCBkYXRhKTsgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHsgcmV0dXJuIGhhbmRsZXIoW2Vycm9yXSk7IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogaGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpZCA9IGNvdW50XzEudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3Vic2NyaXB0aW9uTWFwLnNldChpZCwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgY291bnRfMSsrO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWQ7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZTogZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpcy5zdWJzY3JpcHRpb25NYXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdWJzY3JpcHRpb24gPSBfdGhpcy5zdWJzY3JpcHRpb25NYXAuZ2V0KGlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZXR3b3JrSW50ZXJmYWNlID0gbmV0d29ya0ludGVyZmFjZVxuICAgICAgICAgICAgICAgID8gbmV0d29ya0ludGVyZmFjZVxuICAgICAgICAgICAgICAgIDogY3JlYXRlTmV0d29ya0ludGVyZmFjZSh7IHVyaTogJy9ncmFwaHFsJyB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRpYWxTdGF0ZSA9IGluaXRpYWxTdGF0ZSA/IGluaXRpYWxTdGF0ZSA6IHt9O1xuICAgICAgICB0aGlzLmFkZFR5cGVuYW1lID0gYWRkVHlwZW5hbWU7XG4gICAgICAgIHRoaXMuZGlzYWJsZU5ldHdvcmtGZXRjaGVzID0gc3NyTW9kZSB8fCBzc3JGb3JjZUZldGNoRGVsYXkgPiAwO1xuICAgICAgICB0aGlzLmRhdGFJZCA9IGRhdGFJZEZyb21PYmplY3QgPVxuICAgICAgICAgICAgZGF0YUlkRnJvbU9iamVjdCB8fCBkZWZhdWx0RGF0YUlkRnJvbU9iamVjdDtcbiAgICAgICAgdGhpcy5kYXRhSWRGcm9tT2JqZWN0ID0gdGhpcy5kYXRhSWQ7XG4gICAgICAgIHRoaXMuZmllbGRXaXRoQXJncyA9IGdldFN0b3JlS2V5TmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeURlZHVwbGljYXRpb24gPSBxdWVyeURlZHVwbGljYXRpb247XG4gICAgICAgIHRoaXMuc3NyTW9kZSA9IHNzck1vZGU7XG4gICAgICAgIGlmIChzc3JGb3JjZUZldGNoRGVsYXkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gKF90aGlzLmRpc2FibGVOZXR3b3JrRmV0Y2hlcyA9IGZhbHNlKTsgfSwgc3NyRm9yY2VGZXRjaERlbGF5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZHVjZXJDb25maWcgPSB7XG4gICAgICAgICAgICBkYXRhSWRGcm9tT2JqZWN0OiBkYXRhSWRGcm9tT2JqZWN0LFxuICAgICAgICAgICAgY3VzdG9tUmVzb2x2ZXJzOiBjdXN0b21SZXNvbHZlcnMsXG4gICAgICAgICAgICBhZGRUeXBlbmFtZTogYWRkVHlwZW5hbWUsXG4gICAgICAgICAgICBmcmFnbWVudE1hdGNoZXI6IHRoaXMuZnJhZ21lbnRNYXRjaGVyLm1hdGNoLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLndhdGNoUXVlcnkgPSB0aGlzLndhdGNoUXVlcnkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHRoaXMucXVlcnkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5tdXRhdGUgPSB0aGlzLm11dGF0ZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnNldFN0b3JlID0gdGhpcy5zZXRTdG9yZS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLnJlc2V0U3RvcmUgPSB0aGlzLnJlc2V0U3RvcmUuYmluZCh0aGlzKTtcbiAgICAgICAgdmFyIGRlZmF1bHRDb25uZWN0VG9EZXZUb29scyA9ICFpc1Byb2R1Y3Rpb24oKSAmJlxuICAgICAgICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgICF3aW5kb3cuX19BUE9MTE9fQ0xJRU5UX187XG4gICAgICAgIGlmICh0eXBlb2YgY29ubmVjdFRvRGV2VG9vbHMgPT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICA/IGRlZmF1bHRDb25uZWN0VG9EZXZUb29sc1xuICAgICAgICAgICAgOiBjb25uZWN0VG9EZXZUb29scykge1xuICAgICAgICAgICAgd2luZG93Ll9fQVBPTExPX0NMSUVOVF9fID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWhhc1N1Z2dlc3RlZERldnRvb2xzICYmICFpc1Byb2R1Y3Rpb24oKSkge1xuICAgICAgICAgICAgaGFzU3VnZ2VzdGVkRGV2dG9vbHMgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAgICAgd2luZG93LmRvY3VtZW50ICYmXG4gICAgICAgICAgICAgICAgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5fX0FQT0xMT19ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdEb3dubG9hZCB0aGUgQXBvbGxvIERldlRvb2xzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vY2hyb21lLmdvb2dsZS5jb20vd2Vic3RvcmUvZGV0YWlsL2Fwb2xsby1jbGllbnQtZGV2ZWxvcGVyLXQvamRra25ra2JlYmJhcGlsZ29lY2NjaWdsa2ZibWJuZm0nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIH1cbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLndhdGNoUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlTmV0d29ya0ZldGNoZXMgJiYgb3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seScpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBfX2Fzc2lnbih7fSwgb3B0aW9ucywgeyBmZXRjaFBvbGljeTogJ2NhY2hlLWZpcnN0JyB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeU1hbmFnZXIud2F0Y2hRdWVyeShvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgICAgICBpZiAob3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ2NhY2hlLWFuZC1uZXR3b3JrJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYWNoZS1hbmQtbmV0d29yayBmZXRjaFBvbGljeSBjYW4gb25seSBiZSB1c2VkIHdpdGggd2F0Y2hRdWVyeScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVOZXR3b3JrRmV0Y2hlcyAmJiBvcHRpb25zLmZldGNoUG9saWN5ID09PSAnbmV0d29yay1vbmx5Jykge1xuICAgICAgICAgICAgb3B0aW9ucyA9IF9fYXNzaWduKHt9LCBvcHRpb25zLCB7IGZldGNoUG9saWN5OiAnY2FjaGUtZmlyc3QnIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5TWFuYWdlci5xdWVyeShvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUubXV0YXRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyLm11dGF0ZShvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyLnN0YXJ0R3JhcGhRTFN1YnNjcmlwdGlvbihvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUucmVhZFF1ZXJ5ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdFByb3h5KCkucmVhZFF1ZXJ5KG9wdGlvbnMpO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5yZWFkRnJhZ21lbnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0UHJveHkoKS5yZWFkRnJhZ21lbnQob3B0aW9ucyk7XG4gICAgfTtcbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLndyaXRlUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0UHJveHkoKS53cml0ZVF1ZXJ5KG9wdGlvbnMpO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS53cml0ZUZyYWdtZW50ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdFByb3h5KCkud3JpdGVGcmFnbWVudChvcHRpb25zKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUucmVkdWNlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUFwb2xsb1JlZHVjZXIodGhpcy5yZWR1Y2VyQ29uZmlnKTtcbiAgICB9O1xuICAgIEFwb2xsb0NsaWVudC5wcm90b3R5cGUuX19hY3Rpb25Ib29rRm9yRGV2VG9vbHMgPSBmdW5jdGlvbiAoY2IpIHtcbiAgICAgICAgdGhpcy5kZXZUb29sc0hvb2tDYiA9IGNiO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5pbml0U3RvcmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLnN0b3JlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVkdXhSb290U2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGluaXRpYWxpemUgdGhlIHN0b3JlIGJlY2F1c2UgXCJyZWR1eFJvb3RTZWxlY3RvclwiIGlzIHByb3ZpZGVkLiAnICtcbiAgICAgICAgICAgICAgICAncmVkdXhSb290U2VsZWN0b3Igc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIHRoZSBzdG9yZSBpcyBjcmVhdGVkIG91dHNpZGUgb2YgdGhlIGNsaWVudC4gJyArXG4gICAgICAgICAgICAgICAgJ1RoaXMgbWF5IGxlYWQgdG8gdW5leHBlY3RlZCByZXN1bHRzIHdoZW4gcXVlcnlpbmcgdGhlIHN0b3JlIGludGVybmFsbHkuICcgK1xuICAgICAgICAgICAgICAgIFwiUGxlYXNlIHJlbW92ZSB0aGF0IG9wdGlvbiBmcm9tIEFwb2xsb0NsaWVudCBjb25zdHJ1Y3Rvci5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdG9yZShjcmVhdGVBcG9sbG9TdG9yZSh7XG4gICAgICAgICAgICByZWR1eFJvb3RLZXk6IERFRkFVTFRfUkVEVVhfUk9PVF9LRVksXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHRoaXMuaW5pdGlhbFN0YXRlLFxuICAgICAgICAgICAgY29uZmlnOiB0aGlzLnJlZHVjZXJDb25maWcsXG4gICAgICAgICAgICBsb2dnZXI6IGZ1bmN0aW9uIChzdG9yZSkgeyByZXR1cm4gZnVuY3Rpb24gKG5leHQpIHsgcmV0dXJuIGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV4dChhY3Rpb24pO1xuICAgICAgICAgICAgICAgIGlmIChfdGhpcy5kZXZUb29sc0hvb2tDYikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5kZXZUb29sc0hvb2tDYih7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcmllczogX3RoaXMucXVlcnlNYW5hZ2VyLnF1ZXJ5U3RvcmUuZ2V0U3RvcmUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbnM6IF90aGlzLnF1ZXJ5TWFuYWdlci5tdXRhdGlvblN0b3JlLmdldFN0b3JlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0czogX3RoaXMucXVlcnlNYW5hZ2VyLmdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHMoKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9OyB9OyB9LFxuICAgICAgICB9KSk7XG4gICAgfTtcbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLnJlc2V0U3RvcmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5TWFuYWdlciA/IHRoaXMucXVlcnlNYW5hZ2VyLnJlc2V0U3RvcmUoKSA6IG51bGw7XG4gICAgfTtcbiAgICBBcG9sbG9DbGllbnQucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlNYW5hZ2VyLmdldEluaXRpYWxTdGF0ZSgpO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5zZXRTdG9yZSA9IGZ1bmN0aW9uIChzdG9yZSkge1xuICAgICAgICB2YXIgcmVkdXhSb290U2VsZWN0b3I7XG4gICAgICAgIGlmICh0aGlzLnJlZHV4Um9vdFNlbGVjdG9yKSB7XG4gICAgICAgICAgICByZWR1eFJvb3RTZWxlY3RvciA9IHRoaXMucmVkdXhSb290U2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZWR1eFJvb3RTZWxlY3RvciA9IGRlZmF1bHRSZWR1eFJvb3RTZWxlY3RvcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlZHV4Um9vdFNlbGVjdG9yKHN0b3JlLmdldFN0YXRlKCkpID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGlzdGluZyBzdG9yZSBkb2VzIG5vdCB1c2UgYXBvbGxvUmVkdWNlci4gUGxlYXNlIG1ha2Ugc3VyZSB0aGUgc3RvcmUgJyArXG4gICAgICAgICAgICAgICAgJ2lzIHByb3Blcmx5IGNvbmZpZ3VyZWQgYW5kIFwicmVkdXhSb290U2VsZWN0b3JcIiBpcyBjb3JyZWN0bHkgc3BlY2lmaWVkLicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIgPSBuZXcgUXVlcnlNYW5hZ2VyKHtcbiAgICAgICAgICAgIG5ldHdvcmtJbnRlcmZhY2U6IHRoaXMubmV0d29ya0ludGVyZmFjZSxcbiAgICAgICAgICAgIHJlZHV4Um9vdFNlbGVjdG9yOiByZWR1eFJvb3RTZWxlY3RvcixcbiAgICAgICAgICAgIHN0b3JlOiBzdG9yZSxcbiAgICAgICAgICAgIGFkZFR5cGVuYW1lOiB0aGlzLmFkZFR5cGVuYW1lLFxuICAgICAgICAgICAgcmVkdWNlckNvbmZpZzogdGhpcy5yZWR1Y2VyQ29uZmlnLFxuICAgICAgICAgICAgcXVlcnlEZWR1cGxpY2F0aW9uOiB0aGlzLnF1ZXJ5RGVkdXBsaWNhdGlvbixcbiAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlcjogdGhpcy5mcmFnbWVudE1hdGNoZXIsXG4gICAgICAgICAgICBzc3JNb2RlOiB0aGlzLnNzck1vZGUsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgQXBvbGxvQ2xpZW50LnByb3RvdHlwZS5pbml0UHJveHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5wcm94eSkge1xuICAgICAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcbiAgICAgICAgICAgIHRoaXMucHJveHkgPSBuZXcgUmVkdXhEYXRhUHJveHkodGhpcy5zdG9yZSwgdGhpcy5yZWR1eFJvb3RTZWxlY3RvciB8fCBkZWZhdWx0UmVkdXhSb290U2VsZWN0b3IsIHRoaXMuZnJhZ21lbnRNYXRjaGVyLCB0aGlzLnJlZHVjZXJDb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3h5O1xuICAgIH07XG4gICAgcmV0dXJuIEFwb2xsb0NsaWVudDtcbn0oKSk7XG5leHBvcnQgZGVmYXVsdCBBcG9sbG9DbGllbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcG9sbG9DbGllbnQuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9BcG9sbG9DbGllbnQuanNcbi8vIG1vZHVsZSBpZCA9IDI3MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///272\n"); /***/ }), /* 273 */ @@ -3328,7 +3328,7 @@ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transport_networkInt /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar link_1 = __webpack_require__(/*! ./link */ 122);\nexports.execute = link_1.execute;\nexports.ApolloLink = link_1.ApolloLink;\nvar linkUtils_1 = __webpack_require__(/*! ./linkUtils */ 123);\nexports.makePromise = linkUtils_1.makePromise;\nvar zen_observable_ts_1 = __webpack_require__(/*! zen-observable-ts */ 69);\nexports.Observable = zen_observable_ts_1.default;\n__export(__webpack_require__(/*! zen-observable-ts */ 69));\nexports.default = link_1.ApolloLink;\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjczLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvbm9kZV9tb2R1bGVzL2Fwb2xsby1saW5rLWNvcmUvbGliL2luZGV4LmpzP2U1ZTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGxpbmtfMSA9IHJlcXVpcmUoXCIuL2xpbmtcIik7XG5leHBvcnRzLmV4ZWN1dGUgPSBsaW5rXzEuZXhlY3V0ZTtcbmV4cG9ydHMuQXBvbGxvTGluayA9IGxpbmtfMS5BcG9sbG9MaW5rO1xudmFyIGxpbmtVdGlsc18xID0gcmVxdWlyZShcIi4vbGlua1V0aWxzXCIpO1xuZXhwb3J0cy5tYWtlUHJvbWlzZSA9IGxpbmtVdGlsc18xLm1ha2VQcm9taXNlO1xudmFyIHplbl9vYnNlcnZhYmxlX3RzXzEgPSByZXF1aXJlKFwiemVuLW9ic2VydmFibGUtdHNcIik7XG5leHBvcnRzLk9ic2VydmFibGUgPSB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQ7XG5fX2V4cG9ydChyZXF1aXJlKFwiemVuLW9ic2VydmFibGUtdHNcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gbGlua18xLkFwb2xsb0xpbms7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L25vZGVfbW9kdWxlcy9hcG9sbG8tbGluay1jb3JlL2xpYi9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMjczXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///273\n"); +eval("\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar link_1 = __webpack_require__(/*! ./link */ 122);\nexports.execute = link_1.execute;\nexports.ApolloLink = link_1.ApolloLink;\nvar linkUtils_1 = __webpack_require__(/*! ./linkUtils */ 123);\nexports.makePromise = linkUtils_1.makePromise;\nvar zen_observable_ts_1 = __webpack_require__(/*! zen-observable-ts */ 70);\nexports.Observable = zen_observable_ts_1.default;\n__export(__webpack_require__(/*! zen-observable-ts */ 70));\nexports.default = link_1.ApolloLink;\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjczLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvbm9kZV9tb2R1bGVzL2Fwb2xsby1saW5rLWNvcmUvbGliL2luZGV4LmpzP2U1ZTYiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGxpbmtfMSA9IHJlcXVpcmUoXCIuL2xpbmtcIik7XG5leHBvcnRzLmV4ZWN1dGUgPSBsaW5rXzEuZXhlY3V0ZTtcbmV4cG9ydHMuQXBvbGxvTGluayA9IGxpbmtfMS5BcG9sbG9MaW5rO1xudmFyIGxpbmtVdGlsc18xID0gcmVxdWlyZShcIi4vbGlua1V0aWxzXCIpO1xuZXhwb3J0cy5tYWtlUHJvbWlzZSA9IGxpbmtVdGlsc18xLm1ha2VQcm9taXNlO1xudmFyIHplbl9vYnNlcnZhYmxlX3RzXzEgPSByZXF1aXJlKFwiemVuLW9ic2VydmFibGUtdHNcIik7XG5leHBvcnRzLk9ic2VydmFibGUgPSB6ZW5fb2JzZXJ2YWJsZV90c18xLmRlZmF1bHQ7XG5fX2V4cG9ydChyZXF1aXJlKFwiemVuLW9ic2VydmFibGUtdHNcIikpO1xuZXhwb3J0cy5kZWZhdWx0ID0gbGlua18xLkFwb2xsb0xpbms7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L25vZGVfbW9kdWxlcy9hcG9sbG8tbGluay1jb3JlL2xpYi9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMjczXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///273\n"); /***/ }), /* 274 */ @@ -3364,7 +3364,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.syntaxError = syntaxError;\n\nvar _location = __webpack_require__(/*! ../language/location */ 127);\n\nvar _GraphQLError = __webpack_require__(/*! ./GraphQLError */ 68);\n\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\n/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nfunction syntaxError(source, position, description) {\n var location = (0, _location.getLocation)(source, position);\n var line = location.line + source.locationOffset.line - 1;\n var columnOffset = getColumnOffset(source, location);\n var column = location.column + columnOffset;\n var error = new _GraphQLError.GraphQLError('Syntax Error ' + source.name + ' (' + line + ':' + column + ') ' + description + '\\n\\n' + highlightSourceAtLocation(source, location), undefined, source, [position]);\n return error;\n}\n\n/**\n * Render a helpful description of the location of the error in the GraphQL\n * Source document.\n */\nfunction highlightSourceAtLocation(source, location) {\n var line = location.line;\n var lineOffset = source.locationOffset.line - 1;\n var columnOffset = getColumnOffset(source, location);\n var contextLine = line + lineOffset;\n var prevLineNum = (contextLine - 1).toString();\n var lineNum = contextLine.toString();\n var nextLineNum = (contextLine + 1).toString();\n var padLen = nextLineNum.length;\n var lines = source.body.split(/\\r\\n|[\\n\\r]/g);\n lines[0] = whitespace(source.locationOffset.column - 1) + lines[0];\n return (line >= 2 ? lpad(padLen, prevLineNum) + ': ' + lines[line - 2] + '\\n' : '') + lpad(padLen, lineNum) + ': ' + lines[line - 1] + '\\n' + whitespace(2 + padLen + location.column - 1 + columnOffset) + '^\\n' + (line < lines.length ? lpad(padLen, nextLineNum) + ': ' + lines[line] + '\\n' : '');\n}\n\nfunction getColumnOffset(source, location) {\n return location.line === 1 ? source.locationOffset.column - 1 : 0;\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction lpad(len, str) {\n return whitespace(len - str.length) + str;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjc2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyYXBocWwvZXJyb3Ivc3ludGF4RXJyb3IuanM/ZTlmYSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnN5bnRheEVycm9yID0gc3ludGF4RXJyb3I7XG5cbnZhciBfbG9jYXRpb24gPSByZXF1aXJlKCcuLi9sYW5ndWFnZS9sb2NhdGlvbicpO1xuXG52YXIgX0dyYXBoUUxFcnJvciA9IHJlcXVpcmUoJy4vR3JhcGhRTEVycm9yJyk7XG5cbi8qKlxuICogUHJvZHVjZXMgYSBHcmFwaFFMRXJyb3IgcmVwcmVzZW50aW5nIGEgc3ludGF4IGVycm9yLCBjb250YWluaW5nIHVzZWZ1bFxuICogZGVzY3JpcHRpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN5bnRheCBlcnJvcidzIHBvc2l0aW9uIGluIHRoZSBzb3VyY2UuXG4gKi9cblxuLyoqXG4gKiAgQ29weXJpZ2h0IChjKSAyMDE1LCBGYWNlYm9vaywgSW5jLlxuICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cbmZ1bmN0aW9uIHN5bnRheEVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGRlc2NyaXB0aW9uKSB7XG4gIHZhciBsb2NhdGlvbiA9ICgwLCBfbG9jYXRpb24uZ2V0TG9jYXRpb24pKHNvdXJjZSwgcG9zaXRpb24pO1xuICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmUgKyBzb3VyY2UubG9jYXRpb25PZmZzZXQubGluZSAtIDE7XG4gIHZhciBjb2x1bW5PZmZzZXQgPSBnZXRDb2x1bW5PZmZzZXQoc291cmNlLCBsb2NhdGlvbik7XG4gIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW4gKyBjb2x1bW5PZmZzZXQ7XG4gIHZhciBlcnJvciA9IG5ldyBfR3JhcGhRTEVycm9yLkdyYXBoUUxFcnJvcignU3ludGF4IEVycm9yICcgKyBzb3VyY2UubmFtZSArICcgKCcgKyBsaW5lICsgJzonICsgY29sdW1uICsgJykgJyArIGRlc2NyaXB0aW9uICsgJ1xcblxcbicgKyBoaWdobGlnaHRTb3VyY2VBdExvY2F0aW9uKHNvdXJjZSwgbG9jYXRpb24pLCB1bmRlZmluZWQsIHNvdXJjZSwgW3Bvc2l0aW9uXSk7XG4gIHJldHVybiBlcnJvcjtcbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBoZWxwZnVsIGRlc2NyaXB0aW9uIG9mIHRoZSBsb2NhdGlvbiBvZiB0aGUgZXJyb3IgaW4gdGhlIEdyYXBoUUxcbiAqIFNvdXJjZSBkb2N1bWVudC5cbiAqL1xuZnVuY3Rpb24gaGlnaGxpZ2h0U291cmNlQXRMb2NhdGlvbihzb3VyY2UsIGxvY2F0aW9uKSB7XG4gIHZhciBsaW5lID0gbG9jYXRpb24ubGluZTtcbiAgdmFyIGxpbmVPZmZzZXQgPSBzb3VyY2UubG9jYXRpb25PZmZzZXQubGluZSAtIDE7XG4gIHZhciBjb2x1bW5PZmZzZXQgPSBnZXRDb2x1bW5PZmZzZXQoc291cmNlLCBsb2NhdGlvbik7XG4gIHZhciBjb250ZXh0TGluZSA9IGxpbmUgKyBsaW5lT2Zmc2V0O1xuICB2YXIgcHJldkxpbmVOdW0gPSAoY29udGV4dExpbmUgLSAxKS50b1N0cmluZygpO1xuICB2YXIgbGluZU51bSA9IGNvbnRleHRMaW5lLnRvU3RyaW5nKCk7XG4gIHZhciBuZXh0TGluZU51bSA9IChjb250ZXh0TGluZSArIDEpLnRvU3RyaW5nKCk7XG4gIHZhciBwYWRMZW4gPSBuZXh0TGluZU51bS5sZW5ndGg7XG4gIHZhciBsaW5lcyA9IHNvdXJjZS5ib2R5LnNwbGl0KC9cXHJcXG58W1xcblxccl0vZyk7XG4gIGxpbmVzWzBdID0gd2hpdGVzcGFjZShzb3VyY2UubG9jYXRpb25PZmZzZXQuY29sdW1uIC0gMSkgKyBsaW5lc1swXTtcbiAgcmV0dXJuIChsaW5lID49IDIgPyBscGFkKHBhZExlbiwgcHJldkxpbmVOdW0pICsgJzogJyArIGxpbmVzW2xpbmUgLSAyXSArICdcXG4nIDogJycpICsgbHBhZChwYWRMZW4sIGxpbmVOdW0pICsgJzogJyArIGxpbmVzW2xpbmUgLSAxXSArICdcXG4nICsgd2hpdGVzcGFjZSgyICsgcGFkTGVuICsgbG9jYXRpb24uY29sdW1uIC0gMSArIGNvbHVtbk9mZnNldCkgKyAnXlxcbicgKyAobGluZSA8IGxpbmVzLmxlbmd0aCA/IGxwYWQocGFkTGVuLCBuZXh0TGluZU51bSkgKyAnOiAnICsgbGluZXNbbGluZV0gKyAnXFxuJyA6ICcnKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29sdW1uT2Zmc2V0KHNvdXJjZSwgbG9jYXRpb24pIHtcbiAgcmV0dXJuIGxvY2F0aW9uLmxpbmUgPT09IDEgPyBzb3VyY2UubG9jYXRpb25PZmZzZXQuY29sdW1uIC0gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIHdoaXRlc3BhY2UobGVuKSB7XG4gIHJldHVybiBBcnJheShsZW4gKyAxKS5qb2luKCcgJyk7XG59XG5cbmZ1bmN0aW9uIGxwYWQobGVuLCBzdHIpIHtcbiAgcmV0dXJuIHdoaXRlc3BhY2UobGVuIC0gc3RyLmxlbmd0aCkgKyBzdHI7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9zeW50YXhFcnJvci5qc1xuLy8gbW9kdWxlIGlkID0gMjc2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///276\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.syntaxError = syntaxError;\n\nvar _location = __webpack_require__(/*! ../language/location */ 127);\n\nvar _GraphQLError = __webpack_require__(/*! ./GraphQLError */ 69);\n\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\n/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nfunction syntaxError(source, position, description) {\n var location = (0, _location.getLocation)(source, position);\n var line = location.line + source.locationOffset.line - 1;\n var columnOffset = getColumnOffset(source, location);\n var column = location.column + columnOffset;\n var error = new _GraphQLError.GraphQLError('Syntax Error ' + source.name + ' (' + line + ':' + column + ') ' + description + '\\n\\n' + highlightSourceAtLocation(source, location), undefined, source, [position]);\n return error;\n}\n\n/**\n * Render a helpful description of the location of the error in the GraphQL\n * Source document.\n */\nfunction highlightSourceAtLocation(source, location) {\n var line = location.line;\n var lineOffset = source.locationOffset.line - 1;\n var columnOffset = getColumnOffset(source, location);\n var contextLine = line + lineOffset;\n var prevLineNum = (contextLine - 1).toString();\n var lineNum = contextLine.toString();\n var nextLineNum = (contextLine + 1).toString();\n var padLen = nextLineNum.length;\n var lines = source.body.split(/\\r\\n|[\\n\\r]/g);\n lines[0] = whitespace(source.locationOffset.column - 1) + lines[0];\n return (line >= 2 ? lpad(padLen, prevLineNum) + ': ' + lines[line - 2] + '\\n' : '') + lpad(padLen, lineNum) + ': ' + lines[line - 1] + '\\n' + whitespace(2 + padLen + location.column - 1 + columnOffset) + '^\\n' + (line < lines.length ? lpad(padLen, nextLineNum) + ': ' + lines[line] + '\\n' : '');\n}\n\nfunction getColumnOffset(source, location) {\n return location.line === 1 ? source.locationOffset.column - 1 : 0;\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction lpad(len, str) {\n return whitespace(len - str.length) + str;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjc2LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyYXBocWwvZXJyb3Ivc3ludGF4RXJyb3IuanM/ZTlmYSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnN5bnRheEVycm9yID0gc3ludGF4RXJyb3I7XG5cbnZhciBfbG9jYXRpb24gPSByZXF1aXJlKCcuLi9sYW5ndWFnZS9sb2NhdGlvbicpO1xuXG52YXIgX0dyYXBoUUxFcnJvciA9IHJlcXVpcmUoJy4vR3JhcGhRTEVycm9yJyk7XG5cbi8qKlxuICogUHJvZHVjZXMgYSBHcmFwaFFMRXJyb3IgcmVwcmVzZW50aW5nIGEgc3ludGF4IGVycm9yLCBjb250YWluaW5nIHVzZWZ1bFxuICogZGVzY3JpcHRpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN5bnRheCBlcnJvcidzIHBvc2l0aW9uIGluIHRoZSBzb3VyY2UuXG4gKi9cblxuLyoqXG4gKiAgQ29weXJpZ2h0IChjKSAyMDE1LCBGYWNlYm9vaywgSW5jLlxuICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cbmZ1bmN0aW9uIHN5bnRheEVycm9yKHNvdXJjZSwgcG9zaXRpb24sIGRlc2NyaXB0aW9uKSB7XG4gIHZhciBsb2NhdGlvbiA9ICgwLCBfbG9jYXRpb24uZ2V0TG9jYXRpb24pKHNvdXJjZSwgcG9zaXRpb24pO1xuICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmUgKyBzb3VyY2UubG9jYXRpb25PZmZzZXQubGluZSAtIDE7XG4gIHZhciBjb2x1bW5PZmZzZXQgPSBnZXRDb2x1bW5PZmZzZXQoc291cmNlLCBsb2NhdGlvbik7XG4gIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW4gKyBjb2x1bW5PZmZzZXQ7XG4gIHZhciBlcnJvciA9IG5ldyBfR3JhcGhRTEVycm9yLkdyYXBoUUxFcnJvcignU3ludGF4IEVycm9yICcgKyBzb3VyY2UubmFtZSArICcgKCcgKyBsaW5lICsgJzonICsgY29sdW1uICsgJykgJyArIGRlc2NyaXB0aW9uICsgJ1xcblxcbicgKyBoaWdobGlnaHRTb3VyY2VBdExvY2F0aW9uKHNvdXJjZSwgbG9jYXRpb24pLCB1bmRlZmluZWQsIHNvdXJjZSwgW3Bvc2l0aW9uXSk7XG4gIHJldHVybiBlcnJvcjtcbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBoZWxwZnVsIGRlc2NyaXB0aW9uIG9mIHRoZSBsb2NhdGlvbiBvZiB0aGUgZXJyb3IgaW4gdGhlIEdyYXBoUUxcbiAqIFNvdXJjZSBkb2N1bWVudC5cbiAqL1xuZnVuY3Rpb24gaGlnaGxpZ2h0U291cmNlQXRMb2NhdGlvbihzb3VyY2UsIGxvY2F0aW9uKSB7XG4gIHZhciBsaW5lID0gbG9jYXRpb24ubGluZTtcbiAgdmFyIGxpbmVPZmZzZXQgPSBzb3VyY2UubG9jYXRpb25PZmZzZXQubGluZSAtIDE7XG4gIHZhciBjb2x1bW5PZmZzZXQgPSBnZXRDb2x1bW5PZmZzZXQoc291cmNlLCBsb2NhdGlvbik7XG4gIHZhciBjb250ZXh0TGluZSA9IGxpbmUgKyBsaW5lT2Zmc2V0O1xuICB2YXIgcHJldkxpbmVOdW0gPSAoY29udGV4dExpbmUgLSAxKS50b1N0cmluZygpO1xuICB2YXIgbGluZU51bSA9IGNvbnRleHRMaW5lLnRvU3RyaW5nKCk7XG4gIHZhciBuZXh0TGluZU51bSA9IChjb250ZXh0TGluZSArIDEpLnRvU3RyaW5nKCk7XG4gIHZhciBwYWRMZW4gPSBuZXh0TGluZU51bS5sZW5ndGg7XG4gIHZhciBsaW5lcyA9IHNvdXJjZS5ib2R5LnNwbGl0KC9cXHJcXG58W1xcblxccl0vZyk7XG4gIGxpbmVzWzBdID0gd2hpdGVzcGFjZShzb3VyY2UubG9jYXRpb25PZmZzZXQuY29sdW1uIC0gMSkgKyBsaW5lc1swXTtcbiAgcmV0dXJuIChsaW5lID49IDIgPyBscGFkKHBhZExlbiwgcHJldkxpbmVOdW0pICsgJzogJyArIGxpbmVzW2xpbmUgLSAyXSArICdcXG4nIDogJycpICsgbHBhZChwYWRMZW4sIGxpbmVOdW0pICsgJzogJyArIGxpbmVzW2xpbmUgLSAxXSArICdcXG4nICsgd2hpdGVzcGFjZSgyICsgcGFkTGVuICsgbG9jYXRpb24uY29sdW1uIC0gMSArIGNvbHVtbk9mZnNldCkgKyAnXlxcbicgKyAobGluZSA8IGxpbmVzLmxlbmd0aCA/IGxwYWQocGFkTGVuLCBuZXh0TGluZU51bSkgKyAnOiAnICsgbGluZXNbbGluZV0gKyAnXFxuJyA6ICcnKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29sdW1uT2Zmc2V0KHNvdXJjZSwgbG9jYXRpb24pIHtcbiAgcmV0dXJuIGxvY2F0aW9uLmxpbmUgPT09IDEgPyBzb3VyY2UubG9jYXRpb25PZmZzZXQuY29sdW1uIC0gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIHdoaXRlc3BhY2UobGVuKSB7XG4gIHJldHVybiBBcnJheShsZW4gKyAxKS5qb2luKCcgJyk7XG59XG5cbmZ1bmN0aW9uIGxwYWQobGVuLCBzdHIpIHtcbiAgcmV0dXJuIHdoaXRlc3BhY2UobGVuIC0gc3RyLmxlbmd0aCkgKyBzdHI7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9zeW50YXhFcnJvci5qc1xuLy8gbW9kdWxlIGlkID0gMjc2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///276\n"); /***/ }), /* 277 */ @@ -3376,7 +3376,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locatedError = locatedError;\n\nvar _GraphQLError = __webpack_require__(/*! ./GraphQLError */ 68);\n\n/**\n * Given an arbitrary Error, presumably thrown while attempting to execute a\n * GraphQL operation, produce a new GraphQLError aware of the location in the\n * document responsible for the original Error.\n */\nfunction locatedError(originalError, nodes, path) {\n // Note: this uses a brand-check to support GraphQL errors originating from\n // other contexts.\n if (originalError && originalError.path) {\n return originalError;\n }\n\n var message = originalError ? originalError.message || String(originalError) : 'An unknown error occurred.';\n return new _GraphQLError.GraphQLError(message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError);\n}\n/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *///# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjc3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyYXBocWwvZXJyb3IvbG9jYXRlZEVycm9yLmpzP2I3ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5sb2NhdGVkRXJyb3IgPSBsb2NhdGVkRXJyb3I7XG5cbnZhciBfR3JhcGhRTEVycm9yID0gcmVxdWlyZSgnLi9HcmFwaFFMRXJyb3InKTtcblxuLyoqXG4gKiBHaXZlbiBhbiBhcmJpdHJhcnkgRXJyb3IsIHByZXN1bWFibHkgdGhyb3duIHdoaWxlIGF0dGVtcHRpbmcgdG8gZXhlY3V0ZSBhXG4gKiBHcmFwaFFMIG9wZXJhdGlvbiwgcHJvZHVjZSBhIG5ldyBHcmFwaFFMRXJyb3IgYXdhcmUgb2YgdGhlIGxvY2F0aW9uIGluIHRoZVxuICogZG9jdW1lbnQgcmVzcG9uc2libGUgZm9yIHRoZSBvcmlnaW5hbCBFcnJvci5cbiAqL1xuZnVuY3Rpb24gbG9jYXRlZEVycm9yKG9yaWdpbmFsRXJyb3IsIG5vZGVzLCBwYXRoKSB7XG4gIC8vIE5vdGU6IHRoaXMgdXNlcyBhIGJyYW5kLWNoZWNrIHRvIHN1cHBvcnQgR3JhcGhRTCBlcnJvcnMgb3JpZ2luYXRpbmcgZnJvbVxuICAvLyBvdGhlciBjb250ZXh0cy5cbiAgaWYgKG9yaWdpbmFsRXJyb3IgJiYgb3JpZ2luYWxFcnJvci5wYXRoKSB7XG4gICAgcmV0dXJuIG9yaWdpbmFsRXJyb3I7XG4gIH1cblxuICB2YXIgbWVzc2FnZSA9IG9yaWdpbmFsRXJyb3IgPyBvcmlnaW5hbEVycm9yLm1lc3NhZ2UgfHwgU3RyaW5nKG9yaWdpbmFsRXJyb3IpIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuJztcbiAgcmV0dXJuIG5ldyBfR3JhcGhRTEVycm9yLkdyYXBoUUxFcnJvcihtZXNzYWdlLCBvcmlnaW5hbEVycm9yICYmIG9yaWdpbmFsRXJyb3Iubm9kZXMgfHwgbm9kZXMsIG9yaWdpbmFsRXJyb3IgJiYgb3JpZ2luYWxFcnJvci5zb3VyY2UsIG9yaWdpbmFsRXJyb3IgJiYgb3JpZ2luYWxFcnJvci5wb3NpdGlvbnMsIHBhdGgsIG9yaWdpbmFsRXJyb3IpO1xufVxuLyoqXG4gKiAgQ29weXJpZ2h0IChjKSAyMDE1LCBGYWNlYm9vaywgSW5jLlxuICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9sb2NhdGVkRXJyb3IuanNcbi8vIG1vZHVsZSBpZCA9IDI3N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///277\n"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locatedError = locatedError;\n\nvar _GraphQLError = __webpack_require__(/*! ./GraphQLError */ 69);\n\n/**\n * Given an arbitrary Error, presumably thrown while attempting to execute a\n * GraphQL operation, produce a new GraphQLError aware of the location in the\n * document responsible for the original Error.\n */\nfunction locatedError(originalError, nodes, path) {\n // Note: this uses a brand-check to support GraphQL errors originating from\n // other contexts.\n if (originalError && originalError.path) {\n return originalError;\n }\n\n var message = originalError ? originalError.message || String(originalError) : 'An unknown error occurred.';\n return new _GraphQLError.GraphQLError(message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError);\n}\n/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *///# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjc3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2dyYXBocWwvZXJyb3IvbG9jYXRlZEVycm9yLmpzP2I3ZjIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5sb2NhdGVkRXJyb3IgPSBsb2NhdGVkRXJyb3I7XG5cbnZhciBfR3JhcGhRTEVycm9yID0gcmVxdWlyZSgnLi9HcmFwaFFMRXJyb3InKTtcblxuLyoqXG4gKiBHaXZlbiBhbiBhcmJpdHJhcnkgRXJyb3IsIHByZXN1bWFibHkgdGhyb3duIHdoaWxlIGF0dGVtcHRpbmcgdG8gZXhlY3V0ZSBhXG4gKiBHcmFwaFFMIG9wZXJhdGlvbiwgcHJvZHVjZSBhIG5ldyBHcmFwaFFMRXJyb3IgYXdhcmUgb2YgdGhlIGxvY2F0aW9uIGluIHRoZVxuICogZG9jdW1lbnQgcmVzcG9uc2libGUgZm9yIHRoZSBvcmlnaW5hbCBFcnJvci5cbiAqL1xuZnVuY3Rpb24gbG9jYXRlZEVycm9yKG9yaWdpbmFsRXJyb3IsIG5vZGVzLCBwYXRoKSB7XG4gIC8vIE5vdGU6IHRoaXMgdXNlcyBhIGJyYW5kLWNoZWNrIHRvIHN1cHBvcnQgR3JhcGhRTCBlcnJvcnMgb3JpZ2luYXRpbmcgZnJvbVxuICAvLyBvdGhlciBjb250ZXh0cy5cbiAgaWYgKG9yaWdpbmFsRXJyb3IgJiYgb3JpZ2luYWxFcnJvci5wYXRoKSB7XG4gICAgcmV0dXJuIG9yaWdpbmFsRXJyb3I7XG4gIH1cblxuICB2YXIgbWVzc2FnZSA9IG9yaWdpbmFsRXJyb3IgPyBvcmlnaW5hbEVycm9yLm1lc3NhZ2UgfHwgU3RyaW5nKG9yaWdpbmFsRXJyb3IpIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuJztcbiAgcmV0dXJuIG5ldyBfR3JhcGhRTEVycm9yLkdyYXBoUUxFcnJvcihtZXNzYWdlLCBvcmlnaW5hbEVycm9yICYmIG9yaWdpbmFsRXJyb3Iubm9kZXMgfHwgbm9kZXMsIG9yaWdpbmFsRXJyb3IgJiYgb3JpZ2luYWxFcnJvci5zb3VyY2UsIG9yaWdpbmFsRXJyb3IgJiYgb3JpZ2luYWxFcnJvci5wb3NpdGlvbnMsIHBhdGgsIG9yaWdpbmFsRXJyb3IpO1xufVxuLyoqXG4gKiAgQ29weXJpZ2h0IChjKSAyMDE1LCBGYWNlYm9vaywgSW5jLlxuICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZ3JhcGhxbC9lcnJvci9sb2NhdGVkRXJyb3IuanNcbi8vIG1vZHVsZSBpZCA9IDI3N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///277\n"); /***/ }), /* 278 */ @@ -3436,7 +3436,7 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = warnOnceInDe /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryManager; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transport_Deduplicator__ = __webpack_require__(/*! ../transport/Deduplicator */ 283);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_isEqual__ = __webpack_require__(/*! ../util/isEqual */ 43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_assign__ = __webpack_require__(/*! ../util/assign */ 24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__types__ = __webpack_require__(/*! ./types */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__queries_store__ = __webpack_require__(/*! ../queries/store */ 284);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__ = __webpack_require__(/*! ../queries/networkStatus */ 33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__store__ = __webpack_require__(/*! ../store */ 63);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__ = __webpack_require__(/*! ../queries/getFromAST */ 16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__ = __webpack_require__(/*! ../queries/queryTransform */ 31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__data_resultReducers__ = __webpack_require__(/*! ../data/resultReducers */ 285);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__data_fragmentMatcher__ = __webpack_require__(/*! ../data/fragmentMatcher */ 70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_environment__ = __webpack_require__(/*! ../util/environment */ 25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__ = __webpack_require__(/*! ../util/maybeDeepFreeze */ 121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__ = __webpack_require__(/*! graphql/language/printer */ 42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_graphql_language_printer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__data_readFromStore__ = __webpack_require__(/*! ../data/readFromStore */ 26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__mutations_store__ = __webpack_require__(/*! ../mutations/store */ 286);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__scheduler_scheduler__ = __webpack_require__(/*! ../scheduler/scheduler */ 287);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__util_Observable__ = __webpack_require__(/*! ../util/Observable */ 120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__ = __webpack_require__(/*! ../errors/ApolloError */ 66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__ObservableQuery__ = __webpack_require__(/*! ./ObservableQuery */ 65);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar QueryManager = (function () {\n function QueryManager(_a) {\n var networkInterface = _a.networkInterface, store = _a.store, reduxRootSelector = _a.reduxRootSelector, _b = _a.reducerConfig, reducerConfig = _b === void 0 ? {} : _b, fragmentMatcher = _a.fragmentMatcher, _c = _a.addTypename, addTypename = _c === void 0 ? true : _c, _d = _a.queryDeduplication, queryDeduplication = _d === void 0 ? false : _d, _e = _a.ssrMode, ssrMode = _e === void 0 ? false : _e;\n var _this = this;\n this.mutationStore = new __WEBPACK_IMPORTED_MODULE_15__mutations_store__[\"a\" /* MutationStore */]();\n this.queryStore = new __WEBPACK_IMPORTED_MODULE_4__queries_store__[\"a\" /* QueryStore */]();\n this.idCounter = 1;\n this.lastRequestId = {};\n this.disableBroadcasting = false;\n this.networkInterface = networkInterface;\n this.deduplicator = new __WEBPACK_IMPORTED_MODULE_0__transport_Deduplicator__[\"a\" /* Deduplicator */](networkInterface);\n this.store = store;\n this.reduxRootSelector = reduxRootSelector;\n this.reducerConfig = reducerConfig;\n this.pollingTimers = {};\n this.queryListeners = {};\n this.queryDocuments = {};\n this.addTypename = addTypename;\n this.queryDeduplication = queryDeduplication;\n this.ssrMode = ssrMode;\n if (typeof fragmentMatcher === 'undefined') {\n this.fragmentMatcher = new __WEBPACK_IMPORTED_MODULE_10__data_fragmentMatcher__[\"a\" /* HeuristicFragmentMatcher */]();\n }\n else {\n this.fragmentMatcher = fragmentMatcher;\n }\n this.scheduler = new __WEBPACK_IMPORTED_MODULE_16__scheduler_scheduler__[\"a\" /* QueryScheduler */]({\n queryManager: this,\n });\n this.fetchQueryPromises = {};\n this.observableQueries = {};\n this.queryIdsByName = {};\n if (this.store['subscribe']) {\n var currentStoreData_1;\n this.store['subscribe'](function () {\n var previousStoreData = currentStoreData_1 || {};\n var previousStoreHasData = Object.keys(previousStoreData).length;\n currentStoreData_1 = _this.getApolloState();\n if (Object(__WEBPACK_IMPORTED_MODULE_1__util_isEqual__[\"a\" /* isEqual */])(previousStoreData, currentStoreData_1) &&\n previousStoreHasData) {\n return;\n }\n _this.broadcastQueries();\n });\n }\n }\n QueryManager.prototype.broadcastNewStore = function (store) {\n this.broadcastQueries();\n };\n QueryManager.prototype.mutate = function (_a) {\n var _this = this;\n var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueriesByName = _a.updateQueries, _b = _a.refetchQueries, refetchQueries = _b === void 0 ? [] : _b, updateWithProxyFn = _a.update;\n if (!mutation) {\n throw new Error('mutation option is required. You must specify your GraphQL document in the mutation option.');\n }\n var mutationId = this.generateQueryId();\n if (this.addTypename) {\n mutation = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(mutation);\n }\n variables = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"c\" /* getDefaultValues */])(Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"f\" /* getMutationDefinition */])(mutation)), variables);\n var mutationString = Object(__WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__[\"print\"])(mutation);\n var request = {\n query: mutation,\n variables: variables,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(mutation),\n };\n this.queryDocuments[mutationId] = mutation;\n var generateUpdateQueriesInfo = function () {\n var ret = {};\n if (updateQueriesByName) {\n Object.keys(updateQueriesByName).forEach(function (queryName) {\n return (_this.queryIdsByName[queryName] || []).forEach(function (queryId) {\n ret[queryId] = {\n reducer: updateQueriesByName[queryName],\n query: _this.queryStore.get(queryId),\n };\n });\n });\n }\n return ret;\n };\n this.store.dispatch({\n type: 'APOLLO_MUTATION_INIT',\n mutationString: mutationString,\n mutation: mutation,\n variables: variables || {},\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(mutation),\n mutationId: mutationId,\n optimisticResponse: optimisticResponse,\n extraReducers: this.getExtraReducers(),\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n this.mutationStore.initMutation(mutationId, mutationString, variables);\n return new Promise(function (resolve, reject) {\n _this.networkInterface\n .query(request)\n .then(function (result) {\n if (result.errors) {\n var error = new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: result.errors,\n });\n _this.store.dispatch({\n type: 'APOLLO_MUTATION_ERROR',\n error: error,\n mutationId: mutationId,\n });\n _this.mutationStore.markMutationError(mutationId, error);\n delete _this.queryDocuments[mutationId];\n reject(error);\n return;\n }\n _this.store.dispatch({\n type: 'APOLLO_MUTATION_RESULT',\n result: result,\n mutationId: mutationId,\n document: mutation,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(mutation),\n variables: variables || {},\n extraReducers: _this.getExtraReducers(),\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n _this.mutationStore.markMutationResult(mutationId);\n var reducerError = _this.getApolloState().reducerError;\n if (reducerError && reducerError.mutationId === mutationId) {\n reject(reducerError.error);\n return;\n }\n if (typeof refetchQueries[0] === 'string') {\n refetchQueries.forEach(function (name) {\n _this.refetchQueryByName(name);\n });\n }\n else {\n refetchQueries.forEach(function (pureQuery) {\n _this.query({\n query: pureQuery.query,\n variables: pureQuery.variables,\n fetchPolicy: 'network-only',\n });\n });\n }\n delete _this.queryDocuments[mutationId];\n resolve(result);\n })\n .catch(function (err) {\n _this.store.dispatch({\n type: 'APOLLO_MUTATION_ERROR',\n error: err,\n mutationId: mutationId,\n });\n delete _this.queryDocuments[mutationId];\n reject(new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n networkError: err,\n }));\n });\n });\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, fetchType, fetchMoreForQueryId) {\n var _this = this;\n var _a = options.variables, variables = _a === void 0 ? {} : _a, _b = options.metadata, metadata = _b === void 0 ? null : _b, _c = options.fetchPolicy, fetchPolicy = _c === void 0 ? 'cache-first' : _c;\n var queryDoc = this.transformQueryDocument(options).queryDoc;\n var queryString = Object(__WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__[\"print\"])(queryDoc);\n var storeResult;\n var needToFetch = fetchPolicy === 'network-only';\n if (fetchType !== __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].refetch && fetchPolicy !== 'network-only') {\n var _d = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"a\" /* diffQueryAgainstStore */])({\n query: queryDoc,\n store: this.reduxRootSelector(this.store.getState()).data,\n variables: variables,\n returnPartialData: true,\n fragmentMatcherFunction: this.fragmentMatcher.match,\n config: this.reducerConfig,\n }), isMissing = _d.isMissing, result = _d.result;\n needToFetch = isMissing || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n var shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n var requestId = this.generateRequestId();\n this.queryDocuments[queryId] = queryDoc;\n this.queryStore.initQuery({\n queryId: queryId,\n queryString: queryString,\n document: queryDoc,\n storePreviousVariables: shouldFetch,\n variables: variables,\n isPoll: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].poll,\n isRefetch: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].refetch,\n metadata: metadata,\n fetchMoreForQueryId: fetchMoreForQueryId,\n });\n this.broadcastQueries();\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n this.store.dispatch({\n type: 'APOLLO_QUERY_INIT',\n queryString: queryString,\n document: queryDoc,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(queryDoc),\n variables: variables,\n fetchPolicy: fetchPolicy,\n queryId: queryId,\n requestId: requestId,\n storePreviousVariables: shouldFetch,\n isPoll: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].poll,\n isRefetch: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].refetch,\n fetchMoreForQueryId: fetchMoreForQueryId,\n metadata: metadata,\n });\n }\n this.lastRequestId[queryId] = requestId;\n var shouldDispatchClientResult = !shouldFetch || fetchPolicy === 'cache-and-network';\n if (shouldDispatchClientResult) {\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.broadcastQueries();\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n this.store.dispatch({\n type: 'APOLLO_QUERY_RESULT_CLIENT',\n result: { data: storeResult },\n variables: variables,\n document: queryDoc,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(queryDoc),\n complete: !shouldFetch,\n queryId: queryId,\n requestId: requestId,\n });\n }\n }\n if (shouldFetch) {\n var networkResult = this.fetchRequest({\n requestId: requestId,\n queryId: queryId,\n document: queryDoc,\n options: options,\n fetchMoreForQueryId: fetchMoreForQueryId,\n }).catch(function (error) {\n if (Object(__WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"b\" /* isApolloError */])(error)) {\n throw error;\n }\n else {\n if (requestId >= (_this.lastRequestId[queryId] || 1)) {\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n _this.store.dispatch({\n type: 'APOLLO_QUERY_ERROR',\n error: error,\n queryId: queryId,\n requestId: requestId,\n fetchMoreForQueryId: fetchMoreForQueryId,\n });\n }\n _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n _this.removeFetchQueryPromise(requestId);\n throw new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n networkError: error,\n });\n }\n });\n if (fetchPolicy !== 'cache-and-network') {\n return networkResult;\n }\n }\n return Promise.resolve({ data: storeResult });\n };\n QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) {\n var _this = this;\n var previouslyHadError = false;\n return function (queryStoreValue) {\n if (!queryStoreValue) {\n return;\n }\n queryStoreValue = _this.queryStore.get(queryId);\n var storedQuery = _this.observableQueries[queryId];\n var observableQuery = storedQuery ? storedQuery.observableQuery : null;\n var fetchPolicy = observableQuery\n ? observableQuery.options.fetchPolicy\n : options.fetchPolicy;\n if (fetchPolicy === 'standby') {\n return;\n }\n var lastResult = observableQuery\n ? observableQuery.getLastResult()\n : null;\n var shouldNotifyIfLoading = queryStoreValue.previousVariables ||\n fetchPolicy === 'cache-only' ||\n fetchPolicy === 'cache-and-network';\n var networkStatusChanged = lastResult &&\n queryStoreValue.networkStatus !== lastResult.networkStatus;\n if (!Object(__WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(queryStoreValue.networkStatus) ||\n (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n shouldNotifyIfLoading) {\n if ((queryStoreValue.graphQLErrors &&\n queryStoreValue.graphQLErrors.length > 0) ||\n queryStoreValue.networkError) {\n var apolloError_1 = new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n });\n previouslyHadError = true;\n if (observer.error) {\n try {\n observer.error(apolloError_1);\n }\n catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n else {\n setTimeout(function () {\n throw apolloError_1;\n }, 0);\n if (!Object(__WEBPACK_IMPORTED_MODULE_11__util_environment__[\"b\" /* isProduction */])()) {\n console.info('An unhandled error was thrown because no error handler is registered ' +\n 'for the query ' +\n queryStoreValue.queryString);\n }\n }\n }\n else {\n try {\n var _a = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"a\" /* diffQueryAgainstStore */])({\n store: _this.getDataWithOptimisticResults(),\n query: _this.queryDocuments[queryId],\n variables: queryStoreValue.previousVariables || queryStoreValue.variables,\n config: _this.reducerConfig,\n fragmentMatcherFunction: _this.fragmentMatcher.match,\n previousResult: lastResult && lastResult.data,\n }), data = _a.result, isMissing = _a.isMissing;\n var resultFromStore = void 0;\n if (isMissing && fetchPolicy !== 'cache-only') {\n resultFromStore = {\n data: lastResult && lastResult.data,\n loading: Object(__WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(queryStoreValue.networkStatus),\n networkStatus: queryStoreValue.networkStatus,\n stale: true,\n };\n }\n else {\n resultFromStore = {\n data: data,\n loading: Object(__WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(queryStoreValue.networkStatus),\n networkStatus: queryStoreValue.networkStatus,\n stale: false,\n };\n }\n if (observer.next) {\n var isDifferentResult = !(lastResult &&\n resultFromStore &&\n lastResult.networkStatus === resultFromStore.networkStatus &&\n lastResult.stale === resultFromStore.stale &&\n lastResult.data === resultFromStore.data);\n if (isDifferentResult || previouslyHadError) {\n try {\n observer.next(Object(__WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__[\"a\" /* default */])(resultFromStore));\n }\n catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n previouslyHadError = false;\n }\n catch (error) {\n previouslyHadError = true;\n if (observer.error) {\n observer.error(new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n networkError: error,\n }));\n }\n return;\n }\n }\n }\n };\n };\n QueryManager.prototype.watchQuery = function (options, shouldSubscribe) {\n if (shouldSubscribe === void 0) { shouldSubscribe = true; }\n if (options.returnPartialData) {\n throw new Error('returnPartialData option is no longer supported since Apollo Client 1.0.');\n }\n if (options.forceFetch) {\n throw new Error('forceFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (options.noFetch) {\n throw new Error('noFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (options.fetchPolicy === 'standby') {\n throw new Error('client.watchQuery cannot be called with fetchPolicy set to \"standby\"');\n }\n var queryDefinition = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"i\" /* getQueryDefinition */])(options.query);\n if (queryDefinition.variableDefinitions &&\n queryDefinition.variableDefinitions.length) {\n var defaultValues = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"c\" /* getDefaultValues */])(queryDefinition);\n options.variables = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, defaultValues, options.variables);\n }\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var transformedOptions = __assign({}, options);\n var observableQuery = new __WEBPACK_IMPORTED_MODULE_19__ObservableQuery__[\"a\" /* ObservableQuery */]({\n scheduler: this.scheduler,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe,\n });\n return observableQuery;\n };\n QueryManager.prototype.query = function (options) {\n var _this = this;\n if (!options.query) {\n throw new Error('query option is required. You must specify your GraphQL document in the query option.');\n }\n if (options.query.kind !== 'Document') {\n throw new Error('You must wrap the query string in a \"gql\" tag.');\n }\n if (options.returnPartialData) {\n throw new Error('returnPartialData option only supported on watchQuery.');\n }\n if (options.pollInterval) {\n throw new Error('pollInterval option only supported on watchQuery.');\n }\n if (options.forceFetch) {\n throw new Error('forceFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (options.noFetch) {\n throw new Error('noFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (typeof options.notifyOnNetworkStatusChange !== 'undefined') {\n throw new Error('Cannot call \"query\" with \"notifyOnNetworkStatusChange\" option. Only \"watchQuery\" has that option.');\n }\n options.notifyOnNetworkStatusChange = false;\n var requestId = this.idCounter;\n var resPromise = new Promise(function (resolve, reject) {\n _this.addFetchQueryPromise(requestId, resPromise, resolve, reject);\n return _this.watchQuery(options, false)\n .result()\n .then(function (result) {\n _this.removeFetchQueryPromise(requestId);\n resolve(result);\n })\n .catch(function (error) {\n _this.removeFetchQueryPromise(requestId);\n reject(error);\n });\n });\n return resPromise;\n };\n QueryManager.prototype.generateQueryId = function () {\n var queryId = this.idCounter.toString();\n this.idCounter++;\n return queryId;\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.queryStore.stopQuery(queryId);\n this.broadcastQueries();\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n this.store.dispatch({\n type: 'APOLLO_QUERY_STOP',\n queryId: queryId,\n });\n }\n };\n QueryManager.prototype.getApolloState = function () {\n return this.reduxRootSelector(this.store.getState());\n };\n QueryManager.prototype.selectApolloState = function (store) {\n return this.reduxRootSelector(store.getState());\n };\n QueryManager.prototype.getInitialState = function () {\n return { data: this.getApolloState().data };\n };\n QueryManager.prototype.getDataWithOptimisticResults = function () {\n return Object(__WEBPACK_IMPORTED_MODULE_6__store__[\"c\" /* getDataWithOptimisticResults */])(this.getApolloState());\n };\n QueryManager.prototype.addQueryListener = function (queryId, listener) {\n this.queryListeners[queryId] = this.queryListeners[queryId] || [];\n this.queryListeners[queryId].push(listener);\n };\n QueryManager.prototype.addFetchQueryPromise = function (requestId, promise, resolve, reject) {\n this.fetchQueryPromises[requestId.toString()] = {\n promise: promise,\n resolve: resolve,\n reject: reject,\n };\n };\n QueryManager.prototype.removeFetchQueryPromise = function (requestId) {\n delete this.fetchQueryPromises[requestId.toString()];\n };\n QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) {\n this.observableQueries[queryId] = { observableQuery: observableQuery };\n var queryDef = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"i\" /* getQueryDefinition */])(observableQuery.options.query);\n if (queryDef.name && queryDef.name.value) {\n var queryName = queryDef.name.value;\n this.queryIdsByName[queryName] = this.queryIdsByName[queryName] || [];\n this.queryIdsByName[queryName].push(observableQuery.queryId);\n }\n };\n QueryManager.prototype.removeObservableQuery = function (queryId) {\n var observableQuery = this.observableQueries[queryId].observableQuery;\n var definition = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"i\" /* getQueryDefinition */])(observableQuery.options.query);\n var queryName = definition.name ? definition.name.value : null;\n delete this.observableQueries[queryId];\n if (queryName) {\n this.queryIdsByName[queryName] = this.queryIdsByName[queryName].filter(function (val) {\n return !(observableQuery.queryId === val);\n });\n }\n };\n QueryManager.prototype.resetStore = function () {\n var _this = this;\n Object.keys(this.fetchQueryPromises).forEach(function (key) {\n var reject = _this.fetchQueryPromises[key].reject;\n reject(new Error('Store reset while query was in flight.'));\n });\n this.queryStore.reset(Object.keys(this.observableQueries));\n this.store.dispatch({\n type: 'APOLLO_STORE_RESET',\n observableQueryIds: Object.keys(this.observableQueries),\n });\n this.mutationStore.reset();\n var observableQueryPromises = [];\n Object.keys(this.observableQueries).forEach(function (queryId) {\n var storeQuery = _this.queryStore.get(queryId);\n var fetchPolicy = _this.observableQueries[queryId].observableQuery\n .options.fetchPolicy;\n if (fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby') {\n observableQueryPromises.push(_this.observableQueries[queryId].observableQuery.refetch());\n }\n });\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.startQuery = function (queryId, options, listener) {\n this.addQueryListener(queryId, listener);\n this.fetchQuery(queryId, options)\n .catch(function (error) { return undefined; });\n return queryId;\n };\n QueryManager.prototype.startGraphQLSubscription = function (options) {\n var _this = this;\n var query = options.query;\n var transformedDoc = query;\n if (this.addTypename) {\n transformedDoc = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(transformedDoc);\n }\n var variables = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"c\" /* getDefaultValues */])(Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"g\" /* getOperationDefinition */])(query)), options.variables);\n var request = {\n query: transformedDoc,\n variables: variables,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(transformedDoc),\n };\n var subId;\n var observers = [];\n return new __WEBPACK_IMPORTED_MODULE_17__util_Observable__[\"a\" /* Observable */](function (observer) {\n observers.push(observer);\n if (observers.length === 1) {\n var handler = function (error, result) {\n if (error) {\n observers.forEach(function (obs) {\n if (obs.error) {\n obs.error(error);\n }\n });\n }\n else {\n _this.store.dispatch({\n type: 'APOLLO_SUBSCRIPTION_RESULT',\n document: transformedDoc,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(transformedDoc),\n result: { data: result },\n variables: variables,\n subscriptionId: subId,\n extraReducers: _this.getExtraReducers(),\n });\n observers.forEach(function (obs) {\n if (obs.next) {\n obs.next(result);\n }\n });\n }\n };\n subId = _this\n .networkInterface.subscribe(request, handler);\n }\n return {\n unsubscribe: function () {\n observers = observers.filter(function (obs) { return obs !== observer; });\n if (observers.length === 0) {\n _this.networkInterface.unsubscribe(subId);\n }\n },\n _networkSubscriptionId: subId,\n };\n });\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n delete this.queryListeners[queryId];\n delete this.queryDocuments[queryId];\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.removeQuery(queryId);\n this.stopQueryInStore(queryId);\n };\n QueryManager.prototype.getCurrentQueryResult = function (observableQuery, isOptimistic) {\n if (isOptimistic === void 0) { isOptimistic = false; }\n var _a = this.getQueryParts(observableQuery), variables = _a.variables, document = _a.document;\n var lastResult = observableQuery.getLastResult();\n var queryOptions = observableQuery.options;\n var readOptions = {\n store: isOptimistic\n ? this.getDataWithOptimisticResults()\n : this.getApolloState().data,\n query: document,\n variables: variables,\n config: this.reducerConfig,\n previousResult: lastResult ? lastResult.data : undefined,\n fragmentMatcherFunction: this.fragmentMatcher.match,\n };\n try {\n var data = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"b\" /* readQueryFromStore */])(readOptions);\n return Object(__WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__[\"a\" /* default */])({ data: data, partial: false });\n }\n catch (e) {\n return Object(__WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__[\"a\" /* default */])({ data: {}, partial: true });\n }\n };\n QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable, isOptimistic) {\n if (isOptimistic === void 0) { isOptimistic = false; }\n var observableQuery;\n if (typeof queryIdOrObservable === 'string') {\n if (!this.observableQueries[queryIdOrObservable]) {\n throw new Error(\"ObservableQuery with this id doesn't exist: \" + queryIdOrObservable);\n }\n observableQuery = this.observableQueries[queryIdOrObservable]\n .observableQuery;\n }\n else {\n observableQuery = queryIdOrObservable;\n }\n var _a = this.getQueryParts(observableQuery), variables = _a.variables, document = _a.document;\n var data = this.getCurrentQueryResult(observableQuery, isOptimistic).data;\n return {\n previousResult: data,\n variables: variables,\n document: document,\n };\n };\n QueryManager.prototype.getQueryParts = function (observableQuery) {\n var queryOptions = observableQuery.options;\n var transformedDoc = observableQuery.options.query;\n if (this.addTypename) {\n transformedDoc = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(transformedDoc);\n }\n return {\n variables: queryOptions.variables,\n document: transformedDoc,\n };\n };\n QueryManager.prototype.transformQueryDocument = function (options) {\n var queryDoc = options.query;\n if (this.addTypename) {\n queryDoc = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(queryDoc);\n }\n return {\n queryDoc: queryDoc,\n };\n };\n QueryManager.prototype.getExtraReducers = function () {\n var _this = this;\n return Object.keys(this.observableQueries)\n .map(function (obsQueryId) {\n var query = _this.observableQueries[obsQueryId].observableQuery;\n var queryOptions = query.options;\n if (queryOptions.reducer) {\n return Object(__WEBPACK_IMPORTED_MODULE_9__data_resultReducers__[\"a\" /* createStoreReducer */])(queryOptions.reducer, _this.addTypename\n ? Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(queryOptions.query)\n : queryOptions.query, query.variables || {}, _this.reducerConfig);\n }\n return null;\n })\n .filter(function (reducer) { return reducer !== null; });\n };\n QueryManager.prototype.fetchRequest = function (_a) {\n var _this = this;\n var requestId = _a.requestId, queryId = _a.queryId, document = _a.document, options = _a.options, fetchMoreForQueryId = _a.fetchMoreForQueryId;\n var variables = options.variables;\n var request = {\n query: document,\n variables: variables,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(document),\n };\n var retPromise = new Promise(function (resolve, reject) {\n _this.addFetchQueryPromise(requestId, retPromise, resolve, reject);\n _this.deduplicator\n .query(request, _this.queryDeduplication)\n .then(function (result) {\n var extraReducers = _this.getExtraReducers();\n if (requestId >= (_this.lastRequestId[queryId] || 1)) {\n _this.disableBroadcasting = true;\n _this.store.dispatch({\n type: 'APOLLO_QUERY_RESULT',\n document: document,\n variables: variables ? variables : {},\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(document),\n result: result,\n queryId: queryId,\n requestId: requestId,\n fetchMoreForQueryId: fetchMoreForQueryId,\n extraReducers: extraReducers,\n });\n _this.disableBroadcasting = false;\n var reducerError = _this.getApolloState().reducerError;\n if (!reducerError || reducerError.queryId !== queryId) {\n _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n }\n _this.removeFetchQueryPromise(requestId);\n if (result.errors) {\n throw new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: result.errors,\n });\n }\n return result;\n })\n .then(function (result) {\n var resultFromStore;\n if (fetchMoreForQueryId) {\n resultFromStore = result.data;\n }\n else {\n try {\n resultFromStore = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"b\" /* readQueryFromStore */])({\n store: _this.getApolloState().data,\n variables: variables,\n query: document,\n config: _this.reducerConfig,\n fragmentMatcherFunction: _this.fragmentMatcher.match,\n });\n }\n catch (e) { }\n }\n var reducerError = _this.getApolloState().reducerError;\n if (reducerError && reducerError.queryId === queryId) {\n return Promise.reject(reducerError.error);\n }\n _this.removeFetchQueryPromise(requestId);\n resolve({\n data: resultFromStore,\n loading: false,\n networkStatus: __WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"a\" /* NetworkStatus */].ready,\n stale: false,\n });\n return Promise.resolve();\n })\n .catch(function (error) {\n reject(error);\n });\n });\n return retPromise;\n };\n QueryManager.prototype.refetchQueryByName = function (queryName) {\n var _this = this;\n var refetchedQueries = this.queryIdsByName[queryName];\n if (refetchedQueries === undefined) {\n console.warn(\"Warning: unknown query with name \" + queryName + \" asked to refetch\");\n return;\n }\n else {\n return Promise.all(refetchedQueries.map(function (queryId) {\n return _this.observableQueries[queryId].observableQuery.refetch();\n }));\n }\n };\n QueryManager.prototype.broadcastQueries = function () {\n var _this = this;\n if (this.disableBroadcasting) {\n return;\n }\n Object.keys(this.queryListeners).forEach(function (queryId) {\n var listeners = _this.queryListeners[queryId];\n if (listeners) {\n listeners.forEach(function (listener) {\n if (listener) {\n var queryStoreValue = _this.queryStore.get(queryId);\n listener(queryStoreValue);\n }\n });\n }\n });\n };\n QueryManager.prototype.generateRequestId = function () {\n var requestId = this.idCounter;\n this.idCounter++;\n return requestId;\n };\n QueryManager.EMIT_REDUX_ACTIONS = true;\n return QueryManager;\n}());\n\n//# sourceMappingURL=QueryManager.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjgyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvY29yZS9RdWVyeU1hbmFnZXIuanM/ODY2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IERlZHVwbGljYXRvciB9IGZyb20gJy4uL3RyYW5zcG9ydC9EZWR1cGxpY2F0b3InO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJy4uL3V0aWwvaXNFcXVhbCc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICcuLi91dGlsL2Fzc2lnbic7XG5pbXBvcnQgeyBGZXRjaFR5cGUsIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBRdWVyeVN0b3JlIH0gZnJvbSAnLi4vcXVlcmllcy9zdG9yZSc7XG5pbXBvcnQgeyBOZXR3b3JrU3RhdHVzLCBpc05ldHdvcmtSZXF1ZXN0SW5GbGlnaHQsIH0gZnJvbSAnLi4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbmltcG9ydCB7IGdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHMsIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgZ2V0UXVlcnlEZWZpbml0aW9uLCBnZXRPcGVyYXRpb25EZWZpbml0aW9uLCBnZXRPcGVyYXRpb25OYW1lLCBnZXREZWZhdWx0VmFsdWVzLCBnZXRNdXRhdGlvbkRlZmluaXRpb24sIH0gZnJvbSAnLi4vcXVlcmllcy9nZXRGcm9tQVNUJztcbmltcG9ydCB7IGFkZFR5cGVuYW1lVG9Eb2N1bWVudCB9IGZyb20gJy4uL3F1ZXJpZXMvcXVlcnlUcmFuc2Zvcm0nO1xuaW1wb3J0IHsgY3JlYXRlU3RvcmVSZWR1Y2VyIH0gZnJvbSAnLi4vZGF0YS9yZXN1bHRSZWR1Y2Vycyc7XG5pbXBvcnQgeyBIZXVyaXN0aWNGcmFnbWVudE1hdGNoZXIsIH0gZnJvbSAnLi4vZGF0YS9mcmFnbWVudE1hdGNoZXInO1xuaW1wb3J0IHsgaXNQcm9kdWN0aW9uIH0gZnJvbSAnLi4vdXRpbC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgbWF5YmVEZWVwRnJlZXplIGZyb20gJy4uL3V0aWwvbWF5YmVEZWVwRnJlZXplJztcbmltcG9ydCB7IHByaW50IH0gZnJvbSAnZ3JhcGhxbC9sYW5ndWFnZS9wcmludGVyJztcbmltcG9ydCB7IHJlYWRRdWVyeUZyb21TdG9yZSB9IGZyb20gJy4uL2RhdGEvcmVhZEZyb21TdG9yZSc7XG5pbXBvcnQgeyBkaWZmUXVlcnlBZ2FpbnN0U3RvcmUgfSBmcm9tICcuLi9kYXRhL3JlYWRGcm9tU3RvcmUnO1xuaW1wb3J0IHsgTXV0YXRpb25TdG9yZSB9IGZyb20gJy4uL211dGF0aW9ucy9zdG9yZSc7XG5pbXBvcnQgeyBRdWVyeVNjaGVkdWxlciB9IGZyb20gJy4uL3NjaGVkdWxlci9zY2hlZHVsZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL3V0aWwvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBpc0Fwb2xsb0Vycm9yLCBBcG9sbG9FcnJvciB9IGZyb20gJy4uL2Vycm9ycy9BcG9sbG9FcnJvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlUXVlcnkgfSBmcm9tICcuL09ic2VydmFibGVRdWVyeSc7XG52YXIgUXVlcnlNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBRdWVyeU1hbmFnZXIoX2EpIHtcbiAgICAgICAgdmFyIG5ldHdvcmtJbnRlcmZhY2UgPSBfYS5uZXR3b3JrSW50ZXJmYWNlLCBzdG9yZSA9IF9hLnN0b3JlLCByZWR1eFJvb3RTZWxlY3RvciA9IF9hLnJlZHV4Um9vdFNlbGVjdG9yLCBfYiA9IF9hLnJlZHVjZXJDb25maWcsIHJlZHVjZXJDb25maWcgPSBfYiA9PT0gdm9pZCAwID8ge30gOiBfYiwgZnJhZ21lbnRNYXRjaGVyID0gX2EuZnJhZ21lbnRNYXRjaGVyLCBfYyA9IF9hLmFkZFR5cGVuYW1lLCBhZGRUeXBlbmFtZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIF9kID0gX2EucXVlcnlEZWR1cGxpY2F0aW9uLCBxdWVyeURlZHVwbGljYXRpb24gPSBfZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfZCwgX2UgPSBfYS5zc3JNb2RlLCBzc3JNb2RlID0gX2UgPT09IHZvaWQgMCA/IGZhbHNlIDogX2U7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMubXV0YXRpb25TdG9yZSA9IG5ldyBNdXRhdGlvblN0b3JlKCk7XG4gICAgICAgIHRoaXMucXVlcnlTdG9yZSA9IG5ldyBRdWVyeVN0b3JlKCk7XG4gICAgICAgIHRoaXMuaWRDb3VudGVyID0gMTtcbiAgICAgICAgdGhpcy5sYXN0UmVxdWVzdElkID0ge307XG4gICAgICAgIHRoaXMuZGlzYWJsZUJyb2FkY2FzdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5ldHdvcmtJbnRlcmZhY2UgPSBuZXR3b3JrSW50ZXJmYWNlO1xuICAgICAgICB0aGlzLmRlZHVwbGljYXRvciA9IG5ldyBEZWR1cGxpY2F0b3IobmV0d29ya0ludGVyZmFjZSk7XG4gICAgICAgIHRoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICAgICAgdGhpcy5yZWR1eFJvb3RTZWxlY3RvciA9IHJlZHV4Um9vdFNlbGVjdG9yO1xuICAgICAgICB0aGlzLnJlZHVjZXJDb25maWcgPSByZWR1Y2VyQ29uZmlnO1xuICAgICAgICB0aGlzLnBvbGxpbmdUaW1lcnMgPSB7fTtcbiAgICAgICAgdGhpcy5xdWVyeUxpc3RlbmVycyA9IHt9O1xuICAgICAgICB0aGlzLnF1ZXJ5RG9jdW1lbnRzID0ge307XG4gICAgICAgIHRoaXMuYWRkVHlwZW5hbWUgPSBhZGRUeXBlbmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeURlZHVwbGljYXRpb24gPSBxdWVyeURlZHVwbGljYXRpb247XG4gICAgICAgIHRoaXMuc3NyTW9kZSA9IHNzck1vZGU7XG4gICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRNYXRjaGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5mcmFnbWVudE1hdGNoZXIgPSBuZXcgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50TWF0Y2hlciA9IGZyYWdtZW50TWF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjaGVkdWxlciA9IG5ldyBRdWVyeVNjaGVkdWxlcih7XG4gICAgICAgICAgICBxdWVyeU1hbmFnZXI6IHRoaXMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZldGNoUXVlcnlQcm9taXNlcyA9IHt9O1xuICAgICAgICB0aGlzLm9ic2VydmFibGVRdWVyaWVzID0ge307XG4gICAgICAgIHRoaXMucXVlcnlJZHNCeU5hbWUgPSB7fTtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmVbJ3N1YnNjcmliZSddKSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudFN0b3JlRGF0YV8xO1xuICAgICAgICAgICAgdGhpcy5zdG9yZVsnc3Vic2NyaWJlJ10oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBwcmV2aW91c1N0b3JlRGF0YSA9IGN1cnJlbnRTdG9yZURhdGFfMSB8fCB7fTtcbiAgICAgICAgICAgICAgICB2YXIgcHJldmlvdXNTdG9yZUhhc0RhdGEgPSBPYmplY3Qua2V5cyhwcmV2aW91c1N0b3JlRGF0YSkubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRTdG9yZURhdGFfMSA9IF90aGlzLmdldEFwb2xsb1N0YXRlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTdG9yZURhdGEsIGN1cnJlbnRTdG9yZURhdGFfMSkgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTdG9yZUhhc0RhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdGhpcy5icm9hZGNhc3RRdWVyaWVzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmJyb2FkY2FzdE5ld1N0b3JlID0gZnVuY3Rpb24gKHN0b3JlKSB7XG4gICAgICAgIHRoaXMuYnJvYWRjYXN0UXVlcmllcygpO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5tdXRhdGUgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIG11dGF0aW9uID0gX2EubXV0YXRpb24sIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcywgb3B0aW1pc3RpY1Jlc3BvbnNlID0gX2Eub3B0aW1pc3RpY1Jlc3BvbnNlLCB1cGRhdGVRdWVyaWVzQnlOYW1lID0gX2EudXBkYXRlUXVlcmllcywgX2IgPSBfYS5yZWZldGNoUXVlcmllcywgcmVmZXRjaFF1ZXJpZXMgPSBfYiA9PT0gdm9pZCAwID8gW10gOiBfYiwgdXBkYXRlV2l0aFByb3h5Rm4gPSBfYS51cGRhdGU7XG4gICAgICAgIGlmICghbXV0YXRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbXV0YXRpb24gb3B0aW9uIGlzIHJlcXVpcmVkLiBZb3UgbXVzdCBzcGVjaWZ5IHlvdXIgR3JhcGhRTCBkb2N1bWVudCBpbiB0aGUgbXV0YXRpb24gb3B0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtdXRhdGlvbklkID0gdGhpcy5nZW5lcmF0ZVF1ZXJ5SWQoKTtcbiAgICAgICAgaWYgKHRoaXMuYWRkVHlwZW5hbWUpIHtcbiAgICAgICAgICAgIG11dGF0aW9uID0gYWRkVHlwZW5hbWVUb0RvY3VtZW50KG11dGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICB2YXJpYWJsZXMgPSBhc3NpZ24oe30sIGdldERlZmF1bHRWYWx1ZXMoZ2V0TXV0YXRpb25EZWZpbml0aW9uKG11dGF0aW9uKSksIHZhcmlhYmxlcyk7XG4gICAgICAgIHZhciBtdXRhdGlvblN0cmluZyA9IHByaW50KG11dGF0aW9uKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSB7XG4gICAgICAgICAgICBxdWVyeTogbXV0YXRpb24sXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGdldE9wZXJhdGlvbk5hbWUobXV0YXRpb24pLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnF1ZXJ5RG9jdW1lbnRzW211dGF0aW9uSWRdID0gbXV0YXRpb247XG4gICAgICAgIHZhciBnZW5lcmF0ZVVwZGF0ZVF1ZXJpZXNJbmZvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHJldCA9IHt9O1xuICAgICAgICAgICAgaWYgKHVwZGF0ZVF1ZXJpZXNCeU5hbWUpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVRdWVyaWVzQnlOYW1lKS5mb3JFYWNoKGZ1bmN0aW9uIChxdWVyeU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfdGhpcy5xdWVyeUlkc0J5TmFtZVtxdWVyeU5hbWVdIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXRbcXVlcnlJZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkdWNlcjogdXBkYXRlUXVlcmllc0J5TmFtZVtxdWVyeU5hbWVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBfdGhpcy5xdWVyeVN0b3JlLmdldChxdWVyeUlkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnQVBPTExPX01VVEFUSU9OX0lOSVQnLFxuICAgICAgICAgICAgbXV0YXRpb25TdHJpbmc6IG11dGF0aW9uU3RyaW5nLFxuICAgICAgICAgICAgbXV0YXRpb246IG11dGF0aW9uLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMgfHwge30sXG4gICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBnZXRPcGVyYXRpb25OYW1lKG11dGF0aW9uKSxcbiAgICAgICAgICAgIG11dGF0aW9uSWQ6IG11dGF0aW9uSWQsXG4gICAgICAgICAgICBvcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWNSZXNwb25zZSxcbiAgICAgICAgICAgIGV4dHJhUmVkdWNlcnM6IHRoaXMuZ2V0RXh0cmFSZWR1Y2VycygpLFxuICAgICAgICAgICAgdXBkYXRlUXVlcmllczogZ2VuZXJhdGVVcGRhdGVRdWVyaWVzSW5mbygpLFxuICAgICAgICAgICAgdXBkYXRlOiB1cGRhdGVXaXRoUHJveHlGbixcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXV0YXRpb25TdG9yZS5pbml0TXV0YXRpb24obXV0YXRpb25JZCwgbXV0YXRpb25TdHJpbmcsIHZhcmlhYmxlcyk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBfdGhpcy5uZXR3b3JrSW50ZXJmYWNlXG4gICAgICAgICAgICAgICAgLnF1ZXJ5KHJlcXVlc3QpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmFwaFFMRXJyb3JzOiByZXN1bHQuZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19NVVRBVElPTl9FUlJPUicsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbklkOiBtdXRhdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMubXV0YXRpb25TdG9yZS5tYXJrTXV0YXRpb25FcnJvcihtdXRhdGlvbklkLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfdGhpcy5xdWVyeURvY3VtZW50c1ttdXRhdGlvbklkXTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdBUE9MTE9fTVVUQVRJT05fUkVTVUxUJyxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIG11dGF0aW9uSWQ6IG11dGF0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50OiBtdXRhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShtdXRhdGlvbiksXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICBleHRyYVJlZHVjZXJzOiBfdGhpcy5nZXRFeHRyYVJlZHVjZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVF1ZXJpZXM6IGdlbmVyYXRlVXBkYXRlUXVlcmllc0luZm8oKSxcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlOiB1cGRhdGVXaXRoUHJveHlGbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBfdGhpcy5tdXRhdGlvblN0b3JlLm1hcmtNdXRhdGlvblJlc3VsdChtdXRhdGlvbklkKTtcbiAgICAgICAgICAgICAgICB2YXIgcmVkdWNlckVycm9yID0gX3RoaXMuZ2V0QXBvbGxvU3RhdGUoKS5yZWR1Y2VyRXJyb3I7XG4gICAgICAgICAgICAgICAgaWYgKHJlZHVjZXJFcnJvciAmJiByZWR1Y2VyRXJyb3IubXV0YXRpb25JZCA9PT0gbXV0YXRpb25JZCkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QocmVkdWNlckVycm9yLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlZmV0Y2hRdWVyaWVzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICByZWZldGNoUXVlcmllcy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5yZWZldGNoUXVlcnlCeU5hbWUobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmZXRjaFF1ZXJpZXMuZm9yRWFjaChmdW5jdGlvbiAocHVyZVF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5xdWVyeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHB1cmVRdWVyeS5xdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHB1cmVRdWVyeS52YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWxldGUgX3RoaXMucXVlcnlEb2N1bWVudHNbbXV0YXRpb25JZF07XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIF90aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19NVVRBVElPTl9FUlJPUicsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgICAgICAgICAgICAgIG11dGF0aW9uSWQ6IG11dGF0aW9uSWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIF90aGlzLnF1ZXJ5RG9jdW1lbnRzW211dGF0aW9uSWRdO1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgQXBvbGxvRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICBuZXR3b3JrRXJyb3I6IGVycixcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmZldGNoUXVlcnkgPSBmdW5jdGlvbiAocXVlcnlJZCwgb3B0aW9ucywgZmV0Y2hUeXBlLCBmZXRjaE1vcmVGb3JRdWVyeUlkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBfYSA9IG9wdGlvbnMudmFyaWFibGVzLCB2YXJpYWJsZXMgPSBfYSA9PT0gdm9pZCAwID8ge30gOiBfYSwgX2IgPSBvcHRpb25zLm1ldGFkYXRhLCBtZXRhZGF0YSA9IF9iID09PSB2b2lkIDAgPyBudWxsIDogX2IsIF9jID0gb3B0aW9ucy5mZXRjaFBvbGljeSwgZmV0Y2hQb2xpY3kgPSBfYyA9PT0gdm9pZCAwID8gJ2NhY2hlLWZpcnN0JyA6IF9jO1xuICAgICAgICB2YXIgcXVlcnlEb2MgPSB0aGlzLnRyYW5zZm9ybVF1ZXJ5RG9jdW1lbnQob3B0aW9ucykucXVlcnlEb2M7XG4gICAgICAgIHZhciBxdWVyeVN0cmluZyA9IHByaW50KHF1ZXJ5RG9jKTtcbiAgICAgICAgdmFyIHN0b3JlUmVzdWx0O1xuICAgICAgICB2YXIgbmVlZFRvRmV0Y2ggPSBmZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seSc7XG4gICAgICAgIGlmIChmZXRjaFR5cGUgIT09IEZldGNoVHlwZS5yZWZldGNoICYmIGZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5Jykge1xuICAgICAgICAgICAgdmFyIF9kID0gZGlmZlF1ZXJ5QWdhaW5zdFN0b3JlKHtcbiAgICAgICAgICAgICAgICBxdWVyeTogcXVlcnlEb2MsXG4gICAgICAgICAgICAgICAgc3RvcmU6IHRoaXMucmVkdXhSb290U2VsZWN0b3IodGhpcy5zdG9yZS5nZXRTdGF0ZSgpKS5kYXRhLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgIHJldHVyblBhcnRpYWxEYXRhOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiB0aGlzLmZyYWdtZW50TWF0Y2hlci5tYXRjaCxcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMucmVkdWNlckNvbmZpZyxcbiAgICAgICAgICAgIH0pLCBpc01pc3NpbmcgPSBfZC5pc01pc3NpbmcsIHJlc3VsdCA9IF9kLnJlc3VsdDtcbiAgICAgICAgICAgIG5lZWRUb0ZldGNoID0gaXNNaXNzaW5nIHx8IGZldGNoUG9saWN5ID09PSAnY2FjaGUtYW5kLW5ldHdvcmsnO1xuICAgICAgICAgICAgc3RvcmVSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNob3VsZEZldGNoID0gbmVlZFRvRmV0Y2ggJiYgZmV0Y2hQb2xpY3kgIT09ICdjYWNoZS1vbmx5JyAmJiBmZXRjaFBvbGljeSAhPT0gJ3N0YW5kYnknO1xuICAgICAgICB2YXIgcmVxdWVzdElkID0gdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZCgpO1xuICAgICAgICB0aGlzLnF1ZXJ5RG9jdW1lbnRzW3F1ZXJ5SWRdID0gcXVlcnlEb2M7XG4gICAgICAgIHRoaXMucXVlcnlTdG9yZS5pbml0UXVlcnkoe1xuICAgICAgICAgICAgcXVlcnlJZDogcXVlcnlJZCxcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgIGRvY3VtZW50OiBxdWVyeURvYyxcbiAgICAgICAgICAgIHN0b3JlUHJldmlvdXNWYXJpYWJsZXM6IHNob3VsZEZldGNoLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBpc1BvbGw6IGZldGNoVHlwZSA9PT0gRmV0Y2hUeXBlLnBvbGwsXG4gICAgICAgICAgICBpc1JlZmV0Y2g6IGZldGNoVHlwZSA9PT0gRmV0Y2hUeXBlLnJlZmV0Y2gsXG4gICAgICAgICAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICBmZXRjaE1vcmVGb3JRdWVyeUlkOiBmZXRjaE1vcmVGb3JRdWVyeUlkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5icm9hZGNhc3RRdWVyaWVzKCk7XG4gICAgICAgIGlmIChRdWVyeU1hbmFnZXIuRU1JVF9SRURVWF9BQ1RJT05TKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnQVBPTExPX1FVRVJZX0lOSVQnLFxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogcXVlcnlEb2MsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShxdWVyeURvYyksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6IGZldGNoUG9saWN5LFxuICAgICAgICAgICAgICAgIHF1ZXJ5SWQ6IHF1ZXJ5SWQsXG4gICAgICAgICAgICAgICAgcmVxdWVzdElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgICAgICAgc3RvcmVQcmV2aW91c1ZhcmlhYmxlczogc2hvdWxkRmV0Y2gsXG4gICAgICAgICAgICAgICAgaXNQb2xsOiBmZXRjaFR5cGUgPT09IEZldGNoVHlwZS5wb2xsLFxuICAgICAgICAgICAgICAgIGlzUmVmZXRjaDogZmV0Y2hUeXBlID09PSBGZXRjaFR5cGUucmVmZXRjaCxcbiAgICAgICAgICAgICAgICBmZXRjaE1vcmVGb3JRdWVyeUlkOiBmZXRjaE1vcmVGb3JRdWVyeUlkLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFJlcXVlc3RJZFtxdWVyeUlkXSA9IHJlcXVlc3RJZDtcbiAgICAgICAgdmFyIHNob3VsZERpc3BhdGNoQ2xpZW50UmVzdWx0ID0gIXNob3VsZEZldGNoIHx8IGZldGNoUG9saWN5ID09PSAnY2FjaGUtYW5kLW5ldHdvcmsnO1xuICAgICAgICBpZiAoc2hvdWxkRGlzcGF0Y2hDbGllbnRSZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdG9yZS5tYXJrUXVlcnlSZXN1bHRDbGllbnQocXVlcnlJZCwgIXNob3VsZEZldGNoKTtcbiAgICAgICAgICAgIHRoaXMuYnJvYWRjYXN0UXVlcmllcygpO1xuICAgICAgICAgICAgaWYgKFF1ZXJ5TWFuYWdlci5FTUlUX1JFRFVYX0FDVElPTlMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19RVUVSWV9SRVNVTFRfQ0xJRU5UJyxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiB7IGRhdGE6IHN0b3JlUmVzdWx0IH0sXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudDogcXVlcnlEb2MsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGdldE9wZXJhdGlvbk5hbWUocXVlcnlEb2MpLFxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogIXNob3VsZEZldGNoLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeUlkOiBxdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkRmV0Y2gpIHtcbiAgICAgICAgICAgIHZhciBuZXR3b3JrUmVzdWx0ID0gdGhpcy5mZXRjaFJlcXVlc3Qoe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RJZDogcmVxdWVzdElkLFxuICAgICAgICAgICAgICAgIHF1ZXJ5SWQ6IHF1ZXJ5SWQsXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQ6IHF1ZXJ5RG9jLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgZmV0Y2hNb3JlRm9yUXVlcnlJZDogZmV0Y2hNb3JlRm9yUXVlcnlJZCxcbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc0Fwb2xsb0Vycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0SWQgPj0gKF90aGlzLmxhc3RSZXF1ZXN0SWRbcXVlcnlJZF0gfHwgMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChRdWVyeU1hbmFnZXIuRU1JVF9SRURVWF9BQ1RJT05TKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnQVBPTExPX1FVRVJZX0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUlkOiBxdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hNb3JlRm9yUXVlcnlJZDogZmV0Y2hNb3JlRm9yUXVlcnlJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnF1ZXJ5U3RvcmUubWFya1F1ZXJ5RXJyb3IocXVlcnlJZCwgZXJyb3IsIGZldGNoTW9yZUZvclF1ZXJ5SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuYnJvYWRjYXN0UXVlcmllcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnJlbW92ZUZldGNoUXVlcnlQcm9taXNlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrRXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmZXRjaFBvbGljeSAhPT0gJ2NhY2hlLWFuZC1uZXR3b3JrJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXR3b3JrUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiBzdG9yZVJlc3VsdCB9KTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucXVlcnlMaXN0ZW5lckZvck9ic2VydmVyID0gZnVuY3Rpb24gKHF1ZXJ5SWQsIG9wdGlvbnMsIG9ic2VydmVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBwcmV2aW91c2x5SGFkRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChxdWVyeVN0b3JlVmFsdWUpIHtcbiAgICAgICAgICAgIGlmICghcXVlcnlTdG9yZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcXVlcnlTdG9yZVZhbHVlID0gX3RoaXMucXVlcnlTdG9yZS5nZXQocXVlcnlJZCk7XG4gICAgICAgICAgICB2YXIgc3RvcmVkUXVlcnkgPSBfdGhpcy5vYnNlcnZhYmxlUXVlcmllc1txdWVyeUlkXTtcbiAgICAgICAgICAgIHZhciBvYnNlcnZhYmxlUXVlcnkgPSBzdG9yZWRRdWVyeSA/IHN0b3JlZFF1ZXJ5Lm9ic2VydmFibGVRdWVyeSA6IG51bGw7XG4gICAgICAgICAgICB2YXIgZmV0Y2hQb2xpY3kgPSBvYnNlcnZhYmxlUXVlcnlcbiAgICAgICAgICAgICAgICA/IG9ic2VydmFibGVRdWVyeS5vcHRpb25zLmZldGNoUG9saWN5XG4gICAgICAgICAgICAgICAgOiBvcHRpb25zLmZldGNoUG9saWN5O1xuICAgICAgICAgICAgaWYgKGZldGNoUG9saWN5ID09PSAnc3RhbmRieScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbGFzdFJlc3VsdCA9IG9ic2VydmFibGVRdWVyeVxuICAgICAgICAgICAgICAgID8gb2JzZXJ2YWJsZVF1ZXJ5LmdldExhc3RSZXN1bHQoKVxuICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIHZhciBzaG91bGROb3RpZnlJZkxvYWRpbmcgPSBxdWVyeVN0b3JlVmFsdWUucHJldmlvdXNWYXJpYWJsZXMgfHxcbiAgICAgICAgICAgICAgICBmZXRjaFBvbGljeSA9PT0gJ2NhY2hlLW9ubHknIHx8XG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1hbmQtbmV0d29yayc7XG4gICAgICAgICAgICB2YXIgbmV0d29ya1N0YXR1c0NoYW5nZWQgPSBsYXN0UmVzdWx0ICYmXG4gICAgICAgICAgICAgICAgcXVlcnlTdG9yZVZhbHVlLm5ldHdvcmtTdGF0dXMgIT09IGxhc3RSZXN1bHQubmV0d29ya1N0YXR1cztcbiAgICAgICAgICAgIGlmICghaXNOZXR3b3JrUmVxdWVzdEluRmxpZ2h0KHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzKSB8fFxuICAgICAgICAgICAgICAgIChuZXR3b3JrU3RhdHVzQ2hhbmdlZCAmJiBvcHRpb25zLm5vdGlmeU9uTmV0d29ya1N0YXR1c0NoYW5nZSkgfHxcbiAgICAgICAgICAgICAgICBzaG91bGROb3RpZnlJZkxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHF1ZXJ5U3RvcmVWYWx1ZS5ncmFwaFFMRXJyb3JzICYmXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5ncmFwaFFMRXJyb3JzLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFwb2xsb0Vycm9yXzEgPSBuZXcgQXBvbGxvRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhRTEVycm9yczogcXVlcnlTdG9yZVZhbHVlLmdyYXBoUUxFcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrRXJyb3I6IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5SGFkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoYXBvbGxvRXJyb3JfMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgYXBvbGxvRXJyb3JfMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1Byb2R1Y3Rpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnQW4gdW5oYW5kbGVkIGVycm9yIHdhcyB0aHJvd24gYmVjYXVzZSBubyBlcnJvciBoYW5kbGVyIGlzIHJlZ2lzdGVyZWQgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3IgdGhlIHF1ZXJ5ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVN0b3JlVmFsdWUucXVlcnlTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hID0gZGlmZlF1ZXJ5QWdhaW5zdFN0b3JlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogX3RoaXMuZ2V0RGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0cygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBfdGhpcy5xdWVyeURvY3VtZW50c1txdWVyeUlkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHF1ZXJ5U3RvcmVWYWx1ZS5wcmV2aW91c1ZhcmlhYmxlcyB8fCBxdWVyeVN0b3JlVmFsdWUudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogX3RoaXMucmVkdWNlckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudE1hdGNoZXJGdW5jdGlvbjogX3RoaXMuZnJhZ21lbnRNYXRjaGVyLm1hdGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0OiBsYXN0UmVzdWx0ICYmIGxhc3RSZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBkYXRhID0gX2EucmVzdWx0LCBpc01pc3NpbmcgPSBfYS5pc01pc3Npbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0RnJvbVN0b3JlID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWlzc2luZyAmJiBmZXRjaFBvbGljeSAhPT0gJ2NhY2hlLW9ubHknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0RnJvbVN0b3JlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBsYXN0UmVzdWx0ICYmIGxhc3RSZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogaXNOZXR3b3JrUmVxdWVzdEluRmxpZ2h0KHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya1N0YXR1czogcXVlcnlTdG9yZVZhbHVlLm5ldHdvcmtTdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRGcm9tU3RvcmUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGlzTmV0d29ya1JlcXVlc3RJbkZsaWdodChxdWVyeVN0b3JlVmFsdWUubmV0d29ya1N0YXR1cyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtTdGF0dXM6IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlci5uZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzRGlmZmVyZW50UmVzdWx0ID0gIShsYXN0UmVzdWx0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdEZyb21TdG9yZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmVzdWx0Lm5ldHdvcmtTdGF0dXMgPT09IHJlc3VsdEZyb21TdG9yZS5uZXR3b3JrU3RhdHVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RSZXN1bHQuc3RhbGUgPT09IHJlc3VsdEZyb21TdG9yZS5zdGFsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmVzdWx0LmRhdGEgPT09IHJlc3VsdEZyb21TdG9yZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEaWZmZXJlbnRSZXN1bHQgfHwgcHJldmlvdXNseUhhZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG1heWJlRGVlcEZyZWV6ZShyZXN1bHRGcm9tU3RvcmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNseUhhZEVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5SGFkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9ic2VydmVyLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEFwb2xsb0Vycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya0Vycm9yOiBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLndhdGNoUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucywgc2hvdWxkU3Vic2NyaWJlKSB7XG4gICAgICAgIGlmIChzaG91bGRTdWJzY3JpYmUgPT09IHZvaWQgMCkgeyBzaG91bGRTdWJzY3JpYmUgPSB0cnVlOyB9XG4gICAgICAgIGlmIChvcHRpb25zLnJldHVyblBhcnRpYWxEYXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JldHVyblBhcnRpYWxEYXRhIG9wdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIHNpbmNlIEFwb2xsbyBDbGllbnQgMS4wLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmZvcmNlRmV0Y2gpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZm9yY2VGZXRjaCBvcHRpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBzaW5jZSBBcG9sbG8gQ2xpZW50IDEuMC4gVXNlIGZldGNoUG9saWN5IGluc3RlYWQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMubm9GZXRjaCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub0ZldGNoIG9wdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIHNpbmNlIEFwb2xsbyBDbGllbnQgMS4wLiBVc2UgZmV0Y2hQb2xpY3kgaW5zdGVhZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ3N0YW5kYnknKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsaWVudC53YXRjaFF1ZXJ5IGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBmZXRjaFBvbGljeSBzZXQgdG8gXCJzdGFuZGJ5XCInKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcXVlcnlEZWZpbml0aW9uID0gZ2V0UXVlcnlEZWZpbml0aW9uKG9wdGlvbnMucXVlcnkpO1xuICAgICAgICBpZiAocXVlcnlEZWZpbml0aW9uLnZhcmlhYmxlRGVmaW5pdGlvbnMgJiZcbiAgICAgICAgICAgIHF1ZXJ5RGVmaW5pdGlvbi52YXJpYWJsZURlZmluaXRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZXMgPSBnZXREZWZhdWx0VmFsdWVzKHF1ZXJ5RGVmaW5pdGlvbik7XG4gICAgICAgICAgICBvcHRpb25zLnZhcmlhYmxlcyA9IGFzc2lnbih7fSwgZGVmYXVsdFZhbHVlcywgb3B0aW9ucy52YXJpYWJsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ub3RpZnlPbk5ldHdvcmtTdGF0dXNDaGFuZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBvcHRpb25zLm5vdGlmeU9uTmV0d29ya1N0YXR1c0NoYW5nZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0cmFuc2Zvcm1lZE9wdGlvbnMgPSBfX2Fzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgICAgIHZhciBvYnNlcnZhYmxlUXVlcnkgPSBuZXcgT2JzZXJ2YWJsZVF1ZXJ5KHtcbiAgICAgICAgICAgIHNjaGVkdWxlcjogdGhpcy5zY2hlZHVsZXIsXG4gICAgICAgICAgICBvcHRpb25zOiB0cmFuc2Zvcm1lZE9wdGlvbnMsXG4gICAgICAgICAgICBzaG91bGRTdWJzY3JpYmU6IHNob3VsZFN1YnNjcmliZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlUXVlcnk7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLnF1ZXJ5ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKCFvcHRpb25zLnF1ZXJ5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3F1ZXJ5IG9wdGlvbiBpcyByZXF1aXJlZC4gWW91IG11c3Qgc3BlY2lmeSB5b3VyIEdyYXBoUUwgZG9jdW1lbnQgaW4gdGhlIHF1ZXJ5IG9wdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5xdWVyeS5raW5kICE9PSAnRG9jdW1lbnQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBtdXN0IHdyYXAgdGhlIHF1ZXJ5IHN0cmluZyBpbiBhIFwiZ3FsXCIgdGFnLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnJldHVyblBhcnRpYWxEYXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JldHVyblBhcnRpYWxEYXRhIG9wdGlvbiBvbmx5IHN1cHBvcnRlZCBvbiB3YXRjaFF1ZXJ5LicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnBvbGxJbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwb2xsSW50ZXJ2YWwgb3B0aW9uIG9ubHkgc3VwcG9ydGVkIG9uIHdhdGNoUXVlcnkuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuZm9yY2VGZXRjaCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JjZUZldGNoIG9wdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIHNpbmNlIEFwb2xsbyBDbGllbnQgMS4wLiBVc2UgZmV0Y2hQb2xpY3kgaW5zdGVhZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5ub0ZldGNoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vRmV0Y2ggb3B0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgc2luY2UgQXBvbGxvIENsaWVudCAxLjAuIFVzZSBmZXRjaFBvbGljeSBpbnN0ZWFkLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ub3RpZnlPbk5ldHdvcmtTdGF0dXNDaGFuZ2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjYWxsIFwicXVlcnlcIiB3aXRoIFwibm90aWZ5T25OZXR3b3JrU3RhdHVzQ2hhbmdlXCIgb3B0aW9uLiBPbmx5IFwid2F0Y2hRdWVyeVwiIGhhcyB0aGF0IG9wdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zLm5vdGlmeU9uTmV0d29ya1N0YXR1c0NoYW5nZSA9IGZhbHNlO1xuICAgICAgICB2YXIgcmVxdWVzdElkID0gdGhpcy5pZENvdW50ZXI7XG4gICAgICAgIHZhciByZXNQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgX3RoaXMuYWRkRmV0Y2hRdWVyeVByb21pc2UocmVxdWVzdElkLCByZXNQcm9taXNlLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLndhdGNoUXVlcnkob3B0aW9ucywgZmFsc2UpXG4gICAgICAgICAgICAgICAgLnJlc3VsdCgpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIF90aGlzLnJlbW92ZUZldGNoUXVlcnlQcm9taXNlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMucmVtb3ZlRmV0Y2hRdWVyeVByb21pc2UocmVxdWVzdElkKTtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzUHJvbWlzZTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2VuZXJhdGVRdWVyeUlkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcXVlcnlJZCA9IHRoaXMuaWRDb3VudGVyLnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMuaWRDb3VudGVyKys7XG4gICAgICAgIHJldHVybiBxdWVyeUlkO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5zdG9wUXVlcnlJblN0b3JlID0gZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgdGhpcy5xdWVyeVN0b3JlLnN0b3BRdWVyeShxdWVyeUlkKTtcbiAgICAgICAgdGhpcy5icm9hZGNhc3RRdWVyaWVzKCk7XG4gICAgICAgIGlmIChRdWVyeU1hbmFnZXIuRU1JVF9SRURVWF9BQ1RJT05TKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnQVBPTExPX1FVRVJZX1NUT1AnLFxuICAgICAgICAgICAgICAgIHF1ZXJ5SWQ6IHF1ZXJ5SWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5nZXRBcG9sbG9TdGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVkdXhSb290U2VsZWN0b3IodGhpcy5zdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuc2VsZWN0QXBvbGxvU3RhdGUgPSBmdW5jdGlvbiAoc3RvcmUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVkdXhSb290U2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogdGhpcy5nZXRBcG9sbG9TdGF0ZSgpLmRhdGEgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0RGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0cyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHModGhpcy5nZXRBcG9sbG9TdGF0ZSgpKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuYWRkUXVlcnlMaXN0ZW5lciA9IGZ1bmN0aW9uIChxdWVyeUlkLCBsaXN0ZW5lcikge1xuICAgICAgICB0aGlzLnF1ZXJ5TGlzdGVuZXJzW3F1ZXJ5SWRdID0gdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXSB8fCBbXTtcbiAgICAgICAgdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXS5wdXNoKGxpc3RlbmVyKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuYWRkRmV0Y2hRdWVyeVByb21pc2UgPSBmdW5jdGlvbiAocmVxdWVzdElkLCBwcm9taXNlLCByZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgdGhpcy5mZXRjaFF1ZXJ5UHJvbWlzZXNbcmVxdWVzdElkLnRvU3RyaW5nKCldID0ge1xuICAgICAgICAgICAgcHJvbWlzZTogcHJvbWlzZSxcbiAgICAgICAgICAgIHJlc29sdmU6IHJlc29sdmUsXG4gICAgICAgICAgICByZWplY3Q6IHJlamVjdCxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVtb3ZlRmV0Y2hRdWVyeVByb21pc2UgPSBmdW5jdGlvbiAocmVxdWVzdElkKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZldGNoUXVlcnlQcm9taXNlc1tyZXF1ZXN0SWQudG9TdHJpbmcoKV07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmFkZE9ic2VydmFibGVRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeUlkLCBvYnNlcnZhYmxlUXVlcnkpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZhYmxlUXVlcmllc1txdWVyeUlkXSA9IHsgb2JzZXJ2YWJsZVF1ZXJ5OiBvYnNlcnZhYmxlUXVlcnkgfTtcbiAgICAgICAgdmFyIHF1ZXJ5RGVmID0gZ2V0UXVlcnlEZWZpbml0aW9uKG9ic2VydmFibGVRdWVyeS5vcHRpb25zLnF1ZXJ5KTtcbiAgICAgICAgaWYgKHF1ZXJ5RGVmLm5hbWUgJiYgcXVlcnlEZWYubmFtZS52YWx1ZSkge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5TmFtZSA9IHF1ZXJ5RGVmLm5hbWUudmFsdWU7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5SWRzQnlOYW1lW3F1ZXJ5TmFtZV0gPSB0aGlzLnF1ZXJ5SWRzQnlOYW1lW3F1ZXJ5TmFtZV0gfHwgW107XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5SWRzQnlOYW1lW3F1ZXJ5TmFtZV0ucHVzaChvYnNlcnZhYmxlUXVlcnkucXVlcnlJZCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVtb3ZlT2JzZXJ2YWJsZVF1ZXJ5ID0gZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgdmFyIG9ic2VydmFibGVRdWVyeSA9IHRoaXMub2JzZXJ2YWJsZVF1ZXJpZXNbcXVlcnlJZF0ub2JzZXJ2YWJsZVF1ZXJ5O1xuICAgICAgICB2YXIgZGVmaW5pdGlvbiA9IGdldFF1ZXJ5RGVmaW5pdGlvbihvYnNlcnZhYmxlUXVlcnkub3B0aW9ucy5xdWVyeSk7XG4gICAgICAgIHZhciBxdWVyeU5hbWUgPSBkZWZpbml0aW9uLm5hbWUgPyBkZWZpbml0aW9uLm5hbWUudmFsdWUgOiBudWxsO1xuICAgICAgICBkZWxldGUgdGhpcy5vYnNlcnZhYmxlUXVlcmllc1txdWVyeUlkXTtcbiAgICAgICAgaWYgKHF1ZXJ5TmFtZSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeUlkc0J5TmFtZVtxdWVyeU5hbWVdID0gdGhpcy5xdWVyeUlkc0J5TmFtZVtxdWVyeU5hbWVdLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEob2JzZXJ2YWJsZVF1ZXJ5LnF1ZXJ5SWQgPT09IHZhbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5yZXNldFN0b3JlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmZldGNoUXVlcnlQcm9taXNlcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICB2YXIgcmVqZWN0ID0gX3RoaXMuZmV0Y2hRdWVyeVByb21pc2VzW2tleV0ucmVqZWN0O1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignU3RvcmUgcmVzZXQgd2hpbGUgcXVlcnkgd2FzIGluIGZsaWdodC4nKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnF1ZXJ5U3RvcmUucmVzZXQoT2JqZWN0LmtleXModGhpcy5vYnNlcnZhYmxlUXVlcmllcykpO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdBUE9MTE9fU1RPUkVfUkVTRVQnLFxuICAgICAgICAgICAgb2JzZXJ2YWJsZVF1ZXJ5SWRzOiBPYmplY3Qua2V5cyh0aGlzLm9ic2VydmFibGVRdWVyaWVzKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXV0YXRpb25TdG9yZS5yZXNldCgpO1xuICAgICAgICB2YXIgb2JzZXJ2YWJsZVF1ZXJ5UHJvbWlzZXMgPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5vYnNlcnZhYmxlUXVlcmllcykuZm9yRWFjaChmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICAgICAgdmFyIHN0b3JlUXVlcnkgPSBfdGhpcy5xdWVyeVN0b3JlLmdldChxdWVyeUlkKTtcbiAgICAgICAgICAgIHZhciBmZXRjaFBvbGljeSA9IF90aGlzLm9ic2VydmFibGVRdWVyaWVzW3F1ZXJ5SWRdLm9ic2VydmFibGVRdWVyeVxuICAgICAgICAgICAgICAgIC5vcHRpb25zLmZldGNoUG9saWN5O1xuICAgICAgICAgICAgaWYgKGZldGNoUG9saWN5ICE9PSAnY2FjaGUtb25seScgJiYgZmV0Y2hQb2xpY3kgIT09ICdzdGFuZGJ5Jykge1xuICAgICAgICAgICAgICAgIG9ic2VydmFibGVRdWVyeVByb21pc2VzLnB1c2goX3RoaXMub2JzZXJ2YWJsZVF1ZXJpZXNbcXVlcnlJZF0ub2JzZXJ2YWJsZVF1ZXJ5LnJlZmV0Y2goKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwob2JzZXJ2YWJsZVF1ZXJ5UHJvbWlzZXMpO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5zdGFydFF1ZXJ5ID0gZnVuY3Rpb24gKHF1ZXJ5SWQsIG9wdGlvbnMsIGxpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuYWRkUXVlcnlMaXN0ZW5lcihxdWVyeUlkLCBsaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuZmV0Y2hRdWVyeShxdWVyeUlkLCBvcHRpb25zKVxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgeyByZXR1cm4gdW5kZWZpbmVkOyB9KTtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5SWQ7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLnN0YXJ0R3JhcGhRTFN1YnNjcmlwdGlvbiA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBxdWVyeSA9IG9wdGlvbnMucXVlcnk7XG4gICAgICAgIHZhciB0cmFuc2Zvcm1lZERvYyA9IHF1ZXJ5O1xuICAgICAgICBpZiAodGhpcy5hZGRUeXBlbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtZWREb2MgPSBhZGRUeXBlbmFtZVRvRG9jdW1lbnQodHJhbnNmb3JtZWREb2MpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2YXJpYWJsZXMgPSBhc3NpZ24oe30sIGdldERlZmF1bHRWYWx1ZXMoZ2V0T3BlcmF0aW9uRGVmaW5pdGlvbihxdWVyeSkpLCBvcHRpb25zLnZhcmlhYmxlcyk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0ge1xuICAgICAgICAgICAgcXVlcnk6IHRyYW5zZm9ybWVkRG9jLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBnZXRPcGVyYXRpb25OYW1lKHRyYW5zZm9ybWVkRG9jKSxcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHN1YklkO1xuICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gW107XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgICAgICAgICAgIGlmIChvYnNlcnZlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbiAoZXJyb3IsIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JzLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9icy5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19TVUJTQ1JJUFRJT05fUkVTVUxUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudDogdHJhbnNmb3JtZWREb2MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZSh0cmFuc2Zvcm1lZERvYyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiB7IGRhdGE6IHJlc3VsdCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbklkOiBzdWJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlZHVjZXJzOiBfdGhpcy5nZXRFeHRyYVJlZHVjZXJzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JzLm5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgc3ViSWQgPSBfdGhpc1xuICAgICAgICAgICAgICAgICAgICAubmV0d29ya0ludGVyZmFjZS5zdWJzY3JpYmUocmVxdWVzdCwgaGFuZGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHVuc3Vic2NyaWJlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVycyA9IG9ic2VydmVycy5maWx0ZXIoZnVuY3Rpb24gKG9icykgeyByZXR1cm4gb2JzICE9PSBvYnNlcnZlcjsgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5uZXR3b3JrSW50ZXJmYWNlLnVuc3Vic2NyaWJlKHN1YklkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgX25ldHdvcmtTdWJzY3JpcHRpb25JZDogc3ViSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVtb3ZlUXVlcnkgPSBmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICBkZWxldGUgdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXTtcbiAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlEb2N1bWVudHNbcXVlcnlJZF07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLnN0b3BRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlUXVlcnkocXVlcnlJZCk7XG4gICAgICAgIHRoaXMuc3RvcFF1ZXJ5SW5TdG9yZShxdWVyeUlkKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0Q3VycmVudFF1ZXJ5UmVzdWx0ID0gZnVuY3Rpb24gKG9ic2VydmFibGVRdWVyeSwgaXNPcHRpbWlzdGljKSB7XG4gICAgICAgIGlmIChpc09wdGltaXN0aWMgPT09IHZvaWQgMCkgeyBpc09wdGltaXN0aWMgPSBmYWxzZTsgfVxuICAgICAgICB2YXIgX2EgPSB0aGlzLmdldFF1ZXJ5UGFydHMob2JzZXJ2YWJsZVF1ZXJ5KSwgdmFyaWFibGVzID0gX2EudmFyaWFibGVzLCBkb2N1bWVudCA9IF9hLmRvY3VtZW50O1xuICAgICAgICB2YXIgbGFzdFJlc3VsdCA9IG9ic2VydmFibGVRdWVyeS5nZXRMYXN0UmVzdWx0KCk7XG4gICAgICAgIHZhciBxdWVyeU9wdGlvbnMgPSBvYnNlcnZhYmxlUXVlcnkub3B0aW9ucztcbiAgICAgICAgdmFyIHJlYWRPcHRpb25zID0ge1xuICAgICAgICAgICAgc3RvcmU6IGlzT3B0aW1pc3RpY1xuICAgICAgICAgICAgICAgID8gdGhpcy5nZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKClcbiAgICAgICAgICAgICAgICA6IHRoaXMuZ2V0QXBvbGxvU3RhdGUoKS5kYXRhLFxuICAgICAgICAgICAgcXVlcnk6IGRvY3VtZW50LFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBjb25maWc6IHRoaXMucmVkdWNlckNvbmZpZyxcbiAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0OiBsYXN0UmVzdWx0ID8gbGFzdFJlc3VsdC5kYXRhIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IHRoaXMuZnJhZ21lbnRNYXRjaGVyLm1hdGNoLFxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGRhdGEgPSByZWFkUXVlcnlGcm9tU3RvcmUocmVhZE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIG1heWJlRGVlcEZyZWV6ZSh7IGRhdGE6IGRhdGEsIHBhcnRpYWw6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF5YmVEZWVwRnJlZXplKHsgZGF0YToge30sIHBhcnRpYWw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0UXVlcnlXaXRoUHJldmlvdXNSZXN1bHQgPSBmdW5jdGlvbiAocXVlcnlJZE9yT2JzZXJ2YWJsZSwgaXNPcHRpbWlzdGljKSB7XG4gICAgICAgIGlmIChpc09wdGltaXN0aWMgPT09IHZvaWQgMCkgeyBpc09wdGltaXN0aWMgPSBmYWxzZTsgfVxuICAgICAgICB2YXIgb2JzZXJ2YWJsZVF1ZXJ5O1xuICAgICAgICBpZiAodHlwZW9mIHF1ZXJ5SWRPck9ic2VydmFibGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMub2JzZXJ2YWJsZVF1ZXJpZXNbcXVlcnlJZE9yT2JzZXJ2YWJsZV0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPYnNlcnZhYmxlUXVlcnkgd2l0aCB0aGlzIGlkIGRvZXNuJ3QgZXhpc3Q6IFwiICsgcXVlcnlJZE9yT2JzZXJ2YWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYnNlcnZhYmxlUXVlcnkgPSB0aGlzLm9ic2VydmFibGVRdWVyaWVzW3F1ZXJ5SWRPck9ic2VydmFibGVdXG4gICAgICAgICAgICAgICAgLm9ic2VydmFibGVRdWVyeTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmFibGVRdWVyeSA9IHF1ZXJ5SWRPck9ic2VydmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9hID0gdGhpcy5nZXRRdWVyeVBhcnRzKG9ic2VydmFibGVRdWVyeSksIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcywgZG9jdW1lbnQgPSBfYS5kb2N1bWVudDtcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLmdldEN1cnJlbnRRdWVyeVJlc3VsdChvYnNlcnZhYmxlUXVlcnksIGlzT3B0aW1pc3RpYykuZGF0YTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0OiBkYXRhLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBkb2N1bWVudDogZG9jdW1lbnQsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmdldFF1ZXJ5UGFydHMgPSBmdW5jdGlvbiAob2JzZXJ2YWJsZVF1ZXJ5KSB7XG4gICAgICAgIHZhciBxdWVyeU9wdGlvbnMgPSBvYnNlcnZhYmxlUXVlcnkub3B0aW9ucztcbiAgICAgICAgdmFyIHRyYW5zZm9ybWVkRG9jID0gb2JzZXJ2YWJsZVF1ZXJ5Lm9wdGlvbnMucXVlcnk7XG4gICAgICAgIGlmICh0aGlzLmFkZFR5cGVuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1lZERvYyA9IGFkZFR5cGVuYW1lVG9Eb2N1bWVudCh0cmFuc2Zvcm1lZERvYyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhcmlhYmxlczogcXVlcnlPcHRpb25zLnZhcmlhYmxlcyxcbiAgICAgICAgICAgIGRvY3VtZW50OiB0cmFuc2Zvcm1lZERvYyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUudHJhbnNmb3JtUXVlcnlEb2N1bWVudCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBxdWVyeURvYyA9IG9wdGlvbnMucXVlcnk7XG4gICAgICAgIGlmICh0aGlzLmFkZFR5cGVuYW1lKSB7XG4gICAgICAgICAgICBxdWVyeURvYyA9IGFkZFR5cGVuYW1lVG9Eb2N1bWVudChxdWVyeURvYyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHF1ZXJ5RG9jOiBxdWVyeURvYyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0RXh0cmFSZWR1Y2VycyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMub2JzZXJ2YWJsZVF1ZXJpZXMpXG4gICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChvYnNRdWVyeUlkKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnkgPSBfdGhpcy5vYnNlcnZhYmxlUXVlcmllc1tvYnNRdWVyeUlkXS5vYnNlcnZhYmxlUXVlcnk7XG4gICAgICAgICAgICB2YXIgcXVlcnlPcHRpb25zID0gcXVlcnkub3B0aW9ucztcbiAgICAgICAgICAgIGlmIChxdWVyeU9wdGlvbnMucmVkdWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdG9yZVJlZHVjZXIocXVlcnlPcHRpb25zLnJlZHVjZXIsIF90aGlzLmFkZFR5cGVuYW1lXG4gICAgICAgICAgICAgICAgICAgID8gYWRkVHlwZW5hbWVUb0RvY3VtZW50KHF1ZXJ5T3B0aW9ucy5xdWVyeSlcbiAgICAgICAgICAgICAgICAgICAgOiBxdWVyeU9wdGlvbnMucXVlcnksIHF1ZXJ5LnZhcmlhYmxlcyB8fCB7fSwgX3RoaXMucmVkdWNlckNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKHJlZHVjZXIpIHsgcmV0dXJuIHJlZHVjZXIgIT09IG51bGw7IH0pO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5mZXRjaFJlcXVlc3QgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHJlcXVlc3RJZCA9IF9hLnJlcXVlc3RJZCwgcXVlcnlJZCA9IF9hLnF1ZXJ5SWQsIGRvY3VtZW50ID0gX2EuZG9jdW1lbnQsIG9wdGlvbnMgPSBfYS5vcHRpb25zLCBmZXRjaE1vcmVGb3JRdWVyeUlkID0gX2EuZmV0Y2hNb3JlRm9yUXVlcnlJZDtcbiAgICAgICAgdmFyIHZhcmlhYmxlcyA9IG9wdGlvbnMudmFyaWFibGVzO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgIHF1ZXJ5OiBkb2N1bWVudCxcbiAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShkb2N1bWVudCksXG4gICAgICAgIH07XG4gICAgICAgIHZhciByZXRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgX3RoaXMuYWRkRmV0Y2hRdWVyeVByb21pc2UocmVxdWVzdElkLCByZXRQcm9taXNlLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgX3RoaXMuZGVkdXBsaWNhdG9yXG4gICAgICAgICAgICAgICAgLnF1ZXJ5KHJlcXVlc3QsIF90aGlzLnF1ZXJ5RGVkdXBsaWNhdGlvbilcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdmFyIGV4dHJhUmVkdWNlcnMgPSBfdGhpcy5nZXRFeHRyYVJlZHVjZXJzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcXVlc3RJZCA+PSAoX3RoaXMubGFzdFJlcXVlc3RJZFtxdWVyeUlkXSB8fCAxKSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5kaXNhYmxlQnJvYWRjYXN0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19RVUVSWV9SRVNVTFQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQ6IGRvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMgPyB2YXJpYWJsZXMgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGdldE9wZXJhdGlvbk5hbWUoZG9jdW1lbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUlkOiBxdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaE1vcmVGb3JRdWVyeUlkOiBmZXRjaE1vcmVGb3JRdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFSZWR1Y2VyczogZXh0cmFSZWR1Y2VycyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLmRpc2FibGVCcm9hZGNhc3RpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlZHVjZXJFcnJvciA9IF90aGlzLmdldEFwb2xsb1N0YXRlKCkucmVkdWNlckVycm9yO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZHVjZXJFcnJvciB8fCByZWR1Y2VyRXJyb3IucXVlcnlJZCAhPT0gcXVlcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMucXVlcnlTdG9yZS5tYXJrUXVlcnlSZXN1bHQocXVlcnlJZCwgcmVzdWx0LCBmZXRjaE1vcmVGb3JRdWVyeUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLmJyb2FkY2FzdFF1ZXJpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdGhpcy5yZW1vdmVGZXRjaFF1ZXJ5UHJvbWlzZShyZXF1ZXN0SWQpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmFwaFFMRXJyb3JzOiByZXN1bHQuZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHZhciByZXN1bHRGcm9tU3RvcmU7XG4gICAgICAgICAgICAgICAgaWYgKGZldGNoTW9yZUZvclF1ZXJ5SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0RnJvbVN0b3JlID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0RnJvbVN0b3JlID0gcmVhZFF1ZXJ5RnJvbVN0b3JlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogX3RoaXMuZ2V0QXBvbGxvU3RhdGUoKS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBkb2N1bWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IF90aGlzLnJlZHVjZXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IF90aGlzLmZyYWdtZW50TWF0Y2hlci5tYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHJlZHVjZXJFcnJvciA9IF90aGlzLmdldEFwb2xsb1N0YXRlKCkucmVkdWNlckVycm9yO1xuICAgICAgICAgICAgICAgIGlmIChyZWR1Y2VyRXJyb3IgJiYgcmVkdWNlckVycm9yLnF1ZXJ5SWQgPT09IHF1ZXJ5SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlZHVjZXJFcnJvci5lcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF90aGlzLnJlbW92ZUZldGNoUXVlcnlQcm9taXNlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHJlc3VsdEZyb21TdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG5ldHdvcmtTdGF0dXM6IE5ldHdvcmtTdGF0dXMucmVhZHksXG4gICAgICAgICAgICAgICAgICAgIHN0YWxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmV0UHJvbWlzZTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVmZXRjaFF1ZXJ5QnlOYW1lID0gZnVuY3Rpb24gKHF1ZXJ5TmFtZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcmVmZXRjaGVkUXVlcmllcyA9IHRoaXMucXVlcnlJZHNCeU5hbWVbcXVlcnlOYW1lXTtcbiAgICAgICAgaWYgKHJlZmV0Y2hlZFF1ZXJpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogdW5rbm93biBxdWVyeSB3aXRoIG5hbWUgXCIgKyBxdWVyeU5hbWUgKyBcIiBhc2tlZCB0byByZWZldGNoXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHJlZmV0Y2hlZFF1ZXJpZXMubWFwKGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLm9ic2VydmFibGVRdWVyaWVzW3F1ZXJ5SWRdLm9ic2VydmFibGVRdWVyeS5yZWZldGNoKCk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuYnJvYWRjYXN0UXVlcmllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZUJyb2FkY2FzdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMucXVlcnlMaXN0ZW5lcnMpLmZvckVhY2goZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgICAgIHZhciBsaXN0ZW5lcnMgPSBfdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXTtcbiAgICAgICAgICAgIGlmIChsaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcXVlcnlTdG9yZVZhbHVlID0gX3RoaXMucXVlcnlTdG9yZS5nZXQocXVlcnlJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihxdWVyeVN0b3JlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5nZW5lcmF0ZVJlcXVlc3RJZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlcXVlc3RJZCA9IHRoaXMuaWRDb3VudGVyO1xuICAgICAgICB0aGlzLmlkQ291bnRlcisrO1xuICAgICAgICByZXR1cm4gcmVxdWVzdElkO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLkVNSVRfUkVEVVhfQUNUSU9OUyA9IHRydWU7XG4gICAgcmV0dXJuIFF1ZXJ5TWFuYWdlcjtcbn0oKSk7XG5leHBvcnQgeyBRdWVyeU1hbmFnZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVF1ZXJ5TWFuYWdlci5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L2NvcmUvUXVlcnlNYW5hZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAyODJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///282\n"); +eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryManager; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transport_Deduplicator__ = __webpack_require__(/*! ../transport/Deduplicator */ 283);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_isEqual__ = __webpack_require__(/*! ../util/isEqual */ 43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_assign__ = __webpack_require__(/*! ../util/assign */ 24);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__types__ = __webpack_require__(/*! ./types */ 68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__queries_store__ = __webpack_require__(/*! ../queries/store */ 284);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__ = __webpack_require__(/*! ../queries/networkStatus */ 33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__store__ = __webpack_require__(/*! ../store */ 64);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__ = __webpack_require__(/*! ../queries/getFromAST */ 16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__ = __webpack_require__(/*! ../queries/queryTransform */ 31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__data_resultReducers__ = __webpack_require__(/*! ../data/resultReducers */ 285);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__data_fragmentMatcher__ = __webpack_require__(/*! ../data/fragmentMatcher */ 71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__util_environment__ = __webpack_require__(/*! ../util/environment */ 25);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__ = __webpack_require__(/*! ../util/maybeDeepFreeze */ 121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__ = __webpack_require__(/*! graphql/language/printer */ 42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_graphql_language_printer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__data_readFromStore__ = __webpack_require__(/*! ../data/readFromStore */ 26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__mutations_store__ = __webpack_require__(/*! ../mutations/store */ 286);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__scheduler_scheduler__ = __webpack_require__(/*! ../scheduler/scheduler */ 287);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__util_Observable__ = __webpack_require__(/*! ../util/Observable */ 120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__ = __webpack_require__(/*! ../errors/ApolloError */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__ObservableQuery__ = __webpack_require__(/*! ./ObservableQuery */ 66);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar QueryManager = (function () {\n function QueryManager(_a) {\n var networkInterface = _a.networkInterface, store = _a.store, reduxRootSelector = _a.reduxRootSelector, _b = _a.reducerConfig, reducerConfig = _b === void 0 ? {} : _b, fragmentMatcher = _a.fragmentMatcher, _c = _a.addTypename, addTypename = _c === void 0 ? true : _c, _d = _a.queryDeduplication, queryDeduplication = _d === void 0 ? false : _d, _e = _a.ssrMode, ssrMode = _e === void 0 ? false : _e;\n var _this = this;\n this.mutationStore = new __WEBPACK_IMPORTED_MODULE_15__mutations_store__[\"a\" /* MutationStore */]();\n this.queryStore = new __WEBPACK_IMPORTED_MODULE_4__queries_store__[\"a\" /* QueryStore */]();\n this.idCounter = 1;\n this.lastRequestId = {};\n this.disableBroadcasting = false;\n this.networkInterface = networkInterface;\n this.deduplicator = new __WEBPACK_IMPORTED_MODULE_0__transport_Deduplicator__[\"a\" /* Deduplicator */](networkInterface);\n this.store = store;\n this.reduxRootSelector = reduxRootSelector;\n this.reducerConfig = reducerConfig;\n this.pollingTimers = {};\n this.queryListeners = {};\n this.queryDocuments = {};\n this.addTypename = addTypename;\n this.queryDeduplication = queryDeduplication;\n this.ssrMode = ssrMode;\n if (typeof fragmentMatcher === 'undefined') {\n this.fragmentMatcher = new __WEBPACK_IMPORTED_MODULE_10__data_fragmentMatcher__[\"a\" /* HeuristicFragmentMatcher */]();\n }\n else {\n this.fragmentMatcher = fragmentMatcher;\n }\n this.scheduler = new __WEBPACK_IMPORTED_MODULE_16__scheduler_scheduler__[\"a\" /* QueryScheduler */]({\n queryManager: this,\n });\n this.fetchQueryPromises = {};\n this.observableQueries = {};\n this.queryIdsByName = {};\n if (this.store['subscribe']) {\n var currentStoreData_1;\n this.store['subscribe'](function () {\n var previousStoreData = currentStoreData_1 || {};\n var previousStoreHasData = Object.keys(previousStoreData).length;\n currentStoreData_1 = _this.getApolloState();\n if (Object(__WEBPACK_IMPORTED_MODULE_1__util_isEqual__[\"a\" /* isEqual */])(previousStoreData, currentStoreData_1) &&\n previousStoreHasData) {\n return;\n }\n _this.broadcastQueries();\n });\n }\n }\n QueryManager.prototype.broadcastNewStore = function (store) {\n this.broadcastQueries();\n };\n QueryManager.prototype.mutate = function (_a) {\n var _this = this;\n var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueriesByName = _a.updateQueries, _b = _a.refetchQueries, refetchQueries = _b === void 0 ? [] : _b, updateWithProxyFn = _a.update;\n if (!mutation) {\n throw new Error('mutation option is required. You must specify your GraphQL document in the mutation option.');\n }\n var mutationId = this.generateQueryId();\n if (this.addTypename) {\n mutation = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(mutation);\n }\n variables = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"c\" /* getDefaultValues */])(Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"f\" /* getMutationDefinition */])(mutation)), variables);\n var mutationString = Object(__WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__[\"print\"])(mutation);\n var request = {\n query: mutation,\n variables: variables,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(mutation),\n };\n this.queryDocuments[mutationId] = mutation;\n var generateUpdateQueriesInfo = function () {\n var ret = {};\n if (updateQueriesByName) {\n Object.keys(updateQueriesByName).forEach(function (queryName) {\n return (_this.queryIdsByName[queryName] || []).forEach(function (queryId) {\n ret[queryId] = {\n reducer: updateQueriesByName[queryName],\n query: _this.queryStore.get(queryId),\n };\n });\n });\n }\n return ret;\n };\n this.store.dispatch({\n type: 'APOLLO_MUTATION_INIT',\n mutationString: mutationString,\n mutation: mutation,\n variables: variables || {},\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(mutation),\n mutationId: mutationId,\n optimisticResponse: optimisticResponse,\n extraReducers: this.getExtraReducers(),\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n this.mutationStore.initMutation(mutationId, mutationString, variables);\n return new Promise(function (resolve, reject) {\n _this.networkInterface\n .query(request)\n .then(function (result) {\n if (result.errors) {\n var error = new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: result.errors,\n });\n _this.store.dispatch({\n type: 'APOLLO_MUTATION_ERROR',\n error: error,\n mutationId: mutationId,\n });\n _this.mutationStore.markMutationError(mutationId, error);\n delete _this.queryDocuments[mutationId];\n reject(error);\n return;\n }\n _this.store.dispatch({\n type: 'APOLLO_MUTATION_RESULT',\n result: result,\n mutationId: mutationId,\n document: mutation,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(mutation),\n variables: variables || {},\n extraReducers: _this.getExtraReducers(),\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n _this.mutationStore.markMutationResult(mutationId);\n var reducerError = _this.getApolloState().reducerError;\n if (reducerError && reducerError.mutationId === mutationId) {\n reject(reducerError.error);\n return;\n }\n if (typeof refetchQueries[0] === 'string') {\n refetchQueries.forEach(function (name) {\n _this.refetchQueryByName(name);\n });\n }\n else {\n refetchQueries.forEach(function (pureQuery) {\n _this.query({\n query: pureQuery.query,\n variables: pureQuery.variables,\n fetchPolicy: 'network-only',\n });\n });\n }\n delete _this.queryDocuments[mutationId];\n resolve(result);\n })\n .catch(function (err) {\n _this.store.dispatch({\n type: 'APOLLO_MUTATION_ERROR',\n error: err,\n mutationId: mutationId,\n });\n delete _this.queryDocuments[mutationId];\n reject(new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n networkError: err,\n }));\n });\n });\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, fetchType, fetchMoreForQueryId) {\n var _this = this;\n var _a = options.variables, variables = _a === void 0 ? {} : _a, _b = options.metadata, metadata = _b === void 0 ? null : _b, _c = options.fetchPolicy, fetchPolicy = _c === void 0 ? 'cache-first' : _c;\n var queryDoc = this.transformQueryDocument(options).queryDoc;\n var queryString = Object(__WEBPACK_IMPORTED_MODULE_13_graphql_language_printer__[\"print\"])(queryDoc);\n var storeResult;\n var needToFetch = fetchPolicy === 'network-only';\n if (fetchType !== __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].refetch && fetchPolicy !== 'network-only') {\n var _d = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"a\" /* diffQueryAgainstStore */])({\n query: queryDoc,\n store: this.reduxRootSelector(this.store.getState()).data,\n variables: variables,\n returnPartialData: true,\n fragmentMatcherFunction: this.fragmentMatcher.match,\n config: this.reducerConfig,\n }), isMissing = _d.isMissing, result = _d.result;\n needToFetch = isMissing || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n var shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n var requestId = this.generateRequestId();\n this.queryDocuments[queryId] = queryDoc;\n this.queryStore.initQuery({\n queryId: queryId,\n queryString: queryString,\n document: queryDoc,\n storePreviousVariables: shouldFetch,\n variables: variables,\n isPoll: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].poll,\n isRefetch: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].refetch,\n metadata: metadata,\n fetchMoreForQueryId: fetchMoreForQueryId,\n });\n this.broadcastQueries();\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n this.store.dispatch({\n type: 'APOLLO_QUERY_INIT',\n queryString: queryString,\n document: queryDoc,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(queryDoc),\n variables: variables,\n fetchPolicy: fetchPolicy,\n queryId: queryId,\n requestId: requestId,\n storePreviousVariables: shouldFetch,\n isPoll: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].poll,\n isRefetch: fetchType === __WEBPACK_IMPORTED_MODULE_3__types__[\"a\" /* FetchType */].refetch,\n fetchMoreForQueryId: fetchMoreForQueryId,\n metadata: metadata,\n });\n }\n this.lastRequestId[queryId] = requestId;\n var shouldDispatchClientResult = !shouldFetch || fetchPolicy === 'cache-and-network';\n if (shouldDispatchClientResult) {\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.broadcastQueries();\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n this.store.dispatch({\n type: 'APOLLO_QUERY_RESULT_CLIENT',\n result: { data: storeResult },\n variables: variables,\n document: queryDoc,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(queryDoc),\n complete: !shouldFetch,\n queryId: queryId,\n requestId: requestId,\n });\n }\n }\n if (shouldFetch) {\n var networkResult = this.fetchRequest({\n requestId: requestId,\n queryId: queryId,\n document: queryDoc,\n options: options,\n fetchMoreForQueryId: fetchMoreForQueryId,\n }).catch(function (error) {\n if (Object(__WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"b\" /* isApolloError */])(error)) {\n throw error;\n }\n else {\n if (requestId >= (_this.lastRequestId[queryId] || 1)) {\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n _this.store.dispatch({\n type: 'APOLLO_QUERY_ERROR',\n error: error,\n queryId: queryId,\n requestId: requestId,\n fetchMoreForQueryId: fetchMoreForQueryId,\n });\n }\n _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n _this.removeFetchQueryPromise(requestId);\n throw new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n networkError: error,\n });\n }\n });\n if (fetchPolicy !== 'cache-and-network') {\n return networkResult;\n }\n }\n return Promise.resolve({ data: storeResult });\n };\n QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) {\n var _this = this;\n var previouslyHadError = false;\n return function (queryStoreValue) {\n if (!queryStoreValue) {\n return;\n }\n queryStoreValue = _this.queryStore.get(queryId);\n var storedQuery = _this.observableQueries[queryId];\n var observableQuery = storedQuery ? storedQuery.observableQuery : null;\n var fetchPolicy = observableQuery\n ? observableQuery.options.fetchPolicy\n : options.fetchPolicy;\n if (fetchPolicy === 'standby') {\n return;\n }\n var lastResult = observableQuery\n ? observableQuery.getLastResult()\n : null;\n var shouldNotifyIfLoading = queryStoreValue.previousVariables ||\n fetchPolicy === 'cache-only' ||\n fetchPolicy === 'cache-and-network';\n var networkStatusChanged = lastResult &&\n queryStoreValue.networkStatus !== lastResult.networkStatus;\n if (!Object(__WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(queryStoreValue.networkStatus) ||\n (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n shouldNotifyIfLoading) {\n if ((queryStoreValue.graphQLErrors &&\n queryStoreValue.graphQLErrors.length > 0) ||\n queryStoreValue.networkError) {\n var apolloError_1 = new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n });\n previouslyHadError = true;\n if (observer.error) {\n try {\n observer.error(apolloError_1);\n }\n catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n else {\n setTimeout(function () {\n throw apolloError_1;\n }, 0);\n if (!Object(__WEBPACK_IMPORTED_MODULE_11__util_environment__[\"b\" /* isProduction */])()) {\n console.info('An unhandled error was thrown because no error handler is registered ' +\n 'for the query ' +\n queryStoreValue.queryString);\n }\n }\n }\n else {\n try {\n var _a = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"a\" /* diffQueryAgainstStore */])({\n store: _this.getDataWithOptimisticResults(),\n query: _this.queryDocuments[queryId],\n variables: queryStoreValue.previousVariables || queryStoreValue.variables,\n config: _this.reducerConfig,\n fragmentMatcherFunction: _this.fragmentMatcher.match,\n previousResult: lastResult && lastResult.data,\n }), data = _a.result, isMissing = _a.isMissing;\n var resultFromStore = void 0;\n if (isMissing && fetchPolicy !== 'cache-only') {\n resultFromStore = {\n data: lastResult && lastResult.data,\n loading: Object(__WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(queryStoreValue.networkStatus),\n networkStatus: queryStoreValue.networkStatus,\n stale: true,\n };\n }\n else {\n resultFromStore = {\n data: data,\n loading: Object(__WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"b\" /* isNetworkRequestInFlight */])(queryStoreValue.networkStatus),\n networkStatus: queryStoreValue.networkStatus,\n stale: false,\n };\n }\n if (observer.next) {\n var isDifferentResult = !(lastResult &&\n resultFromStore &&\n lastResult.networkStatus === resultFromStore.networkStatus &&\n lastResult.stale === resultFromStore.stale &&\n lastResult.data === resultFromStore.data);\n if (isDifferentResult || previouslyHadError) {\n try {\n observer.next(Object(__WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__[\"a\" /* default */])(resultFromStore));\n }\n catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n previouslyHadError = false;\n }\n catch (error) {\n previouslyHadError = true;\n if (observer.error) {\n observer.error(new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n networkError: error,\n }));\n }\n return;\n }\n }\n }\n };\n };\n QueryManager.prototype.watchQuery = function (options, shouldSubscribe) {\n if (shouldSubscribe === void 0) { shouldSubscribe = true; }\n if (options.returnPartialData) {\n throw new Error('returnPartialData option is no longer supported since Apollo Client 1.0.');\n }\n if (options.forceFetch) {\n throw new Error('forceFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (options.noFetch) {\n throw new Error('noFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (options.fetchPolicy === 'standby') {\n throw new Error('client.watchQuery cannot be called with fetchPolicy set to \"standby\"');\n }\n var queryDefinition = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"i\" /* getQueryDefinition */])(options.query);\n if (queryDefinition.variableDefinitions &&\n queryDefinition.variableDefinitions.length) {\n var defaultValues = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"c\" /* getDefaultValues */])(queryDefinition);\n options.variables = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, defaultValues, options.variables);\n }\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var transformedOptions = __assign({}, options);\n var observableQuery = new __WEBPACK_IMPORTED_MODULE_19__ObservableQuery__[\"a\" /* ObservableQuery */]({\n scheduler: this.scheduler,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe,\n });\n return observableQuery;\n };\n QueryManager.prototype.query = function (options) {\n var _this = this;\n if (!options.query) {\n throw new Error('query option is required. You must specify your GraphQL document in the query option.');\n }\n if (options.query.kind !== 'Document') {\n throw new Error('You must wrap the query string in a \"gql\" tag.');\n }\n if (options.returnPartialData) {\n throw new Error('returnPartialData option only supported on watchQuery.');\n }\n if (options.pollInterval) {\n throw new Error('pollInterval option only supported on watchQuery.');\n }\n if (options.forceFetch) {\n throw new Error('forceFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (options.noFetch) {\n throw new Error('noFetch option is no longer supported since Apollo Client 1.0. Use fetchPolicy instead.');\n }\n if (typeof options.notifyOnNetworkStatusChange !== 'undefined') {\n throw new Error('Cannot call \"query\" with \"notifyOnNetworkStatusChange\" option. Only \"watchQuery\" has that option.');\n }\n options.notifyOnNetworkStatusChange = false;\n var requestId = this.idCounter;\n var resPromise = new Promise(function (resolve, reject) {\n _this.addFetchQueryPromise(requestId, resPromise, resolve, reject);\n return _this.watchQuery(options, false)\n .result()\n .then(function (result) {\n _this.removeFetchQueryPromise(requestId);\n resolve(result);\n })\n .catch(function (error) {\n _this.removeFetchQueryPromise(requestId);\n reject(error);\n });\n });\n return resPromise;\n };\n QueryManager.prototype.generateQueryId = function () {\n var queryId = this.idCounter.toString();\n this.idCounter++;\n return queryId;\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.queryStore.stopQuery(queryId);\n this.broadcastQueries();\n if (QueryManager.EMIT_REDUX_ACTIONS) {\n this.store.dispatch({\n type: 'APOLLO_QUERY_STOP',\n queryId: queryId,\n });\n }\n };\n QueryManager.prototype.getApolloState = function () {\n return this.reduxRootSelector(this.store.getState());\n };\n QueryManager.prototype.selectApolloState = function (store) {\n return this.reduxRootSelector(store.getState());\n };\n QueryManager.prototype.getInitialState = function () {\n return { data: this.getApolloState().data };\n };\n QueryManager.prototype.getDataWithOptimisticResults = function () {\n return Object(__WEBPACK_IMPORTED_MODULE_6__store__[\"c\" /* getDataWithOptimisticResults */])(this.getApolloState());\n };\n QueryManager.prototype.addQueryListener = function (queryId, listener) {\n this.queryListeners[queryId] = this.queryListeners[queryId] || [];\n this.queryListeners[queryId].push(listener);\n };\n QueryManager.prototype.addFetchQueryPromise = function (requestId, promise, resolve, reject) {\n this.fetchQueryPromises[requestId.toString()] = {\n promise: promise,\n resolve: resolve,\n reject: reject,\n };\n };\n QueryManager.prototype.removeFetchQueryPromise = function (requestId) {\n delete this.fetchQueryPromises[requestId.toString()];\n };\n QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) {\n this.observableQueries[queryId] = { observableQuery: observableQuery };\n var queryDef = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"i\" /* getQueryDefinition */])(observableQuery.options.query);\n if (queryDef.name && queryDef.name.value) {\n var queryName = queryDef.name.value;\n this.queryIdsByName[queryName] = this.queryIdsByName[queryName] || [];\n this.queryIdsByName[queryName].push(observableQuery.queryId);\n }\n };\n QueryManager.prototype.removeObservableQuery = function (queryId) {\n var observableQuery = this.observableQueries[queryId].observableQuery;\n var definition = Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"i\" /* getQueryDefinition */])(observableQuery.options.query);\n var queryName = definition.name ? definition.name.value : null;\n delete this.observableQueries[queryId];\n if (queryName) {\n this.queryIdsByName[queryName] = this.queryIdsByName[queryName].filter(function (val) {\n return !(observableQuery.queryId === val);\n });\n }\n };\n QueryManager.prototype.resetStore = function () {\n var _this = this;\n Object.keys(this.fetchQueryPromises).forEach(function (key) {\n var reject = _this.fetchQueryPromises[key].reject;\n reject(new Error('Store reset while query was in flight.'));\n });\n this.queryStore.reset(Object.keys(this.observableQueries));\n this.store.dispatch({\n type: 'APOLLO_STORE_RESET',\n observableQueryIds: Object.keys(this.observableQueries),\n });\n this.mutationStore.reset();\n var observableQueryPromises = [];\n Object.keys(this.observableQueries).forEach(function (queryId) {\n var storeQuery = _this.queryStore.get(queryId);\n var fetchPolicy = _this.observableQueries[queryId].observableQuery\n .options.fetchPolicy;\n if (fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby') {\n observableQueryPromises.push(_this.observableQueries[queryId].observableQuery.refetch());\n }\n });\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.startQuery = function (queryId, options, listener) {\n this.addQueryListener(queryId, listener);\n this.fetchQuery(queryId, options)\n .catch(function (error) { return undefined; });\n return queryId;\n };\n QueryManager.prototype.startGraphQLSubscription = function (options) {\n var _this = this;\n var query = options.query;\n var transformedDoc = query;\n if (this.addTypename) {\n transformedDoc = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(transformedDoc);\n }\n var variables = Object(__WEBPACK_IMPORTED_MODULE_2__util_assign__[\"a\" /* assign */])({}, Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"c\" /* getDefaultValues */])(Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"g\" /* getOperationDefinition */])(query)), options.variables);\n var request = {\n query: transformedDoc,\n variables: variables,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(transformedDoc),\n };\n var subId;\n var observers = [];\n return new __WEBPACK_IMPORTED_MODULE_17__util_Observable__[\"a\" /* Observable */](function (observer) {\n observers.push(observer);\n if (observers.length === 1) {\n var handler = function (error, result) {\n if (error) {\n observers.forEach(function (obs) {\n if (obs.error) {\n obs.error(error);\n }\n });\n }\n else {\n _this.store.dispatch({\n type: 'APOLLO_SUBSCRIPTION_RESULT',\n document: transformedDoc,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(transformedDoc),\n result: { data: result },\n variables: variables,\n subscriptionId: subId,\n extraReducers: _this.getExtraReducers(),\n });\n observers.forEach(function (obs) {\n if (obs.next) {\n obs.next(result);\n }\n });\n }\n };\n subId = _this\n .networkInterface.subscribe(request, handler);\n }\n return {\n unsubscribe: function () {\n observers = observers.filter(function (obs) { return obs !== observer; });\n if (observers.length === 0) {\n _this.networkInterface.unsubscribe(subId);\n }\n },\n _networkSubscriptionId: subId,\n };\n });\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n delete this.queryListeners[queryId];\n delete this.queryDocuments[queryId];\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.removeQuery(queryId);\n this.stopQueryInStore(queryId);\n };\n QueryManager.prototype.getCurrentQueryResult = function (observableQuery, isOptimistic) {\n if (isOptimistic === void 0) { isOptimistic = false; }\n var _a = this.getQueryParts(observableQuery), variables = _a.variables, document = _a.document;\n var lastResult = observableQuery.getLastResult();\n var queryOptions = observableQuery.options;\n var readOptions = {\n store: isOptimistic\n ? this.getDataWithOptimisticResults()\n : this.getApolloState().data,\n query: document,\n variables: variables,\n config: this.reducerConfig,\n previousResult: lastResult ? lastResult.data : undefined,\n fragmentMatcherFunction: this.fragmentMatcher.match,\n };\n try {\n var data = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"b\" /* readQueryFromStore */])(readOptions);\n return Object(__WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__[\"a\" /* default */])({ data: data, partial: false });\n }\n catch (e) {\n return Object(__WEBPACK_IMPORTED_MODULE_12__util_maybeDeepFreeze__[\"a\" /* default */])({ data: {}, partial: true });\n }\n };\n QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable, isOptimistic) {\n if (isOptimistic === void 0) { isOptimistic = false; }\n var observableQuery;\n if (typeof queryIdOrObservable === 'string') {\n if (!this.observableQueries[queryIdOrObservable]) {\n throw new Error(\"ObservableQuery with this id doesn't exist: \" + queryIdOrObservable);\n }\n observableQuery = this.observableQueries[queryIdOrObservable]\n .observableQuery;\n }\n else {\n observableQuery = queryIdOrObservable;\n }\n var _a = this.getQueryParts(observableQuery), variables = _a.variables, document = _a.document;\n var data = this.getCurrentQueryResult(observableQuery, isOptimistic).data;\n return {\n previousResult: data,\n variables: variables,\n document: document,\n };\n };\n QueryManager.prototype.getQueryParts = function (observableQuery) {\n var queryOptions = observableQuery.options;\n var transformedDoc = observableQuery.options.query;\n if (this.addTypename) {\n transformedDoc = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(transformedDoc);\n }\n return {\n variables: queryOptions.variables,\n document: transformedDoc,\n };\n };\n QueryManager.prototype.transformQueryDocument = function (options) {\n var queryDoc = options.query;\n if (this.addTypename) {\n queryDoc = Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(queryDoc);\n }\n return {\n queryDoc: queryDoc,\n };\n };\n QueryManager.prototype.getExtraReducers = function () {\n var _this = this;\n return Object.keys(this.observableQueries)\n .map(function (obsQueryId) {\n var query = _this.observableQueries[obsQueryId].observableQuery;\n var queryOptions = query.options;\n if (queryOptions.reducer) {\n return Object(__WEBPACK_IMPORTED_MODULE_9__data_resultReducers__[\"a\" /* createStoreReducer */])(queryOptions.reducer, _this.addTypename\n ? Object(__WEBPACK_IMPORTED_MODULE_8__queries_queryTransform__[\"a\" /* addTypenameToDocument */])(queryOptions.query)\n : queryOptions.query, query.variables || {}, _this.reducerConfig);\n }\n return null;\n })\n .filter(function (reducer) { return reducer !== null; });\n };\n QueryManager.prototype.fetchRequest = function (_a) {\n var _this = this;\n var requestId = _a.requestId, queryId = _a.queryId, document = _a.document, options = _a.options, fetchMoreForQueryId = _a.fetchMoreForQueryId;\n var variables = options.variables;\n var request = {\n query: document,\n variables: variables,\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(document),\n };\n var retPromise = new Promise(function (resolve, reject) {\n _this.addFetchQueryPromise(requestId, retPromise, resolve, reject);\n _this.deduplicator\n .query(request, _this.queryDeduplication)\n .then(function (result) {\n var extraReducers = _this.getExtraReducers();\n if (requestId >= (_this.lastRequestId[queryId] || 1)) {\n _this.disableBroadcasting = true;\n _this.store.dispatch({\n type: 'APOLLO_QUERY_RESULT',\n document: document,\n variables: variables ? variables : {},\n operationName: Object(__WEBPACK_IMPORTED_MODULE_7__queries_getFromAST__[\"h\" /* getOperationName */])(document),\n result: result,\n queryId: queryId,\n requestId: requestId,\n fetchMoreForQueryId: fetchMoreForQueryId,\n extraReducers: extraReducers,\n });\n _this.disableBroadcasting = false;\n var reducerError = _this.getApolloState().reducerError;\n if (!reducerError || reducerError.queryId !== queryId) {\n _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n }\n _this.removeFetchQueryPromise(requestId);\n if (result.errors) {\n throw new __WEBPACK_IMPORTED_MODULE_18__errors_ApolloError__[\"a\" /* ApolloError */]({\n graphQLErrors: result.errors,\n });\n }\n return result;\n })\n .then(function (result) {\n var resultFromStore;\n if (fetchMoreForQueryId) {\n resultFromStore = result.data;\n }\n else {\n try {\n resultFromStore = Object(__WEBPACK_IMPORTED_MODULE_14__data_readFromStore__[\"b\" /* readQueryFromStore */])({\n store: _this.getApolloState().data,\n variables: variables,\n query: document,\n config: _this.reducerConfig,\n fragmentMatcherFunction: _this.fragmentMatcher.match,\n });\n }\n catch (e) { }\n }\n var reducerError = _this.getApolloState().reducerError;\n if (reducerError && reducerError.queryId === queryId) {\n return Promise.reject(reducerError.error);\n }\n _this.removeFetchQueryPromise(requestId);\n resolve({\n data: resultFromStore,\n loading: false,\n networkStatus: __WEBPACK_IMPORTED_MODULE_5__queries_networkStatus__[\"a\" /* NetworkStatus */].ready,\n stale: false,\n });\n return Promise.resolve();\n })\n .catch(function (error) {\n reject(error);\n });\n });\n return retPromise;\n };\n QueryManager.prototype.refetchQueryByName = function (queryName) {\n var _this = this;\n var refetchedQueries = this.queryIdsByName[queryName];\n if (refetchedQueries === undefined) {\n console.warn(\"Warning: unknown query with name \" + queryName + \" asked to refetch\");\n return;\n }\n else {\n return Promise.all(refetchedQueries.map(function (queryId) {\n return _this.observableQueries[queryId].observableQuery.refetch();\n }));\n }\n };\n QueryManager.prototype.broadcastQueries = function () {\n var _this = this;\n if (this.disableBroadcasting) {\n return;\n }\n Object.keys(this.queryListeners).forEach(function (queryId) {\n var listeners = _this.queryListeners[queryId];\n if (listeners) {\n listeners.forEach(function (listener) {\n if (listener) {\n var queryStoreValue = _this.queryStore.get(queryId);\n listener(queryStoreValue);\n }\n });\n }\n });\n };\n QueryManager.prototype.generateRequestId = function () {\n var requestId = this.idCounter;\n this.idCounter++;\n return requestId;\n };\n QueryManager.EMIT_REDUX_ACTIONS = true;\n return QueryManager;\n}());\n\n//# sourceMappingURL=QueryManager.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjgyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvY29yZS9RdWVyeU1hbmFnZXIuanM/ODY2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IERlZHVwbGljYXRvciB9IGZyb20gJy4uL3RyYW5zcG9ydC9EZWR1cGxpY2F0b3InO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJy4uL3V0aWwvaXNFcXVhbCc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICcuLi91dGlsL2Fzc2lnbic7XG5pbXBvcnQgeyBGZXRjaFR5cGUsIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBRdWVyeVN0b3JlIH0gZnJvbSAnLi4vcXVlcmllcy9zdG9yZSc7XG5pbXBvcnQgeyBOZXR3b3JrU3RhdHVzLCBpc05ldHdvcmtSZXF1ZXN0SW5GbGlnaHQsIH0gZnJvbSAnLi4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbmltcG9ydCB7IGdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHMsIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgZ2V0UXVlcnlEZWZpbml0aW9uLCBnZXRPcGVyYXRpb25EZWZpbml0aW9uLCBnZXRPcGVyYXRpb25OYW1lLCBnZXREZWZhdWx0VmFsdWVzLCBnZXRNdXRhdGlvbkRlZmluaXRpb24sIH0gZnJvbSAnLi4vcXVlcmllcy9nZXRGcm9tQVNUJztcbmltcG9ydCB7IGFkZFR5cGVuYW1lVG9Eb2N1bWVudCB9IGZyb20gJy4uL3F1ZXJpZXMvcXVlcnlUcmFuc2Zvcm0nO1xuaW1wb3J0IHsgY3JlYXRlU3RvcmVSZWR1Y2VyIH0gZnJvbSAnLi4vZGF0YS9yZXN1bHRSZWR1Y2Vycyc7XG5pbXBvcnQgeyBIZXVyaXN0aWNGcmFnbWVudE1hdGNoZXIsIH0gZnJvbSAnLi4vZGF0YS9mcmFnbWVudE1hdGNoZXInO1xuaW1wb3J0IHsgaXNQcm9kdWN0aW9uIH0gZnJvbSAnLi4vdXRpbC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgbWF5YmVEZWVwRnJlZXplIGZyb20gJy4uL3V0aWwvbWF5YmVEZWVwRnJlZXplJztcbmltcG9ydCB7IHByaW50IH0gZnJvbSAnZ3JhcGhxbC9sYW5ndWFnZS9wcmludGVyJztcbmltcG9ydCB7IHJlYWRRdWVyeUZyb21TdG9yZSB9IGZyb20gJy4uL2RhdGEvcmVhZEZyb21TdG9yZSc7XG5pbXBvcnQgeyBkaWZmUXVlcnlBZ2FpbnN0U3RvcmUgfSBmcm9tICcuLi9kYXRhL3JlYWRGcm9tU3RvcmUnO1xuaW1wb3J0IHsgTXV0YXRpb25TdG9yZSB9IGZyb20gJy4uL211dGF0aW9ucy9zdG9yZSc7XG5pbXBvcnQgeyBRdWVyeVNjaGVkdWxlciB9IGZyb20gJy4uL3NjaGVkdWxlci9zY2hlZHVsZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4uL3V0aWwvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBpc0Fwb2xsb0Vycm9yLCBBcG9sbG9FcnJvciB9IGZyb20gJy4uL2Vycm9ycy9BcG9sbG9FcnJvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlUXVlcnkgfSBmcm9tICcuL09ic2VydmFibGVRdWVyeSc7XG52YXIgUXVlcnlNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBRdWVyeU1hbmFnZXIoX2EpIHtcbiAgICAgICAgdmFyIG5ldHdvcmtJbnRlcmZhY2UgPSBfYS5uZXR3b3JrSW50ZXJmYWNlLCBzdG9yZSA9IF9hLnN0b3JlLCByZWR1eFJvb3RTZWxlY3RvciA9IF9hLnJlZHV4Um9vdFNlbGVjdG9yLCBfYiA9IF9hLnJlZHVjZXJDb25maWcsIHJlZHVjZXJDb25maWcgPSBfYiA9PT0gdm9pZCAwID8ge30gOiBfYiwgZnJhZ21lbnRNYXRjaGVyID0gX2EuZnJhZ21lbnRNYXRjaGVyLCBfYyA9IF9hLmFkZFR5cGVuYW1lLCBhZGRUeXBlbmFtZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIF9kID0gX2EucXVlcnlEZWR1cGxpY2F0aW9uLCBxdWVyeURlZHVwbGljYXRpb24gPSBfZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfZCwgX2UgPSBfYS5zc3JNb2RlLCBzc3JNb2RlID0gX2UgPT09IHZvaWQgMCA/IGZhbHNlIDogX2U7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMubXV0YXRpb25TdG9yZSA9IG5ldyBNdXRhdGlvblN0b3JlKCk7XG4gICAgICAgIHRoaXMucXVlcnlTdG9yZSA9IG5ldyBRdWVyeVN0b3JlKCk7XG4gICAgICAgIHRoaXMuaWRDb3VudGVyID0gMTtcbiAgICAgICAgdGhpcy5sYXN0UmVxdWVzdElkID0ge307XG4gICAgICAgIHRoaXMuZGlzYWJsZUJyb2FkY2FzdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5ldHdvcmtJbnRlcmZhY2UgPSBuZXR3b3JrSW50ZXJmYWNlO1xuICAgICAgICB0aGlzLmRlZHVwbGljYXRvciA9IG5ldyBEZWR1cGxpY2F0b3IobmV0d29ya0ludGVyZmFjZSk7XG4gICAgICAgIHRoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICAgICAgdGhpcy5yZWR1eFJvb3RTZWxlY3RvciA9IHJlZHV4Um9vdFNlbGVjdG9yO1xuICAgICAgICB0aGlzLnJlZHVjZXJDb25maWcgPSByZWR1Y2VyQ29uZmlnO1xuICAgICAgICB0aGlzLnBvbGxpbmdUaW1lcnMgPSB7fTtcbiAgICAgICAgdGhpcy5xdWVyeUxpc3RlbmVycyA9IHt9O1xuICAgICAgICB0aGlzLnF1ZXJ5RG9jdW1lbnRzID0ge307XG4gICAgICAgIHRoaXMuYWRkVHlwZW5hbWUgPSBhZGRUeXBlbmFtZTtcbiAgICAgICAgdGhpcy5xdWVyeURlZHVwbGljYXRpb24gPSBxdWVyeURlZHVwbGljYXRpb247XG4gICAgICAgIHRoaXMuc3NyTW9kZSA9IHNzck1vZGU7XG4gICAgICAgIGlmICh0eXBlb2YgZnJhZ21lbnRNYXRjaGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5mcmFnbWVudE1hdGNoZXIgPSBuZXcgSGV1cmlzdGljRnJhZ21lbnRNYXRjaGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50TWF0Y2hlciA9IGZyYWdtZW50TWF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjaGVkdWxlciA9IG5ldyBRdWVyeVNjaGVkdWxlcih7XG4gICAgICAgICAgICBxdWVyeU1hbmFnZXI6IHRoaXMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZldGNoUXVlcnlQcm9taXNlcyA9IHt9O1xuICAgICAgICB0aGlzLm9ic2VydmFibGVRdWVyaWVzID0ge307XG4gICAgICAgIHRoaXMucXVlcnlJZHNCeU5hbWUgPSB7fTtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmVbJ3N1YnNjcmliZSddKSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudFN0b3JlRGF0YV8xO1xuICAgICAgICAgICAgdGhpcy5zdG9yZVsnc3Vic2NyaWJlJ10oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBwcmV2aW91c1N0b3JlRGF0YSA9IGN1cnJlbnRTdG9yZURhdGFfMSB8fCB7fTtcbiAgICAgICAgICAgICAgICB2YXIgcHJldmlvdXNTdG9yZUhhc0RhdGEgPSBPYmplY3Qua2V5cyhwcmV2aW91c1N0b3JlRGF0YSkubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRTdG9yZURhdGFfMSA9IF90aGlzLmdldEFwb2xsb1N0YXRlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTdG9yZURhdGEsIGN1cnJlbnRTdG9yZURhdGFfMSkgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTdG9yZUhhc0RhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdGhpcy5icm9hZGNhc3RRdWVyaWVzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmJyb2FkY2FzdE5ld1N0b3JlID0gZnVuY3Rpb24gKHN0b3JlKSB7XG4gICAgICAgIHRoaXMuYnJvYWRjYXN0UXVlcmllcygpO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5tdXRhdGUgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIG11dGF0aW9uID0gX2EubXV0YXRpb24sIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcywgb3B0aW1pc3RpY1Jlc3BvbnNlID0gX2Eub3B0aW1pc3RpY1Jlc3BvbnNlLCB1cGRhdGVRdWVyaWVzQnlOYW1lID0gX2EudXBkYXRlUXVlcmllcywgX2IgPSBfYS5yZWZldGNoUXVlcmllcywgcmVmZXRjaFF1ZXJpZXMgPSBfYiA9PT0gdm9pZCAwID8gW10gOiBfYiwgdXBkYXRlV2l0aFByb3h5Rm4gPSBfYS51cGRhdGU7XG4gICAgICAgIGlmICghbXV0YXRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbXV0YXRpb24gb3B0aW9uIGlzIHJlcXVpcmVkLiBZb3UgbXVzdCBzcGVjaWZ5IHlvdXIgR3JhcGhRTCBkb2N1bWVudCBpbiB0aGUgbXV0YXRpb24gb3B0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtdXRhdGlvbklkID0gdGhpcy5nZW5lcmF0ZVF1ZXJ5SWQoKTtcbiAgICAgICAgaWYgKHRoaXMuYWRkVHlwZW5hbWUpIHtcbiAgICAgICAgICAgIG11dGF0aW9uID0gYWRkVHlwZW5hbWVUb0RvY3VtZW50KG11dGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICB2YXJpYWJsZXMgPSBhc3NpZ24oe30sIGdldERlZmF1bHRWYWx1ZXMoZ2V0TXV0YXRpb25EZWZpbml0aW9uKG11dGF0aW9uKSksIHZhcmlhYmxlcyk7XG4gICAgICAgIHZhciBtdXRhdGlvblN0cmluZyA9IHByaW50KG11dGF0aW9uKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSB7XG4gICAgICAgICAgICBxdWVyeTogbXV0YXRpb24sXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlcyxcbiAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGdldE9wZXJhdGlvbk5hbWUobXV0YXRpb24pLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnF1ZXJ5RG9jdW1lbnRzW211dGF0aW9uSWRdID0gbXV0YXRpb247XG4gICAgICAgIHZhciBnZW5lcmF0ZVVwZGF0ZVF1ZXJpZXNJbmZvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHJldCA9IHt9O1xuICAgICAgICAgICAgaWYgKHVwZGF0ZVF1ZXJpZXNCeU5hbWUpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVRdWVyaWVzQnlOYW1lKS5mb3JFYWNoKGZ1bmN0aW9uIChxdWVyeU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfdGhpcy5xdWVyeUlkc0J5TmFtZVtxdWVyeU5hbWVdIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXRbcXVlcnlJZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkdWNlcjogdXBkYXRlUXVlcmllc0J5TmFtZVtxdWVyeU5hbWVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBfdGhpcy5xdWVyeVN0b3JlLmdldChxdWVyeUlkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnQVBPTExPX01VVEFUSU9OX0lOSVQnLFxuICAgICAgICAgICAgbXV0YXRpb25TdHJpbmc6IG11dGF0aW9uU3RyaW5nLFxuICAgICAgICAgICAgbXV0YXRpb246IG11dGF0aW9uLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMgfHwge30sXG4gICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBnZXRPcGVyYXRpb25OYW1lKG11dGF0aW9uKSxcbiAgICAgICAgICAgIG11dGF0aW9uSWQ6IG11dGF0aW9uSWQsXG4gICAgICAgICAgICBvcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWNSZXNwb25zZSxcbiAgICAgICAgICAgIGV4dHJhUmVkdWNlcnM6IHRoaXMuZ2V0RXh0cmFSZWR1Y2VycygpLFxuICAgICAgICAgICAgdXBkYXRlUXVlcmllczogZ2VuZXJhdGVVcGRhdGVRdWVyaWVzSW5mbygpLFxuICAgICAgICAgICAgdXBkYXRlOiB1cGRhdGVXaXRoUHJveHlGbixcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXV0YXRpb25TdG9yZS5pbml0TXV0YXRpb24obXV0YXRpb25JZCwgbXV0YXRpb25TdHJpbmcsIHZhcmlhYmxlcyk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBfdGhpcy5uZXR3b3JrSW50ZXJmYWNlXG4gICAgICAgICAgICAgICAgLnF1ZXJ5KHJlcXVlc3QpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmFwaFFMRXJyb3JzOiByZXN1bHQuZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19NVVRBVElPTl9FUlJPUicsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbklkOiBtdXRhdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMubXV0YXRpb25TdG9yZS5tYXJrTXV0YXRpb25FcnJvcihtdXRhdGlvbklkLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfdGhpcy5xdWVyeURvY3VtZW50c1ttdXRhdGlvbklkXTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdBUE9MTE9fTVVUQVRJT05fUkVTVUxUJyxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIG11dGF0aW9uSWQ6IG11dGF0aW9uSWQsXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50OiBtdXRhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShtdXRhdGlvbiksXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICBleHRyYVJlZHVjZXJzOiBfdGhpcy5nZXRFeHRyYVJlZHVjZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVF1ZXJpZXM6IGdlbmVyYXRlVXBkYXRlUXVlcmllc0luZm8oKSxcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlOiB1cGRhdGVXaXRoUHJveHlGbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBfdGhpcy5tdXRhdGlvblN0b3JlLm1hcmtNdXRhdGlvblJlc3VsdChtdXRhdGlvbklkKTtcbiAgICAgICAgICAgICAgICB2YXIgcmVkdWNlckVycm9yID0gX3RoaXMuZ2V0QXBvbGxvU3RhdGUoKS5yZWR1Y2VyRXJyb3I7XG4gICAgICAgICAgICAgICAgaWYgKHJlZHVjZXJFcnJvciAmJiByZWR1Y2VyRXJyb3IubXV0YXRpb25JZCA9PT0gbXV0YXRpb25JZCkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QocmVkdWNlckVycm9yLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlZmV0Y2hRdWVyaWVzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICByZWZldGNoUXVlcmllcy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5yZWZldGNoUXVlcnlCeU5hbWUobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmZXRjaFF1ZXJpZXMuZm9yRWFjaChmdW5jdGlvbiAocHVyZVF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5xdWVyeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHB1cmVRdWVyeS5xdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHB1cmVRdWVyeS52YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWxldGUgX3RoaXMucXVlcnlEb2N1bWVudHNbbXV0YXRpb25JZF07XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIF90aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19NVVRBVElPTl9FUlJPUicsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgICAgICAgICAgICAgIG11dGF0aW9uSWQ6IG11dGF0aW9uSWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIF90aGlzLnF1ZXJ5RG9jdW1lbnRzW211dGF0aW9uSWRdO1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgQXBvbGxvRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICBuZXR3b3JrRXJyb3I6IGVycixcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmZldGNoUXVlcnkgPSBmdW5jdGlvbiAocXVlcnlJZCwgb3B0aW9ucywgZmV0Y2hUeXBlLCBmZXRjaE1vcmVGb3JRdWVyeUlkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBfYSA9IG9wdGlvbnMudmFyaWFibGVzLCB2YXJpYWJsZXMgPSBfYSA9PT0gdm9pZCAwID8ge30gOiBfYSwgX2IgPSBvcHRpb25zLm1ldGFkYXRhLCBtZXRhZGF0YSA9IF9iID09PSB2b2lkIDAgPyBudWxsIDogX2IsIF9jID0gb3B0aW9ucy5mZXRjaFBvbGljeSwgZmV0Y2hQb2xpY3kgPSBfYyA9PT0gdm9pZCAwID8gJ2NhY2hlLWZpcnN0JyA6IF9jO1xuICAgICAgICB2YXIgcXVlcnlEb2MgPSB0aGlzLnRyYW5zZm9ybVF1ZXJ5RG9jdW1lbnQob3B0aW9ucykucXVlcnlEb2M7XG4gICAgICAgIHZhciBxdWVyeVN0cmluZyA9IHByaW50KHF1ZXJ5RG9jKTtcbiAgICAgICAgdmFyIHN0b3JlUmVzdWx0O1xuICAgICAgICB2YXIgbmVlZFRvRmV0Y2ggPSBmZXRjaFBvbGljeSA9PT0gJ25ldHdvcmstb25seSc7XG4gICAgICAgIGlmIChmZXRjaFR5cGUgIT09IEZldGNoVHlwZS5yZWZldGNoICYmIGZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5Jykge1xuICAgICAgICAgICAgdmFyIF9kID0gZGlmZlF1ZXJ5QWdhaW5zdFN0b3JlKHtcbiAgICAgICAgICAgICAgICBxdWVyeTogcXVlcnlEb2MsXG4gICAgICAgICAgICAgICAgc3RvcmU6IHRoaXMucmVkdXhSb290U2VsZWN0b3IodGhpcy5zdG9yZS5nZXRTdGF0ZSgpKS5kYXRhLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgIHJldHVyblBhcnRpYWxEYXRhOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZyYWdtZW50TWF0Y2hlckZ1bmN0aW9uOiB0aGlzLmZyYWdtZW50TWF0Y2hlci5tYXRjaCxcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMucmVkdWNlckNvbmZpZyxcbiAgICAgICAgICAgIH0pLCBpc01pc3NpbmcgPSBfZC5pc01pc3NpbmcsIHJlc3VsdCA9IF9kLnJlc3VsdDtcbiAgICAgICAgICAgIG5lZWRUb0ZldGNoID0gaXNNaXNzaW5nIHx8IGZldGNoUG9saWN5ID09PSAnY2FjaGUtYW5kLW5ldHdvcmsnO1xuICAgICAgICAgICAgc3RvcmVSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNob3VsZEZldGNoID0gbmVlZFRvRmV0Y2ggJiYgZmV0Y2hQb2xpY3kgIT09ICdjYWNoZS1vbmx5JyAmJiBmZXRjaFBvbGljeSAhPT0gJ3N0YW5kYnknO1xuICAgICAgICB2YXIgcmVxdWVzdElkID0gdGhpcy5nZW5lcmF0ZVJlcXVlc3RJZCgpO1xuICAgICAgICB0aGlzLnF1ZXJ5RG9jdW1lbnRzW3F1ZXJ5SWRdID0gcXVlcnlEb2M7XG4gICAgICAgIHRoaXMucXVlcnlTdG9yZS5pbml0UXVlcnkoe1xuICAgICAgICAgICAgcXVlcnlJZDogcXVlcnlJZCxcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgIGRvY3VtZW50OiBxdWVyeURvYyxcbiAgICAgICAgICAgIHN0b3JlUHJldmlvdXNWYXJpYWJsZXM6IHNob3VsZEZldGNoLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBpc1BvbGw6IGZldGNoVHlwZSA9PT0gRmV0Y2hUeXBlLnBvbGwsXG4gICAgICAgICAgICBpc1JlZmV0Y2g6IGZldGNoVHlwZSA9PT0gRmV0Y2hUeXBlLnJlZmV0Y2gsXG4gICAgICAgICAgICBtZXRhZGF0YTogbWV0YWRhdGEsXG4gICAgICAgICAgICBmZXRjaE1vcmVGb3JRdWVyeUlkOiBmZXRjaE1vcmVGb3JRdWVyeUlkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5icm9hZGNhc3RRdWVyaWVzKCk7XG4gICAgICAgIGlmIChRdWVyeU1hbmFnZXIuRU1JVF9SRURVWF9BQ1RJT05TKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnQVBPTExPX1FVRVJZX0lOSVQnLFxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudDogcXVlcnlEb2MsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShxdWVyeURvYyksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6IGZldGNoUG9saWN5LFxuICAgICAgICAgICAgICAgIHF1ZXJ5SWQ6IHF1ZXJ5SWQsXG4gICAgICAgICAgICAgICAgcmVxdWVzdElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgICAgICAgc3RvcmVQcmV2aW91c1ZhcmlhYmxlczogc2hvdWxkRmV0Y2gsXG4gICAgICAgICAgICAgICAgaXNQb2xsOiBmZXRjaFR5cGUgPT09IEZldGNoVHlwZS5wb2xsLFxuICAgICAgICAgICAgICAgIGlzUmVmZXRjaDogZmV0Y2hUeXBlID09PSBGZXRjaFR5cGUucmVmZXRjaCxcbiAgICAgICAgICAgICAgICBmZXRjaE1vcmVGb3JRdWVyeUlkOiBmZXRjaE1vcmVGb3JRdWVyeUlkLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFJlcXVlc3RJZFtxdWVyeUlkXSA9IHJlcXVlc3RJZDtcbiAgICAgICAgdmFyIHNob3VsZERpc3BhdGNoQ2xpZW50UmVzdWx0ID0gIXNob3VsZEZldGNoIHx8IGZldGNoUG9saWN5ID09PSAnY2FjaGUtYW5kLW5ldHdvcmsnO1xuICAgICAgICBpZiAoc2hvdWxkRGlzcGF0Y2hDbGllbnRSZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdG9yZS5tYXJrUXVlcnlSZXN1bHRDbGllbnQocXVlcnlJZCwgIXNob3VsZEZldGNoKTtcbiAgICAgICAgICAgIHRoaXMuYnJvYWRjYXN0UXVlcmllcygpO1xuICAgICAgICAgICAgaWYgKFF1ZXJ5TWFuYWdlci5FTUlUX1JFRFVYX0FDVElPTlMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19RVUVSWV9SRVNVTFRfQ0xJRU5UJyxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiB7IGRhdGE6IHN0b3JlUmVzdWx0IH0sXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudDogcXVlcnlEb2MsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGdldE9wZXJhdGlvbk5hbWUocXVlcnlEb2MpLFxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogIXNob3VsZEZldGNoLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeUlkOiBxdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkRmV0Y2gpIHtcbiAgICAgICAgICAgIHZhciBuZXR3b3JrUmVzdWx0ID0gdGhpcy5mZXRjaFJlcXVlc3Qoe1xuICAgICAgICAgICAgICAgIHJlcXVlc3RJZDogcmVxdWVzdElkLFxuICAgICAgICAgICAgICAgIHF1ZXJ5SWQ6IHF1ZXJ5SWQsXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQ6IHF1ZXJ5RG9jLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgZmV0Y2hNb3JlRm9yUXVlcnlJZDogZmV0Y2hNb3JlRm9yUXVlcnlJZCxcbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChpc0Fwb2xsb0Vycm9yKGVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0SWQgPj0gKF90aGlzLmxhc3RSZXF1ZXN0SWRbcXVlcnlJZF0gfHwgMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChRdWVyeU1hbmFnZXIuRU1JVF9SRURVWF9BQ1RJT05TKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnQVBPTExPX1FVRVJZX0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUlkOiBxdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hNb3JlRm9yUXVlcnlJZDogZmV0Y2hNb3JlRm9yUXVlcnlJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnF1ZXJ5U3RvcmUubWFya1F1ZXJ5RXJyb3IocXVlcnlJZCwgZXJyb3IsIGZldGNoTW9yZUZvclF1ZXJ5SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuYnJvYWRjYXN0UXVlcmllcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnJlbW92ZUZldGNoUXVlcnlQcm9taXNlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrRXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmZXRjaFBvbGljeSAhPT0gJ2NhY2hlLWFuZC1uZXR3b3JrJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXR3b3JrUmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBkYXRhOiBzdG9yZVJlc3VsdCB9KTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucXVlcnlMaXN0ZW5lckZvck9ic2VydmVyID0gZnVuY3Rpb24gKHF1ZXJ5SWQsIG9wdGlvbnMsIG9ic2VydmVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBwcmV2aW91c2x5SGFkRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChxdWVyeVN0b3JlVmFsdWUpIHtcbiAgICAgICAgICAgIGlmICghcXVlcnlTdG9yZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcXVlcnlTdG9yZVZhbHVlID0gX3RoaXMucXVlcnlTdG9yZS5nZXQocXVlcnlJZCk7XG4gICAgICAgICAgICB2YXIgc3RvcmVkUXVlcnkgPSBfdGhpcy5vYnNlcnZhYmxlUXVlcmllc1txdWVyeUlkXTtcbiAgICAgICAgICAgIHZhciBvYnNlcnZhYmxlUXVlcnkgPSBzdG9yZWRRdWVyeSA/IHN0b3JlZFF1ZXJ5Lm9ic2VydmFibGVRdWVyeSA6IG51bGw7XG4gICAgICAgICAgICB2YXIgZmV0Y2hQb2xpY3kgPSBvYnNlcnZhYmxlUXVlcnlcbiAgICAgICAgICAgICAgICA/IG9ic2VydmFibGVRdWVyeS5vcHRpb25zLmZldGNoUG9saWN5XG4gICAgICAgICAgICAgICAgOiBvcHRpb25zLmZldGNoUG9saWN5O1xuICAgICAgICAgICAgaWYgKGZldGNoUG9saWN5ID09PSAnc3RhbmRieScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbGFzdFJlc3VsdCA9IG9ic2VydmFibGVRdWVyeVxuICAgICAgICAgICAgICAgID8gb2JzZXJ2YWJsZVF1ZXJ5LmdldExhc3RSZXN1bHQoKVxuICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIHZhciBzaG91bGROb3RpZnlJZkxvYWRpbmcgPSBxdWVyeVN0b3JlVmFsdWUucHJldmlvdXNWYXJpYWJsZXMgfHxcbiAgICAgICAgICAgICAgICBmZXRjaFBvbGljeSA9PT0gJ2NhY2hlLW9ubHknIHx8XG4gICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3kgPT09ICdjYWNoZS1hbmQtbmV0d29yayc7XG4gICAgICAgICAgICB2YXIgbmV0d29ya1N0YXR1c0NoYW5nZWQgPSBsYXN0UmVzdWx0ICYmXG4gICAgICAgICAgICAgICAgcXVlcnlTdG9yZVZhbHVlLm5ldHdvcmtTdGF0dXMgIT09IGxhc3RSZXN1bHQubmV0d29ya1N0YXR1cztcbiAgICAgICAgICAgIGlmICghaXNOZXR3b3JrUmVxdWVzdEluRmxpZ2h0KHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzKSB8fFxuICAgICAgICAgICAgICAgIChuZXR3b3JrU3RhdHVzQ2hhbmdlZCAmJiBvcHRpb25zLm5vdGlmeU9uTmV0d29ya1N0YXR1c0NoYW5nZSkgfHxcbiAgICAgICAgICAgICAgICBzaG91bGROb3RpZnlJZkxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHF1ZXJ5U3RvcmVWYWx1ZS5ncmFwaFFMRXJyb3JzICYmXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5ncmFwaFFMRXJyb3JzLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFwb2xsb0Vycm9yXzEgPSBuZXcgQXBvbGxvRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhRTEVycm9yczogcXVlcnlTdG9yZVZhbHVlLmdyYXBoUUxFcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrRXJyb3I6IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5SGFkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoYXBvbGxvRXJyb3JfMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgYXBvbGxvRXJyb3JfMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1Byb2R1Y3Rpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnQW4gdW5oYW5kbGVkIGVycm9yIHdhcyB0aHJvd24gYmVjYXVzZSBubyBlcnJvciBoYW5kbGVyIGlzIHJlZ2lzdGVyZWQgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3IgdGhlIHF1ZXJ5ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVN0b3JlVmFsdWUucXVlcnlTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hID0gZGlmZlF1ZXJ5QWdhaW5zdFN0b3JlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogX3RoaXMuZ2V0RGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0cygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBfdGhpcy5xdWVyeURvY3VtZW50c1txdWVyeUlkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHF1ZXJ5U3RvcmVWYWx1ZS5wcmV2aW91c1ZhcmlhYmxlcyB8fCBxdWVyeVN0b3JlVmFsdWUudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogX3RoaXMucmVkdWNlckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudE1hdGNoZXJGdW5jdGlvbjogX3RoaXMuZnJhZ21lbnRNYXRjaGVyLm1hdGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0OiBsYXN0UmVzdWx0ICYmIGxhc3RSZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBkYXRhID0gX2EucmVzdWx0LCBpc01pc3NpbmcgPSBfYS5pc01pc3Npbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0RnJvbVN0b3JlID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWlzc2luZyAmJiBmZXRjaFBvbGljeSAhPT0gJ2NhY2hlLW9ubHknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0RnJvbVN0b3JlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBsYXN0UmVzdWx0ICYmIGxhc3RSZXN1bHQuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogaXNOZXR3b3JrUmVxdWVzdEluRmxpZ2h0KHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya1N0YXR1czogcXVlcnlTdG9yZVZhbHVlLm5ldHdvcmtTdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRGcm9tU3RvcmUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGlzTmV0d29ya1JlcXVlc3RJbkZsaWdodChxdWVyeVN0b3JlVmFsdWUubmV0d29ya1N0YXR1cyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtTdGF0dXM6IHF1ZXJ5U3RvcmVWYWx1ZS5uZXR3b3JrU3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlci5uZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzRGlmZmVyZW50UmVzdWx0ID0gIShsYXN0UmVzdWx0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdEZyb21TdG9yZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmVzdWx0Lm5ldHdvcmtTdGF0dXMgPT09IHJlc3VsdEZyb21TdG9yZS5uZXR3b3JrU3RhdHVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RSZXN1bHQuc3RhbGUgPT09IHJlc3VsdEZyb21TdG9yZS5zdGFsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmVzdWx0LmRhdGEgPT09IHJlc3VsdEZyb21TdG9yZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEaWZmZXJlbnRSZXN1bHQgfHwgcHJldmlvdXNseUhhZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG1heWJlRGVlcEZyZWV6ZShyZXN1bHRGcm9tU3RvcmUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNseUhhZEVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5SGFkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9ic2VydmVyLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEFwb2xsb0Vycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya0Vycm9yOiBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLndhdGNoUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucywgc2hvdWxkU3Vic2NyaWJlKSB7XG4gICAgICAgIGlmIChzaG91bGRTdWJzY3JpYmUgPT09IHZvaWQgMCkgeyBzaG91bGRTdWJzY3JpYmUgPSB0cnVlOyB9XG4gICAgICAgIGlmIChvcHRpb25zLnJldHVyblBhcnRpYWxEYXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JldHVyblBhcnRpYWxEYXRhIG9wdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIHNpbmNlIEFwb2xsbyBDbGllbnQgMS4wLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmZvcmNlRmV0Y2gpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZm9yY2VGZXRjaCBvcHRpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBzaW5jZSBBcG9sbG8gQ2xpZW50IDEuMC4gVXNlIGZldGNoUG9saWN5IGluc3RlYWQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMubm9GZXRjaCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub0ZldGNoIG9wdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIHNpbmNlIEFwb2xsbyBDbGllbnQgMS4wLiBVc2UgZmV0Y2hQb2xpY3kgaW5zdGVhZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5mZXRjaFBvbGljeSA9PT0gJ3N0YW5kYnknKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsaWVudC53YXRjaFF1ZXJ5IGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBmZXRjaFBvbGljeSBzZXQgdG8gXCJzdGFuZGJ5XCInKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcXVlcnlEZWZpbml0aW9uID0gZ2V0UXVlcnlEZWZpbml0aW9uKG9wdGlvbnMucXVlcnkpO1xuICAgICAgICBpZiAocXVlcnlEZWZpbml0aW9uLnZhcmlhYmxlRGVmaW5pdGlvbnMgJiZcbiAgICAgICAgICAgIHF1ZXJ5RGVmaW5pdGlvbi52YXJpYWJsZURlZmluaXRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZXMgPSBnZXREZWZhdWx0VmFsdWVzKHF1ZXJ5RGVmaW5pdGlvbik7XG4gICAgICAgICAgICBvcHRpb25zLnZhcmlhYmxlcyA9IGFzc2lnbih7fSwgZGVmYXVsdFZhbHVlcywgb3B0aW9ucy52YXJpYWJsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ub3RpZnlPbk5ldHdvcmtTdGF0dXNDaGFuZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBvcHRpb25zLm5vdGlmeU9uTmV0d29ya1N0YXR1c0NoYW5nZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0cmFuc2Zvcm1lZE9wdGlvbnMgPSBfX2Fzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgICAgIHZhciBvYnNlcnZhYmxlUXVlcnkgPSBuZXcgT2JzZXJ2YWJsZVF1ZXJ5KHtcbiAgICAgICAgICAgIHNjaGVkdWxlcjogdGhpcy5zY2hlZHVsZXIsXG4gICAgICAgICAgICBvcHRpb25zOiB0cmFuc2Zvcm1lZE9wdGlvbnMsXG4gICAgICAgICAgICBzaG91bGRTdWJzY3JpYmU6IHNob3VsZFN1YnNjcmliZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlUXVlcnk7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLnF1ZXJ5ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKCFvcHRpb25zLnF1ZXJ5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3F1ZXJ5IG9wdGlvbiBpcyByZXF1aXJlZC4gWW91IG11c3Qgc3BlY2lmeSB5b3VyIEdyYXBoUUwgZG9jdW1lbnQgaW4gdGhlIHF1ZXJ5IG9wdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5xdWVyeS5raW5kICE9PSAnRG9jdW1lbnQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBtdXN0IHdyYXAgdGhlIHF1ZXJ5IHN0cmluZyBpbiBhIFwiZ3FsXCIgdGFnLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnJldHVyblBhcnRpYWxEYXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JldHVyblBhcnRpYWxEYXRhIG9wdGlvbiBvbmx5IHN1cHBvcnRlZCBvbiB3YXRjaFF1ZXJ5LicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnBvbGxJbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwb2xsSW50ZXJ2YWwgb3B0aW9uIG9ubHkgc3VwcG9ydGVkIG9uIHdhdGNoUXVlcnkuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuZm9yY2VGZXRjaCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JjZUZldGNoIG9wdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkIHNpbmNlIEFwb2xsbyBDbGllbnQgMS4wLiBVc2UgZmV0Y2hQb2xpY3kgaW5zdGVhZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5ub0ZldGNoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vRmV0Y2ggb3B0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgc2luY2UgQXBvbGxvIENsaWVudCAxLjAuIFVzZSBmZXRjaFBvbGljeSBpbnN0ZWFkLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5ub3RpZnlPbk5ldHdvcmtTdGF0dXNDaGFuZ2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjYWxsIFwicXVlcnlcIiB3aXRoIFwibm90aWZ5T25OZXR3b3JrU3RhdHVzQ2hhbmdlXCIgb3B0aW9uLiBPbmx5IFwid2F0Y2hRdWVyeVwiIGhhcyB0aGF0IG9wdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zLm5vdGlmeU9uTmV0d29ya1N0YXR1c0NoYW5nZSA9IGZhbHNlO1xuICAgICAgICB2YXIgcmVxdWVzdElkID0gdGhpcy5pZENvdW50ZXI7XG4gICAgICAgIHZhciByZXNQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgX3RoaXMuYWRkRmV0Y2hRdWVyeVByb21pc2UocmVxdWVzdElkLCByZXNQcm9taXNlLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLndhdGNoUXVlcnkob3B0aW9ucywgZmFsc2UpXG4gICAgICAgICAgICAgICAgLnJlc3VsdCgpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIF90aGlzLnJlbW92ZUZldGNoUXVlcnlQcm9taXNlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMucmVtb3ZlRmV0Y2hRdWVyeVByb21pc2UocmVxdWVzdElkKTtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzUHJvbWlzZTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2VuZXJhdGVRdWVyeUlkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcXVlcnlJZCA9IHRoaXMuaWRDb3VudGVyLnRvU3RyaW5nKCk7XG4gICAgICAgIHRoaXMuaWRDb3VudGVyKys7XG4gICAgICAgIHJldHVybiBxdWVyeUlkO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5zdG9wUXVlcnlJblN0b3JlID0gZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgdGhpcy5xdWVyeVN0b3JlLnN0b3BRdWVyeShxdWVyeUlkKTtcbiAgICAgICAgdGhpcy5icm9hZGNhc3RRdWVyaWVzKCk7XG4gICAgICAgIGlmIChRdWVyeU1hbmFnZXIuRU1JVF9SRURVWF9BQ1RJT05TKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnQVBPTExPX1FVRVJZX1NUT1AnLFxuICAgICAgICAgICAgICAgIHF1ZXJ5SWQ6IHF1ZXJ5SWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5nZXRBcG9sbG9TdGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVkdXhSb290U2VsZWN0b3IodGhpcy5zdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuc2VsZWN0QXBvbGxvU3RhdGUgPSBmdW5jdGlvbiAoc3RvcmUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVkdXhSb290U2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogdGhpcy5nZXRBcG9sbG9TdGF0ZSgpLmRhdGEgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0RGF0YVdpdGhPcHRpbWlzdGljUmVzdWx0cyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGdldERhdGFXaXRoT3B0aW1pc3RpY1Jlc3VsdHModGhpcy5nZXRBcG9sbG9TdGF0ZSgpKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuYWRkUXVlcnlMaXN0ZW5lciA9IGZ1bmN0aW9uIChxdWVyeUlkLCBsaXN0ZW5lcikge1xuICAgICAgICB0aGlzLnF1ZXJ5TGlzdGVuZXJzW3F1ZXJ5SWRdID0gdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXSB8fCBbXTtcbiAgICAgICAgdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXS5wdXNoKGxpc3RlbmVyKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuYWRkRmV0Y2hRdWVyeVByb21pc2UgPSBmdW5jdGlvbiAocmVxdWVzdElkLCBwcm9taXNlLCByZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgdGhpcy5mZXRjaFF1ZXJ5UHJvbWlzZXNbcmVxdWVzdElkLnRvU3RyaW5nKCldID0ge1xuICAgICAgICAgICAgcHJvbWlzZTogcHJvbWlzZSxcbiAgICAgICAgICAgIHJlc29sdmU6IHJlc29sdmUsXG4gICAgICAgICAgICByZWplY3Q6IHJlamVjdCxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVtb3ZlRmV0Y2hRdWVyeVByb21pc2UgPSBmdW5jdGlvbiAocmVxdWVzdElkKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZldGNoUXVlcnlQcm9taXNlc1tyZXF1ZXN0SWQudG9TdHJpbmcoKV07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmFkZE9ic2VydmFibGVRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeUlkLCBvYnNlcnZhYmxlUXVlcnkpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZhYmxlUXVlcmllc1txdWVyeUlkXSA9IHsgb2JzZXJ2YWJsZVF1ZXJ5OiBvYnNlcnZhYmxlUXVlcnkgfTtcbiAgICAgICAgdmFyIHF1ZXJ5RGVmID0gZ2V0UXVlcnlEZWZpbml0aW9uKG9ic2VydmFibGVRdWVyeS5vcHRpb25zLnF1ZXJ5KTtcbiAgICAgICAgaWYgKHF1ZXJ5RGVmLm5hbWUgJiYgcXVlcnlEZWYubmFtZS52YWx1ZSkge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5TmFtZSA9IHF1ZXJ5RGVmLm5hbWUudmFsdWU7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5SWRzQnlOYW1lW3F1ZXJ5TmFtZV0gPSB0aGlzLnF1ZXJ5SWRzQnlOYW1lW3F1ZXJ5TmFtZV0gfHwgW107XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5SWRzQnlOYW1lW3F1ZXJ5TmFtZV0ucHVzaChvYnNlcnZhYmxlUXVlcnkucXVlcnlJZCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVtb3ZlT2JzZXJ2YWJsZVF1ZXJ5ID0gZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgdmFyIG9ic2VydmFibGVRdWVyeSA9IHRoaXMub2JzZXJ2YWJsZVF1ZXJpZXNbcXVlcnlJZF0ub2JzZXJ2YWJsZVF1ZXJ5O1xuICAgICAgICB2YXIgZGVmaW5pdGlvbiA9IGdldFF1ZXJ5RGVmaW5pdGlvbihvYnNlcnZhYmxlUXVlcnkub3B0aW9ucy5xdWVyeSk7XG4gICAgICAgIHZhciBxdWVyeU5hbWUgPSBkZWZpbml0aW9uLm5hbWUgPyBkZWZpbml0aW9uLm5hbWUudmFsdWUgOiBudWxsO1xuICAgICAgICBkZWxldGUgdGhpcy5vYnNlcnZhYmxlUXVlcmllc1txdWVyeUlkXTtcbiAgICAgICAgaWYgKHF1ZXJ5TmFtZSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeUlkc0J5TmFtZVtxdWVyeU5hbWVdID0gdGhpcy5xdWVyeUlkc0J5TmFtZVtxdWVyeU5hbWVdLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEob2JzZXJ2YWJsZVF1ZXJ5LnF1ZXJ5SWQgPT09IHZhbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5yZXNldFN0b3JlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmZldGNoUXVlcnlQcm9taXNlcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICB2YXIgcmVqZWN0ID0gX3RoaXMuZmV0Y2hRdWVyeVByb21pc2VzW2tleV0ucmVqZWN0O1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignU3RvcmUgcmVzZXQgd2hpbGUgcXVlcnkgd2FzIGluIGZsaWdodC4nKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnF1ZXJ5U3RvcmUucmVzZXQoT2JqZWN0LmtleXModGhpcy5vYnNlcnZhYmxlUXVlcmllcykpO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdBUE9MTE9fU1RPUkVfUkVTRVQnLFxuICAgICAgICAgICAgb2JzZXJ2YWJsZVF1ZXJ5SWRzOiBPYmplY3Qua2V5cyh0aGlzLm9ic2VydmFibGVRdWVyaWVzKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubXV0YXRpb25TdG9yZS5yZXNldCgpO1xuICAgICAgICB2YXIgb2JzZXJ2YWJsZVF1ZXJ5UHJvbWlzZXMgPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5vYnNlcnZhYmxlUXVlcmllcykuZm9yRWFjaChmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICAgICAgdmFyIHN0b3JlUXVlcnkgPSBfdGhpcy5xdWVyeVN0b3JlLmdldChxdWVyeUlkKTtcbiAgICAgICAgICAgIHZhciBmZXRjaFBvbGljeSA9IF90aGlzLm9ic2VydmFibGVRdWVyaWVzW3F1ZXJ5SWRdLm9ic2VydmFibGVRdWVyeVxuICAgICAgICAgICAgICAgIC5vcHRpb25zLmZldGNoUG9saWN5O1xuICAgICAgICAgICAgaWYgKGZldGNoUG9saWN5ICE9PSAnY2FjaGUtb25seScgJiYgZmV0Y2hQb2xpY3kgIT09ICdzdGFuZGJ5Jykge1xuICAgICAgICAgICAgICAgIG9ic2VydmFibGVRdWVyeVByb21pc2VzLnB1c2goX3RoaXMub2JzZXJ2YWJsZVF1ZXJpZXNbcXVlcnlJZF0ub2JzZXJ2YWJsZVF1ZXJ5LnJlZmV0Y2goKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwob2JzZXJ2YWJsZVF1ZXJ5UHJvbWlzZXMpO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5zdGFydFF1ZXJ5ID0gZnVuY3Rpb24gKHF1ZXJ5SWQsIG9wdGlvbnMsIGxpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuYWRkUXVlcnlMaXN0ZW5lcihxdWVyeUlkLCBsaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuZmV0Y2hRdWVyeShxdWVyeUlkLCBvcHRpb25zKVxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgeyByZXR1cm4gdW5kZWZpbmVkOyB9KTtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5SWQ7XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLnN0YXJ0R3JhcGhRTFN1YnNjcmlwdGlvbiA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBxdWVyeSA9IG9wdGlvbnMucXVlcnk7XG4gICAgICAgIHZhciB0cmFuc2Zvcm1lZERvYyA9IHF1ZXJ5O1xuICAgICAgICBpZiAodGhpcy5hZGRUeXBlbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtZWREb2MgPSBhZGRUeXBlbmFtZVRvRG9jdW1lbnQodHJhbnNmb3JtZWREb2MpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2YXJpYWJsZXMgPSBhc3NpZ24oe30sIGdldERlZmF1bHRWYWx1ZXMoZ2V0T3BlcmF0aW9uRGVmaW5pdGlvbihxdWVyeSkpLCBvcHRpb25zLnZhcmlhYmxlcyk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0ge1xuICAgICAgICAgICAgcXVlcnk6IHRyYW5zZm9ybWVkRG9jLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBvcGVyYXRpb25OYW1lOiBnZXRPcGVyYXRpb25OYW1lKHRyYW5zZm9ybWVkRG9jKSxcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHN1YklkO1xuICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gW107XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgICAgICAgICAgIGlmIChvYnNlcnZlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbiAoZXJyb3IsIHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JzLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9icy5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19TVUJTQ1JJUFRJT05fUkVTVUxUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudDogdHJhbnNmb3JtZWREb2MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZSh0cmFuc2Zvcm1lZERvYyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiB7IGRhdGE6IHJlc3VsdCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbklkOiBzdWJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlZHVjZXJzOiBfdGhpcy5nZXRFeHRyYVJlZHVjZXJzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVycy5mb3JFYWNoKGZ1bmN0aW9uIChvYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JzLm5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgc3ViSWQgPSBfdGhpc1xuICAgICAgICAgICAgICAgICAgICAubmV0d29ya0ludGVyZmFjZS5zdWJzY3JpYmUocmVxdWVzdCwgaGFuZGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHVuc3Vic2NyaWJlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVycyA9IG9ic2VydmVycy5maWx0ZXIoZnVuY3Rpb24gKG9icykgeyByZXR1cm4gb2JzICE9PSBvYnNlcnZlcjsgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5uZXR3b3JrSW50ZXJmYWNlLnVuc3Vic2NyaWJlKHN1YklkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgX25ldHdvcmtTdWJzY3JpcHRpb25JZDogc3ViSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVtb3ZlUXVlcnkgPSBmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICBkZWxldGUgdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXTtcbiAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlEb2N1bWVudHNbcXVlcnlJZF07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLnN0b3BRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlUXVlcnkocXVlcnlJZCk7XG4gICAgICAgIHRoaXMuc3RvcFF1ZXJ5SW5TdG9yZShxdWVyeUlkKTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0Q3VycmVudFF1ZXJ5UmVzdWx0ID0gZnVuY3Rpb24gKG9ic2VydmFibGVRdWVyeSwgaXNPcHRpbWlzdGljKSB7XG4gICAgICAgIGlmIChpc09wdGltaXN0aWMgPT09IHZvaWQgMCkgeyBpc09wdGltaXN0aWMgPSBmYWxzZTsgfVxuICAgICAgICB2YXIgX2EgPSB0aGlzLmdldFF1ZXJ5UGFydHMob2JzZXJ2YWJsZVF1ZXJ5KSwgdmFyaWFibGVzID0gX2EudmFyaWFibGVzLCBkb2N1bWVudCA9IF9hLmRvY3VtZW50O1xuICAgICAgICB2YXIgbGFzdFJlc3VsdCA9IG9ic2VydmFibGVRdWVyeS5nZXRMYXN0UmVzdWx0KCk7XG4gICAgICAgIHZhciBxdWVyeU9wdGlvbnMgPSBvYnNlcnZhYmxlUXVlcnkub3B0aW9ucztcbiAgICAgICAgdmFyIHJlYWRPcHRpb25zID0ge1xuICAgICAgICAgICAgc3RvcmU6IGlzT3B0aW1pc3RpY1xuICAgICAgICAgICAgICAgID8gdGhpcy5nZXREYXRhV2l0aE9wdGltaXN0aWNSZXN1bHRzKClcbiAgICAgICAgICAgICAgICA6IHRoaXMuZ2V0QXBvbGxvU3RhdGUoKS5kYXRhLFxuICAgICAgICAgICAgcXVlcnk6IGRvY3VtZW50LFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBjb25maWc6IHRoaXMucmVkdWNlckNvbmZpZyxcbiAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0OiBsYXN0UmVzdWx0ID8gbGFzdFJlc3VsdC5kYXRhIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IHRoaXMuZnJhZ21lbnRNYXRjaGVyLm1hdGNoLFxuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGRhdGEgPSByZWFkUXVlcnlGcm9tU3RvcmUocmVhZE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIG1heWJlRGVlcEZyZWV6ZSh7IGRhdGE6IGRhdGEsIHBhcnRpYWw6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF5YmVEZWVwRnJlZXplKHsgZGF0YToge30sIHBhcnRpYWw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0UXVlcnlXaXRoUHJldmlvdXNSZXN1bHQgPSBmdW5jdGlvbiAocXVlcnlJZE9yT2JzZXJ2YWJsZSwgaXNPcHRpbWlzdGljKSB7XG4gICAgICAgIGlmIChpc09wdGltaXN0aWMgPT09IHZvaWQgMCkgeyBpc09wdGltaXN0aWMgPSBmYWxzZTsgfVxuICAgICAgICB2YXIgb2JzZXJ2YWJsZVF1ZXJ5O1xuICAgICAgICBpZiAodHlwZW9mIHF1ZXJ5SWRPck9ic2VydmFibGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMub2JzZXJ2YWJsZVF1ZXJpZXNbcXVlcnlJZE9yT2JzZXJ2YWJsZV0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPYnNlcnZhYmxlUXVlcnkgd2l0aCB0aGlzIGlkIGRvZXNuJ3QgZXhpc3Q6IFwiICsgcXVlcnlJZE9yT2JzZXJ2YWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYnNlcnZhYmxlUXVlcnkgPSB0aGlzLm9ic2VydmFibGVRdWVyaWVzW3F1ZXJ5SWRPck9ic2VydmFibGVdXG4gICAgICAgICAgICAgICAgLm9ic2VydmFibGVRdWVyeTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmFibGVRdWVyeSA9IHF1ZXJ5SWRPck9ic2VydmFibGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9hID0gdGhpcy5nZXRRdWVyeVBhcnRzKG9ic2VydmFibGVRdWVyeSksIHZhcmlhYmxlcyA9IF9hLnZhcmlhYmxlcywgZG9jdW1lbnQgPSBfYS5kb2N1bWVudDtcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLmdldEN1cnJlbnRRdWVyeVJlc3VsdChvYnNlcnZhYmxlUXVlcnksIGlzT3B0aW1pc3RpYykuZGF0YTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0OiBkYXRhLFxuICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgICAgICBkb2N1bWVudDogZG9jdW1lbnQsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBRdWVyeU1hbmFnZXIucHJvdG90eXBlLmdldFF1ZXJ5UGFydHMgPSBmdW5jdGlvbiAob2JzZXJ2YWJsZVF1ZXJ5KSB7XG4gICAgICAgIHZhciBxdWVyeU9wdGlvbnMgPSBvYnNlcnZhYmxlUXVlcnkub3B0aW9ucztcbiAgICAgICAgdmFyIHRyYW5zZm9ybWVkRG9jID0gb2JzZXJ2YWJsZVF1ZXJ5Lm9wdGlvbnMucXVlcnk7XG4gICAgICAgIGlmICh0aGlzLmFkZFR5cGVuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1lZERvYyA9IGFkZFR5cGVuYW1lVG9Eb2N1bWVudCh0cmFuc2Zvcm1lZERvYyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhcmlhYmxlczogcXVlcnlPcHRpb25zLnZhcmlhYmxlcyxcbiAgICAgICAgICAgIGRvY3VtZW50OiB0cmFuc2Zvcm1lZERvYyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUudHJhbnNmb3JtUXVlcnlEb2N1bWVudCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBxdWVyeURvYyA9IG9wdGlvbnMucXVlcnk7XG4gICAgICAgIGlmICh0aGlzLmFkZFR5cGVuYW1lKSB7XG4gICAgICAgICAgICBxdWVyeURvYyA9IGFkZFR5cGVuYW1lVG9Eb2N1bWVudChxdWVyeURvYyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHF1ZXJ5RG9jOiBxdWVyeURvYyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuZ2V0RXh0cmFSZWR1Y2VycyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMub2JzZXJ2YWJsZVF1ZXJpZXMpXG4gICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChvYnNRdWVyeUlkKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnkgPSBfdGhpcy5vYnNlcnZhYmxlUXVlcmllc1tvYnNRdWVyeUlkXS5vYnNlcnZhYmxlUXVlcnk7XG4gICAgICAgICAgICB2YXIgcXVlcnlPcHRpb25zID0gcXVlcnkub3B0aW9ucztcbiAgICAgICAgICAgIGlmIChxdWVyeU9wdGlvbnMucmVkdWNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVTdG9yZVJlZHVjZXIocXVlcnlPcHRpb25zLnJlZHVjZXIsIF90aGlzLmFkZFR5cGVuYW1lXG4gICAgICAgICAgICAgICAgICAgID8gYWRkVHlwZW5hbWVUb0RvY3VtZW50KHF1ZXJ5T3B0aW9ucy5xdWVyeSlcbiAgICAgICAgICAgICAgICAgICAgOiBxdWVyeU9wdGlvbnMucXVlcnksIHF1ZXJ5LnZhcmlhYmxlcyB8fCB7fSwgX3RoaXMucmVkdWNlckNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKHJlZHVjZXIpIHsgcmV0dXJuIHJlZHVjZXIgIT09IG51bGw7IH0pO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5mZXRjaFJlcXVlc3QgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHJlcXVlc3RJZCA9IF9hLnJlcXVlc3RJZCwgcXVlcnlJZCA9IF9hLnF1ZXJ5SWQsIGRvY3VtZW50ID0gX2EuZG9jdW1lbnQsIG9wdGlvbnMgPSBfYS5vcHRpb25zLCBmZXRjaE1vcmVGb3JRdWVyeUlkID0gX2EuZmV0Y2hNb3JlRm9yUXVlcnlJZDtcbiAgICAgICAgdmFyIHZhcmlhYmxlcyA9IG9wdGlvbnMudmFyaWFibGVzO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IHtcbiAgICAgICAgICAgIHF1ZXJ5OiBkb2N1bWVudCxcbiAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgb3BlcmF0aW9uTmFtZTogZ2V0T3BlcmF0aW9uTmFtZShkb2N1bWVudCksXG4gICAgICAgIH07XG4gICAgICAgIHZhciByZXRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgX3RoaXMuYWRkRmV0Y2hRdWVyeVByb21pc2UocmVxdWVzdElkLCByZXRQcm9taXNlLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgX3RoaXMuZGVkdXBsaWNhdG9yXG4gICAgICAgICAgICAgICAgLnF1ZXJ5KHJlcXVlc3QsIF90aGlzLnF1ZXJ5RGVkdXBsaWNhdGlvbilcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdmFyIGV4dHJhUmVkdWNlcnMgPSBfdGhpcy5nZXRFeHRyYVJlZHVjZXJzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcXVlc3RJZCA+PSAoX3RoaXMubGFzdFJlcXVlc3RJZFtxdWVyeUlkXSB8fCAxKSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5kaXNhYmxlQnJvYWRjYXN0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0FQT0xMT19RVUVSWV9SRVNVTFQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQ6IGRvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMgPyB2YXJpYWJsZXMgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk5hbWU6IGdldE9wZXJhdGlvbk5hbWUoZG9jdW1lbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUlkOiBxdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaE1vcmVGb3JRdWVyeUlkOiBmZXRjaE1vcmVGb3JRdWVyeUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFSZWR1Y2VyczogZXh0cmFSZWR1Y2VycyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLmRpc2FibGVCcm9hZGNhc3RpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlZHVjZXJFcnJvciA9IF90aGlzLmdldEFwb2xsb1N0YXRlKCkucmVkdWNlckVycm9yO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZHVjZXJFcnJvciB8fCByZWR1Y2VyRXJyb3IucXVlcnlJZCAhPT0gcXVlcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMucXVlcnlTdG9yZS5tYXJrUXVlcnlSZXN1bHQocXVlcnlJZCwgcmVzdWx0LCBmZXRjaE1vcmVGb3JRdWVyeUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLmJyb2FkY2FzdFF1ZXJpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdGhpcy5yZW1vdmVGZXRjaFF1ZXJ5UHJvbWlzZShyZXF1ZXN0SWQpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcG9sbG9FcnJvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmFwaFFMRXJyb3JzOiByZXN1bHQuZXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHZhciByZXN1bHRGcm9tU3RvcmU7XG4gICAgICAgICAgICAgICAgaWYgKGZldGNoTW9yZUZvclF1ZXJ5SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0RnJvbVN0b3JlID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0RnJvbVN0b3JlID0gcmVhZFF1ZXJ5RnJvbVN0b3JlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZTogX3RoaXMuZ2V0QXBvbGxvU3RhdGUoKS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBkb2N1bWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IF90aGlzLnJlZHVjZXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRNYXRjaGVyRnVuY3Rpb246IF90aGlzLmZyYWdtZW50TWF0Y2hlci5tYXRjaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHJlZHVjZXJFcnJvciA9IF90aGlzLmdldEFwb2xsb1N0YXRlKCkucmVkdWNlckVycm9yO1xuICAgICAgICAgICAgICAgIGlmIChyZWR1Y2VyRXJyb3IgJiYgcmVkdWNlckVycm9yLnF1ZXJ5SWQgPT09IHF1ZXJ5SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlZHVjZXJFcnJvci5lcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF90aGlzLnJlbW92ZUZldGNoUXVlcnlQcm9taXNlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHJlc3VsdEZyb21TdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG5ldHdvcmtTdGF0dXM6IE5ldHdvcmtTdGF0dXMucmVhZHksXG4gICAgICAgICAgICAgICAgICAgIHN0YWxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmV0UHJvbWlzZTtcbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUucmVmZXRjaFF1ZXJ5QnlOYW1lID0gZnVuY3Rpb24gKHF1ZXJ5TmFtZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgcmVmZXRjaGVkUXVlcmllcyA9IHRoaXMucXVlcnlJZHNCeU5hbWVbcXVlcnlOYW1lXTtcbiAgICAgICAgaWYgKHJlZmV0Y2hlZFF1ZXJpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogdW5rbm93biBxdWVyeSB3aXRoIG5hbWUgXCIgKyBxdWVyeU5hbWUgKyBcIiBhc2tlZCB0byByZWZldGNoXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHJlZmV0Y2hlZFF1ZXJpZXMubWFwKGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLm9ic2VydmFibGVRdWVyaWVzW3F1ZXJ5SWRdLm9ic2VydmFibGVRdWVyeS5yZWZldGNoKCk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5TWFuYWdlci5wcm90b3R5cGUuYnJvYWRjYXN0UXVlcmllcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZUJyb2FkY2FzdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMucXVlcnlMaXN0ZW5lcnMpLmZvckVhY2goZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgICAgIHZhciBsaXN0ZW5lcnMgPSBfdGhpcy5xdWVyeUxpc3RlbmVyc1txdWVyeUlkXTtcbiAgICAgICAgICAgIGlmIChsaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcXVlcnlTdG9yZVZhbHVlID0gX3RoaXMucXVlcnlTdG9yZS5nZXQocXVlcnlJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihxdWVyeVN0b3JlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLnByb3RvdHlwZS5nZW5lcmF0ZVJlcXVlc3RJZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlcXVlc3RJZCA9IHRoaXMuaWRDb3VudGVyO1xuICAgICAgICB0aGlzLmlkQ291bnRlcisrO1xuICAgICAgICByZXR1cm4gcmVxdWVzdElkO1xuICAgIH07XG4gICAgUXVlcnlNYW5hZ2VyLkVNSVRfUkVEVVhfQUNUSU9OUyA9IHRydWU7XG4gICAgcmV0dXJuIFF1ZXJ5TWFuYWdlcjtcbn0oKSk7XG5leHBvcnQgeyBRdWVyeU1hbmFnZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVF1ZXJ5TWFuYWdlci5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9hcG9sbG8tY2xpZW50L2NvcmUvUXVlcnlNYW5hZ2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAyODJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///282\n"); /***/ }), /* 283 */ @@ -3496,7 +3496,7 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryScheduler; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__core_types__ = __webpack_require__(/*! ../core/types */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__core_ObservableQuery__ = __webpack_require__(/*! ../core/ObservableQuery */ 65);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__queries_networkStatus__ = __webpack_require__(/*! ../queries/networkStatus */ 33);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nvar QueryScheduler = (function () {\n function QueryScheduler(_a) {\n var queryManager = _a.queryManager;\n this.queryManager = queryManager;\n this.pollingTimers = {};\n this.inFlightQueries = {};\n this.registeredQueries = {};\n this.intervalQueries = {};\n }\n QueryScheduler.prototype.checkInFlight = function (queryId) {\n var query = this.queryManager.queryStore.get(queryId);\n return (query &&\n query.networkStatus !== __WEBPACK_IMPORTED_MODULE_2__queries_networkStatus__[\"a\" /* NetworkStatus */].ready &&\n query.networkStatus !== __WEBPACK_IMPORTED_MODULE_2__queries_networkStatus__[\"a\" /* NetworkStatus */].error);\n };\n QueryScheduler.prototype.fetchQuery = function (queryId, options, fetchType) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.queryManager\n .fetchQuery(queryId, options, fetchType)\n .then(function (result) {\n resolve(result);\n })\n .catch(function (error) {\n reject(error);\n });\n });\n };\n QueryScheduler.prototype.startPollingQuery = function (options, queryId, listener) {\n if (!options.pollInterval) {\n throw new Error('Attempted to start a polling query without a polling interval.');\n }\n if (this.queryManager.ssrMode) {\n return queryId;\n }\n this.registeredQueries[queryId] = options;\n if (listener) {\n this.queryManager.addQueryListener(queryId, listener);\n }\n this.addQueryOnInterval(queryId, options);\n return queryId;\n };\n QueryScheduler.prototype.stopPollingQuery = function (queryId) {\n delete this.registeredQueries[queryId];\n };\n QueryScheduler.prototype.fetchQueriesOnInterval = function (interval) {\n var _this = this;\n this.intervalQueries[interval] = this.intervalQueries[interval].filter(function (queryId) {\n if (!_this.registeredQueries.hasOwnProperty(queryId)) {\n return false;\n }\n if (_this.checkInFlight(queryId)) {\n return true;\n }\n var queryOptions = _this.registeredQueries[queryId];\n var pollingOptions = __assign({}, queryOptions);\n pollingOptions.fetchPolicy = 'network-only';\n _this.fetchQuery(queryId, pollingOptions, __WEBPACK_IMPORTED_MODULE_0__core_types__[\"a\" /* FetchType */].poll);\n return true;\n });\n if (this.intervalQueries[interval].length === 0) {\n clearInterval(this.pollingTimers[interval]);\n delete this.intervalQueries[interval];\n }\n };\n QueryScheduler.prototype.addQueryOnInterval = function (queryId, queryOptions) {\n var _this = this;\n var interval = queryOptions.pollInterval;\n if (!interval) {\n throw new Error(\"A poll interval is required to start polling query with id '\" + queryId + \"'.\");\n }\n if (this.intervalQueries.hasOwnProperty(interval.toString()) &&\n this.intervalQueries[interval].length > 0) {\n this.intervalQueries[interval].push(queryId);\n }\n else {\n this.intervalQueries[interval] = [queryId];\n this.pollingTimers[interval] = setInterval(function () {\n _this.fetchQueriesOnInterval(interval);\n }, interval);\n }\n };\n QueryScheduler.prototype.registerPollingQuery = function (queryOptions) {\n if (!queryOptions.pollInterval) {\n throw new Error('Attempted to register a non-polling query with the scheduler.');\n }\n return new __WEBPACK_IMPORTED_MODULE_1__core_ObservableQuery__[\"a\" /* ObservableQuery */]({\n scheduler: this,\n options: queryOptions,\n });\n };\n return QueryScheduler;\n}());\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjg3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvc2NoZWR1bGVyL3NjaGVkdWxlci5qcz8wZWM0Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgRmV0Y2hUeXBlIH0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlUXVlcnkgfSBmcm9tICcuLi9jb3JlL09ic2VydmFibGVRdWVyeSc7XG5pbXBvcnQgeyBOZXR3b3JrU3RhdHVzIH0gZnJvbSAnLi4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbnZhciBRdWVyeVNjaGVkdWxlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUXVlcnlTY2hlZHVsZXIoX2EpIHtcbiAgICAgICAgdmFyIHF1ZXJ5TWFuYWdlciA9IF9hLnF1ZXJ5TWFuYWdlcjtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIgPSBxdWVyeU1hbmFnZXI7XG4gICAgICAgIHRoaXMucG9sbGluZ1RpbWVycyA9IHt9O1xuICAgICAgICB0aGlzLmluRmxpZ2h0UXVlcmllcyA9IHt9O1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWRRdWVyaWVzID0ge307XG4gICAgICAgIHRoaXMuaW50ZXJ2YWxRdWVyaWVzID0ge307XG4gICAgfVxuICAgIFF1ZXJ5U2NoZWR1bGVyLnByb3RvdHlwZS5jaGVja0luRmxpZ2h0ID0gZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5xdWVyeU1hbmFnZXIucXVlcnlTdG9yZS5nZXQocXVlcnlJZCk7XG4gICAgICAgIHJldHVybiAocXVlcnkgJiZcbiAgICAgICAgICAgIHF1ZXJ5Lm5ldHdvcmtTdGF0dXMgIT09IE5ldHdvcmtTdGF0dXMucmVhZHkgJiZcbiAgICAgICAgICAgIHF1ZXJ5Lm5ldHdvcmtTdGF0dXMgIT09IE5ldHdvcmtTdGF0dXMuZXJyb3IpO1xuICAgIH07XG4gICAgUXVlcnlTY2hlZHVsZXIucHJvdG90eXBlLmZldGNoUXVlcnkgPSBmdW5jdGlvbiAocXVlcnlJZCwgb3B0aW9ucywgZmV0Y2hUeXBlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBfdGhpcy5xdWVyeU1hbmFnZXJcbiAgICAgICAgICAgICAgICAuZmV0Y2hRdWVyeShxdWVyeUlkLCBvcHRpb25zLCBmZXRjaFR5cGUpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBRdWVyeVNjaGVkdWxlci5wcm90b3R5cGUuc3RhcnRQb2xsaW5nUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucywgcXVlcnlJZCwgbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnBvbGxJbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gc3RhcnQgYSBwb2xsaW5nIHF1ZXJ5IHdpdGhvdXQgYSBwb2xsaW5nIGludGVydmFsLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnF1ZXJ5TWFuYWdlci5zc3JNb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gcXVlcnlJZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZ2lzdGVyZWRRdWVyaWVzW3F1ZXJ5SWRdID0gb3B0aW9ucztcbiAgICAgICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5TWFuYWdlci5hZGRRdWVyeUxpc3RlbmVyKHF1ZXJ5SWQsIGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZFF1ZXJ5T25JbnRlcnZhbChxdWVyeUlkLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5SWQ7XG4gICAgfTtcbiAgICBRdWVyeVNjaGVkdWxlci5wcm90b3R5cGUuc3RvcFBvbGxpbmdRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnJlZ2lzdGVyZWRRdWVyaWVzW3F1ZXJ5SWRdO1xuICAgIH07XG4gICAgUXVlcnlTY2hlZHVsZXIucHJvdG90eXBlLmZldGNoUXVlcmllc09uSW50ZXJ2YWwgPSBmdW5jdGlvbiAoaW50ZXJ2YWwpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5pbnRlcnZhbFF1ZXJpZXNbaW50ZXJ2YWxdID0gdGhpcy5pbnRlcnZhbFF1ZXJpZXNbaW50ZXJ2YWxdLmZpbHRlcihmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICAgICAgaWYgKCFfdGhpcy5yZWdpc3RlcmVkUXVlcmllcy5oYXNPd25Qcm9wZXJ0eShxdWVyeUlkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfdGhpcy5jaGVja0luRmxpZ2h0KHF1ZXJ5SWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcXVlcnlPcHRpb25zID0gX3RoaXMucmVnaXN0ZXJlZFF1ZXJpZXNbcXVlcnlJZF07XG4gICAgICAgICAgICB2YXIgcG9sbGluZ09wdGlvbnMgPSBfX2Fzc2lnbih7fSwgcXVlcnlPcHRpb25zKTtcbiAgICAgICAgICAgIHBvbGxpbmdPcHRpb25zLmZldGNoUG9saWN5ID0gJ25ldHdvcmstb25seSc7XG4gICAgICAgICAgICBfdGhpcy5mZXRjaFF1ZXJ5KHF1ZXJ5SWQsIHBvbGxpbmdPcHRpb25zLCBGZXRjaFR5cGUucG9sbCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmludGVydmFsUXVlcmllc1tpbnRlcnZhbF0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucG9sbGluZ1RpbWVyc1tpbnRlcnZhbF0pO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuaW50ZXJ2YWxRdWVyaWVzW2ludGVydmFsXTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUXVlcnlTY2hlZHVsZXIucHJvdG90eXBlLmFkZFF1ZXJ5T25JbnRlcnZhbCA9IGZ1bmN0aW9uIChxdWVyeUlkLCBxdWVyeU9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGludGVydmFsID0gcXVlcnlPcHRpb25zLnBvbGxJbnRlcnZhbDtcbiAgICAgICAgaWYgKCFpbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBwb2xsIGludGVydmFsIGlzIHJlcXVpcmVkIHRvIHN0YXJ0IHBvbGxpbmcgcXVlcnkgd2l0aCBpZCAnXCIgKyBxdWVyeUlkICsgXCInLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnRlcnZhbFF1ZXJpZXMuaGFzT3duUHJvcGVydHkoaW50ZXJ2YWwudG9TdHJpbmcoKSkgJiZcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxRdWVyaWVzW2ludGVydmFsXS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsUXVlcmllc1tpbnRlcnZhbF0ucHVzaChxdWVyeUlkKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxRdWVyaWVzW2ludGVydmFsXSA9IFtxdWVyeUlkXTtcbiAgICAgICAgICAgIHRoaXMucG9sbGluZ1RpbWVyc1tpbnRlcnZhbF0gPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuZmV0Y2hRdWVyaWVzT25JbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5U2NoZWR1bGVyLnByb3RvdHlwZS5yZWdpc3RlclBvbGxpbmdRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeU9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFxdWVyeU9wdGlvbnMucG9sbEludGVydmFsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byByZWdpc3RlciBhIG5vbi1wb2xsaW5nIHF1ZXJ5IHdpdGggdGhlIHNjaGVkdWxlci4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVRdWVyeSh7XG4gICAgICAgICAgICBzY2hlZHVsZXI6IHRoaXMsXG4gICAgICAgICAgICBvcHRpb25zOiBxdWVyeU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIFF1ZXJ5U2NoZWR1bGVyO1xufSgpKTtcbmV4cG9ydCB7IFF1ZXJ5U2NoZWR1bGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY2hlZHVsZXIuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9zY2hlZHVsZXIvc2NoZWR1bGVyLmpzXG4vLyBtb2R1bGUgaWQgPSAyODdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///287\n"); +eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return QueryScheduler; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__core_types__ = __webpack_require__(/*! ../core/types */ 68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__core_ObservableQuery__ = __webpack_require__(/*! ../core/ObservableQuery */ 66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__queries_networkStatus__ = __webpack_require__(/*! ../queries/networkStatus */ 33);\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nvar QueryScheduler = (function () {\n function QueryScheduler(_a) {\n var queryManager = _a.queryManager;\n this.queryManager = queryManager;\n this.pollingTimers = {};\n this.inFlightQueries = {};\n this.registeredQueries = {};\n this.intervalQueries = {};\n }\n QueryScheduler.prototype.checkInFlight = function (queryId) {\n var query = this.queryManager.queryStore.get(queryId);\n return (query &&\n query.networkStatus !== __WEBPACK_IMPORTED_MODULE_2__queries_networkStatus__[\"a\" /* NetworkStatus */].ready &&\n query.networkStatus !== __WEBPACK_IMPORTED_MODULE_2__queries_networkStatus__[\"a\" /* NetworkStatus */].error);\n };\n QueryScheduler.prototype.fetchQuery = function (queryId, options, fetchType) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.queryManager\n .fetchQuery(queryId, options, fetchType)\n .then(function (result) {\n resolve(result);\n })\n .catch(function (error) {\n reject(error);\n });\n });\n };\n QueryScheduler.prototype.startPollingQuery = function (options, queryId, listener) {\n if (!options.pollInterval) {\n throw new Error('Attempted to start a polling query without a polling interval.');\n }\n if (this.queryManager.ssrMode) {\n return queryId;\n }\n this.registeredQueries[queryId] = options;\n if (listener) {\n this.queryManager.addQueryListener(queryId, listener);\n }\n this.addQueryOnInterval(queryId, options);\n return queryId;\n };\n QueryScheduler.prototype.stopPollingQuery = function (queryId) {\n delete this.registeredQueries[queryId];\n };\n QueryScheduler.prototype.fetchQueriesOnInterval = function (interval) {\n var _this = this;\n this.intervalQueries[interval] = this.intervalQueries[interval].filter(function (queryId) {\n if (!_this.registeredQueries.hasOwnProperty(queryId)) {\n return false;\n }\n if (_this.checkInFlight(queryId)) {\n return true;\n }\n var queryOptions = _this.registeredQueries[queryId];\n var pollingOptions = __assign({}, queryOptions);\n pollingOptions.fetchPolicy = 'network-only';\n _this.fetchQuery(queryId, pollingOptions, __WEBPACK_IMPORTED_MODULE_0__core_types__[\"a\" /* FetchType */].poll);\n return true;\n });\n if (this.intervalQueries[interval].length === 0) {\n clearInterval(this.pollingTimers[interval]);\n delete this.intervalQueries[interval];\n }\n };\n QueryScheduler.prototype.addQueryOnInterval = function (queryId, queryOptions) {\n var _this = this;\n var interval = queryOptions.pollInterval;\n if (!interval) {\n throw new Error(\"A poll interval is required to start polling query with id '\" + queryId + \"'.\");\n }\n if (this.intervalQueries.hasOwnProperty(interval.toString()) &&\n this.intervalQueries[interval].length > 0) {\n this.intervalQueries[interval].push(queryId);\n }\n else {\n this.intervalQueries[interval] = [queryId];\n this.pollingTimers[interval] = setInterval(function () {\n _this.fetchQueriesOnInterval(interval);\n }, interval);\n }\n };\n QueryScheduler.prototype.registerPollingQuery = function (queryOptions) {\n if (!queryOptions.pollInterval) {\n throw new Error('Attempted to register a non-polling query with the scheduler.');\n }\n return new __WEBPACK_IMPORTED_MODULE_1__core_ObservableQuery__[\"a\" /* ObservableQuery */]({\n scheduler: this,\n options: queryOptions,\n });\n };\n return QueryScheduler;\n}());\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjg3LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvc2NoZWR1bGVyL3NjaGVkdWxlci5qcz8wZWM0Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgRmV0Y2hUeXBlIH0gZnJvbSAnLi4vY29yZS90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlUXVlcnkgfSBmcm9tICcuLi9jb3JlL09ic2VydmFibGVRdWVyeSc7XG5pbXBvcnQgeyBOZXR3b3JrU3RhdHVzIH0gZnJvbSAnLi4vcXVlcmllcy9uZXR3b3JrU3RhdHVzJztcbnZhciBRdWVyeVNjaGVkdWxlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUXVlcnlTY2hlZHVsZXIoX2EpIHtcbiAgICAgICAgdmFyIHF1ZXJ5TWFuYWdlciA9IF9hLnF1ZXJ5TWFuYWdlcjtcbiAgICAgICAgdGhpcy5xdWVyeU1hbmFnZXIgPSBxdWVyeU1hbmFnZXI7XG4gICAgICAgIHRoaXMucG9sbGluZ1RpbWVycyA9IHt9O1xuICAgICAgICB0aGlzLmluRmxpZ2h0UXVlcmllcyA9IHt9O1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWRRdWVyaWVzID0ge307XG4gICAgICAgIHRoaXMuaW50ZXJ2YWxRdWVyaWVzID0ge307XG4gICAgfVxuICAgIFF1ZXJ5U2NoZWR1bGVyLnByb3RvdHlwZS5jaGVja0luRmxpZ2h0ID0gZnVuY3Rpb24gKHF1ZXJ5SWQpIHtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5xdWVyeU1hbmFnZXIucXVlcnlTdG9yZS5nZXQocXVlcnlJZCk7XG4gICAgICAgIHJldHVybiAocXVlcnkgJiZcbiAgICAgICAgICAgIHF1ZXJ5Lm5ldHdvcmtTdGF0dXMgIT09IE5ldHdvcmtTdGF0dXMucmVhZHkgJiZcbiAgICAgICAgICAgIHF1ZXJ5Lm5ldHdvcmtTdGF0dXMgIT09IE5ldHdvcmtTdGF0dXMuZXJyb3IpO1xuICAgIH07XG4gICAgUXVlcnlTY2hlZHVsZXIucHJvdG90eXBlLmZldGNoUXVlcnkgPSBmdW5jdGlvbiAocXVlcnlJZCwgb3B0aW9ucywgZmV0Y2hUeXBlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBfdGhpcy5xdWVyeU1hbmFnZXJcbiAgICAgICAgICAgICAgICAuZmV0Y2hRdWVyeShxdWVyeUlkLCBvcHRpb25zLCBmZXRjaFR5cGUpXG4gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBRdWVyeVNjaGVkdWxlci5wcm90b3R5cGUuc3RhcnRQb2xsaW5nUXVlcnkgPSBmdW5jdGlvbiAob3B0aW9ucywgcXVlcnlJZCwgbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLnBvbGxJbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gc3RhcnQgYSBwb2xsaW5nIHF1ZXJ5IHdpdGhvdXQgYSBwb2xsaW5nIGludGVydmFsLicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnF1ZXJ5TWFuYWdlci5zc3JNb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gcXVlcnlJZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZ2lzdGVyZWRRdWVyaWVzW3F1ZXJ5SWRdID0gb3B0aW9ucztcbiAgICAgICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5TWFuYWdlci5hZGRRdWVyeUxpc3RlbmVyKHF1ZXJ5SWQsIGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZFF1ZXJ5T25JbnRlcnZhbChxdWVyeUlkLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5SWQ7XG4gICAgfTtcbiAgICBRdWVyeVNjaGVkdWxlci5wcm90b3R5cGUuc3RvcFBvbGxpbmdRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeUlkKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnJlZ2lzdGVyZWRRdWVyaWVzW3F1ZXJ5SWRdO1xuICAgIH07XG4gICAgUXVlcnlTY2hlZHVsZXIucHJvdG90eXBlLmZldGNoUXVlcmllc09uSW50ZXJ2YWwgPSBmdW5jdGlvbiAoaW50ZXJ2YWwpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5pbnRlcnZhbFF1ZXJpZXNbaW50ZXJ2YWxdID0gdGhpcy5pbnRlcnZhbFF1ZXJpZXNbaW50ZXJ2YWxdLmZpbHRlcihmdW5jdGlvbiAocXVlcnlJZCkge1xuICAgICAgICAgICAgaWYgKCFfdGhpcy5yZWdpc3RlcmVkUXVlcmllcy5oYXNPd25Qcm9wZXJ0eShxdWVyeUlkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfdGhpcy5jaGVja0luRmxpZ2h0KHF1ZXJ5SWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcXVlcnlPcHRpb25zID0gX3RoaXMucmVnaXN0ZXJlZFF1ZXJpZXNbcXVlcnlJZF07XG4gICAgICAgICAgICB2YXIgcG9sbGluZ09wdGlvbnMgPSBfX2Fzc2lnbih7fSwgcXVlcnlPcHRpb25zKTtcbiAgICAgICAgICAgIHBvbGxpbmdPcHRpb25zLmZldGNoUG9saWN5ID0gJ25ldHdvcmstb25seSc7XG4gICAgICAgICAgICBfdGhpcy5mZXRjaFF1ZXJ5KHF1ZXJ5SWQsIHBvbGxpbmdPcHRpb25zLCBGZXRjaFR5cGUucG9sbCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLmludGVydmFsUXVlcmllc1tpbnRlcnZhbF0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucG9sbGluZ1RpbWVyc1tpbnRlcnZhbF0pO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuaW50ZXJ2YWxRdWVyaWVzW2ludGVydmFsXTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgUXVlcnlTY2hlZHVsZXIucHJvdG90eXBlLmFkZFF1ZXJ5T25JbnRlcnZhbCA9IGZ1bmN0aW9uIChxdWVyeUlkLCBxdWVyeU9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGludGVydmFsID0gcXVlcnlPcHRpb25zLnBvbGxJbnRlcnZhbDtcbiAgICAgICAgaWYgKCFpbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBwb2xsIGludGVydmFsIGlzIHJlcXVpcmVkIHRvIHN0YXJ0IHBvbGxpbmcgcXVlcnkgd2l0aCBpZCAnXCIgKyBxdWVyeUlkICsgXCInLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnRlcnZhbFF1ZXJpZXMuaGFzT3duUHJvcGVydHkoaW50ZXJ2YWwudG9TdHJpbmcoKSkgJiZcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxRdWVyaWVzW2ludGVydmFsXS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsUXVlcmllc1tpbnRlcnZhbF0ucHVzaChxdWVyeUlkKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxRdWVyaWVzW2ludGVydmFsXSA9IFtxdWVyeUlkXTtcbiAgICAgICAgICAgIHRoaXMucG9sbGluZ1RpbWVyc1tpbnRlcnZhbF0gPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuZmV0Y2hRdWVyaWVzT25JbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFF1ZXJ5U2NoZWR1bGVyLnByb3RvdHlwZS5yZWdpc3RlclBvbGxpbmdRdWVyeSA9IGZ1bmN0aW9uIChxdWVyeU9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFxdWVyeU9wdGlvbnMucG9sbEludGVydmFsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byByZWdpc3RlciBhIG5vbi1wb2xsaW5nIHF1ZXJ5IHdpdGggdGhlIHNjaGVkdWxlci4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVRdWVyeSh7XG4gICAgICAgICAgICBzY2hlZHVsZXI6IHRoaXMsXG4gICAgICAgICAgICBvcHRpb25zOiBxdWVyeU9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIFF1ZXJ5U2NoZWR1bGVyO1xufSgpKTtcbmV4cG9ydCB7IFF1ZXJ5U2NoZWR1bGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY2hlZHVsZXIuanMubWFwXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvYXBvbGxvLWNsaWVudC9zY2hlZHVsZXIvc2NoZWR1bGVyLmpzXG4vLyBtb2R1bGUgaWQgPSAyODdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///287\n"); /***/ }), /* 288 */ @@ -3509,5 +3509,72 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, eval("exports.version = \"1.9.2\"//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjg4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvdmVyc2lvbi5qcz9kZDhlIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydHMudmVyc2lvbiA9IFwiMS45LjJcIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Fwb2xsby1jbGllbnQvdmVyc2lvbi5qc1xuLy8gbW9kdWxlIGlkID0gMjg4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///288\n"); +/***/ }), +/* 289 */ +/*!****************************************************!*\ + !*** ./src/components/MagentoProductItem/index.js ***! + \****************************************************/ +/*! exports provided: default */ +/*! exports used: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ 44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n\n\nclass MagentoProductItem extends __WEBPACK_IMPORTED_MODULE_0_react___default.a.Component {\n\n constructor(props) {\n super(props);\n console.log(props);\n this.thumbnail = 'http://m2graphql.com/pub/static/frontend/Magento/luma/en_US/Magento_Catalog/images/product/placeholder/small_image.jpg';\n this.url_key = \"http://m2graphql.com/placeholder.html\";\n }\n\n render() {\n if (this.props.data.hasOwnProperty('custom_attributes')) {\n this.thumbnail = \"http://m2graphql.com/pub/media/catalog/product/\" + this.props.data.custom_attributes[0]['value'];\n this.url_key = \"http://m2graphql.com/index.php/\" + this.props.data.custom_attributes[1]['value'] + '.html';\n }\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'li',\n { className: 'product-item' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'product-item-info' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { href: this.url_key, className: 'product-item-photo' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n { className: 'product-image-container', style: { width: \"240px\" } },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n { className: 'product-image-wrapper', style: { paddingBottom: \"125%\" } },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('img', { className: 'product-image-photo', src: this.thumbnail, width: '240', height: '300', alt: 'Selene Yoga Hoodie' })\n )\n )\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'product-item-details' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'strong',\n { className: 'product-item-name' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { title: '{this.props.data.name}', href: this.url_key, className: 'product-item-link' },\n this.props.data.name\n )\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'price-box price-final_price', 'data-role': 'priceBox', 'data-product-id': '1113' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n { className: 'price-container price-final_price tax weee' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n { id: 'old-price-1113-widget-product-grid', 'data-price-amount': '{this.props.data.price}', 'data-price-type': 'finalPrice', className: 'price-wrapper ' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n { className: 'price' },\n '$',\n this.props.data.price\n )\n )\n )\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'product-item-actions' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'actions-primary' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'button',\n { className: 'action tocart primary', 'data-post': '{\"action\":\"http:\\\\/\\\\/m2graphql.com\\\\/index.php\\\\/checkout\\\\/cart\\\\/add\\\\/uenc\\\\/aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw%2C\\\\/product\\\\/1113\\\\/\",\"data\":{\"product\":\"1113\",\"uenc\":\"aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw,\"}}', type: 'button', title: 'Add to Cart' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n null,\n 'Add to Cart'\n )\n )\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'actions-secondary', 'data-role': 'add-to-links' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { href: '#', 'data-post': '{\"action\":\"http:\\\\/\\\\/m2graphql.com\\\\/index.php\\\\/wishlist\\\\/index\\\\/add\\\\/\",\"data\":{\"product\":\"1113\",\"uenc\":\"aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw,\"}}', className: 'action towishlist', 'data-action': 'add-to-wishlist', title: 'Add to Wish List' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n null,\n 'Add to Wish List'\n )\n ),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'a',\n { href: '#', className: 'action tocompare', 'data-post': '{\"action\":\"http:\\\\/\\\\/m2graphql.com\\\\/index.php\\\\/catalog\\\\/product_compare\\\\/add\\\\/\",\"data\":{\"product\":\"1113\",\"uenc\":\"aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw,\"}}', title: 'Add to Compare' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'span',\n null,\n 'Add to Compare'\n )\n )\n )\n )\n )\n )\n );\n }\n}\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = MagentoProductItem;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjg5LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9jb21wb25lbnRzL01hZ2VudG9Qcm9kdWN0SXRlbS9pbmRleC5qcz81NWIxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hZ2VudG9Qcm9kdWN0SXRlbSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHByb3BzKTtcbiAgICAgICAgdGhpcy50aHVtYm5haWwgPSAnaHR0cDovL20yZ3JhcGhxbC5jb20vcHViL3N0YXRpYy9mcm9udGVuZC9NYWdlbnRvL2x1bWEvZW5fVVMvTWFnZW50b19DYXRhbG9nL2ltYWdlcy9wcm9kdWN0L3BsYWNlaG9sZGVyL3NtYWxsX2ltYWdlLmpwZyc7XG4gICAgICAgIHRoaXMudXJsX2tleSA9IFwiaHR0cDovL20yZ3JhcGhxbC5jb20vcGxhY2Vob2xkZXIuaHRtbFwiXG4gICAgfSAgICBcblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGF0YS5oYXNPd25Qcm9wZXJ0eSgnY3VzdG9tX2F0dHJpYnV0ZXMnKSkge1xuICAgICAgICAgICAgdGhpcy50aHVtYm5haWwgPSBcImh0dHA6Ly9tMmdyYXBocWwuY29tL3B1Yi9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvXCIgKyB0aGlzLnByb3BzLmRhdGEuY3VzdG9tX2F0dHJpYnV0ZXNbMF1bJ3ZhbHVlJ107XG4gICAgICAgICAgICB0aGlzLnVybF9rZXkgPSBcImh0dHA6Ly9tMmdyYXBocWwuY29tL2luZGV4LnBocC9cIiArIHRoaXMucHJvcHMuZGF0YS5jdXN0b21fYXR0cmlidXRlc1sxXVsndmFsdWUnXSArICcuaHRtbCdcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cInByb2R1Y3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJvZHVjdC1pdGVtLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj17dGhpcy51cmxfa2V5fSBjbGFzc05hbWU9XCJwcm9kdWN0LWl0ZW0tcGhvdG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInByb2R1Y3QtaW1hZ2UtY29udGFpbmVyXCIgc3R5bGU9e3t3aWR0aDogXCIyNDBweFwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicHJvZHVjdC1pbWFnZS13cmFwcGVyXCIgc3R5bGU9e3twYWRkaW5nQm90dG9tOiBcIjEyNSVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cInByb2R1Y3QtaW1hZ2UtcGhvdG9cIiBzcmM9e3RoaXMudGh1bWJuYWlsfSB3aWR0aD1cIjI0MFwiIGhlaWdodD1cIjMwMFwiIGFsdD1cIlNlbGVuZSBZb2dhIEhvb2RpZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJvZHVjdC1pdGVtLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPVwicHJvZHVjdC1pdGVtLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0aXRsZT1cInt0aGlzLnByb3BzLmRhdGEubmFtZX1cIiBocmVmPXt0aGlzLnVybF9rZXl9IGNsYXNzTmFtZT1cInByb2R1Y3QtaXRlbS1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmRhdGEubmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByaWNlLWJveCBwcmljZS1maW5hbF9wcmljZVwiIGRhdGEtcm9sZT1cInByaWNlQm94XCIgZGF0YS1wcm9kdWN0LWlkPVwiMTExM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInByaWNlLWNvbnRhaW5lciBwcmljZS1maW5hbF9wcmljZSB0YXggd2VlZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cIm9sZC1wcmljZS0xMTEzLXdpZGdldC1wcm9kdWN0LWdyaWRcIiBkYXRhLXByaWNlLWFtb3VudD1cInt0aGlzLnByb3BzLmRhdGEucHJpY2V9XCIgZGF0YS1wcmljZS10eXBlPVwiZmluYWxQcmljZVwiIGNsYXNzTmFtZT1cInByaWNlLXdyYXBwZXIgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwcmljZVwiPiR7dGhpcy5wcm9wcy5kYXRhLnByaWNlfTwvc3Bhbj4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb2R1Y3QtaXRlbS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhY3Rpb25zLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJhY3Rpb24gdG9jYXJ0IHByaW1hcnlcIiBkYXRhLXBvc3Q9XCJ7JnF1b3Q7YWN0aW9uJnF1b3Q7OiZxdW90O2h0dHA6XFwvXFwvbTJncmFwaHFsLmNvbVxcL2luZGV4LnBocFxcL2NoZWNrb3V0XFwvY2FydFxcL2FkZFxcL3VlbmNcXC9hSFIwY0RvdkwyMHlaM0poY0doeGJDNWpiMjB2YVc1a1pYZ3VjR2h3TDNkdmJXVnVMbWgwYld3JTJDXFwvcHJvZHVjdFxcLzExMTNcXC8mcXVvdDssJnF1b3Q7ZGF0YSZxdW90Ozp7JnF1b3Q7cHJvZHVjdCZxdW90OzomcXVvdDsxMTEzJnF1b3Q7LCZxdW90O3VlbmMmcXVvdDs6JnF1b3Q7YUhSMGNEb3ZMMjB5WjNKaGNHaHhiQzVqYjIwdmFXNWtaWGd1Y0dod0wzZHZiV1Z1TG1oMGJXdywmcXVvdDt9fVwiIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cIkFkZCB0byBDYXJ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFkZCB0byBDYXJ0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWN0aW9ucy1zZWNvbmRhcnlcIiBkYXRhLXJvbGU9XCJhZGQtdG8tbGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBkYXRhLXBvc3Q9XCJ7JnF1b3Q7YWN0aW9uJnF1b3Q7OiZxdW90O2h0dHA6XFwvXFwvbTJncmFwaHFsLmNvbVxcL2luZGV4LnBocFxcL3dpc2hsaXN0XFwvaW5kZXhcXC9hZGRcXC8mcXVvdDssJnF1b3Q7ZGF0YSZxdW90Ozp7JnF1b3Q7cHJvZHVjdCZxdW90OzomcXVvdDsxMTEzJnF1b3Q7LCZxdW90O3VlbmMmcXVvdDs6JnF1b3Q7YUhSMGNEb3ZMMjB5WjNKaGNHaHhiQzVqYjIwdmFXNWtaWGd1Y0dod0wzZHZiV1Z1TG1oMGJXdywmcXVvdDt9fVwiIGNsYXNzTmFtZT1cImFjdGlvbiB0b3dpc2hsaXN0XCIgZGF0YS1hY3Rpb249XCJhZGQtdG8td2lzaGxpc3RcIiB0aXRsZT1cIkFkZCB0byBXaXNoIExpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFkZCB0byBXaXNoIExpc3Q8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJhY3Rpb24gdG9jb21wYXJlXCIgZGF0YS1wb3N0PVwieyZxdW90O2FjdGlvbiZxdW90OzomcXVvdDtodHRwOlxcL1xcL20yZ3JhcGhxbC5jb21cXC9pbmRleC5waHBcXC9jYXRhbG9nXFwvcHJvZHVjdF9jb21wYXJlXFwvYWRkXFwvJnF1b3Q7LCZxdW90O2RhdGEmcXVvdDs6eyZxdW90O3Byb2R1Y3QmcXVvdDs6JnF1b3Q7MTExMyZxdW90OywmcXVvdDt1ZW5jJnF1b3Q7OiZxdW90O2FIUjBjRG92TDIweVozSmhjR2h4YkM1amIyMHZhVzVrWlhndWNHaHdMM2R2YldWdUxtaDBiV3csJnF1b3Q7fX1cIiB0aXRsZT1cIkFkZCB0byBDb21wYXJlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BZGQgdG8gQ29tcGFyZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9jb21wb25lbnRzL01hZ2VudG9Qcm9kdWN0SXRlbS9pbmRleC5qcyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFEQTtBQURBO0FBREE7QUFPQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBREE7QUFLQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQURBO0FBREE7QUFPQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBREE7QUFEQTtBQUtBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFEQTtBQUpBO0FBTkE7QUFiQTtBQVJBO0FBREE7QUF5Q0E7QUF4REE7OyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///289\n"); + +/***/ }), +/* 290 */, +/* 291 */ +/*!******************************!*\ + !*** ./src/ApolloFactory.js ***! + \******************************/ +/*! exports provided: default */ +/*! exports used: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_apollo_client__ = __webpack_require__(/*! apollo-client */ 246);\n\n\nfunction ApolloFactory() {\n const logErrors = {\n applyAfterware({ response }, next) {\n if (!response.ok) {\n response.clone().text().then(bodyText => {\n console.error(`Network Error: ${response.status} (${response.statusText}) - ${bodyText}`);\n next();\n });\n } else {\n response.clone().json().then(({ errors }) => {\n if (errors) {\n console.error('GraphQL Errors:', errors.map(e => e.message));\n }\n next();\n });\n }\n }\n };\n\n const networkInterface = Object(__WEBPACK_IMPORTED_MODULE_0_apollo_client__[\"a\" /* createNetworkInterface */])({\n uri: 'http://m2graphql.com/graphql'\n });\n networkInterface.useAfter([logErrors]);\n\n console.log('apollo');\n const client = new __WEBPACK_IMPORTED_MODULE_0_apollo_client__[\"b\" /* default */]({\n connectToDevTools: true,\n networkInterface: networkInterface\n });\n return client;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ApolloFactory);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjkxLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9BcG9sbG9GYWN0b3J5LmpzP2FmMDQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFwb2xsb0NsaWVudCwgeyBjcmVhdGVOZXR3b3JrSW50ZXJmYWNlIH0gZnJvbSAnYXBvbGxvLWNsaWVudCc7XG5cbmZ1bmN0aW9uIEFwb2xsb0ZhY3RvcnkoKSB7XG4gICAgIGNvbnN0IGxvZ0Vycm9ycyA9IHtcbiAgICAgICAgYXBwbHlBZnRlcndhcmUoeyByZXNwb25zZSB9LCBuZXh0KSB7XG4gICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuY2xvbmUoKS50ZXh0KCkudGhlbihib2R5VGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYE5ldHdvcmsgRXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAoJHtyZXNwb25zZS5zdGF0dXNUZXh0fSkgLSAke2JvZHlUZXh0fWApO1xuICAgICAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmNsb25lKCkuanNvbigpLnRoZW4oKHsgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignR3JhcGhRTCBFcnJvcnM6JywgZXJyb3JzLm1hcChlID0+IGUubWVzc2FnZSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgbmV0d29ya0ludGVyZmFjZSA9IGNyZWF0ZU5ldHdvcmtJbnRlcmZhY2Uoe1xuICAgICAgICB1cmk6ICdodHRwOi8vbTJncmFwaHFsLmNvbS9ncmFwaHFsJyxcbiAgICB9KTtcbiAgICBuZXR3b3JrSW50ZXJmYWNlLnVzZUFmdGVyKFtsb2dFcnJvcnNdKTtcblxuICAgIGNvbnNvbGUubG9nKCdhcG9sbG8nKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQXBvbGxvQ2xpZW50KHtcbiAgICAgICAgY29ubmVjdFRvRGV2VG9vbHM6IHRydWUsXG4gICAgICAgIG5ldHdvcmtJbnRlcmZhY2U6IG5ldHdvcmtJbnRlcmZhY2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIGNsaWVudDsgXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwb2xsb0ZhY3Rvcnk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9BcG9sbG9GYWN0b3J5LmpzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZkE7QUFDQTtBQWlCQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///291\n"); + +/***/ }), +/* 292 */, +/* 293 */, +/* 294 */, +/* 295 */, +/* 296 */, +/* 297 */, +/* 298 */, +/* 299 */, +/* 300 */, +/* 301 */, +/* 302 */, +/* 303 */, +/* 304 */, +/* 305 */, +/* 306 */, +/* 307 */, +/* 308 */, +/* 309 */, +/* 310 */, +/* 311 */, +/* 312 */, +/* 313 */, +/* 314 */, +/* 315 */, +/* 316 */, +/* 317 */, +/* 318 */, +/* 319 */, +/* 320 */, +/* 321 */, +/* 322 */ +/*!*************************************!*\ + !*** ./src/components/App/index.js ***! + \*************************************/ +/*! exports provided: default */ +/*! exports used: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ 44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__MagentoProductList__ = __webpack_require__(/*! ../MagentoProductList */ 234);\n\n\n\n\nclass App extends __WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"] {\n render() {\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(\n 'div',\n { className: 'App' },\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1__MagentoProductList__[\"a\" /* default */], { registerGQL: this.props.registerGQL }),\n __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1__MagentoProductList__[\"a\" /* default */], { registerGQL: this.props.registerGQL })\n );\n }\n\n componentDidMount() {\n this.props.mounted();\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (App);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzIyLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3NyYy9jb21wb25lbnRzL0FwcC9pbmRleC5qcz85N2QzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBNYWdlbnRvUHJvZHVjdExpc3QgZnJvbSAnLi4vTWFnZW50b1Byb2R1Y3RMaXN0JztcblxuY2xhc3MgQXBwIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIkFwcFwiPlxuICAgICAgICA8TWFnZW50b1Byb2R1Y3RMaXN0IHJlZ2lzdGVyR1FMPXt0aGlzLnByb3BzLnJlZ2lzdGVyR1FMfSAvPlxuICAgICAgICA8TWFnZW50b1Byb2R1Y3RMaXN0IHJlZ2lzdGVyR1FMPXt0aGlzLnByb3BzLnJlZ2lzdGVyR1FMfSAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5wcm9wcy5tb3VudGVkKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBwXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9jb21wb25lbnRzL0FwcC9pbmRleC5qcyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBQ0E7QUFjQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///322\n"); + /***/ }) /******/ ]); \ No newline at end of file diff --git a/examples/react-product-webcomponent/public/placeholder.jpg b/examples/react-product-webcomponent/public/placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aeda35c364bd802bfa132d28e7479c6a10f875bc GIT binary patch literal 1032 zcmex=<NpH&0WUXCHwH!~28I+MWcYuZp@o5!1q6U3D?2L?bF#6rvT<^8aBy;PaPe|+ z0|6H=4-XFr^YaS|^7D&}iHV6z!T}>28ygoVmoP7{u$Um9pcq_&SjPVY41ydC?F{YA zjDieIf{e_9jQ@`?Br!080RsXsvoJAo2rw`)GP5wUf+QhQj7-dmMuLWgje)|(j)@zE zCMqq2Ng?zKLKP!K{@-HYVP*tc$SlZU&+r=|fy81rnv=Zy1!vX!*!|BBi1s|zo$pYB zkmg;owVF}#+K={MEYW%I-taSgHCwlxX~Wu&_FuS{&AJ*3Q^{1kTH<DGBd1?bc`f4! z*+X-de%aHQ?<SS``3c9lISaq-X*?k7R@A-u1^1yfsp)B~V1064UfN-7l~<>%S<^5> zZpBVpp)1^ny27X4?{CmzU=W%s@?P5h50g-L_r<jgAGn;>EKV<B>p1C|)$j$V-D@BB z1mnhtprSo%8g_YUyKHf&VwYPIGbQxjfj4}z9xLnh?kAM7_iE}&U1j9FnDuej2bPAt zyz><z;Ck0dxVNxxn$&f*aaO6S{n7`l`i12`*cKRvoo#%g<t3keKuTHFbQSZ>q#p^% zOkd1u8WR{87`1-rIh<qLktio1bM5d3W5&A(O$H_x4{xxZrr*Y9pzoZ1LJVk;(E6q) zJP)$l1RpY<&9P=SkiGO>yuKle*)->dFte|WHS<pT8E$oQM`ZS5W&^2*Efo&M(R>Ha zu$SyTdjEk`!`WyvmIIgF`3}5`*e4-z;G(Ok_^QjX4J&{iV6?o{vwrg@_QEJveQpPf zwe1OM%)8<qz5l@LkhXR<Q$ptA_Jp!)E7xoADS8?1-p$ki)B^+-E5$WlY-cw1wUwPA zcPReMls$}#ue8m2ef@;wbNyGojgNeRiDlWGnB>Lx3#=hpfFxfk$H~|-7Im+{UAveP nf<%^T@77m{Gw3OcZM*<i#K6Ej-%sj4LsSf31Ck(u`Tr&Wvy?Os literal 0 HcmV?d00001 diff --git a/examples/react-product-webcomponent/src/ApolloFactory.js b/examples/react-product-webcomponent/src/ApolloFactory.js new file mode 100644 index 0000000..49f14a9 --- /dev/null +++ b/examples/react-product-webcomponent/src/ApolloFactory.js @@ -0,0 +1,35 @@ +import ApolloClient, { createNetworkInterface } from 'apollo-client'; + +function ApolloFactory() { + const logErrors = { + applyAfterware({ response }, next) { + if (!response.ok) { + response.clone().text().then(bodyText => { + console.error(`Network Error: ${response.status} (${response.statusText}) - ${bodyText}`); + next(); + }); + } else { + response.clone().json().then(({ errors }) => { + if (errors) { + console.error('GraphQL Errors:', errors.map(e => e.message)); + } + next(); + }); + } + }, + }; + + const networkInterface = createNetworkInterface({ + uri: 'http://m2graphql.com/graphql', + }); + networkInterface.useAfter([logErrors]); + + console.log('apollo'); + const client = new ApolloClient({ + connectToDevTools: true, + networkInterface: networkInterface, + }); + return client; +} + +export default ApolloFactory; \ No newline at end of file diff --git a/examples/react-product-webcomponent/src/MagentoProduct.js b/examples/react-product-webcomponent/src/MagentoProduct.js deleted file mode 100644 index c9ee0ce..0000000 --- a/examples/react-product-webcomponent/src/MagentoProduct.js +++ /dev/null @@ -1,95 +0,0 @@ -import React, { Component } from 'react'; -import './MagentoProduct.css'; -import ApolloClient, { createNetworkInterface } from 'apollo-client'; -import gql from 'graphql-tag'; - -class MagentoProduct extends React.Component { - constructor(props) { - super(props); - - const logErrors = { - applyAfterware({ response }, next) { - if (!response.ok) { - response.clone().text().then(bodyText => { - console.error(`Network Error: ${response.status} (${response.statusText}) - ${bodyText}`); - next(); - }); - } else { - response.clone().json().then(({ errors }) => { - if (errors) { - console.error('GraphQL Errors:', errors.map(e => e.message)); - } - next(); - }); - } - }, - }; - - const networkInterface = createNetworkInterface({ - uri: 'http://m2graphql.com/graphql', - }); - networkInterface.useAfter([logErrors]); - - console.log('apollo'); - const client = new ApolloClient({ - connectToDevTools: true, - networkInterface: networkInterface, - }); - - - var result = client.query({ - query: gql` - { MagentoCatalogProduct(sku: "24-MB01"){ - id, name, price, media_gallery_entries { - file - }, custom_attributes { - attribute_code, - } - }, - MagentoStoreStoreConfigs(storeCodes: "default") { - base_currency_code, base_url - } - } - `}).then(result => { - console.log(result.data); - this.setState(result.data); - var state = { data: result.data } - state.imgUrl = result.data.MagentoStoreStoreConfigs[0].base_url + '/pub/media/catalog/product' + - result.data.MagentoCatalogProduct.media_gallery_entries[0].file - this.setState(state) - console.log(state); - }).catch(result => { - console.log(result) - }) - - this.state = { - imgUrl: "placeholder.jpg", - data: { - MagentoCatalogProduct: { - name: "Loading", price: 0, media_gallery_entries: { - file: "test.jpg" - } - }, - MagentoStoreStoreConfigs: [{ base_currency_code: "USD", "base_url": "none" }] - } - } - } - - render() { - return ( - <div className="mage-product"> - <div className="mage-product-image"> - <img src={this.state.imgUrl} className="App-logo" alt="logo" /> - <h2>{this.state.data.MagentoCatalogProduct.name}</h2> - </div> - <div className="mage-product-description"> - <div className="mage-product-price"> - {this.state.data.MagentoCatalogProduct.price} {this.state.data.MagentoStoreStoreConfigs[0].base_currency_code} - </div> - </div> - </div> - ); - } -} - -export default MagentoProduct diff --git a/examples/react-product-webcomponent/src/MagentoProduct.test.js b/examples/react-product-webcomponent/src/MagentoProduct.test.js deleted file mode 100644 index 3a769a9..0000000 --- a/examples/react-product-webcomponent/src/MagentoProduct.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './MagentoProduct'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(<MagentoProduct />, div); -}); \ No newline at end of file diff --git a/examples/react-product-webcomponent/src/components/App/index.js b/examples/react-product-webcomponent/src/components/App/index.js new file mode 100644 index 0000000..eabb3a1 --- /dev/null +++ b/examples/react-product-webcomponent/src/components/App/index.js @@ -0,0 +1,20 @@ +import React, { Component } from 'react'; + +import MagentoProductList from '../MagentoProductList'; + +class App extends Component { + render() { + return ( + <div className="App"> + <MagentoProductList registerGQL={this.props.registerGQL} /> + <MagentoProductList registerGQL={this.props.registerGQL} /> + </div> + ); + } + + componentDidMount() { + this.props.mounted(); + } +} + +export default App; \ No newline at end of file diff --git a/examples/react-product-webcomponent/src/components/MagentoProductItem/ProductItem.css b/examples/react-product-webcomponent/src/components/MagentoProductItem/ProductItem.css new file mode 100644 index 0000000..e69de29 diff --git a/examples/react-product-webcomponent/src/components/MagentoProductItem/index.js b/examples/react-product-webcomponent/src/components/MagentoProductItem/index.js new file mode 100644 index 0000000..f858b38 --- /dev/null +++ b/examples/react-product-webcomponent/src/components/MagentoProductItem/index.js @@ -0,0 +1,60 @@ +import React, { Component } from 'react'; + +export default class MagentoProductItem extends React.Component { + + constructor(props) { + super(props); + console.log(props); + this.thumbnail = 'http://m2graphql.com/pub/static/frontend/Magento/luma/en_US/Magento_Catalog/images/product/placeholder/small_image.jpg'; + this.url_key = "http://m2graphql.com/placeholder.html" + } + + render() { + if (this.props.data.hasOwnProperty('custom_attributes')) { + this.thumbnail = "http://m2graphql.com/pub/media/catalog/product/" + this.props.data.custom_attributes[0]['value']; + this.url_key = "http://m2graphql.com/index.php/" + this.props.data.custom_attributes[1]['value'] + '.html' + } + return ( + <li className="product-item"> + <div className="product-item-info"> + <a href={this.url_key} className="product-item-photo"> + <span className="product-image-container" style={{width: "240px"}}> + <span className="product-image-wrapper" style={{paddingBottom: "125%"}}> + <img className="product-image-photo" src={this.thumbnail} width="240" height="300" alt="Selene Yoga Hoodie" /> + </span> + </span> + </a> + <div className="product-item-details"> + <strong className="product-item-name"> + <a title="{this.props.data.name}" href={this.url_key} className="product-item-link"> + {this.props.data.name} + </a> + </strong> + <div className="price-box price-final_price" data-role="priceBox" data-product-id="1113"> + <span className="price-container price-final_price tax weee"> + <span id="old-price-1113-widget-product-grid" data-price-amount="{this.props.data.price}" data-price-type="finalPrice" className="price-wrapper "> + <span className="price">${this.props.data.price}</span> + </span> + </span> + </div> + <div className="product-item-actions"> + <div className="actions-primary"> + <button className="action tocart primary" data-post="{"action":"http:\/\/m2graphql.com\/index.php\/checkout\/cart\/add\/uenc\/aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw%2C\/product\/1113\/","data":{"product":"1113","uenc":"aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw,"}}" type="button" title="Add to Cart"> + <span>Add to Cart</span> + </button> + </div> + <div className="actions-secondary" data-role="add-to-links"> + <a href="#" data-post="{"action":"http:\/\/m2graphql.com\/index.php\/wishlist\/index\/add\/","data":{"product":"1113","uenc":"aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw,"}}" className="action towishlist" data-action="add-to-wishlist" title="Add to Wish List"> + <span>Add to Wish List</span> + </a> + <a href="#" className="action tocompare" data-post="{"action":"http:\/\/m2graphql.com\/index.php\/catalog\/product_compare\/add\/","data":{"product":"1113","uenc":"aHR0cDovL20yZ3JhcGhxbC5jb20vaW5kZXgucGhwL3dvbWVuLmh0bWw,"}}" title="Add to Compare"> + <span>Add to Compare</span> + </a> + </div> + </div> + </div> + </div> + </li> + ); + } +} \ No newline at end of file diff --git a/examples/react-product-webcomponent/src/MagentoProduct.css b/examples/react-product-webcomponent/src/components/MagentoProductList/ProductList.css similarity index 99% rename from examples/react-product-webcomponent/src/MagentoProduct.css rename to examples/react-product-webcomponent/src/components/MagentoProductList/ProductList.css index 6acfbd5..c770240 100644 --- a/examples/react-product-webcomponent/src/MagentoProduct.css +++ b/examples/react-product-webcomponent/src/components/MagentoProductList/ProductList.css @@ -3090,28 +3090,28 @@ fieldset[disabled] .form.send.friend .action.remove { @font-face { font-family: 'Open Sans'; - src: url('../fonts/opensans/light/opensans-300.woff2') format('woff2'); + src: url('../../../fonts/opensans/light/opensans-300.woff2') format('woff2'); font-weight: 300; font-style: normal } @font-face { font-family: 'Open Sans'; - src: url('../fonts/opensans/regular/opensans-400.woff2') format('woff2'); + src: url('../../../fonts/opensans/regular/opensans-400.woff2') format('woff2'); font-weight: 400; font-style: normal } @font-face { font-family: 'Open Sans'; - src: url('../fonts/opensans/semibold/opensans-600.woff2') format('woff2'); + src: url('../../../fonts/opensans/semibold/opensans-600.woff2') format('woff2'); font-weight: 600; font-style: normal } @font-face { font-family: 'Open Sans'; - src: url('../fonts/opensans/bold/opensans-700.woff2') format('woff2'); + src: url('../../../fonts/opensans/bold/opensans-700.woff2') format('woff2'); font-weight: 700; font-style: normal } @@ -3934,7 +3934,7 @@ select { -moz-appearance: none; -ms-appearance: none; appearance: none; - background: #fff url('../images/select-bg.svg') no-repeat 100% 45%; + background: #fff url('../../../images/select-bg.svg') no-repeat 100% 45%; background-size: 30px 60px; border: 1px solid #ccc; height: 32px; @@ -4132,7 +4132,7 @@ fieldset[disabled] ._has-datepicker~.ui-datepicker-trigger { @font-face { font-family: 'luma-icons'; - src: url('../fonts/Luma-Icons.woff2') format('woff2'); + src: url('../../../fonts/Luma-Icons.woff2') format('woff2'); font-weight: normal; font-style: normal } diff --git a/examples/react-product-webcomponent/src/components/MagentoProductList/index.js b/examples/react-product-webcomponent/src/components/MagentoProductList/index.js new file mode 100644 index 0000000..5579a4d --- /dev/null +++ b/examples/react-product-webcomponent/src/components/MagentoProductList/index.js @@ -0,0 +1,105 @@ +import React, { Component } from 'react'; +import './ProductList.css'; +import gql from 'graphql-tag'; +//import { MagentoProductItem } from 'react-router-dom'; +import MagentoProductItem from '../MagentoProductItem'; + +class MagentoProductList extends React.Component { + constructor(props) { + super(props); + console.log(props); + this.props.registerGQL({ + query: this.getGQL(), + callback: this.dataLoaded.bind(this) + }) + + this.state = { + ProductItems: [ + { + imgUrl: "placeholder.jpg", + data: { + MagentoCatalogProduct: { + name: "Loading", price: 0, media_gallery_entries: { + file: "test.jpg" + } + }, + MagentoStoreStoreConfigs: [{ base_currency_code: "USD", "base_url": "none" }] + } + } + ] + } + } + + dataLoaded(dataPromise) { + return new Promise((resolve, reject) => { + dataPromise.then(result => { + try { + console.log(result.data); + if (result.data.hasOwnProperty('MagentoCatalogCategoryProductLinks')) { + const productSkus = [] + result.data.MagentoCatalogCategoryProductLinks.map(categoryLink => { + productSkus.push(categoryLink.sku); + }) + + resolve({ + query: `MagentoCatalogProductSearchResults(searchCriteria:{ + filter_groups: { + filters: { + field: "sku", + value: "` + productSkus.join(',') + `", + condition_type: "in" + } + }, + page_size:10, + current_page: 0 + }){ + items{id, name, price, custom_attributes( + filter:["thumbnail", "url_key"] + ){attribute_code, value}} + }`, + callback: this.dataLoaded.bind(this) + }) + } else if (result.data.hasOwnProperty('MagentoCatalogProductSearchResults')) { + var state = {} + state['ProductItems'] = result.data.MagentoCatalogProductSearchResults.items; + this.setState(state) + console.log(this.state) + resolve(true); + } else { + reject('Response does not have needed data') + } + } catch (e) { + reject(e) + } + }).catch(console.log) + }) + } + + getGQL() { + return `MagentoCatalogCategoryProductLinks(categoryId: 2) { + sku, position + }` + } + + render() { + var items = [] + + this.state.ProductItems.map(productItem => { + items.push(<MagentoProductItem data={productItem} />); + }) + + return ( + <div className="block widget block-products-list grid"> + <div className="block-content"> + <div className="products-grid grid"> + <ol className="product-items widget-product-grid"> + {items} + </ol> + </div> + </div> + </div> + ); + } +} + +export default MagentoProductList diff --git a/examples/react-product-webcomponent/src/index.js b/examples/react-product-webcomponent/src/index.js index 7bbd9b4..544b8a6 100644 --- a/examples/react-product-webcomponent/src/index.js +++ b/examples/react-product-webcomponent/src/index.js @@ -1,8 +1,53 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import MagentoProduct from './MagentoProduct.js'; +import App from './components/App'; +import ApolloFactory from './ApolloFactory' +import gql from 'graphql-tag'; + + +var queries = []; +var callbacks = []; + +function registerGQL(gqlSnippet) { + queries.push(gqlSnippet.query) + callbacks.push(gqlSnippet.callback) +} + +function mounted() { + const queriesConcat = '{ ' + queries.join(',') + ' }'; + const query = { + query: gql(queriesConcat) + } + + const client = ApolloFactory(); + const promise = client.query(query); + + const callbackPromises = []; + callbacks.map(callback => { + callbackPromises.push(callback(promise)) + }) + callbacks = [] + queries = [] + + Promise.all( + callbackPromises + ).then(results => { + var toLoad = false; + results.map(result => { + if (result !== true) { + registerGQL(result) + toLoad = true; + } + }) + if (toLoad) { + mounted() + } + }).catch(console.log) +} ReactDOM.render( - <MagentoProduct />, + <div> + <App registerGQL={registerGQL} mounted={mounted} /> + </div>, document.getElementById('maincontent') ); diff --git a/npm-debug.log b/npm-debug.log new file mode 100644 index 0000000..509c2f0 --- /dev/null +++ b/npm-debug.log @@ -0,0 +1,23 @@ +0 info it worked if it ends with ok +1 verbose cli [ '/opt/local/bin/node', '/opt/local/bin/npm', 'run', 'dev' ] +2 info using npm@2.15.11 +3 info using node@v4.6.1 +4 verbose stack Error: missing script: dev +4 verbose stack at run (/opt/local/lib/node_modules/npm/lib/run-script.js:142:19) +4 verbose stack at /opt/local/lib/node_modules/npm/lib/run-script.js:58:5 +4 verbose stack at /opt/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:356:5 +4 verbose stack at checkBinReferences_ (/opt/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:320:45) +4 verbose stack at final (/opt/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:354:3) +4 verbose stack at then (/opt/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:124:5) +4 verbose stack at ReadFileContext.<anonymous> (/opt/local/lib/node_modules/npm/node_modules/read-package-json/read-json.js:295:20) +4 verbose stack at ReadFileContext.callback (/opt/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:78:16) +4 verbose stack at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:303:13) +5 verbose cwd /Users/etulika/Projects/php/m2graphql +6 error Darwin 15.5.0 +7 error argv "/opt/local/bin/node" "/opt/local/bin/npm" "run" "dev" +8 error node v4.6.1 +9 error npm v2.15.11 +10 error missing script: dev +11 error If you need help, you may report this error at: +11 error <https://github.com/npm/npm/issues> +12 verbose exit [ 1, true ]