@pinerohit11/testwidget 0.1.29 → 0.1.31
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.cjs +15 -1
- package/dist/index.css +10 -1
- package/dist/index.js +15 -1
- package/package.json +2 -2
- package/.next/app-build-manifest.json +0 -16
- package/.next/build-manifest.json +0 -20
- package/.next/cache/.rscinfo +0 -1
- package/.next/cache/webpack/client-development/0.pack.gz +0 -0
- package/.next/cache/webpack/client-development/1.pack.gz +0 -0
- package/.next/cache/webpack/client-development/10.pack.gz +0 -0
- package/.next/cache/webpack/client-development/11.pack.gz +0 -0
- package/.next/cache/webpack/client-development/12.pack.gz +0 -0
- package/.next/cache/webpack/client-development/13.pack.gz +0 -0
- package/.next/cache/webpack/client-development/14.pack.gz +0 -0
- package/.next/cache/webpack/client-development/15.pack.gz +0 -0
- package/.next/cache/webpack/client-development/16.pack.gz +0 -0
- package/.next/cache/webpack/client-development/17.pack.gz +0 -0
- package/.next/cache/webpack/client-development/18.pack.gz +0 -0
- package/.next/cache/webpack/client-development/19.pack.gz +0 -0
- package/.next/cache/webpack/client-development/2.pack.gz +0 -0
- package/.next/cache/webpack/client-development/3.pack.gz +0 -0
- package/.next/cache/webpack/client-development/4.pack.gz +0 -0
- package/.next/cache/webpack/client-development/5.pack.gz +0 -0
- package/.next/cache/webpack/client-development/6.pack.gz +0 -0
- package/.next/cache/webpack/client-development/7.pack.gz +0 -0
- package/.next/cache/webpack/client-development/8.pack.gz +0 -0
- package/.next/cache/webpack/client-development/9.pack.gz +0 -0
- package/.next/cache/webpack/client-development/index.pack.gz +0 -0
- package/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
- package/.next/cache/webpack/client-development-fallback/0.pack.gz +0 -0
- package/.next/cache/webpack/client-development-fallback/1.pack.gz +0 -0
- package/.next/cache/webpack/client-development-fallback/index.pack.gz +0 -0
- package/.next/cache/webpack/client-development-fallback/index.pack.gz.old +0 -0
- package/.next/cache/webpack/server-development/0.pack.gz +0 -0
- package/.next/cache/webpack/server-development/1.pack.gz +0 -0
- package/.next/cache/webpack/server-development/10.pack.gz +0 -0
- package/.next/cache/webpack/server-development/11.pack.gz +0 -0
- package/.next/cache/webpack/server-development/12.pack.gz +0 -0
- package/.next/cache/webpack/server-development/13.pack.gz +0 -0
- package/.next/cache/webpack/server-development/14.pack.gz +0 -0
- package/.next/cache/webpack/server-development/15.pack.gz +0 -0
- package/.next/cache/webpack/server-development/2.pack.gz +0 -0
- package/.next/cache/webpack/server-development/3.pack.gz +0 -0
- package/.next/cache/webpack/server-development/4.pack.gz +0 -0
- package/.next/cache/webpack/server-development/5.pack.gz +0 -0
- package/.next/cache/webpack/server-development/6.pack.gz +0 -0
- package/.next/cache/webpack/server-development/7.pack.gz +0 -0
- package/.next/cache/webpack/server-development/8.pack.gz +0 -0
- package/.next/cache/webpack/server-development/9.pack.gz +0 -0
- package/.next/cache/webpack/server-development/index.pack.gz +0 -0
- package/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
- package/.next/package.json +0 -1
- package/.next/react-loadable-manifest.json +0 -1
- package/.next/server/app/favicon.ico/route.js +0 -86
- package/.next/server/app/page.js +0 -417
- package/.next/server/app/page_client-reference-manifest.js +0 -1
- package/.next/server/app-paths-manifest.json +0 -4
- package/.next/server/interception-route-rewrite-manifest.js +0 -1
- package/.next/server/middleware-build-manifest.js +0 -22
- package/.next/server/middleware-manifest.json +0 -6
- package/.next/server/middleware-react-loadable-manifest.js +0 -1
- package/.next/server/next-font-manifest.js +0 -1
- package/.next/server/next-font-manifest.json +0 -1
- package/.next/server/pages-manifest.json +0 -1
- package/.next/server/server-reference-manifest.js +0 -1
- package/.next/server/server-reference-manifest.json +0 -5
- package/.next/server/vendor-chunks/@babel.js +0 -45
- package/.next/server/vendor-chunks/@restart.js +0 -275
- package/.next/server/vendor-chunks/@swc.js +0 -55
- package/.next/server/vendor-chunks/asynckit.js +0 -114
- package/.next/server/vendor-chunks/axios.js +0 -555
- package/.next/server/vendor-chunks/bootstrap.js +0 -35
- package/.next/server/vendor-chunks/classnames.js +0 -24
- package/.next/server/vendor-chunks/combined-stream.js +0 -24
- package/.next/server/vendor-chunks/debug.js +0 -54
- package/.next/server/vendor-chunks/delayed-stream.js +0 -24
- package/.next/server/vendor-chunks/dom-helpers.js +0 -215
- package/.next/server/vendor-chunks/follow-redirects.js +0 -34
- package/.next/server/vendor-chunks/form-data.js +0 -34
- package/.next/server/vendor-chunks/has-flag.js +0 -25
- package/.next/server/vendor-chunks/mime-db.js +0 -35
- package/.next/server/vendor-chunks/mime-types.js +0 -25
- package/.next/server/vendor-chunks/ms.js +0 -24
- package/.next/server/vendor-chunks/next.js +0 -3185
- package/.next/server/vendor-chunks/object-assign.js +0 -25
- package/.next/server/vendor-chunks/prop-types.js +0 -67
- package/.next/server/vendor-chunks/proxy-from-env.js +0 -25
- package/.next/server/vendor-chunks/react-bootstrap.js +0 -195
- package/.next/server/vendor-chunks/react-is.js +0 -35
- package/.next/server/vendor-chunks/react-transition-group.js +0 -65
- package/.next/server/vendor-chunks/supports-color.js +0 -25
- package/.next/server/webpack-runtime.js +0 -220
- package/.next/static/chunks/app/layout.js +0 -156
- package/.next/static/chunks/app/page.js +0 -1465
- package/.next/static/chunks/app-pages-internals.js +0 -193
- package/.next/static/chunks/main-app.js +0 -2398
- package/.next/static/chunks/polyfills.js +0 -1
- package/.next/static/chunks/webpack.js +0 -1411
- package/.next/static/css/app/layout.css +0 -26
- package/.next/static/css/app/page.css +0 -699
- package/.next/static/development/_buildManifest.js +0 -1
- package/.next/static/development/_ssgManifest.js +0 -1
- package/.next/static/media/4473ecc91f70f139-s.p.woff +0 -0
- package/.next/static/media/463dafcda517f24f-s.p.woff +0 -0
- package/.next/static/webpack/02da99e3a0af6a36.webpack.hot-update.json +0 -1
- package/.next/static/webpack/044cdadb3b0d6bb3.webpack.hot-update.json +0 -1
- package/.next/static/webpack/633457081244afec._.hot-update.json +0 -1
- package/.next/static/webpack/app/layout.02da99e3a0af6a36.hot-update.js +0 -31
- package/.next/static/webpack/app/layout.044cdadb3b0d6bb3.hot-update.js +0 -31
- package/.next/static/webpack/webpack.02da99e3a0af6a36.hot-update.js +0 -18
- package/.next/static/webpack/webpack.044cdadb3b0d6bb3.hot-update.js +0 -18
- package/.next/trace +0 -7
- package/.next/types/app/layout.ts +0 -84
- package/.next/types/app/page.ts +0 -84
- package/.next/types/cache-life.d.ts +0 -139
- package/.next/types/package.json +0 -1
@@ -1,156 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* ATTENTION: An "eval-source-map" devtool has been used.
|
3
|
-
* This devtool is neither made for production nor for readable output files.
|
4
|
-
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
5
|
-
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
6
|
-
* or disable the default devtool with "devtool: false".
|
7
|
-
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
8
|
-
*/
|
9
|
-
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/layout"],{
|
10
|
-
|
11
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-sans%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistSans%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistMonoVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-mono%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistMono%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CBootstrapclient.ts%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CDatascript.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!":
|
12
|
-
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
13
|
-
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-sans%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistSans%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistMonoVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-mono%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistMono%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CBootstrapclient.ts%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CDatascript.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false! ***!
|
14
|
-
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
15
|
-
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
16
|
-
|
17
|
-
eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/font/local/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/GeistVF.woff\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"geistSans\"} */ \"(app-pages-browser)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"src\\\\\\\\app\\\\\\\\layout.tsx\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":\\\"./fonts/GeistVF.woff\\\",\\\"variable\\\":\\\"--font-geist-sans\\\",\\\"weight\\\":\\\"100 900\\\"}],\\\"variableName\\\":\\\"geistSans\\\"}\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/font/local/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/GeistMonoVF.woff\",\"variable\":\"--font-geist-mono\",\"weight\":\"100 900\"}],\"variableName\":\"geistMono\"} */ \"(app-pages-browser)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"src\\\\\\\\app\\\\\\\\layout.tsx\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":\\\"./fonts/GeistMonoVF.woff\\\",\\\"variable\\\":\\\"--font-geist-mono\\\",\\\"weight\\\":\\\"100 900\\\"}],\\\"variableName\\\":\\\"geistMono\\\"}\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/components/Bootstrapclient.ts */ \"(app-pages-browser)/./src/app/components/Bootstrapclient.ts\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/components/Datascript.tsx */ \"(app-pages-browser)/./src/app/components/Datascript.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyQyUzQSU1QyU1Q1VzZXJzJTVDJTVDUGluZXN1Y2NlZWQlNUMlNUNEZXNrdG9wJTVDJTVDV29ya1NwYWNlJTVDJTVDdGVzdHdpZGdldCU1QyU1Q25vZGVfbW9kdWxlcyU1QyU1Q25leHQlNUMlNUNmb250JTVDJTVDbG9jYWwlNUMlNUN0YXJnZXQuY3NzJTNGJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMnNyYyU1QyU1QyU1QyU1Q2FwcCU1QyU1QyU1QyU1Q2xheW91dC50c3glNUMlMjIlMkMlNUMlMjJpbXBvcnQlNUMlMjIlM0ElNUMlMjIlNUMlMjIlMkMlNUMlMjJhcmd1bWVudHMlNUMlMjIlM0ElNUIlN0IlNUMlMjJzcmMlNUMlMjIlM0ElNUMlMjIuJTJGZm9udHMlMkZHZWlzdFZGLndvZmYlNUMlMjIlMkMlNUMlMjJ2YXJpYWJsZSU1QyUyMiUzQSU1QyUyMi0tZm9udC1nZWlzdC1zYW5zJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyMTAwJTIwOTAwJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIyZ2Vpc3RTYW5zJTVDJTIyJTdEJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1BpbmVzdWNjZWVkJTVDJTVDRGVza3RvcCU1QyU1Q1dvcmtTcGFjZSU1QyU1Q3Rlc3R3aWRnZXQlNUMlNUNub2RlX21vZHVsZXMlNUMlNUNuZXh0JTVDJTVDZm9udCU1QyU1Q2xvY2FsJTVDJTVDdGFyZ2V0LmNzcyUzRiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjJzcmMlNUMlNUMlNUMlNUNhcHAlNUMlNUMlNUMlNUNsYXlvdXQudHN4JTVDJTIyJTJDJTVDJTIyaW1wb3J0JTVDJTIyJTNBJTVDJTIyJTVDJTIyJTJDJTVDJTIyYXJndW1lbnRzJTVDJTIyJTNBJTVCJTdCJTVDJTIyc3JjJTVDJTIyJTNBJTVDJTIyLiUyRmZvbnRzJTJGR2Vpc3RNb25vVkYud29mZiU1QyUyMiUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LWdlaXN0LW1vbm8lNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjIxMDAlMjA5MDAlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZU5hbWUlNUMlMjIlM0ElNUMlMjJnZWlzdE1vbm8lNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyQyUzQSU1QyU1Q1VzZXJzJTVDJTVDUGluZXN1Y2NlZWQlNUMlNUNEZXNrdG9wJTVDJTVDV29ya1NwYWNlJTVDJTVDdGVzdHdpZGdldCU1QyU1Q3NyYyU1QyU1Q2FwcCU1QyU1Q2NvbXBvbmVudHMlNUMlNUNCb290c3RyYXBjbGllbnQudHMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlMjJkZWZhdWx0JTIyJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1BpbmVzdWNjZWVkJTVDJTVDRGVza3RvcCU1QyU1Q1dvcmtTcGFjZSU1QyU1Q3Rlc3R3aWRnZXQlNUMlNUNzcmMlNUMlNUNhcHAlNUMlNUNjb21wb25lbnRzJTVDJTVDRGF0YXNjcmlwdC50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlMjJkZWZhdWx0JTIyJTVEJTdEJnNlcnZlcj1mYWxzZSEiLCJtYXBwaW5ncyI6IkFBQUEsNGpCQUE0VTtBQUM1VTtBQUNBLG9rQkFBZ1Y7QUFDaFY7QUFDQSx3TUFBa0s7QUFDbEs7QUFDQSxnTUFBOEoiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkM6XFxcXFVzZXJzXFxcXFBpbmVzdWNjZWVkXFxcXERlc2t0b3BcXFxcV29ya1NwYWNlXFxcXHRlc3R3aWRnZXRcXFxcbm9kZV9tb2R1bGVzXFxcXG5leHRcXFxcZm9udFxcXFxsb2NhbFxcXFx0YXJnZXQuY3NzP3tcXFwicGF0aFxcXCI6XFxcInNyY1xcXFxcXFxcYXBwXFxcXFxcXFxsYXlvdXQudHN4XFxcIixcXFwiaW1wb3J0XFxcIjpcXFwiXFxcIixcXFwiYXJndW1lbnRzXFxcIjpbe1xcXCJzcmNcXFwiOlxcXCIuL2ZvbnRzL0dlaXN0VkYud29mZlxcXCIsXFxcInZhcmlhYmxlXFxcIjpcXFwiLS1mb250LWdlaXN0LXNhbnNcXFwiLFxcXCJ3ZWlnaHRcXFwiOlxcXCIxMDAgOTAwXFxcIn1dLFxcXCJ2YXJpYWJsZU5hbWVcXFwiOlxcXCJnZWlzdFNhbnNcXFwifVwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiQzpcXFxcVXNlcnNcXFxcUGluZXN1Y2NlZWRcXFxcRGVza3RvcFxcXFxXb3JrU3BhY2VcXFxcdGVzdHdpZGdldFxcXFxub2RlX21vZHVsZXNcXFxcbmV4dFxcXFxmb250XFxcXGxvY2FsXFxcXHRhcmdldC5jc3M/e1xcXCJwYXRoXFxcIjpcXFwic3JjXFxcXFxcXFxhcHBcXFxcXFxcXGxheW91dC50c3hcXFwiLFxcXCJpbXBvcnRcXFwiOlxcXCJcXFwiLFxcXCJhcmd1bWVudHNcXFwiOlt7XFxcInNyY1xcXCI6XFxcIi4vZm9udHMvR2Vpc3RNb25vVkYud29mZlxcXCIsXFxcInZhcmlhYmxlXFxcIjpcXFwiLS1mb250LWdlaXN0LW1vbm9cXFwiLFxcXCJ3ZWlnaHRcXFwiOlxcXCIxMDAgOTAwXFxcIn1dLFxcXCJ2YXJpYWJsZU5hbWVcXFwiOlxcXCJnZWlzdE1vbm9cXFwifVwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIkM6XFxcXFVzZXJzXFxcXFBpbmVzdWNjZWVkXFxcXERlc2t0b3BcXFxcV29ya1NwYWNlXFxcXHRlc3R3aWRnZXRcXFxcc3JjXFxcXGFwcFxcXFxjb21wb25lbnRzXFxcXEJvb3RzdHJhcGNsaWVudC50c1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIkM6XFxcXFVzZXJzXFxcXFBpbmVzdWNjZWVkXFxcXERlc2t0b3BcXFxcV29ya1NwYWNlXFxcXHRlc3R3aWRnZXRcXFxcc3JjXFxcXGFwcFxcXFxjb21wb25lbnRzXFxcXERhdGFzY3JpcHQudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-sans%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistSans%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistMonoVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-mono%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistMono%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CBootstrapclient.ts%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CDatascript.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!\n"));
|
18
|
-
|
19
|
-
/***/ }),
|
20
|
-
|
21
|
-
/***/ "(app-pages-browser)/./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js":
|
22
|
-
/*!****************************************************************!*\
|
23
|
-
!*** ./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js ***!
|
24
|
-
\****************************************************************/
|
25
|
-
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
26
|
-
|
27
|
-
eval(__webpack_require__.ts("/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function(t,e){ true?module.exports=e():0}(this,(function(){\"use strict\";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i=\"transitionend\",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\\s\"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||\"object\"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:\"string\"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e=\"visible\"===getComputedStyle(t).getPropertyValue(\"visibility\"),i=t.closest(\"details:not([open])\");if(!i)return e;if(i!==t){const e=t.closest(\"summary\");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains(\"disabled\")||(void 0!==t.disabled?t.disabled:t.hasAttribute(\"disabled\")&&\"false\"!==t.getAttribute(\"disabled\")),c=t=>{if(!document.documentElement.attachShadow)return null;if(\"function\"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute(\"data-bs-no-jquery\")?window.jQuery:null,f=[],p=()=>\"rtl\"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},\"loading\"===document.readyState?(f.length||document.addEventListener(\"DOMContentLoaded\",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>\"function\"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(\",\")[0],i=i.split(\",\")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\\..*)\\.|.*/,y=/\\..*/,w=/::\\d+$/,A={};let E=1;const T={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},C=new Set([\"click\",\"dblclick\",\"mouseup\",\"mousedown\",\"contextmenu\",\"mousewheel\",\"DOMMouseScroll\",\"mouseover\",\"mouseout\",\"mousemove\",\"selectstart\",\"selectend\",\"keydown\",\"keypress\",\"keyup\",\"orientationchange\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\",\"pointerdown\",\"pointermove\",\"pointerup\",\"pointerleave\",\"pointercancel\",\"gesturestart\",\"gesturechange\",\"gestureend\",\"focus\",\"blur\",\"change\",\"reset\",\"select\",\"submit\",\"focusin\",\"focusout\",\"load\",\"unload\",\"beforeunload\",\"resize\",\"move\",\"DOMContentLoaded\",\"readystatechange\",\"error\",\"abort\",\"scroll\"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n=\"string\"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if(\"string\"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,\"\")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,\"\"),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if(\"string\"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(\".\");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,\"\");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if(\"string\"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function j(t){if(\"true\"===t)return!0;if(\"false\"===t)return!1;if(t===Number(t).toString())return Number(t);if(\"\"===t||\"null\"===t)return null;if(\"string\"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function M(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${M(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${M(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith(\"bs\")&&!t.startsWith(\"bsConfig\")));for(const n of i){let i=n.replace(/^bs/,\"\");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=j(t.dataset[n])}return e},getDataAttribute:(t,e)=>j(t.getAttribute(`data-bs-${M(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method \"NAME\", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,\"config\"):{};return{...this.constructor.Default,...\"object\"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},...\"object\"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?\"element\":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${n}\" provided type \"${r}\" but expected type \"${s}\".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,\"object\"==typeof e?e:null)}static get VERSION(){return\"5.3.3\"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute(\"data-bs-target\");if(!e||\"#\"===e){let i=t.getAttribute(\"href\");if(!i||!i.includes(\"#\")&&!i.startsWith(\".\"))return null;i.includes(\"#\")&&!i.startsWith(\"#\")&&(i=`#${i.split(\"#\")[1]}`),e=i&&\"#\"!==i?i.trim():null}return e?e.split(\",\").map((t=>n(t))).join(\",\"):null},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=[\"a\",\"button\",\"input\",\"textarea\",\"select\",\"details\",\"[tabindex]\",'[contenteditable=\"true\"]'].map((t=>`${t}:not([tabindex^=\"-\"])`)).join(\",\");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e=\"hide\")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss=\"${n}\"]`,(function(i){if([\"A\",\"AREA\"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=\".bs.alert\",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return\"alert\"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove(\"show\");const t=this._element.classList.contains(\"fade\");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}R(Q,\"close\"),m(Q);const X='[data-bs-toggle=\"button\"]';class Y extends W{static get NAME(){return\"button\"}toggle(){this._element.setAttribute(\"aria-pressed\",this._element.classList.toggle(\"active\"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);\"toggle\"===t&&e[t]()}))}}N.on(document,\"click.bs.button.data-api\",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=\".bs.swipe\",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:\"(function|null)\",leftCallback:\"(function|null)\",rightCallback:\"(function|null)\"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return\"swipe\"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add(\"pointer-event\")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(\"pen\"===t.pointerType||\"touch\"===t.pointerType)}static isSupported(){return\"ontouchstart\"in document.documentElement||navigator.maxTouchPoints>0}}const ot=\".bs.carousel\",rt=\".data-api\",at=\"next\",lt=\"prev\",ct=\"left\",ht=\"right\",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt=\"carousel\",yt=\"active\",wt=\".active\",At=\".carousel-item\",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:\"hover\",ride:!1,touch:!0,wrap:!0},Ot={interval:\"(number|boolean)\",keyboard:\"boolean\",pause:\"(string|boolean)\",ride:\"(boolean|string)\",touch:\"boolean\",wrap:\"boolean\"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(\".carousel-indicators\",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return\"carousel\"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),\"hover\"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(\".carousel-item img\",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{\"hover\"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute(\"aria-current\");const i=z.findOne(`[data-bs-slide-to=\"${t}\"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute(\"aria-current\",\"true\"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute(\"data-bs-interval\"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?\"carousel-item-start\":\"carousel-item-end\",c=n?\"carousel-item-next\":\"carousel-item-prev\";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(\"slide\")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if(\"number\"!=typeof t){if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,\"[data-bs-slide], [data-bs-slide-to]\",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute(\"data-bs-slide-to\");return n?(i.to(n),void i._maybeEnableCycle()):\"next\"===F.getDataAttribute(this,\"slide\")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride=\"carousel\"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=\".bs.collapse\",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt=\"show\",Pt=\"collapse\",jt=\"collapsing\",Mt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle=\"collapse\"]',Ht={parent:null,toggle:!0},Wt={parent:\"(null|element)\",toggle:\"boolean\"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return\"collapse\"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(\".collapse.show, .collapse.collapsing\").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(jt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt,Nt),this._element.style[e]=\"\",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(jt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]=\"\",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains(\"collapse-horizontal\")?\"width\":\"height\"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(Mt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle(\"collapsed\",!e),i.setAttribute(\"aria-expanded\",e)}static jQueryInterface(t){const e={};return\"string\"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){(\"A\"===t.target.tagName||t.delegateTarget&&\"A\"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt=\"top\",Rt=\"bottom\",qt=\"right\",Vt=\"left\",Kt=\"auto\",Qt=[zt,Rt,qt,Vt],Xt=\"start\",Yt=\"end\",Ut=\"clippingParents\",Gt=\"viewport\",Jt=\"popper\",Zt=\"reference\",te=Qt.reduce((function(t,e){return t.concat([e+\"-\"+Xt,e+\"-\"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+\"-\"+Xt,e+\"-\"+Yt])}),[]),ie=\"beforeRead\",ne=\"read\",se=\"afterRead\",oe=\"beforeMain\",re=\"main\",ae=\"afterMain\",le=\"beforeWrite\",ce=\"write\",he=\"afterWrite\",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||\"\").toLowerCase():null}function fe(t){if(null==t)return window;if(\"[object Window]\"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return\"undefined\"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:\"applyStyles\",enabled:!0,phase:\"write\",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?\"\":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:\"0\",top:\"0\",margin:\"0\"},arrow:{position:\"absolute\"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]=\"\",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:[\"computeStyles\"]};function be(t){return t.split(\"-\")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+\"/\"+t.version})).join(\" \"):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return[\"table\",\"td\",\"th\"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return\"html\"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&\"fixed\"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&\"static\"===xe(i).position;)i=De(i);return i&&(\"html\"===ue(i)||\"body\"===ue(i)&&\"static\"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&\"fixed\"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&[\"html\",\"body\"].indexOf(ue(i))<0;){var n=xe(i);if(\"none\"!==n.transform||\"none\"!==n.perspective||\"paint\"===n.contain||-1!==[\"transform\",\"perspective\"].indexOf(n.willChange)||e&&\"filter\"===n.willChange||e&&n.filter&&\"none\"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return[\"top\",\"bottom\"].indexOf(t)>=0?\"x\":\"y\"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function je(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const Me={name:\"arrow\",enabled:!0,phase:\"main\",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?\"height\":\"width\";if(o&&r){var h=function(t,e){return Pe(\"number\"!=typeof(t=\"function\"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:je(t,Qt))}(s.padding,i),d=Ce(o),u=\"y\"===l?zt:Vt,f=\"y\"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?\"y\"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?\"[data-popper-arrow]\":i;null!=n&&(\"string\"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function Fe(t){return t.split(\"-\")[1]}var He={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g=\"function\"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty(\"x\"),b=r.hasOwnProperty(\"y\"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E=\"clientHeight\",T=\"clientWidth\";A===fe(i)&&\"static\"!==xe(A=Le(i)).position&&\"absolute\"===a&&(E=\"scrollHeight\",T=\"scrollWidth\"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?\"0\":\"\",C[v]=_?\"0\":\"\",C.transform=(w.devicePixelRatio||1)<=1?\"translate(\"+f+\"px, \"+m+\"px)\":\"translate3d(\"+f+\"px, \"+m+\"px, 0)\",C)):Object.assign({},O,((e={})[y]=b?m+\"px\":\"\",e[v]=_?f+\"px\":\"\",e.transform=\"\",e))}const Be={name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:\"fixed\"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:\"absolute\",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{\"data-popper-placement\":e.placement})},data:{}};var ze={passive:!0};const Re={name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener(\"scroll\",i.update,ze)})),a&&l.addEventListener(\"resize\",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener(\"scroll\",i.update,ze)})),a&&l.removeEventListener(\"resize\",i.update,ze)}},data:{}};var qe={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:\"end\",end:\"start\"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return[\"html\",\"body\",\"#document\"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&\"fixed\"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,\"fixed\"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return\"rtl\"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h=\"y\"===c?\"height\":\"width\";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe(\"number\"!=typeof g?g:je(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s=\"clippingParents\"===e?function(t){var e=Je(Se(t)),i=[\"absolute\",\"fixed\"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&\"body\"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:\"absolute\",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?\"y\":\"x\";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:\"flip\",enabled:!0,phase:\"main\",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=be(O),k=Fe(O)===Xt,L=[zt,Rt].indexOf(x)>=0,S=L?\"width\":\"height\",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,\"break\"},j=p?3:1;j>0&&\"break\"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:\"reference\"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{\"data-popper-reference-hidden\":h,\"data-popper-escaped\":d})}},li={name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o=\"function\"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:\"absolute\",placement:e.placement})},data:{}},hi={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w=\"x\"===y?\"y\":\"x\",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C=\"function\"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O=\"number\"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S=\"y\"===y?zt:Vt,D=\"y\"===y?Rt:qt,$=\"y\"===y?\"height\":\"width\",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData[\"arrow#persistent\"]?e.modifiersData[\"arrow#persistent\"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?\"y\"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z=\"x\"===y?zt:Vt,tt=\"x\"===y?Rt:qt,et=A[w],it=\"y\"===w?\"height\":\"width\",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:[\"offset\"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&((\"body\"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&\"function\"==typeof t.getBoundingClientRect)}))}function mi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?fi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},fi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s=\"function\"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:pe(t)?Je(t):t.contextElement?Je(t.contextElement):[],popper:Je(e)};var r,c,u=function(t){var e=ui(t);return de.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if(\"function\"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(pi(e,i)){a.rects={reference:di(e,$e(i),\"fixed\"===a.options.strategy),popper:Ce(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;\"function\"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!pi(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var gi=mi(),_i=mi({defaultModifiers:[Re,ci,Be,_e]}),bi=mi({defaultModifiers:[Re,ci,Be,_e,li,si,hi,Me,ai]});const vi=Object.freeze(Object.defineProperty({__proto__:null,afterMain:ae,afterRead:se,afterWrite:he,applyStyles:_e,arrow:Me,auto:Kt,basePlacements:Qt,beforeMain:oe,beforeRead:ie,beforeWrite:le,bottom:Rt,clippingParents:Ut,computeStyles:Be,createPopper:bi,createPopperBase:gi,createPopperLite:_i,detectOverflow:ii,end:Yt,eventListeners:Re,flip:si,hide:ai,left:Vt,main:re,modifierPhases:de,offset:li,placements:ee,popper:Jt,popperGenerator:mi,popperOffsets:ci,preventOverflow:hi,read:ne,reference:Zt,right:qt,start:Xt,top:zt,variationPlacements:te,viewport:Gt,write:ce},Symbol.toStringTag,{value:\"Module\"})),yi=\"dropdown\",wi=\".bs.dropdown\",Ai=\".data-api\",Ei=\"ArrowUp\",Ti=\"ArrowDown\",Ci=`hide${wi}`,Oi=`hidden${wi}`,xi=`show${wi}`,ki=`shown${wi}`,Li=`click${wi}${Ai}`,Si=`keydown${wi}${Ai}`,Di=`keyup${wi}${Ai}`,$i=\"show\",Ii='[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)',Ni=`${Ii}.${$i}`,Pi=\".dropdown-menu\",ji=p()?\"top-end\":\"top-start\",Mi=p()?\"top-start\":\"top-end\",Fi=p()?\"bottom-end\":\"bottom-start\",Hi=p()?\"bottom-start\":\"bottom-end\",Wi=p()?\"left-start\":\"right-start\",Bi=p()?\"right-start\":\"left-start\",zi={autoClose:!0,boundary:\"clippingParents\",display:\"dynamic\",offset:[0,2],popperConfig:null,reference:\"toggle\"},Ri={autoClose:\"(boolean|string)\",boundary:\"(string|element)\",display:\"string\",offset:\"(array|string|function)\",popperConfig:\"(null|object|function)\",reference:\"(string|element|object)\"};class qi extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,Pi)[0]||z.prev(this._element,Pi)[0]||z.findOne(Pi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return zi}static get DefaultType(){return Ri}static get NAME(){return yi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!N.trigger(this._element,xi,t).defaultPrevented){if(this._createPopper(),\"ontouchstart\"in document.documentElement&&!this._parent.closest(\".navbar-nav\"))for(const t of[].concat(...document.body.children))N.on(t,\"mouseover\",h);this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),this._menu.classList.add($i),this._element.classList.add($i),N.trigger(this._element,ki,t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!N.trigger(this._element,Ci,t).defaultPrevented){if(\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,\"mouseover\",h);this._popper&&this._popper.destroy(),this._menu.classList.remove($i),this._element.classList.remove($i),this._element.setAttribute(\"aria-expanded\",\"false\"),F.removeDataAttribute(this._menu,\"popper\"),N.trigger(this._element,Oi,t)}}_getConfig(t){if(\"object\"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&\"function\"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${yi.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);return t}_createPopper(){if(void 0===vi)throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");let t=this._element;\"parent\"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):\"object\"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=bi(t,this._menu,e)}_isShown(){return this._menu.classList.contains($i)}_getPlacement(){const t=this._parent;if(t.classList.contains(\"dropend\"))return Wi;if(t.classList.contains(\"dropstart\"))return Bi;if(t.classList.contains(\"dropup-center\"))return\"top\";if(t.classList.contains(\"dropdown-center\"))return\"bottom\";const e=\"end\"===getComputedStyle(this._menu).getPropertyValue(\"--bs-position\").trim();return t.classList.contains(\"dropup\")?e?Mi:ji:e?Hi:Fi}_detectNavbar(){return null!==this._element.closest(\".navbar\")}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"offset\",options:{offset:this._getOffset()}}]};return(this._inNavbar||\"static\"===this._config.display)&&(F.setDataAttribute(this._menu,\"popper\",\"static\"),t.modifiers=[{name:\"applyStyles\",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}static clearMenus(t){if(2===t.button||\"keyup\"===t.type&&\"Tab\"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||\"inside\"===e._config.autoClose&&!s||\"outside\"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&(\"keyup\"===t.type&&\"Tab\"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};\"click\"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i=\"Escape\"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi=\"backdrop\",Ki=\"show\",Qi=`mousedown.bs.${Vi}`,Xi={className:\"modal-backdrop\",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:\"body\"},Yi={className:\"string\",clickCallback:\"(function|null)\",isAnimated:\"boolean\",isVisible:\"boolean\",rootElement:\"(element|string)\"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement(\"div\");t.className=this._config.className,this._config.isAnimated&&t.classList.add(\"fade\"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=\".bs.focustrap\",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn=\"backward\",en={autofocus:!0,trapElement:null},nn={autofocus:\"boolean\",trapElement:\"element\"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return\"focustrap\"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){\"Tab\"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:\"forward\")}}const on=\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",rn=\".sticky-top\",an=\"padding-right\",ln=\"margin-right\";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,\"overflow\"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,\"overflow\"),this._element.style.overflow=\"hidden\"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=\".bs.modal\",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn=\"modal-open\",An=\"show\",En=\"modal-static\",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:\"(boolean|string)\",focus:\"boolean\",keyboard:\"boolean\"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(\".modal-dialog\",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return\"modal\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.scrollTop=0;const e=z.findOne(\".modal-body\",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&(\"static\"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains(\"fade\")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;\"hidden\"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY=\"hidden\"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?\"paddingLeft\":\"paddingRight\";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?\"paddingRight\":\"paddingLeft\";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle=\"modal\"]',(function(t){const e=z.getElementFromSelector(this);[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(\".modal.show\");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=\".bs.offcanvas\",kn=\".data-api\",Ln=`load${xn}${kn}`,Sn=\"show\",Dn=\"showing\",$n=\"hiding\",In=\".offcanvas.show\",Nn=`show${xn}`,Pn=`shown${xn}`,jn=`hide${xn}`,Mn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:\"(boolean|string)\",keyboard:\"boolean\",scroll:\"boolean\"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return\"offcanvas\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,jn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:\"offcanvas-backdrop\",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{\"static\"!==this._config.backdrop?this.hide():N.trigger(this._element,Mn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,Mn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle=\"offcanvas\"]',(function(t){const e=z.getElementFromSelector(this);if([\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find(\"[aria-modal][class*=show][class*=offcanvas-]\"))\"fixed\"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={\"*\":[\"class\",\"dir\",\"id\",\"lang\",\"role\",/^aria-[\\w-]*$/i],a:[\"target\",\"href\",\"title\",\"rel\"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[\"src\",\"srcset\",\"alt\",\"title\",\"width\",\"height\"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set([\"background\",\"cite\",\"href\",\"itemtype\",\"longdesc\",\"poster\",\"src\",\"xlink:href\"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:\"\",html:!1,sanitize:!0,sanitizeFn:null,template:\"<div></div>\"},Un={allowList:\"object\",content:\"object\",extraClass:\"(string|function)\",html:\"boolean\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",template:\"string\"},Gn={entry:\"(string|element|function|null)\",selector:\"(string|element)\"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return\"TemplateFactory\"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement(\"div\");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(\" \")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&\"function\"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,\"text/html\"),s=[].concat(...n.body.querySelectorAll(\"*\"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e[\"*\"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML=\"\",void e.append(t);e.textContent=t.textContent}}const Zn=new Set([\"sanitize\",\"allowList\",\"sanitizeFn\"]),ts=\"fade\",es=\"show\",is=\".modal\",ns=\"hide.bs.modal\",ss=\"hover\",os=\"focus\",rs={AUTO:\"auto\",TOP:\"top\",RIGHT:p()?\"left\":\"right\",BOTTOM:\"bottom\",LEFT:p()?\"right\":\"left\"},as={allowList:Vn,animation:!0,boundary:\"clippingParents\",container:!1,customClass:\"\",delay:0,fallbackPlacements:[\"top\",\"right\",\"bottom\",\"left\"],html:!1,offset:[0,6],placement:\"top\",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',title:\"\",trigger:\"hover focus\"},ls={allowList:\"object\",animation:\"boolean\",boundary:\"(string|element)\",container:\"(string|element|boolean)\",customClass:\"(string|function)\",delay:\"(number|object)\",fallbackPlacements:\"array\",html:\"boolean\",offset:\"(array|string|function)\",placement:\"(string|function)\",popperConfig:\"(null|object|function)\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",selector:\"(string|boolean)\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return\"tooltip\"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute(\"data-bs-original-title\")&&this._element.setAttribute(\"title\",this._element.getAttribute(\"data-bs-original-title\")),this._disposePopper(),super.dispose()}show(){if(\"none\"===this._element.style.display)throw new Error(\"Please use show on visible elements\");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName(\"show\")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute(\"aria-describedby\",i.getAttribute(\"id\"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName(\"inserted\"))),this._popper=this._createPopper(i),i.classList.add(es),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,\"mouseover\",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName(\"shown\")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName(\"hide\")).defaultPrevented){if(this._getTipElement().classList.remove(es),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,\"mouseover\",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(\"aria-describedby\"),N.trigger(this._element,this.constructor.eventName(\"hidden\")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute(\"id\",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{\".tooltip-inner\":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute(\"data-bs-original-title\")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map((t=>Number.parseInt(t,10))):\"function\"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:\"flip\",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:\"offset\",options:{offset:this._getOffset()}},{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"arrow\",options:{element:`.${this.constructor.NAME}-arrow`}},{name:\"preSetPlacement\",enabled:!0,phase:\"beforeMain\",fn:t=>{this._getTipElement().setAttribute(\"data-popper-placement\",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(\" \");for(const e of t)if(\"click\"===e)N.on(this._element,this.constructor.eventName(\"click\"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if(\"manual\"!==e){const t=e===ss?this.constructor.eventName(\"mouseenter\"):this.constructor.eventName(\"focusin\"),i=e===ss?this.constructor.eventName(\"mouseleave\"):this.constructor.eventName(\"focusout\");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusin\"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusout\"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute(\"title\");t&&(this._element.getAttribute(\"aria-label\")||this._element.textContent.trim()||this._element.setAttribute(\"aria-label\",t),this._element.setAttribute(\"data-bs-original-title\",t),this._element.removeAttribute(\"title\"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,...\"object\"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger=\"manual\",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:\"\",offset:[0,8],placement:\"right\",template:'<div class=\"popover\" role=\"tooltip\"><div class=\"popover-arrow\"></div><h3 class=\"popover-header\"></h3><div class=\"popover-body\"></div></div>',trigger:\"click\"},ds={...cs.DefaultType,content:\"(null|string|element|function)\"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return\"popover\"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{\".popover-header\":this._getTitle(),\".popover-body\":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}m(us);const fs=\".bs.scrollspy\",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s=\"active\",bs=\"[href]\",vs=\".nav-link\",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:\"0px 0px -25%\",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:\"(number|null)\",rootMargin:\"string\",smoothScroll:\"boolean\",target:\"element\",threshold:\"array\"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=\"visible\"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return\"scrollspy\"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,\"string\"==typeof t.threshold&&(t.threshold=t.threshold.split(\",\").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:\"smooth\"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(\"dropdown-item\"))z.findOne(\".dropdown-toggle\",t.closest(\".dropdown\")).classList.add(_s);else for(const e of z.parents(t,\".nav, .list-group\"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy=\"scroll\"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=\".bs.tab\",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s=\"ArrowLeft\",Is=\"ArrowRight\",Ns=\"ArrowUp\",Ps=\"ArrowDown\",js=\"Home\",Ms=\"End\",Fs=\"active\",Hs=\"fade\",Ws=\"show\",Bs=\".dropdown-toggle\",zs=`:not(${Bs})`,Rs='[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role=\"tab\"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle=\"tab\"], .${Fs}[data-bs-toggle=\"pill\"], .${Fs}[data-bs-toggle=\"list\"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role=\"tablist\"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return\"tab\"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.removeAttribute(\"tabindex\"),t.setAttribute(\"aria-selected\",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{\"tab\"===t.getAttribute(\"role\")?(t.setAttribute(\"aria-selected\",!1),t.setAttribute(\"tabindex\",\"-1\"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,js,Ms].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([js,Ms].includes(t.key))i=e[t.key===js?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,\"role\",\"tablist\");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute(\"aria-selected\",e),i!==t&&this._setAttributeIfNotExists(i,\"role\",\"presentation\"),e||t.setAttribute(\"tabindex\",\"-1\"),this._setAttributeIfNotExists(t,\"role\",\"tab\"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,\"role\",\"tabpanel\"),t.id&&this._setAttributeIfNotExists(e,\"aria-labelledby\",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains(\"dropdown\"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(\".dropdown-menu\",Ws),i.setAttribute(\"aria-expanded\",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(\".nav-item, .list-group-item\")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=\".bs.toast\",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io=\"hide\",no=\"show\",so=\"showing\",oo={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return\"toast\"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(\"fade\"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case\"mouseover\":case\"mouseout\":this._hasMouseInteraction=e;break;case\"focusin\":case\"focusout\":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}}));\n//# sourceMappingURL=bootstrap.bundle.min.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvZGlzdC9qcy9ib290c3RyYXAuYnVuZGxlLm1pbi5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxLQUFvRCxvQkFBb0IsQ0FBbUgsQ0FBQyxrQkFBa0IsYUFBYSxtQkFBbUIsV0FBVywyQkFBMkIsaUJBQWlCLDZIQUE2SCx3QkFBd0IsSUFBSSx3REFBd0Qsb0JBQW9CLGlCQUFpQixxQ0FBcUMsb0dBQW9HLGNBQWMsY0FBYyw4QkFBOEIsb0xBQW9MLGlEQUFpRCwwR0FBMEcsZUFBZSxVQUFVLDZCQUE2QixnQ0FBZ0MscUJBQXFCLFNBQVMsc0xBQXNMLHNEQUFzRCxxQ0FBcUMsd0JBQXdCLHNDQUFzQyxtRUFBbUUsU0FBUyxPQUFPLGVBQWUsZ0pBQWdKLE1BQU0sT0FBTyxZQUFZLE1BQU0seUJBQXlCLHNHQUFzRywrRkFBK0YscUJBQXFCLGtCQUFrQiwrREFBK0QsdUJBQXVCLGFBQWEsZUFBZSxJQUFJLHVDQUF1Qyw0QkFBNEIsb0RBQW9ELG9HQUFvRyxPQUFPLFNBQVMsVUFBVSxTQUFTLElBQUksK0NBQStDLHlDQUF5QyxRQUFRLEtBQUssZUFBZSxpQkFBaUIsbUJBQW1CLHlGQUF5RixpREFBaUQsUUFBUSxTQUFTLDZDQUE2QywyaUJBQTJpQixnQkFBZ0IsYUFBYSxFQUFFLElBQUksSUFBSSxtQkFBbUIsY0FBYyxhQUFhLGlDQUFpQyxNQUFNLHVCQUF1Qiw0RUFBNEUsa0JBQWtCLHNDQUFzQyxXQUFXLCtCQUErQixzQkFBc0IsaUNBQWlDLG9CQUFvQixXQUFXLHVCQUF1Qiw0SEFBNEgsT0FBTyw2QkFBNkIsb0JBQW9CLHVDQUF1QyxpREFBaUQscUJBQXFCLDhCQUE4QixRQUFRLFNBQVMsR0FBRyxZQUFZLHFEQUFxRCxpQkFBaUIsZ0RBQWdELHNCQUFzQixxQkFBcUIsWUFBWSxpQkFBaUIsOENBQThDLE1BQU0sb0dBQW9HLHNCQUFzQixvQkFB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QixHQUFHLGVBQWUsR0FBRyxnQkFBZ0IsR0FBRyxZQUFZLEdBQUcsY0FBYyxHQUFHLFlBQVksR0FBRyxhQUFhLEdBQUcsdUNBQXVDLHNEQUFzRCxLQUFLLG9DQUFvQyxtQkFBbUIsaUJBQWlCLGdIQUFnSCxxQkFBcUIsVUFBVSx5QkFBeUIsVUFBVSxrQkFBa0IsY0FBYyxPQUFPLGlQQUFpUCx5RkFBeUYseUNBQXlDLE9BQU8sMEhBQTBILGtHQUFrRywwQ0FBMEMsVUFBVSx3RkFBd0YsVUFBVSw0Q0FBNEMscUJBQXFCLGlIQUFpSCxZQUFZLHdCQUF3QixvQkFBb0IsZUFBZSwyREFBMkQsTUFBTSw0REFBNEQsc0NBQXNDLHdCQUF3Qix3RUFBd0UsZ0JBQWdCLHdOQUF3TixnQkFBZ0IsK0NBQStDLDBCQUEwQiw2QkFBNkIsdUNBQXVDLHVCQUF1Qix5REFBeUQsRUFBRSxJQUFJLFlBQVksSUFBSSxvQkFBb0IsK0hBQStIO0FBQ2hqOUUiLCJzb3VyY2VzIjpbIkM6XFxVc2Vyc1xcUGluZXN1Y2NlZWRcXERlc2t0b3BcXFdvcmtTcGFjZVxcdGVzdHdpZGdldFxcbm9kZV9tb2R1bGVzXFxib290c3RyYXBcXGRpc3RcXGpzXFxib290c3RyYXAuYnVuZGxlLm1pbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAgKiBCb290c3RyYXAgdjUuMy4zIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICAqIENvcHlyaWdodCAyMDExLTIwMjQgVGhlIEJvb3RzdHJhcCBBdXRob3JzIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvZ3JhcGhzL2NvbnRyaWJ1dG9ycylcbiAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAgKi9cbiFmdW5jdGlvbih0LGUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWUoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuYm9vdHN0cmFwPWUoKX0odGhpcywoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtjb25zdCB0PW5ldyBNYXAsZT17c2V0KGUsaSxuKXt0LmhhcyhlKXx8dC5zZXQoZSxuZXcgTWFwKTtjb25zdCBzPXQuZ2V0KGUpO3MuaGFzKGkpfHwwPT09cy5zaXplP3Muc2V0KGksbik6Y29uc29sZS5lcnJvcihgQm9vdHN0cmFwIGRvZXNuJ3QgYWxsb3cgbW9yZSB0aGFuIG9uZSBpbnN0YW5jZSBwZXIgZWxlbWVudC4gQm91bmQgaW5zdGFuY2U6ICR7QXJyYXkuZnJvbShzLmtleXMoKSlbMF19LmApfSxnZXQ6KGUsaSk9PnQuaGFzKGUpJiZ0LmdldChlKS5nZXQoaSl8fG51bGwscmVtb3ZlKGUsaSl7aWYoIXQuaGFzKGUpKXJldHVybjtjb25zdCBuPXQuZ2V0KGUpO24uZGVsZXRlKGkpLDA9PT1uLnNpemUmJnQuZGVsZXRlKGUpfX0saT1cInRyYW5zaXRpb25lbmRcIixuPXQ9Pih0JiZ3aW5kb3cuQ1NTJiZ3aW5kb3cuQ1NTLmVzY2FwZSYmKHQ9dC5yZXBsYWNlKC8jKFteXFxzXCIjJ10rKS9nLCgodCxlKT0+YCMke0NTUy5lc2NhcGUoZSl9YCkpKSx0KSxzPXQ9Pnt0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KGkpKX0sbz10PT4hKCF0fHxcIm9iamVjdFwiIT10eXBlb2YgdCkmJih2b2lkIDAhPT10LmpxdWVyeSYmKHQ9dFswXSksdm9pZCAwIT09dC5ub2RlVHlwZSkscj10PT5vKHQpP3QuanF1ZXJ5P3RbMF06dDpcInN0cmluZ1wiPT10eXBlb2YgdCYmdC5sZW5ndGg+MD9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKG4odCkpOm51bGwsYT10PT57aWYoIW8odCl8fDA9PT10LmdldENsaWVudFJlY3RzKCkubGVuZ3RoKXJldHVybiExO2NvbnN0IGU9XCJ2aXNpYmxlXCI9PT1nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoXCJ2aXNpYmlsaXR5XCIpLGk9dC5jbG9zZXN0KFwiZGV0YWlsczpub3QoW29wZW5dKVwiKTtpZighaSlyZXR1cm4gZTtpZihpIT09dCl7Y29uc3QgZT10LmNsb3Nlc3QoXCJzdW1tYXJ5XCIpO2lmKGUmJmUucGFyZW50Tm9kZSE9PWkpcmV0dXJuITE7aWYobnVsbD09PWUpcmV0dXJuITF9cmV0dXJuIGV9LGw9dD0+IXR8fHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERXx8ISF0LmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpfHwodm9pZCAwIT09dC5kaXNhYmxlZD90LmRpc2FibGVkOnQuaGFzQXR0cmlidXRlKFwiZGlzYWJsZWRcIikmJlwiZmFsc2VcIiE9PXQuZ2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIikpLGM9dD0+e2lmKCFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXR0YWNoU2hhZG93KXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQuZ2V0Um9vdE5vZGUpe2NvbnN0IGU9dC5nZXRSb290Tm9kZSgpO3JldHVybiBlIGluc3RhbmNlb2YgU2hhZG93Um9vdD9lOm51bGx9cmV0dXJuIHQgaW5zdGFuY2VvZiBTaGFkb3dSb290P3Q6dC5wYXJlbnROb2RlP2ModC5wYXJlbnROb2RlKTpudWxsfSxoPSgpPT57fSxkPXQ9Pnt0Lm9mZnNldEhlaWdodH0sdT0oKT0+d2luZG93LmpRdWVyeSYmIWRvY3VtZW50LmJvZHkuaGFzQXR0cmlidXRlKFwiZGF0YS1icy1uby1qcXVlcnlcIik/d2luZG93LmpRdWVyeTpudWxsLGY9W10scD0oKT0+XCJydGxcIj09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIsbT10PT57dmFyIGU7ZT0oKT0+e2NvbnN0IGU9dSgpO2lmKGUpe2NvbnN0IGk9dC5OQU1FLG49ZS5mbltpXTtlLmZuW2ldPXQualF1ZXJ5SW50ZXJmYWNlLGUuZm5baV0uQ29uc3RydWN0b3I9dCxlLmZuW2ldLm5vQ29uZmxpY3Q9KCk9PihlLmZuW2ldPW4sdC5qUXVlcnlJbnRlcmZhY2UpfX0sXCJsb2FkaW5nXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlPyhmLmxlbmd0aHx8ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIiwoKCk9Pntmb3IoY29uc3QgdCBvZiBmKXQoKX0pKSxmLnB1c2goZSkpOmUoKX0sZz0odCxlPVtdLGk9dCk9PlwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dCguLi5lKTppLF89KHQsZSxuPSEwKT0+e2lmKCFuKXJldHVybiB2b2lkIGcodCk7Y29uc3Qgbz0odD0+e2lmKCF0KXJldHVybiAwO2xldHt0cmFuc2l0aW9uRHVyYXRpb246ZSx0cmFuc2l0aW9uRGVsYXk6aX09d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7Y29uc3Qgbj1OdW1iZXIucGFyc2VGbG9hdChlKSxzPU51bWJlci5wYXJzZUZsb2F0KGkpO3JldHVybiBufHxzPyhlPWUuc3BsaXQoXCIsXCIpWzBdLGk9aS5zcGxpdChcIixcIilbMF0sMWUzKihOdW1iZXIucGFyc2VGbG9hdChlKStOdW1iZXIucGFyc2VGbG9hdChpKSkpOjB9KShlKSs1O2xldCByPSExO2NvbnN0IGE9KHt0YXJnZXQ6bn0pPT57bj09PWUmJihyPSEwLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLGEpLGcodCkpfTtlLmFkZEV2ZW50TGlzdGVuZXIoaSxhKSxzZXRUaW1lb3V0KCgoKT0+e3J8fHMoZSl9KSxvKX0sYj0odCxlLGksbik9Pntjb25zdCBzPXQubGVuZ3RoO2xldCBvPXQuaW5kZXhPZihlKTtyZXR1cm4tMT09PW8/IWkmJm4/dFtzLTFdOnRbMF06KG8rPWk/MTotMSxuJiYobz0obytzKSVzKSx0W01hdGgubWF4KDAsTWF0aC5taW4obyxzLTEpKV0pfSx2PS9bXi5dKig/PVxcLi4qKVxcLnwuKi8seT0vXFwuLiovLHc9Lzo6XFxkKyQvLEE9e307bGV0IEU9MTtjb25zdCBUPXttb3VzZWVudGVyOlwibW91c2VvdmVyXCIsbW91c2VsZWF2ZTpcIm1vdXNlb3V0XCJ9LEM9bmV3IFNldChbXCJjbGlja1wiLFwiZGJsY2xpY2tcIixcIm1vdXNldXBcIixcIm1vdXNlZG93blwiLFwiY29udGV4dG1lbnVcIixcIm1vdXNld2hlZWxcIixcIkRPTU1vdXNlU2Nyb2xsXCIsXCJtb3VzZW92ZXJcIixcIm1vdXNlb3V0XCIsXCJtb3VzZW1vdmVcIixcInNlbGVjdHN0YXJ0XCIsXCJzZWxlY3RlbmRcIixcImtleWRvd25cIixcImtleXByZXNzXCIsXCJrZXl1cFwiLFwib3JpZW50YXRpb25jaGFuZ2VcIixcInRvdWNoc3RhcnRcIixcInRvdWNobW92ZVwiLFwidG91Y2hlbmRcIixcInRvdWNoY2FuY2VsXCIsXCJwb2ludGVyZG93blwiLFwicG9pbnRlcm1vdmVcIixcInBvaW50ZXJ1cFwiLFwicG9pbnRlcmxlYXZlXCIsXCJwb2ludGVyY2FuY2VsXCIsXCJnZXN0dXJlc3RhcnRcIixcImdlc3R1cmVjaGFuZ2VcIixcImdlc3R1cmVlbmRcIixcImZvY3VzXCIsXCJibHVyXCIsXCJjaGFuZ2VcIixcInJlc2V0XCIsXCJzZWxlY3RcIixcInN1Ym1pdFwiLFwiZm9jdXNpblwiLFwiZm9jdXNvdXRcIixcImxvYWRcIixcInVubG9hZFwiLFwiYmVmb3JldW5sb2FkXCIsXCJyZXNpemVcIixcIm1vdmVcIixcIkRPTUNvbnRlbnRMb2FkZWRcIixcInJlYWR5c3RhdGVjaGFuZ2VcIixcImVycm9yXCIsXCJhYm9ydFwiLFwic2Nyb2xsXCJdKTtmdW5jdGlvbiBPKHQsZSl7cmV0dXJuIGUmJmAke2V9Ojoke0UrK31gfHx0LnVpZEV2ZW50fHxFKyt9ZnVuY3Rpb24geCh0KXtjb25zdCBlPU8odCk7cmV0dXJuIHQudWlkRXZlbnQ9ZSxBW2VdPUFbZV18fHt9LEFbZV19ZnVuY3Rpb24gayh0LGUsaT1udWxsKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyh0KS5maW5kKCh0PT50LmNhbGxhYmxlPT09ZSYmdC5kZWxlZ2F0aW9uU2VsZWN0b3I9PT1pKSl9ZnVuY3Rpb24gTCh0LGUsaSl7Y29uc3Qgbj1cInN0cmluZ1wiPT10eXBlb2YgZSxzPW4/aTplfHxpO2xldCBvPUkodCk7cmV0dXJuIEMuaGFzKG8pfHwobz10KSxbbixzLG9dfWZ1bmN0aW9uIFModCxlLGksbixzKXtpZihcInN0cmluZ1wiIT10eXBlb2YgZXx8IXQpcmV0dXJuO2xldFtvLHIsYV09TChlLGksbik7aWYoZSBpbiBUKXtjb25zdCB0PXQ9PmZ1bmN0aW9uKGUpe2lmKCFlLnJlbGF0ZWRUYXJnZXR8fGUucmVsYXRlZFRhcmdldCE9PWUuZGVsZWdhdGVUYXJnZXQmJiFlLmRlbGVnYXRlVGFyZ2V0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkpcmV0dXJuIHQuY2FsbCh0aGlzLGUpfTtyPXQocil9Y29uc3QgbD14KHQpLGM9bFthXXx8KGxbYV09e30pLGg9ayhjLHIsbz9pOm51bGwpO2lmKGgpcmV0dXJuIHZvaWQoaC5vbmVPZmY9aC5vbmVPZmYmJnMpO2NvbnN0IGQ9TyhyLGUucmVwbGFjZSh2LFwiXCIpKSx1PW8/ZnVuY3Rpb24odCxlLGkpe3JldHVybiBmdW5jdGlvbiBuKHMpe2NvbnN0IG89dC5xdWVyeVNlbGVjdG9yQWxsKGUpO2ZvcihsZXR7dGFyZ2V0OnJ9PXM7ciYmciE9PXRoaXM7cj1yLnBhcmVudE5vZGUpZm9yKGNvbnN0IGEgb2YgbylpZihhPT09cilyZXR1cm4gUChzLHtkZWxlZ2F0ZVRhcmdldDpyfSksbi5vbmVPZmYmJk4ub2ZmKHQscy50eXBlLGUsaSksaS5hcHBseShyLFtzXSl9fSh0LGkscik6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24gaShuKXtyZXR1cm4gUChuLHtkZWxlZ2F0ZVRhcmdldDp0fSksaS5vbmVPZmYmJk4ub2ZmKHQsbi50eXBlLGUpLGUuYXBwbHkodCxbbl0pfX0odCxyKTt1LmRlbGVnYXRpb25TZWxlY3Rvcj1vP2k6bnVsbCx1LmNhbGxhYmxlPXIsdS5vbmVPZmY9cyx1LnVpZEV2ZW50PWQsY1tkXT11LHQuYWRkRXZlbnRMaXN0ZW5lcihhLHUsbyl9ZnVuY3Rpb24gRCh0LGUsaSxuLHMpe2NvbnN0IG89ayhlW2ldLG4scyk7byYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLG8sQm9vbGVhbihzKSksZGVsZXRlIGVbaV1bby51aWRFdmVudF0pfWZ1bmN0aW9uICQodCxlLGksbil7Y29uc3Qgcz1lW2ldfHx7fTtmb3IoY29uc3RbbyxyXW9mIE9iamVjdC5lbnRyaWVzKHMpKW8uaW5jbHVkZXMobikmJkQodCxlLGksci5jYWxsYWJsZSxyLmRlbGVnYXRpb25TZWxlY3Rvcil9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gdD10LnJlcGxhY2UoeSxcIlwiKSxUW3RdfHx0fWNvbnN0IE49e29uKHQsZSxpLG4pe1ModCxlLGksbiwhMSl9LG9uZSh0LGUsaSxuKXtTKHQsZSxpLG4sITApfSxvZmYodCxlLGksbil7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGV8fCF0KXJldHVybjtjb25zdFtzLG8scl09TChlLGksbiksYT1yIT09ZSxsPXgodCksYz1sW3JdfHx7fSxoPWUuc3RhcnRzV2l0aChcIi5cIik7aWYodm9pZCAwPT09byl7aWYoaClmb3IoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhsKSkkKHQsbCxpLGUuc2xpY2UoMSkpO2Zvcihjb25zdFtpLG5db2YgT2JqZWN0LmVudHJpZXMoYykpe2NvbnN0IHM9aS5yZXBsYWNlKHcsXCJcIik7YSYmIWUuaW5jbHVkZXMocyl8fEQodCxsLHIsbi5jYWxsYWJsZSxuLmRlbGVnYXRpb25TZWxlY3Rvcil9fWVsc2V7aWYoIU9iamVjdC5rZXlzKGMpLmxlbmd0aClyZXR1cm47RCh0LGwscixvLHM/aTpudWxsKX19LHRyaWdnZXIodCxlLGkpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlfHwhdClyZXR1cm4gbnVsbDtjb25zdCBuPXUoKTtsZXQgcz1udWxsLG89ITAscj0hMCxhPSExO2UhPT1JKGUpJiZuJiYocz1uLkV2ZW50KGUsaSksbih0KS50cmlnZ2VyKHMpLG89IXMuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSxyPSFzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCksYT1zLmlzRGVmYXVsdFByZXZlbnRlZCgpKTtjb25zdCBsPVAobmV3IEV2ZW50KGUse2J1YmJsZXM6byxjYW5jZWxhYmxlOiEwfSksaSk7cmV0dXJuIGEmJmwucHJldmVudERlZmF1bHQoKSxyJiZ0LmRpc3BhdGNoRXZlbnQobCksbC5kZWZhdWx0UHJldmVudGVkJiZzJiZzLnByZXZlbnREZWZhdWx0KCksbH19O2Z1bmN0aW9uIFAodCxlPXt9KXtmb3IoY29uc3RbaSxuXW9mIE9iamVjdC5lbnRyaWVzKGUpKXRyeXt0W2ldPW59Y2F0Y2goZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7Y29uZmlndXJhYmxlOiEwLGdldDooKT0+bn0pfXJldHVybiB0fWZ1bmN0aW9uIGoodCl7aWYoXCJ0cnVlXCI9PT10KXJldHVybiEwO2lmKFwiZmFsc2VcIj09PXQpcmV0dXJuITE7aWYodD09PU51bWJlcih0KS50b1N0cmluZygpKXJldHVybiBOdW1iZXIodCk7aWYoXCJcIj09PXR8fFwibnVsbFwiPT09dClyZXR1cm4gbnVsbDtpZihcInN0cmluZ1wiIT10eXBlb2YgdClyZXR1cm4gdDt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KHQpKX1jYXRjaChlKXtyZXR1cm4gdH19ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bQS1aXS9nLCh0PT5gLSR7dC50b0xvd2VyQ2FzZSgpfWApKX1jb25zdCBGPXtzZXREYXRhQXR0cmlidXRlKHQsZSxpKXt0LnNldEF0dHJpYnV0ZShgZGF0YS1icy0ke00oZSl9YCxpKX0scmVtb3ZlRGF0YUF0dHJpYnV0ZSh0LGUpe3QucmVtb3ZlQXR0cmlidXRlKGBkYXRhLWJzLSR7TShlKX1gKX0sZ2V0RGF0YUF0dHJpYnV0ZXModCl7aWYoIXQpcmV0dXJue307Y29uc3QgZT17fSxpPU9iamVjdC5rZXlzKHQuZGF0YXNldCkuZmlsdGVyKCh0PT50LnN0YXJ0c1dpdGgoXCJic1wiKSYmIXQuc3RhcnRzV2l0aChcImJzQ29uZmlnXCIpKSk7Zm9yKGNvbnN0IG4gb2YgaSl7bGV0IGk9bi5yZXBsYWNlKC9eYnMvLFwiXCIpO2k9aS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKStpLnNsaWNlKDEsaS5sZW5ndGgpLGVbaV09aih0LmRhdGFzZXRbbl0pfXJldHVybiBlfSxnZXREYXRhQXR0cmlidXRlOih0LGUpPT5qKHQuZ2V0QXR0cmlidXRlKGBkYXRhLWJzLSR7TShlKX1gKSl9O2NsYXNzIEh7c3RhdGljIGdldCBEZWZhdWx0KCl7cmV0dXJue319c3RhdGljIGdldCBEZWZhdWx0VHlwZSgpe3JldHVybnt9fXN0YXRpYyBnZXQgTkFNRSgpe3Rocm93IG5ldyBFcnJvcignWW91IGhhdmUgdG8gaW1wbGVtZW50IHRoZSBzdGF0aWMgbWV0aG9kIFwiTkFNRVwiLCBmb3IgZWFjaCBjb21wb25lbnQhJyl9X2dldENvbmZpZyh0KXtyZXR1cm4gdD10aGlzLl9tZXJnZUNvbmZpZ09iaih0KSx0PXRoaXMuX2NvbmZpZ0FmdGVyTWVyZ2UodCksdGhpcy5fdHlwZUNoZWNrQ29uZmlnKHQpLHR9X2NvbmZpZ0FmdGVyTWVyZ2UodCl7cmV0dXJuIHR9X21lcmdlQ29uZmlnT2JqKHQsZSl7Y29uc3QgaT1vKGUpP0YuZ2V0RGF0YUF0dHJpYnV0ZShlLFwiY29uZmlnXCIpOnt9O3JldHVybnsuLi50aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsLi4uXCJvYmplY3RcIj09dHlwZW9mIGk/aTp7fSwuLi5vKGUpP0YuZ2V0RGF0YUF0dHJpYnV0ZXMoZSk6e30sLi4uXCJvYmplY3RcIj09dHlwZW9mIHQ/dDp7fX19X3R5cGVDaGVja0NvbmZpZyh0LGU9dGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSl7Zm9yKGNvbnN0W24sc11vZiBPYmplY3QuZW50cmllcyhlKSl7Y29uc3QgZT10W25dLHI9byhlKT9cImVsZW1lbnRcIjpudWxsPT0oaT1lKT9gJHtpfWA6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGkpLm1hdGNoKC9cXHMoW2Etel0rKS9pKVsxXS50b0xvd2VyQ2FzZSgpO2lmKCFuZXcgUmVnRXhwKHMpLnRlc3QocikpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLk5BTUUudG9VcHBlckNhc2UoKX06IE9wdGlvbiBcIiR7bn1cIiBwcm92aWRlZCB0eXBlIFwiJHtyfVwiIGJ1dCBleHBlY3RlZCB0eXBlIFwiJHtzfVwiLmApfXZhciBpfX1jbGFzcyBXIGV4dGVuZHMgSHtjb25zdHJ1Y3Rvcih0LGkpe3N1cGVyKCksKHQ9cih0KSkmJih0aGlzLl9lbGVtZW50PXQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhpKSxlLnNldCh0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksdGhpcykpfWRpc3Bvc2UoKXtlLnJlbW92ZSh0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVkpLE4ub2ZmKHRoaXMuX2VsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpO2Zvcihjb25zdCB0IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXRoaXNbdF09bnVsbH1fcXVldWVDYWxsYmFjayh0LGUsaT0hMCl7Xyh0LGUsaSl9X2dldENvbmZpZyh0KXtyZXR1cm4gdD10aGlzLl9tZXJnZUNvbmZpZ09iaih0LHRoaXMuX2VsZW1lbnQpLHQ9dGhpcy5fY29uZmlnQWZ0ZXJNZXJnZSh0KSx0aGlzLl90eXBlQ2hlY2tDb25maWcodCksdH1zdGF0aWMgZ2V0SW5zdGFuY2UodCl7cmV0dXJuIGUuZ2V0KHIodCksdGhpcy5EQVRBX0tFWSl9c3RhdGljIGdldE9yQ3JlYXRlSW5zdGFuY2UodCxlPXt9KXtyZXR1cm4gdGhpcy5nZXRJbnN0YW5jZSh0KXx8bmV3IHRoaXModCxcIm9iamVjdFwiPT10eXBlb2YgZT9lOm51bGwpfXN0YXRpYyBnZXQgVkVSU0lPTigpe3JldHVyblwiNS4zLjNcIn1zdGF0aWMgZ2V0IERBVEFfS0VZKCl7cmV0dXJuYGJzLiR7dGhpcy5OQU1FfWB9c3RhdGljIGdldCBFVkVOVF9LRVkoKXtyZXR1cm5gLiR7dGhpcy5EQVRBX0tFWX1gfXN0YXRpYyBldmVudE5hbWUodCl7cmV0dXJuYCR7dH0ke3RoaXMuRVZFTlRfS0VZfWB9fWNvbnN0IEI9dD0+e2xldCBlPXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1icy10YXJnZXRcIik7aWYoIWV8fFwiI1wiPT09ZSl7bGV0IGk9dC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpO2lmKCFpfHwhaS5pbmNsdWRlcyhcIiNcIikmJiFpLnN0YXJ0c1dpdGgoXCIuXCIpKXJldHVybiBudWxsO2kuaW5jbHVkZXMoXCIjXCIpJiYhaS5zdGFydHNXaXRoKFwiI1wiKSYmKGk9YCMke2kuc3BsaXQoXCIjXCIpWzFdfWApLGU9aSYmXCIjXCIhPT1pP2kudHJpbSgpOm51bGx9cmV0dXJuIGU/ZS5zcGxpdChcIixcIikubWFwKCh0PT5uKHQpKSkuam9pbihcIixcIik6bnVsbH0sej17ZmluZDoodCxlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk9PltdLmNvbmNhdCguLi5FbGVtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsLmNhbGwoZSx0KSksZmluZE9uZToodCxlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk9PkVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3IuY2FsbChlLHQpLGNoaWxkcmVuOih0LGUpPT5bXS5jb25jYXQoLi4udC5jaGlsZHJlbikuZmlsdGVyKCh0PT50Lm1hdGNoZXMoZSkpKSxwYXJlbnRzKHQsZSl7Y29uc3QgaT1bXTtsZXQgbj10LnBhcmVudE5vZGUuY2xvc2VzdChlKTtmb3IoO247KWkucHVzaChuKSxuPW4ucGFyZW50Tm9kZS5jbG9zZXN0KGUpO3JldHVybiBpfSxwcmV2KHQsZSl7bGV0IGk9dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO2Zvcig7aTspe2lmKGkubWF0Y2hlcyhlKSlyZXR1cm5baV07aT1pLnByZXZpb3VzRWxlbWVudFNpYmxpbmd9cmV0dXJuW119LG5leHQodCxlKXtsZXQgaT10Lm5leHRFbGVtZW50U2libGluZztmb3IoO2k7KXtpZihpLm1hdGNoZXMoZSkpcmV0dXJuW2ldO2k9aS5uZXh0RWxlbWVudFNpYmxpbmd9cmV0dXJuW119LGZvY3VzYWJsZUNoaWxkcmVuKHQpe2NvbnN0IGU9W1wiYVwiLFwiYnV0dG9uXCIsXCJpbnB1dFwiLFwidGV4dGFyZWFcIixcInNlbGVjdFwiLFwiZGV0YWlsc1wiLFwiW3RhYmluZGV4XVwiLCdbY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXSddLm1hcCgodD0+YCR7dH06bm90KFt0YWJpbmRleF49XCItXCJdKWApKS5qb2luKFwiLFwiKTtyZXR1cm4gdGhpcy5maW5kKGUsdCkuZmlsdGVyKCh0PT4hbCh0KSYmYSh0KSkpfSxnZXRTZWxlY3RvckZyb21FbGVtZW50KHQpe2NvbnN0IGU9Qih0KTtyZXR1cm4gZSYmei5maW5kT25lKGUpP2U6bnVsbH0sZ2V0RWxlbWVudEZyb21TZWxlY3Rvcih0KXtjb25zdCBlPUIodCk7cmV0dXJuIGU/ei5maW5kT25lKGUpOm51bGx9LGdldE11bHRpcGxlRWxlbWVudHNGcm9tU2VsZWN0b3IodCl7Y29uc3QgZT1CKHQpO3JldHVybiBlP3ouZmluZChlKTpbXX19LFI9KHQsZT1cImhpZGVcIik9Pntjb25zdCBpPWBjbGljay5kaXNtaXNzJHt0LkVWRU5UX0tFWX1gLG49dC5OQU1FO04ub24oZG9jdW1lbnQsaSxgW2RhdGEtYnMtZGlzbWlzcz1cIiR7bn1cIl1gLChmdW5jdGlvbihpKXtpZihbXCJBXCIsXCJBUkVBXCJdLmluY2x1ZGVzKHRoaXMudGFnTmFtZSkmJmkucHJldmVudERlZmF1bHQoKSxsKHRoaXMpKXJldHVybjtjb25zdCBzPXouZ2V0RWxlbWVudEZyb21TZWxlY3Rvcih0aGlzKXx8dGhpcy5jbG9zZXN0KGAuJHtufWApO3QuZ2V0T3JDcmVhdGVJbnN0YW5jZShzKVtlXSgpfSkpfSxxPVwiLmJzLmFsZXJ0XCIsVj1gY2xvc2Uke3F9YCxLPWBjbG9zZWQke3F9YDtjbGFzcyBRIGV4dGVuZHMgV3tzdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm5cImFsZXJ0XCJ9Y2xvc2UoKXtpZihOLnRyaWdnZXIodGhpcy5fZWxlbWVudCxWKS5kZWZhdWx0UHJldmVudGVkKXJldHVybjt0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93XCIpO2NvbnN0IHQ9dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJmYWRlXCIpO3RoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT50aGlzLl9kZXN0cm95RWxlbWVudCgpKSx0aGlzLl9lbGVtZW50LHQpfV9kZXN0cm95RWxlbWVudCgpe3RoaXMuX2VsZW1lbnQucmVtb3ZlKCksTi50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsSyksdGhpcy5kaXNwb3NlKCl9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9US5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtpZih2b2lkIDA9PT1lW3RdfHx0LnN0YXJ0c1dpdGgoXCJfXCIpfHxcImNvbnN0cnVjdG9yXCI9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7dH1cImApO2VbdF0odGhpcyl9fSkpfX1SKFEsXCJjbG9zZVwiKSxtKFEpO2NvbnN0IFg9J1tkYXRhLWJzLXRvZ2dsZT1cImJ1dHRvblwiXSc7Y2xhc3MgWSBleHRlbmRzIFd7c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuXCJidXR0b25cIn10b2dnbGUoKXt0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtcHJlc3NlZFwiLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShcImFjdGl2ZVwiKSl9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9WS5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpO1widG9nZ2xlXCI9PT10JiZlW3RdKCl9KSl9fU4ub24oZG9jdW1lbnQsXCJjbGljay5icy5idXR0b24uZGF0YS1hcGlcIixYLCh0PT57dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IGU9dC50YXJnZXQuY2xvc2VzdChYKTtZLmdldE9yQ3JlYXRlSW5zdGFuY2UoZSkudG9nZ2xlKCl9KSksbShZKTtjb25zdCBVPVwiLmJzLnN3aXBlXCIsRz1gdG91Y2hzdGFydCR7VX1gLEo9YHRvdWNobW92ZSR7VX1gLFo9YHRvdWNoZW5kJHtVfWAsdHQ9YHBvaW50ZXJkb3duJHtVfWAsZXQ9YHBvaW50ZXJ1cCR7VX1gLGl0PXtlbmRDYWxsYmFjazpudWxsLGxlZnRDYWxsYmFjazpudWxsLHJpZ2h0Q2FsbGJhY2s6bnVsbH0sbnQ9e2VuZENhbGxiYWNrOlwiKGZ1bmN0aW9ufG51bGwpXCIsbGVmdENhbGxiYWNrOlwiKGZ1bmN0aW9ufG51bGwpXCIscmlnaHRDYWxsYmFjazpcIihmdW5jdGlvbnxudWxsKVwifTtjbGFzcyBzdCBleHRlbmRzIEh7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuX2VsZW1lbnQ9dCx0JiZzdC5pc1N1cHBvcnRlZCgpJiYodGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9kZWx0YVg9MCx0aGlzLl9zdXBwb3J0UG9pbnRlckV2ZW50cz1Cb29sZWFuKHdpbmRvdy5Qb2ludGVyRXZlbnQpLHRoaXMuX2luaXRFdmVudHMoKSl9c3RhdGljIGdldCBEZWZhdWx0KCl7cmV0dXJuIGl0fXN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKXtyZXR1cm4gbnR9c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuXCJzd2lwZVwifWRpc3Bvc2UoKXtOLm9mZih0aGlzLl9lbGVtZW50LFUpfV9zdGFydCh0KXt0aGlzLl9zdXBwb3J0UG9pbnRlckV2ZW50cz90aGlzLl9ldmVudElzUG9pbnRlclBlblRvdWNoKHQpJiYodGhpcy5fZGVsdGFYPXQuY2xpZW50WCk6dGhpcy5fZGVsdGFYPXQudG91Y2hlc1swXS5jbGllbnRYfV9lbmQodCl7dGhpcy5fZXZlbnRJc1BvaW50ZXJQZW5Ub3VjaCh0KSYmKHRoaXMuX2RlbHRhWD10LmNsaWVudFgtdGhpcy5fZGVsdGFYKSx0aGlzLl9oYW5kbGVTd2lwZSgpLGcodGhpcy5fY29uZmlnLmVuZENhbGxiYWNrKX1fbW92ZSh0KXt0aGlzLl9kZWx0YVg9dC50b3VjaGVzJiZ0LnRvdWNoZXMubGVuZ3RoPjE/MDp0LnRvdWNoZXNbMF0uY2xpZW50WC10aGlzLl9kZWx0YVh9X2hhbmRsZVN3aXBlKCl7Y29uc3QgdD1NYXRoLmFicyh0aGlzLl9kZWx0YVgpO2lmKHQ8PTQwKXJldHVybjtjb25zdCBlPXQvdGhpcy5fZGVsdGFYO3RoaXMuX2RlbHRhWD0wLGUmJmcoZT4wP3RoaXMuX2NvbmZpZy5yaWdodENhbGxiYWNrOnRoaXMuX2NvbmZpZy5sZWZ0Q2FsbGJhY2spfV9pbml0RXZlbnRzKCl7dGhpcy5fc3VwcG9ydFBvaW50ZXJFdmVudHM/KE4ub24odGhpcy5fZWxlbWVudCx0dCwodD0+dGhpcy5fc3RhcnQodCkpKSxOLm9uKHRoaXMuX2VsZW1lbnQsZXQsKHQ9PnRoaXMuX2VuZCh0KSkpLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChcInBvaW50ZXItZXZlbnRcIikpOihOLm9uKHRoaXMuX2VsZW1lbnQsRywodD0+dGhpcy5fc3RhcnQodCkpKSxOLm9uKHRoaXMuX2VsZW1lbnQsSiwodD0+dGhpcy5fbW92ZSh0KSkpLE4ub24odGhpcy5fZWxlbWVudCxaLCh0PT50aGlzLl9lbmQodCkpKSl9X2V2ZW50SXNQb2ludGVyUGVuVG91Y2godCl7cmV0dXJuIHRoaXMuX3N1cHBvcnRQb2ludGVyRXZlbnRzJiYoXCJwZW5cIj09PXQucG9pbnRlclR5cGV8fFwidG91Y2hcIj09PXQucG9pbnRlclR5cGUpfXN0YXRpYyBpc1N1cHBvcnRlZCgpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4wfX1jb25zdCBvdD1cIi5icy5jYXJvdXNlbFwiLHJ0PVwiLmRhdGEtYXBpXCIsYXQ9XCJuZXh0XCIsbHQ9XCJwcmV2XCIsY3Q9XCJsZWZ0XCIsaHQ9XCJyaWdodFwiLGR0PWBzbGlkZSR7b3R9YCx1dD1gc2xpZCR7b3R9YCxmdD1ga2V5ZG93biR7b3R9YCxwdD1gbW91c2VlbnRlciR7b3R9YCxtdD1gbW91c2VsZWF2ZSR7b3R9YCxndD1gZHJhZ3N0YXJ0JHtvdH1gLF90PWBsb2FkJHtvdH0ke3J0fWAsYnQ9YGNsaWNrJHtvdH0ke3J0fWAsdnQ9XCJjYXJvdXNlbFwiLHl0PVwiYWN0aXZlXCIsd3Q9XCIuYWN0aXZlXCIsQXQ9XCIuY2Fyb3VzZWwtaXRlbVwiLEV0PXd0K0F0LFR0PXtBcnJvd0xlZnQ6aHQsQXJyb3dSaWdodDpjdH0sQ3Q9e2ludGVydmFsOjVlMyxrZXlib2FyZDohMCxwYXVzZTpcImhvdmVyXCIscmlkZTohMSx0b3VjaDohMCx3cmFwOiEwfSxPdD17aW50ZXJ2YWw6XCIobnVtYmVyfGJvb2xlYW4pXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIscGF1c2U6XCIoc3RyaW5nfGJvb2xlYW4pXCIscmlkZTpcIihib29sZWFufHN0cmluZylcIix0b3VjaDpcImJvb2xlYW5cIix3cmFwOlwiYm9vbGVhblwifTtjbGFzcyB4dCBleHRlbmRzIFd7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMuX2ludGVydmFsPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2lzU2xpZGluZz0hMSx0aGlzLnRvdWNoVGltZW91dD1udWxsLHRoaXMuX3N3aXBlSGVscGVyPW51bGwsdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQ9ei5maW5kT25lKFwiLmNhcm91c2VsLWluZGljYXRvcnNcIix0aGlzLl9lbGVtZW50KSx0aGlzLl9hZGRFdmVudExpc3RlbmVycygpLHRoaXMuX2NvbmZpZy5yaWRlPT09dnQmJnRoaXMuY3ljbGUoKX1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gQ3R9c3RhdGljIGdldCBEZWZhdWx0VHlwZSgpe3JldHVybiBPdH1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm5cImNhcm91c2VsXCJ9bmV4dCgpe3RoaXMuX3NsaWRlKGF0KX1uZXh0V2hlblZpc2libGUoKXshZG9jdW1lbnQuaGlkZGVuJiZhKHRoaXMuX2VsZW1lbnQpJiZ0aGlzLm5leHQoKX1wcmV2KCl7dGhpcy5fc2xpZGUobHQpfXBhdXNlKCl7dGhpcy5faXNTbGlkaW5nJiZzKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2NsZWFySW50ZXJ2YWwoKX1jeWNsZSgpe3RoaXMuX2NsZWFySW50ZXJ2YWwoKSx0aGlzLl91cGRhdGVJbnRlcnZhbCgpLHRoaXMuX2ludGVydmFsPXNldEludGVydmFsKCgoKT0+dGhpcy5uZXh0V2hlblZpc2libGUoKSksdGhpcy5fY29uZmlnLmludGVydmFsKX1fbWF5YmVFbmFibGVDeWNsZSgpe3RoaXMuX2NvbmZpZy5yaWRlJiYodGhpcy5faXNTbGlkaW5nP04ub25lKHRoaXMuX2VsZW1lbnQsdXQsKCgpPT50aGlzLmN5Y2xlKCkpKTp0aGlzLmN5Y2xlKCkpfXRvKHQpe2NvbnN0IGU9dGhpcy5fZ2V0SXRlbXMoKTtpZih0PmUubGVuZ3RoLTF8fHQ8MClyZXR1cm47aWYodGhpcy5faXNTbGlkaW5nKXJldHVybiB2b2lkIE4ub25lKHRoaXMuX2VsZW1lbnQsdXQsKCgpPT50aGlzLnRvKHQpKSk7Y29uc3QgaT10aGlzLl9nZXRJdGVtSW5kZXgodGhpcy5fZ2V0QWN0aXZlKCkpO2lmKGk9PT10KXJldHVybjtjb25zdCBuPXQ+aT9hdDpsdDt0aGlzLl9zbGlkZShuLGVbdF0pfWRpc3Bvc2UoKXt0aGlzLl9zd2lwZUhlbHBlciYmdGhpcy5fc3dpcGVIZWxwZXIuZGlzcG9zZSgpLHN1cGVyLmRpc3Bvc2UoKX1fY29uZmlnQWZ0ZXJNZXJnZSh0KXtyZXR1cm4gdC5kZWZhdWx0SW50ZXJ2YWw9dC5pbnRlcnZhbCx0fV9hZGRFdmVudExpc3RlbmVycygpe3RoaXMuX2NvbmZpZy5rZXlib2FyZCYmTi5vbih0aGlzLl9lbGVtZW50LGZ0LCh0PT50aGlzLl9rZXlkb3duKHQpKSksXCJob3ZlclwiPT09dGhpcy5fY29uZmlnLnBhdXNlJiYoTi5vbih0aGlzLl9lbGVtZW50LHB0LCgoKT0+dGhpcy5wYXVzZSgpKSksTi5vbih0aGlzLl9lbGVtZW50LG10LCgoKT0+dGhpcy5fbWF5YmVFbmFibGVDeWNsZSgpKSkpLHRoaXMuX2NvbmZpZy50b3VjaCYmc3QuaXNTdXBwb3J0ZWQoKSYmdGhpcy5fYWRkVG91Y2hFdmVudExpc3RlbmVycygpfV9hZGRUb3VjaEV2ZW50TGlzdGVuZXJzKCl7Zm9yKGNvbnN0IHQgb2Ygei5maW5kKFwiLmNhcm91c2VsLWl0ZW0gaW1nXCIsdGhpcy5fZWxlbWVudCkpTi5vbih0LGd0LCh0PT50LnByZXZlbnREZWZhdWx0KCkpKTtjb25zdCB0PXtsZWZ0Q2FsbGJhY2s6KCk9PnRoaXMuX3NsaWRlKHRoaXMuX2RpcmVjdGlvblRvT3JkZXIoY3QpKSxyaWdodENhbGxiYWNrOigpPT50aGlzLl9zbGlkZSh0aGlzLl9kaXJlY3Rpb25Ub09yZGVyKGh0KSksZW5kQ2FsbGJhY2s6KCk9PntcImhvdmVyXCI9PT10aGlzLl9jb25maWcucGF1c2UmJih0aGlzLnBhdXNlKCksdGhpcy50b3VjaFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCksdGhpcy50b3VjaFRpbWVvdXQ9c2V0VGltZW91dCgoKCk9PnRoaXMuX21heWJlRW5hYmxlQ3ljbGUoKSksNTAwK3RoaXMuX2NvbmZpZy5pbnRlcnZhbCkpfX07dGhpcy5fc3dpcGVIZWxwZXI9bmV3IHN0KHRoaXMuX2VsZW1lbnQsdCl9X2tleWRvd24odCl7aWYoL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKSlyZXR1cm47Y29uc3QgZT1UdFt0LmtleV07ZSYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9zbGlkZSh0aGlzLl9kaXJlY3Rpb25Ub09yZGVyKGUpKSl9X2dldEl0ZW1JbmRleCh0KXtyZXR1cm4gdGhpcy5fZ2V0SXRlbXMoKS5pbmRleE9mKHQpfV9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KHQpe2lmKCF0aGlzLl9pbmRpY2F0b3JzRWxlbWVudClyZXR1cm47Y29uc3QgZT16LmZpbmRPbmUod3QsdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpO2UuY2xhc3NMaXN0LnJlbW92ZSh5dCksZS5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWN1cnJlbnRcIik7Y29uc3QgaT16LmZpbmRPbmUoYFtkYXRhLWJzLXNsaWRlLXRvPVwiJHt0fVwiXWAsdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpO2kmJihpLmNsYXNzTGlzdC5hZGQoeXQpLGkuc2V0QXR0cmlidXRlKFwiYXJpYS1jdXJyZW50XCIsXCJ0cnVlXCIpKX1fdXBkYXRlSW50ZXJ2YWwoKXtjb25zdCB0PXRoaXMuX2FjdGl2ZUVsZW1lbnR8fHRoaXMuX2dldEFjdGl2ZSgpO2lmKCF0KXJldHVybjtjb25zdCBlPU51bWJlci5wYXJzZUludCh0LmdldEF0dHJpYnV0ZShcImRhdGEtYnMtaW50ZXJ2YWxcIiksMTApO3RoaXMuX2NvbmZpZy5pbnRlcnZhbD1lfHx0aGlzLl9jb25maWcuZGVmYXVsdEludGVydmFsfV9zbGlkZSh0LGU9bnVsbCl7aWYodGhpcy5faXNTbGlkaW5nKXJldHVybjtjb25zdCBpPXRoaXMuX2dldEFjdGl2ZSgpLG49dD09PWF0LHM9ZXx8Yih0aGlzLl9nZXRJdGVtcygpLGksbix0aGlzLl9jb25maWcud3JhcCk7aWYocz09PWkpcmV0dXJuO2NvbnN0IG89dGhpcy5fZ2V0SXRlbUluZGV4KHMpLHI9ZT0+Ti50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsZSx7cmVsYXRlZFRhcmdldDpzLGRpcmVjdGlvbjp0aGlzLl9vcmRlclRvRGlyZWN0aW9uKHQpLGZyb206dGhpcy5fZ2V0SXRlbUluZGV4KGkpLHRvOm99KTtpZihyKGR0KS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtpZighaXx8IXMpcmV0dXJuO2NvbnN0IGE9Qm9vbGVhbih0aGlzLl9pbnRlcnZhbCk7dGhpcy5wYXVzZSgpLHRoaXMuX2lzU2xpZGluZz0hMCx0aGlzLl9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KG8pLHRoaXMuX2FjdGl2ZUVsZW1lbnQ9cztjb25zdCBsPW4/XCJjYXJvdXNlbC1pdGVtLXN0YXJ0XCI6XCJjYXJvdXNlbC1pdGVtLWVuZFwiLGM9bj9cImNhcm91c2VsLWl0ZW0tbmV4dFwiOlwiY2Fyb3VzZWwtaXRlbS1wcmV2XCI7cy5jbGFzc0xpc3QuYWRkKGMpLGQocyksaS5jbGFzc0xpc3QuYWRkKGwpLHMuY2xhc3NMaXN0LmFkZChsKSx0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e3MuY2xhc3NMaXN0LnJlbW92ZShsLGMpLHMuY2xhc3NMaXN0LmFkZCh5dCksaS5jbGFzc0xpc3QucmVtb3ZlKHl0LGMsbCksdGhpcy5faXNTbGlkaW5nPSExLHIodXQpfSksaSx0aGlzLl9pc0FuaW1hdGVkKCkpLGEmJnRoaXMuY3ljbGUoKX1faXNBbmltYXRlZCgpe3JldHVybiB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcInNsaWRlXCIpfV9nZXRBY3RpdmUoKXtyZXR1cm4gei5maW5kT25lKEV0LHRoaXMuX2VsZW1lbnQpfV9nZXRJdGVtcygpe3JldHVybiB6LmZpbmQoQXQsdGhpcy5fZWxlbWVudCl9X2NsZWFySW50ZXJ2YWwoKXt0aGlzLl9pbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpLHRoaXMuX2ludGVydmFsPW51bGwpfV9kaXJlY3Rpb25Ub09yZGVyKHQpe3JldHVybiBwKCk/dD09PWN0P2x0OmF0OnQ9PT1jdD9hdDpsdH1fb3JkZXJUb0RpcmVjdGlvbih0KXtyZXR1cm4gcCgpP3Q9PT1sdD9jdDpodDp0PT09bHQ/aHQ6Y3R9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9eHQuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKFwibnVtYmVyXCIhPXR5cGVvZiB0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7aWYodm9pZCAwPT09ZVt0XXx8dC5zdGFydHNXaXRoKFwiX1wiKXx8XCJjb25zdHJ1Y3RvclwiPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke3R9XCJgKTtlW3RdKCl9fWVsc2UgZS50byh0KX0pKX19Ti5vbihkb2N1bWVudCxidCxcIltkYXRhLWJzLXNsaWRlXSwgW2RhdGEtYnMtc2xpZGUtdG9dXCIsKGZ1bmN0aW9uKHQpe2NvbnN0IGU9ei5nZXRFbGVtZW50RnJvbVNlbGVjdG9yKHRoaXMpO2lmKCFlfHwhZS5jbGFzc0xpc3QuY29udGFpbnModnQpKXJldHVybjt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaT14dC5nZXRPckNyZWF0ZUluc3RhbmNlKGUpLG49dGhpcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLWJzLXNsaWRlLXRvXCIpO3JldHVybiBuPyhpLnRvKG4pLHZvaWQgaS5fbWF5YmVFbmFibGVDeWNsZSgpKTpcIm5leHRcIj09PUYuZ2V0RGF0YUF0dHJpYnV0ZSh0aGlzLFwic2xpZGVcIik/KGkubmV4dCgpLHZvaWQgaS5fbWF5YmVFbmFibGVDeWNsZSgpKTooaS5wcmV2KCksdm9pZCBpLl9tYXliZUVuYWJsZUN5Y2xlKCkpfSkpLE4ub24od2luZG93LF90LCgoKT0+e2NvbnN0IHQ9ei5maW5kKCdbZGF0YS1icy1yaWRlPVwiY2Fyb3VzZWxcIl0nKTtmb3IoY29uc3QgZSBvZiB0KXh0LmdldE9yQ3JlYXRlSW5zdGFuY2UoZSl9KSksbSh4dCk7Y29uc3Qga3Q9XCIuYnMuY29sbGFwc2VcIixMdD1gc2hvdyR7a3R9YCxTdD1gc2hvd24ke2t0fWAsRHQ9YGhpZGUke2t0fWAsJHQ9YGhpZGRlbiR7a3R9YCxJdD1gY2xpY2ske2t0fS5kYXRhLWFwaWAsTnQ9XCJzaG93XCIsUHQ9XCJjb2xsYXBzZVwiLGp0PVwiY29sbGFwc2luZ1wiLE10PWA6c2NvcGUgLiR7UHR9IC4ke1B0fWAsRnQ9J1tkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJdJyxIdD17cGFyZW50Om51bGwsdG9nZ2xlOiEwfSxXdD17cGFyZW50OlwiKG51bGx8ZWxlbWVudClcIix0b2dnbGU6XCJib29sZWFuXCJ9O2NsYXNzIEJ0IGV4dGVuZHMgV3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX3RyaWdnZXJBcnJheT1bXTtjb25zdCBpPXouZmluZChGdCk7Zm9yKGNvbnN0IHQgb2YgaSl7Y29uc3QgZT16LmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCksaT16LmZpbmQoZSkuZmlsdGVyKCh0PT50PT09dGhpcy5fZWxlbWVudCkpO251bGwhPT1lJiZpLmxlbmd0aCYmdGhpcy5fdHJpZ2dlckFycmF5LnB1c2godCl9dGhpcy5faW5pdGlhbGl6ZUNoaWxkcmVuKCksdGhpcy5fY29uZmlnLnBhcmVudHx8dGhpcy5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuX3RyaWdnZXJBcnJheSx0aGlzLl9pc1Nob3duKCkpLHRoaXMuX2NvbmZpZy50b2dnbGUmJnRoaXMudG9nZ2xlKCl9c3RhdGljIGdldCBEZWZhdWx0KCl7cmV0dXJuIEh0fXN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKXtyZXR1cm4gV3R9c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuXCJjb2xsYXBzZVwifXRvZ2dsZSgpe3RoaXMuX2lzU2hvd24oKT90aGlzLmhpZGUoKTp0aGlzLnNob3coKX1zaG93KCl7aWYodGhpcy5faXNUcmFuc2l0aW9uaW5nfHx0aGlzLl9pc1Nob3duKCkpcmV0dXJuO2xldCB0PVtdO2lmKHRoaXMuX2NvbmZpZy5wYXJlbnQmJih0PXRoaXMuX2dldEZpcnN0TGV2ZWxDaGlsZHJlbihcIi5jb2xsYXBzZS5zaG93LCAuY29sbGFwc2UuY29sbGFwc2luZ1wiKS5maWx0ZXIoKHQ9PnQhPT10aGlzLl9lbGVtZW50KSkubWFwKCh0PT5CdC5nZXRPckNyZWF0ZUluc3RhbmNlKHQse3RvZ2dsZTohMX0pKSkpLHQubGVuZ3RoJiZ0WzBdLl9pc1RyYW5zaXRpb25pbmcpcmV0dXJuO2lmKE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LEx0KS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtmb3IoY29uc3QgZSBvZiB0KWUuaGlkZSgpO2NvbnN0IGU9dGhpcy5fZ2V0RGltZW5zaW9uKCk7dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFB0KSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoanQpLHRoaXMuX2VsZW1lbnQuc3R5bGVbZV09MCx0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fdHJpZ2dlckFycmF5LCEwKSx0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITA7Y29uc3QgaT1gc2Nyb2xsJHtlWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1gO3RoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShqdCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFB0LE50KSx0aGlzLl9lbGVtZW50LnN0eWxlW2VdPVwiXCIsTi50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsU3QpfSksdGhpcy5fZWxlbWVudCwhMCksdGhpcy5fZWxlbWVudC5zdHlsZVtlXT1gJHt0aGlzLl9lbGVtZW50W2ldfXB4YH1oaWRlKCl7aWYodGhpcy5faXNUcmFuc2l0aW9uaW5nfHwhdGhpcy5faXNTaG93bigpKXJldHVybjtpZihOLnRyaWdnZXIodGhpcy5fZWxlbWVudCxEdCkuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3QgdD10aGlzLl9nZXREaW1lbnNpb24oKTt0aGlzLl9lbGVtZW50LnN0eWxlW3RdPWAke3RoaXMuX2VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbdF19cHhgLGQodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKGp0KSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoUHQsTnQpO2Zvcihjb25zdCB0IG9mIHRoaXMuX3RyaWdnZXJBcnJheSl7Y29uc3QgZT16LmdldEVsZW1lbnRGcm9tU2VsZWN0b3IodCk7ZSYmIXRoaXMuX2lzU2hvd24oZSkmJnRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhbdF0sITEpfXRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMCx0aGlzLl9lbGVtZW50LnN0eWxlW3RdPVwiXCIsdGhpcy5fcXVldWVDYWxsYmFjaygoKCk9Pnt0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITEsdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGp0KSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoUHQpLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LCR0KX0pLHRoaXMuX2VsZW1lbnQsITApfV9pc1Nob3duKHQ9dGhpcy5fZWxlbWVudCl7cmV0dXJuIHQuY2xhc3NMaXN0LmNvbnRhaW5zKE50KX1fY29uZmlnQWZ0ZXJNZXJnZSh0KXtyZXR1cm4gdC50b2dnbGU9Qm9vbGVhbih0LnRvZ2dsZSksdC5wYXJlbnQ9cih0LnBhcmVudCksdH1fZ2V0RGltZW5zaW9uKCl7cmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiY29sbGFwc2UtaG9yaXpvbnRhbFwiKT9cIndpZHRoXCI6XCJoZWlnaHRcIn1faW5pdGlhbGl6ZUNoaWxkcmVuKCl7aWYoIXRoaXMuX2NvbmZpZy5wYXJlbnQpcmV0dXJuO2NvbnN0IHQ9dGhpcy5fZ2V0Rmlyc3RMZXZlbENoaWxkcmVuKEZ0KTtmb3IoY29uc3QgZSBvZiB0KXtjb25zdCB0PXouZ2V0RWxlbWVudEZyb21TZWxlY3RvcihlKTt0JiZ0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoW2VdLHRoaXMuX2lzU2hvd24odCkpfX1fZ2V0Rmlyc3RMZXZlbENoaWxkcmVuKHQpe2NvbnN0IGU9ei5maW5kKE10LHRoaXMuX2NvbmZpZy5wYXJlbnQpO3JldHVybiB6LmZpbmQodCx0aGlzLl9jb25maWcucGFyZW50KS5maWx0ZXIoKHQ9PiFlLmluY2x1ZGVzKHQpKSl9X2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0LGUpe2lmKHQubGVuZ3RoKWZvcihjb25zdCBpIG9mIHQpaS5jbGFzc0xpc3QudG9nZ2xlKFwiY29sbGFwc2VkXCIsIWUpLGkuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLGUpfXN0YXRpYyBqUXVlcnlJbnRlcmZhY2UodCl7Y29uc3QgZT17fTtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmL3Nob3d8aGlkZS8udGVzdCh0KSYmKGUudG9nZ2xlPSExKSx0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y29uc3QgaT1CdC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsZSk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe2lmKHZvaWQgMD09PWlbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHt0fVwiYCk7aVt0XSgpfX0pKX19Ti5vbihkb2N1bWVudCxJdCxGdCwoZnVuY3Rpb24odCl7KFwiQVwiPT09dC50YXJnZXQudGFnTmFtZXx8dC5kZWxlZ2F0ZVRhcmdldCYmXCJBXCI9PT10LmRlbGVnYXRlVGFyZ2V0LnRhZ05hbWUpJiZ0LnByZXZlbnREZWZhdWx0KCk7Zm9yKGNvbnN0IHQgb2Ygei5nZXRNdWx0aXBsZUVsZW1lbnRzRnJvbVNlbGVjdG9yKHRoaXMpKUJ0LmdldE9yQ3JlYXRlSW5zdGFuY2UodCx7dG9nZ2xlOiExfSkudG9nZ2xlKCl9KSksbShCdCk7dmFyIHp0PVwidG9wXCIsUnQ9XCJib3R0b21cIixxdD1cInJpZ2h0XCIsVnQ9XCJsZWZ0XCIsS3Q9XCJhdXRvXCIsUXQ9W3p0LFJ0LHF0LFZ0XSxYdD1cInN0YXJ0XCIsWXQ9XCJlbmRcIixVdD1cImNsaXBwaW5nUGFyZW50c1wiLEd0PVwidmlld3BvcnRcIixKdD1cInBvcHBlclwiLFp0PVwicmVmZXJlbmNlXCIsdGU9UXQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0LmNvbmNhdChbZStcIi1cIitYdCxlK1wiLVwiK1l0XSl9KSxbXSksZWU9W10uY29uY2F0KFF0LFtLdF0pLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb25jYXQoW2UsZStcIi1cIitYdCxlK1wiLVwiK1l0XSl9KSxbXSksaWU9XCJiZWZvcmVSZWFkXCIsbmU9XCJyZWFkXCIsc2U9XCJhZnRlclJlYWRcIixvZT1cImJlZm9yZU1haW5cIixyZT1cIm1haW5cIixhZT1cImFmdGVyTWFpblwiLGxlPVwiYmVmb3JlV3JpdGVcIixjZT1cIndyaXRlXCIsaGU9XCJhZnRlcldyaXRlXCIsZGU9W2llLG5lLHNlLG9lLHJlLGFlLGxlLGNlLGhlXTtmdW5jdGlvbiB1ZSh0KXtyZXR1cm4gdD8odC5ub2RlTmFtZXx8XCJcIikudG9Mb3dlckNhc2UoKTpudWxsfWZ1bmN0aW9uIGZlKHQpe2lmKG51bGw9PXQpcmV0dXJuIHdpbmRvdztpZihcIltvYmplY3QgV2luZG93XVwiIT09dC50b1N0cmluZygpKXt2YXIgZT10Lm93bmVyRG9jdW1lbnQ7cmV0dXJuIGUmJmUuZGVmYXVsdFZpZXd8fHdpbmRvd31yZXR1cm4gdH1mdW5jdGlvbiBwZSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGZlKHQpLkVsZW1lbnR8fHQgaW5zdGFuY2VvZiBFbGVtZW50fWZ1bmN0aW9uIG1lKHQpe3JldHVybiB0IGluc3RhbmNlb2YgZmUodCkuSFRNTEVsZW1lbnR8fHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudH1mdW5jdGlvbiBnZSh0KXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgU2hhZG93Um9vdCYmKHQgaW5zdGFuY2VvZiBmZSh0KS5TaGFkb3dSb290fHx0IGluc3RhbmNlb2YgU2hhZG93Um9vdCl9Y29uc3QgX2U9e25hbWU6XCJhcHBseVN0eWxlc1wiLGVuYWJsZWQ6ITAscGhhc2U6XCJ3cml0ZVwiLGZuOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGU7T2JqZWN0LmtleXMoZS5lbGVtZW50cykuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9ZS5zdHlsZXNbdF18fHt9LG49ZS5hdHRyaWJ1dGVzW3RdfHx7fSxzPWUuZWxlbWVudHNbdF07bWUocykmJnVlKHMpJiYoT2JqZWN0LmFzc2lnbihzLnN0eWxlLGkpLE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW5bdF07ITE9PT1lP3MucmVtb3ZlQXR0cmlidXRlKHQpOnMuc2V0QXR0cmlidXRlKHQsITA9PT1lP1wiXCI6ZSl9KSkpfSkpfSxlZmZlY3Q6ZnVuY3Rpb24odCl7dmFyIGU9dC5zdGF0ZSxpPXtwb3BwZXI6e3Bvc2l0aW9uOmUub3B0aW9ucy5zdHJhdGVneSxsZWZ0OlwiMFwiLHRvcDpcIjBcIixtYXJnaW46XCIwXCJ9LGFycm93Ontwb3NpdGlvbjpcImFic29sdXRlXCJ9LHJlZmVyZW5jZTp7fX07cmV0dXJuIE9iamVjdC5hc3NpZ24oZS5lbGVtZW50cy5wb3BwZXIuc3R5bGUsaS5wb3BwZXIpLGUuc3R5bGVzPWksZS5lbGVtZW50cy5hcnJvdyYmT2JqZWN0LmFzc2lnbihlLmVsZW1lbnRzLmFycm93LnN0eWxlLGkuYXJyb3cpLGZ1bmN0aW9uKCl7T2JqZWN0LmtleXMoZS5lbGVtZW50cykuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49ZS5lbGVtZW50c1t0XSxzPWUuYXR0cmlidXRlc1t0XXx8e30sbz1PYmplY3Qua2V5cyhlLnN0eWxlcy5oYXNPd25Qcm9wZXJ0eSh0KT9lLnN0eWxlc1t0XTppW3RdKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV09XCJcIix0fSkse30pO21lKG4pJiZ1ZShuKSYmKE9iamVjdC5hc3NpZ24obi5zdHlsZSxvKSxPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtuLnJlbW92ZUF0dHJpYnV0ZSh0KX0pKSl9KSl9fSxyZXF1aXJlczpbXCJjb21wdXRlU3R5bGVzXCJdfTtmdW5jdGlvbiBiZSh0KXtyZXR1cm4gdC5zcGxpdChcIi1cIilbMF19dmFyIHZlPU1hdGgubWF4LHllPU1hdGgubWluLHdlPU1hdGgucm91bmQ7ZnVuY3Rpb24gQWUoKXt2YXIgdD1uYXZpZ2F0b3IudXNlckFnZW50RGF0YTtyZXR1cm4gbnVsbCE9dCYmdC5icmFuZHMmJkFycmF5LmlzQXJyYXkodC5icmFuZHMpP3QuYnJhbmRzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYnJhbmQrXCIvXCIrdC52ZXJzaW9ufSkpLmpvaW4oXCIgXCIpOm5hdmlnYXRvci51c2VyQWdlbnR9ZnVuY3Rpb24gRWUoKXtyZXR1cm4hL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChBZSgpKX1mdW5jdGlvbiBUZSh0LGUsaSl7dm9pZCAwPT09ZSYmKGU9ITEpLHZvaWQgMD09PWkmJihpPSExKTt2YXIgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9MSxvPTE7ZSYmbWUodCkmJihzPXQub2Zmc2V0V2lkdGg+MCYmd2Uobi53aWR0aCkvdC5vZmZzZXRXaWR0aHx8MSxvPXQub2Zmc2V0SGVpZ2h0PjAmJndlKG4uaGVpZ2h0KS90Lm9mZnNldEhlaWdodHx8MSk7dmFyIHI9KHBlKHQpP2ZlKHQpOndpbmRvdykudmlzdWFsVmlld3BvcnQsYT0hRWUoKSYmaSxsPShuLmxlZnQrKGEmJnI/ci5vZmZzZXRMZWZ0OjApKS9zLGM9KG4udG9wKyhhJiZyP3Iub2Zmc2V0VG9wOjApKS9vLGg9bi53aWR0aC9zLGQ9bi5oZWlnaHQvbztyZXR1cm57d2lkdGg6aCxoZWlnaHQ6ZCx0b3A6YyxyaWdodDpsK2gsYm90dG9tOmMrZCxsZWZ0OmwseDpsLHk6Y319ZnVuY3Rpb24gQ2UodCl7dmFyIGU9VGUodCksaT10Lm9mZnNldFdpZHRoLG49dC5vZmZzZXRIZWlnaHQ7cmV0dXJuIE1hdGguYWJzKGUud2lkdGgtaSk8PTEmJihpPWUud2lkdGgpLE1hdGguYWJzKGUuaGVpZ2h0LW4pPD0xJiYobj1lLmhlaWdodCkse3g6dC5vZmZzZXRMZWZ0LHk6dC5vZmZzZXRUb3Asd2lkdGg6aSxoZWlnaHQ6bn19ZnVuY3Rpb24gT2UodCxlKXt2YXIgaT1lLmdldFJvb3ROb2RlJiZlLmdldFJvb3ROb2RlKCk7aWYodC5jb250YWlucyhlKSlyZXR1cm4hMDtpZihpJiZnZShpKSl7dmFyIG49ZTtkb3tpZihuJiZ0LmlzU2FtZU5vZGUobikpcmV0dXJuITA7bj1uLnBhcmVudE5vZGV8fG4uaG9zdH13aGlsZShuKX1yZXR1cm4hMX1mdW5jdGlvbiB4ZSh0KXtyZXR1cm4gZmUodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0KX1mdW5jdGlvbiBrZSh0KXtyZXR1cm5bXCJ0YWJsZVwiLFwidGRcIixcInRoXCJdLmluZGV4T2YodWUodCkpPj0wfWZ1bmN0aW9uIExlKHQpe3JldHVybigocGUodCk/dC5vd25lckRvY3VtZW50OnQuZG9jdW1lbnQpfHx3aW5kb3cuZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBTZSh0KXtyZXR1cm5cImh0bWxcIj09PXVlKHQpP3Q6dC5hc3NpZ25lZFNsb3R8fHQucGFyZW50Tm9kZXx8KGdlKHQpP3QuaG9zdDpudWxsKXx8TGUodCl9ZnVuY3Rpb24gRGUodCl7cmV0dXJuIG1lKHQpJiZcImZpeGVkXCIhPT14ZSh0KS5wb3NpdGlvbj90Lm9mZnNldFBhcmVudDpudWxsfWZ1bmN0aW9uICRlKHQpe2Zvcih2YXIgZT1mZSh0KSxpPURlKHQpO2kmJmtlKGkpJiZcInN0YXRpY1wiPT09eGUoaSkucG9zaXRpb247KWk9RGUoaSk7cmV0dXJuIGkmJihcImh0bWxcIj09PXVlKGkpfHxcImJvZHlcIj09PXVlKGkpJiZcInN0YXRpY1wiPT09eGUoaSkucG9zaXRpb24pP2U6aXx8ZnVuY3Rpb24odCl7dmFyIGU9L2ZpcmVmb3gvaS50ZXN0KEFlKCkpO2lmKC9UcmlkZW50L2kudGVzdChBZSgpKSYmbWUodCkmJlwiZml4ZWRcIj09PXhlKHQpLnBvc2l0aW9uKXJldHVybiBudWxsO3ZhciBpPVNlKHQpO2ZvcihnZShpKSYmKGk9aS5ob3N0KTttZShpKSYmW1wiaHRtbFwiLFwiYm9keVwiXS5pbmRleE9mKHVlKGkpKTwwOyl7dmFyIG49eGUoaSk7aWYoXCJub25lXCIhPT1uLnRyYW5zZm9ybXx8XCJub25lXCIhPT1uLnBlcnNwZWN0aXZlfHxcInBhaW50XCI9PT1uLmNvbnRhaW58fC0xIT09W1widHJhbnNmb3JtXCIsXCJwZXJzcGVjdGl2ZVwiXS5pbmRleE9mKG4ud2lsbENoYW5nZSl8fGUmJlwiZmlsdGVyXCI9PT1uLndpbGxDaGFuZ2V8fGUmJm4uZmlsdGVyJiZcIm5vbmVcIiE9PW4uZmlsdGVyKXJldHVybiBpO2k9aS5wYXJlbnROb2RlfXJldHVybiBudWxsfSh0KXx8ZX1mdW5jdGlvbiBJZSh0KXtyZXR1cm5bXCJ0b3BcIixcImJvdHRvbVwiXS5pbmRleE9mKHQpPj0wP1wieFwiOlwieVwifWZ1bmN0aW9uIE5lKHQsZSxpKXtyZXR1cm4gdmUodCx5ZShlLGkpKX1mdW5jdGlvbiBQZSh0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx7dG9wOjAscmlnaHQ6MCxib3R0b206MCxsZWZ0OjB9LHQpfWZ1bmN0aW9uIGplKHQsZSl7cmV0dXJuIGUucmVkdWNlKChmdW5jdGlvbihlLGkpe3JldHVybiBlW2ldPXQsZX0pLHt9KX1jb25zdCBNZT17bmFtZTpcImFycm93XCIsZW5hYmxlZDohMCxwaGFzZTpcIm1haW5cIixmbjpmdW5jdGlvbih0KXt2YXIgZSxpPXQuc3RhdGUsbj10Lm5hbWUscz10Lm9wdGlvbnMsbz1pLmVsZW1lbnRzLmFycm93LHI9aS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMsYT1iZShpLnBsYWNlbWVudCksbD1JZShhKSxjPVtWdCxxdF0uaW5kZXhPZihhKT49MD9cImhlaWdodFwiOlwid2lkdGhcIjtpZihvJiZyKXt2YXIgaD1mdW5jdGlvbih0LGUpe3JldHVybiBQZShcIm51bWJlclwiIT10eXBlb2YodD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoT2JqZWN0LmFzc2lnbih7fSxlLnJlY3RzLHtwbGFjZW1lbnQ6ZS5wbGFjZW1lbnR9KSk6dCk/dDpqZSh0LFF0KSl9KHMucGFkZGluZyxpKSxkPUNlKG8pLHU9XCJ5XCI9PT1sP3p0OlZ0LGY9XCJ5XCI9PT1sP1J0OnF0LHA9aS5yZWN0cy5yZWZlcmVuY2VbY10raS5yZWN0cy5yZWZlcmVuY2VbbF0tcltsXS1pLnJlY3RzLnBvcHBlcltjXSxtPXJbbF0taS5yZWN0cy5yZWZlcmVuY2VbbF0sZz0kZShvKSxfPWc/XCJ5XCI9PT1sP2cuY2xpZW50SGVpZ2h0fHwwOmcuY2xpZW50V2lkdGh8fDA6MCxiPXAvMi1tLzIsdj1oW3VdLHk9Xy1kW2NdLWhbZl0sdz1fLzItZFtjXS8yK2IsQT1OZSh2LHcseSksRT1sO2kubW9kaWZpZXJzRGF0YVtuXT0oKGU9e30pW0VdPUEsZS5jZW50ZXJPZmZzZXQ9QS13LGUpfX0sZWZmZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT10Lm9wdGlvbnMuZWxlbWVudCxuPXZvaWQgMD09PWk/XCJbZGF0YS1wb3BwZXItYXJyb3ddXCI6aTtudWxsIT1uJiYoXCJzdHJpbmdcIiE9dHlwZW9mIG58fChuPWUuZWxlbWVudHMucG9wcGVyLnF1ZXJ5U2VsZWN0b3IobikpKSYmT2UoZS5lbGVtZW50cy5wb3BwZXIsbikmJihlLmVsZW1lbnRzLmFycm93PW4pfSxyZXF1aXJlczpbXCJwb3BwZXJPZmZzZXRzXCJdLHJlcXVpcmVzSWZFeGlzdHM6W1wicHJldmVudE92ZXJmbG93XCJdfTtmdW5jdGlvbiBGZSh0KXtyZXR1cm4gdC5zcGxpdChcIi1cIilbMV19dmFyIEhlPXt0b3A6XCJhdXRvXCIscmlnaHQ6XCJhdXRvXCIsYm90dG9tOlwiYXV0b1wiLGxlZnQ6XCJhdXRvXCJ9O2Z1bmN0aW9uIFdlKHQpe3ZhciBlLGk9dC5wb3BwZXIsbj10LnBvcHBlclJlY3Qscz10LnBsYWNlbWVudCxvPXQudmFyaWF0aW9uLHI9dC5vZmZzZXRzLGE9dC5wb3NpdGlvbixsPXQuZ3B1QWNjZWxlcmF0aW9uLGM9dC5hZGFwdGl2ZSxoPXQucm91bmRPZmZzZXRzLGQ9dC5pc0ZpeGVkLHU9ci54LGY9dm9pZCAwPT09dT8wOnUscD1yLnksbT12b2lkIDA9PT1wPzA6cCxnPVwiZnVuY3Rpb25cIj09dHlwZW9mIGg/aCh7eDpmLHk6bX0pOnt4OmYseTptfTtmPWcueCxtPWcueTt2YXIgXz1yLmhhc093blByb3BlcnR5KFwieFwiKSxiPXIuaGFzT3duUHJvcGVydHkoXCJ5XCIpLHY9VnQseT16dCx3PXdpbmRvdztpZihjKXt2YXIgQT0kZShpKSxFPVwiY2xpZW50SGVpZ2h0XCIsVD1cImNsaWVudFdpZHRoXCI7QT09PWZlKGkpJiZcInN0YXRpY1wiIT09eGUoQT1MZShpKSkucG9zaXRpb24mJlwiYWJzb2x1dGVcIj09PWEmJihFPVwic2Nyb2xsSGVpZ2h0XCIsVD1cInNjcm9sbFdpZHRoXCIpLChzPT09enR8fChzPT09VnR8fHM9PT1xdCkmJm89PT1ZdCkmJih5PVJ0LG0tPShkJiZBPT09dyYmdy52aXN1YWxWaWV3cG9ydD93LnZpc3VhbFZpZXdwb3J0LmhlaWdodDpBW0VdKS1uLmhlaWdodCxtKj1sPzE6LTEpLHMhPT1WdCYmKHMhPT16dCYmcyE9PVJ0fHxvIT09WXQpfHwodj1xdCxmLT0oZCYmQT09PXcmJncudmlzdWFsVmlld3BvcnQ/dy52aXN1YWxWaWV3cG9ydC53aWR0aDpBW1RdKS1uLndpZHRoLGYqPWw/MTotMSl9dmFyIEMsTz1PYmplY3QuYXNzaWduKHtwb3NpdGlvbjphfSxjJiZIZSkseD0hMD09PWg/ZnVuY3Rpb24odCxlKXt2YXIgaT10Lngsbj10Lnkscz1lLmRldmljZVBpeGVsUmF0aW98fDE7cmV0dXJue3g6d2UoaSpzKS9zfHwwLHk6d2UobipzKS9zfHwwfX0oe3g6Zix5Om19LGZlKGkpKTp7eDpmLHk6bX07cmV0dXJuIGY9eC54LG09eC55LGw/T2JqZWN0LmFzc2lnbih7fSxPLCgoQz17fSlbeV09Yj9cIjBcIjpcIlwiLENbdl09Xz9cIjBcIjpcIlwiLEMudHJhbnNmb3JtPSh3LmRldmljZVBpeGVsUmF0aW98fDEpPD0xP1widHJhbnNsYXRlKFwiK2YrXCJweCwgXCIrbStcInB4KVwiOlwidHJhbnNsYXRlM2QoXCIrZitcInB4LCBcIittK1wicHgsIDApXCIsQykpOk9iamVjdC5hc3NpZ24oe30sTywoKGU9e30pW3ldPWI/bStcInB4XCI6XCJcIixlW3ZdPV8/ZitcInB4XCI6XCJcIixlLnRyYW5zZm9ybT1cIlwiLGUpKX1jb25zdCBCZT17bmFtZTpcImNvbXB1dGVTdHlsZXNcIixlbmFibGVkOiEwLHBoYXNlOlwiYmVmb3JlV3JpdGVcIixmbjpmdW5jdGlvbih0KXt2YXIgZT10LnN0YXRlLGk9dC5vcHRpb25zLG49aS5ncHVBY2NlbGVyYXRpb24scz12b2lkIDA9PT1ufHxuLG89aS5hZGFwdGl2ZSxyPXZvaWQgMD09PW98fG8sYT1pLnJvdW5kT2Zmc2V0cyxsPXZvaWQgMD09PWF8fGEsYz17cGxhY2VtZW50OmJlKGUucGxhY2VtZW50KSx2YXJpYXRpb246RmUoZS5wbGFjZW1lbnQpLHBvcHBlcjplLmVsZW1lbnRzLnBvcHBlcixwb3BwZXJSZWN0OmUucmVjdHMucG9wcGVyLGdwdUFjY2VsZXJhdGlvbjpzLGlzRml4ZWQ6XCJmaXhlZFwiPT09ZS5vcHRpb25zLnN0cmF0ZWd5fTtudWxsIT1lLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyYmKGUuc3R5bGVzLnBvcHBlcj1PYmplY3QuYXNzaWduKHt9LGUuc3R5bGVzLnBvcHBlcixXZShPYmplY3QuYXNzaWduKHt9LGMse29mZnNldHM6ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMscG9zaXRpb246ZS5vcHRpb25zLnN0cmF0ZWd5LGFkYXB0aXZlOnIscm91bmRPZmZzZXRzOmx9KSkpKSxudWxsIT1lLm1vZGlmaWVyc0RhdGEuYXJyb3cmJihlLnN0eWxlcy5hcnJvdz1PYmplY3QuYXNzaWduKHt9LGUuc3R5bGVzLmFycm93LFdlKE9iamVjdC5hc3NpZ24oe30sYyx7b2Zmc2V0czplLm1vZGlmaWVyc0RhdGEuYXJyb3cscG9zaXRpb246XCJhYnNvbHV0ZVwiLGFkYXB0aXZlOiExLHJvdW5kT2Zmc2V0czpsfSkpKSksZS5hdHRyaWJ1dGVzLnBvcHBlcj1PYmplY3QuYXNzaWduKHt9LGUuYXR0cmlidXRlcy5wb3BwZXIse1wiZGF0YS1wb3BwZXItcGxhY2VtZW50XCI6ZS5wbGFjZW1lbnR9KX0sZGF0YTp7fX07dmFyIHplPXtwYXNzaXZlOiEwfTtjb25zdCBSZT17bmFtZTpcImV2ZW50TGlzdGVuZXJzXCIsZW5hYmxlZDohMCxwaGFzZTpcIndyaXRlXCIsZm46ZnVuY3Rpb24oKXt9LGVmZmVjdDpmdW5jdGlvbih0KXt2YXIgZT10LnN0YXRlLGk9dC5pbnN0YW5jZSxuPXQub3B0aW9ucyxzPW4uc2Nyb2xsLG89dm9pZCAwPT09c3x8cyxyPW4ucmVzaXplLGE9dm9pZCAwPT09cnx8cixsPWZlKGUuZWxlbWVudHMucG9wcGVyKSxjPVtdLmNvbmNhdChlLnNjcm9sbFBhcmVudHMucmVmZXJlbmNlLGUuc2Nyb2xsUGFyZW50cy5wb3BwZXIpO3JldHVybiBvJiZjLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkudXBkYXRlLHplKX0pKSxhJiZsLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixpLnVwZGF0ZSx6ZSksZnVuY3Rpb24oKXtvJiZjLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkudXBkYXRlLHplKX0pKSxhJiZsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixpLnVwZGF0ZSx6ZSl9fSxkYXRhOnt9fTt2YXIgcWU9e2xlZnQ6XCJyaWdodFwiLHJpZ2h0OlwibGVmdFwiLGJvdHRvbTpcInRvcFwiLHRvcDpcImJvdHRvbVwifTtmdW5jdGlvbiBWZSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywoZnVuY3Rpb24odCl7cmV0dXJuIHFlW3RdfSkpfXZhciBLZT17c3RhcnQ6XCJlbmRcIixlbmQ6XCJzdGFydFwifTtmdW5jdGlvbiBRZSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9zdGFydHxlbmQvZywoZnVuY3Rpb24odCl7cmV0dXJuIEtlW3RdfSkpfWZ1bmN0aW9uIFhlKHQpe3ZhciBlPWZlKHQpO3JldHVybntzY3JvbGxMZWZ0OmUucGFnZVhPZmZzZXQsc2Nyb2xsVG9wOmUucGFnZVlPZmZzZXR9fWZ1bmN0aW9uIFllKHQpe3JldHVybiBUZShMZSh0KSkubGVmdCtYZSh0KS5zY3JvbGxMZWZ0fWZ1bmN0aW9uIFVlKHQpe3ZhciBlPXhlKHQpLGk9ZS5vdmVyZmxvdyxuPWUub3ZlcmZsb3dYLHM9ZS5vdmVyZmxvd1k7cmV0dXJuL2F1dG98c2Nyb2xsfG92ZXJsYXl8aGlkZGVuLy50ZXN0KGkrcytuKX1mdW5jdGlvbiBHZSh0KXtyZXR1cm5bXCJodG1sXCIsXCJib2R5XCIsXCIjZG9jdW1lbnRcIl0uaW5kZXhPZih1ZSh0KSk+PTA/dC5vd25lckRvY3VtZW50LmJvZHk6bWUodCkmJlVlKHQpP3Q6R2UoU2UodCkpfWZ1bmN0aW9uIEplKHQsZSl7dmFyIGk7dm9pZCAwPT09ZSYmKGU9W10pO3ZhciBuPUdlKHQpLHM9bj09PShudWxsPT0oaT10Lm93bmVyRG9jdW1lbnQpP3ZvaWQgMDppLmJvZHkpLG89ZmUobikscj1zP1tvXS5jb25jYXQoby52aXN1YWxWaWV3cG9ydHx8W10sVWUobik/bjpbXSk6bixhPWUuY29uY2F0KHIpO3JldHVybiBzP2E6YS5jb25jYXQoSmUoU2UocikpKX1mdW5jdGlvbiBaZSh0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0LHtsZWZ0OnQueCx0b3A6dC55LHJpZ2h0OnQueCt0LndpZHRoLGJvdHRvbTp0LnkrdC5oZWlnaHR9KX1mdW5jdGlvbiB0aSh0LGUsaSl7cmV0dXJuIGU9PT1HdD9aZShmdW5jdGlvbih0LGUpe3ZhciBpPWZlKHQpLG49TGUodCkscz1pLnZpc3VhbFZpZXdwb3J0LG89bi5jbGllbnRXaWR0aCxyPW4uY2xpZW50SGVpZ2h0LGE9MCxsPTA7aWYocyl7bz1zLndpZHRoLHI9cy5oZWlnaHQ7dmFyIGM9RWUoKTsoY3x8IWMmJlwiZml4ZWRcIj09PWUpJiYoYT1zLm9mZnNldExlZnQsbD1zLm9mZnNldFRvcCl9cmV0dXJue3dpZHRoOm8saGVpZ2h0OnIseDphK1llKHQpLHk6bH19KHQsaSkpOnBlKGUpP2Z1bmN0aW9uKHQsZSl7dmFyIGk9VGUodCwhMSxcImZpeGVkXCI9PT1lKTtyZXR1cm4gaS50b3A9aS50b3ArdC5jbGllbnRUb3AsaS5sZWZ0PWkubGVmdCt0LmNsaWVudExlZnQsaS5ib3R0b209aS50b3ArdC5jbGllbnRIZWlnaHQsaS5yaWdodD1pLmxlZnQrdC5jbGllbnRXaWR0aCxpLndpZHRoPXQuY2xpZW50V2lkdGgsaS5oZWlnaHQ9dC5jbGllbnRIZWlnaHQsaS54PWkubGVmdCxpLnk9aS50b3AsaX0oZSxpKTpaZShmdW5jdGlvbih0KXt2YXIgZSxpPUxlKHQpLG49WGUodCkscz1udWxsPT0oZT10Lm93bmVyRG9jdW1lbnQpP3ZvaWQgMDplLmJvZHksbz12ZShpLnNjcm9sbFdpZHRoLGkuY2xpZW50V2lkdGgscz9zLnNjcm9sbFdpZHRoOjAscz9zLmNsaWVudFdpZHRoOjApLHI9dmUoaS5zY3JvbGxIZWlnaHQsaS5jbGllbnRIZWlnaHQscz9zLnNjcm9sbEhlaWdodDowLHM/cy5jbGllbnRIZWlnaHQ6MCksYT0tbi5zY3JvbGxMZWZ0K1llKHQpLGw9LW4uc2Nyb2xsVG9wO3JldHVyblwicnRsXCI9PT14ZShzfHxpKS5kaXJlY3Rpb24mJihhKz12ZShpLmNsaWVudFdpZHRoLHM/cy5jbGllbnRXaWR0aDowKS1vKSx7d2lkdGg6byxoZWlnaHQ6cix4OmEseTpsfX0oTGUodCkpKX1mdW5jdGlvbiBlaSh0KXt2YXIgZSxpPXQucmVmZXJlbmNlLG49dC5lbGVtZW50LHM9dC5wbGFjZW1lbnQsbz1zP2JlKHMpOm51bGwscj1zP0ZlKHMpOm51bGwsYT1pLngraS53aWR0aC8yLW4ud2lkdGgvMixsPWkueStpLmhlaWdodC8yLW4uaGVpZ2h0LzI7c3dpdGNoKG8pe2Nhc2UgenQ6ZT17eDphLHk6aS55LW4uaGVpZ2h0fTticmVhaztjYXNlIFJ0OmU9e3g6YSx5OmkueStpLmhlaWdodH07YnJlYWs7Y2FzZSBxdDplPXt4OmkueCtpLndpZHRoLHk6bH07YnJlYWs7Y2FzZSBWdDplPXt4OmkueC1uLndpZHRoLHk6bH07YnJlYWs7ZGVmYXVsdDplPXt4OmkueCx5OmkueX19dmFyIGM9bz9JZShvKTpudWxsO2lmKG51bGwhPWMpe3ZhciBoPVwieVwiPT09Yz9cImhlaWdodFwiOlwid2lkdGhcIjtzd2l0Y2gocil7Y2FzZSBYdDplW2NdPWVbY10tKGlbaF0vMi1uW2hdLzIpO2JyZWFrO2Nhc2UgWXQ6ZVtjXT1lW2NdKyhpW2hdLzItbltoXS8yKX19cmV0dXJuIGV9ZnVuY3Rpb24gaWkodCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIGk9ZSxuPWkucGxhY2VtZW50LHM9dm9pZCAwPT09bj90LnBsYWNlbWVudDpuLG89aS5zdHJhdGVneSxyPXZvaWQgMD09PW8/dC5zdHJhdGVneTpvLGE9aS5ib3VuZGFyeSxsPXZvaWQgMD09PWE/VXQ6YSxjPWkucm9vdEJvdW5kYXJ5LGg9dm9pZCAwPT09Yz9HdDpjLGQ9aS5lbGVtZW50Q29udGV4dCx1PXZvaWQgMD09PWQ/SnQ6ZCxmPWkuYWx0Qm91bmRhcnkscD12b2lkIDAhPT1mJiZmLG09aS5wYWRkaW5nLGc9dm9pZCAwPT09bT8wOm0sXz1QZShcIm51bWJlclwiIT10eXBlb2YgZz9nOmplKGcsUXQpKSxiPXU9PT1KdD9adDpKdCx2PXQucmVjdHMucG9wcGVyLHk9dC5lbGVtZW50c1twP2I6dV0sdz1mdW5jdGlvbih0LGUsaSxuKXt2YXIgcz1cImNsaXBwaW5nUGFyZW50c1wiPT09ZT9mdW5jdGlvbih0KXt2YXIgZT1KZShTZSh0KSksaT1bXCJhYnNvbHV0ZVwiLFwiZml4ZWRcIl0uaW5kZXhPZih4ZSh0KS5wb3NpdGlvbik+PTAmJm1lKHQpPyRlKHQpOnQ7cmV0dXJuIHBlKGkpP2UuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gcGUodCkmJk9lKHQsaSkmJlwiYm9keVwiIT09dWUodCl9KSk6W119KHQpOltdLmNvbmNhdChlKSxvPVtdLmNvbmNhdChzLFtpXSkscj1vWzBdLGE9by5yZWR1Y2UoKGZ1bmN0aW9uKGUsaSl7dmFyIHM9dGkodCxpLG4pO3JldHVybiBlLnRvcD12ZShzLnRvcCxlLnRvcCksZS5yaWdodD15ZShzLnJpZ2h0LGUucmlnaHQpLGUuYm90dG9tPXllKHMuYm90dG9tLGUuYm90dG9tKSxlLmxlZnQ9dmUocy5sZWZ0LGUubGVmdCksZX0pLHRpKHQscixuKSk7cmV0dXJuIGEud2lkdGg9YS5yaWdodC1hLmxlZnQsYS5oZWlnaHQ9YS5ib3R0b20tYS50b3AsYS54PWEubGVmdCxhLnk9YS50b3AsYX0ocGUoeSk/eTp5LmNvbnRleHRFbGVtZW50fHxMZSh0LmVsZW1lbnRzLnBvcHBlciksbCxoLHIpLEE9VGUodC5lbGVtZW50cy5yZWZlcmVuY2UpLEU9ZWkoe3JlZmVyZW5jZTpBLGVsZW1lbnQ6dixzdHJhdGVneTpcImFic29sdXRlXCIscGxhY2VtZW50OnN9KSxUPVplKE9iamVjdC5hc3NpZ24oe30sdixFKSksQz11PT09SnQ/VDpBLE89e3RvcDp3LnRvcC1DLnRvcCtfLnRvcCxib3R0b206Qy5ib3R0b20tdy5ib3R0b20rXy5ib3R0b20sbGVmdDp3LmxlZnQtQy5sZWZ0K18ubGVmdCxyaWdodDpDLnJpZ2h0LXcucmlnaHQrXy5yaWdodH0seD10Lm1vZGlmaWVyc0RhdGEub2Zmc2V0O2lmKHU9PT1KdCYmeCl7dmFyIGs9eFtzXTtPYmplY3Qua2V5cyhPKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1bcXQsUnRdLmluZGV4T2YodCk+PTA/MTotMSxpPVt6dCxSdF0uaW5kZXhPZih0KT49MD9cInlcIjpcInhcIjtPW3RdKz1rW2ldKmV9KSl9cmV0dXJuIE99ZnVuY3Rpb24gbmkodCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIGk9ZSxuPWkucGxhY2VtZW50LHM9aS5ib3VuZGFyeSxvPWkucm9vdEJvdW5kYXJ5LHI9aS5wYWRkaW5nLGE9aS5mbGlwVmFyaWF0aW9ucyxsPWkuYWxsb3dlZEF1dG9QbGFjZW1lbnRzLGM9dm9pZCAwPT09bD9lZTpsLGg9RmUobiksZD1oP2E/dGU6dGUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gRmUodCk9PT1ofSkpOlF0LHU9ZC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBjLmluZGV4T2YodCk+PTB9KSk7MD09PXUubGVuZ3RoJiYodT1kKTt2YXIgZj11LnJlZHVjZSgoZnVuY3Rpb24oZSxpKXtyZXR1cm4gZVtpXT1paSh0LHtwbGFjZW1lbnQ6aSxib3VuZGFyeTpzLHJvb3RCb3VuZGFyeTpvLHBhZGRpbmc6cn0pW2JlKGkpXSxlfSkse30pO3JldHVybiBPYmplY3Qua2V5cyhmKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBmW3RdLWZbZV19KSl9Y29uc3Qgc2k9e25hbWU6XCJmbGlwXCIsZW5hYmxlZDohMCxwaGFzZTpcIm1haW5cIixmbjpmdW5jdGlvbih0KXt2YXIgZT10LnN0YXRlLGk9dC5vcHRpb25zLG49dC5uYW1lO2lmKCFlLm1vZGlmaWVyc0RhdGFbbl0uX3NraXApe2Zvcih2YXIgcz1pLm1haW5BeGlzLG89dm9pZCAwPT09c3x8cyxyPWkuYWx0QXhpcyxhPXZvaWQgMD09PXJ8fHIsbD1pLmZhbGxiYWNrUGxhY2VtZW50cyxjPWkucGFkZGluZyxoPWkuYm91bmRhcnksZD1pLnJvb3RCb3VuZGFyeSx1PWkuYWx0Qm91bmRhcnksZj1pLmZsaXBWYXJpYXRpb25zLHA9dm9pZCAwPT09Znx8ZixtPWkuYWxsb3dlZEF1dG9QbGFjZW1lbnRzLGc9ZS5vcHRpb25zLnBsYWNlbWVudCxfPWJlKGcpLGI9bHx8KF8hPT1nJiZwP2Z1bmN0aW9uKHQpe2lmKGJlKHQpPT09S3QpcmV0dXJuW107dmFyIGU9VmUodCk7cmV0dXJuW1FlKHQpLGUsUWUoZSldfShnKTpbVmUoZyldKSx2PVtnXS5jb25jYXQoYikucmVkdWNlKChmdW5jdGlvbih0LGkpe3JldHVybiB0LmNvbmNhdChiZShpKT09PUt0P25pKGUse3BsYWNlbWVudDppLGJvdW5kYXJ5Omgscm9vdEJvdW5kYXJ5OmQscGFkZGluZzpjLGZsaXBWYXJpYXRpb25zOnAsYWxsb3dlZEF1dG9QbGFjZW1lbnRzOm19KTppKX0pLFtdKSx5PWUucmVjdHMucmVmZXJlbmNlLHc9ZS5yZWN0cy5wb3BwZXIsQT1uZXcgTWFwLEU9ITAsVD12WzBdLEM9MDtDPHYubGVuZ3RoO0MrKyl7dmFyIE89dltDXSx4PWJlKE8pLGs9RmUoTyk9PT1YdCxMPVt6dCxSdF0uaW5kZXhPZih4KT49MCxTPUw/XCJ3aWR0aFwiOlwiaGVpZ2h0XCIsRD1paShlLHtwbGFjZW1lbnQ6Tyxib3VuZGFyeTpoLHJvb3RCb3VuZGFyeTpkLGFsdEJvdW5kYXJ5OnUscGFkZGluZzpjfSksJD1MP2s/cXQ6VnQ6az9SdDp6dDt5W1NdPndbU10mJigkPVZlKCQpKTt2YXIgST1WZSgkKSxOPVtdO2lmKG8mJk4ucHVzaChEW3hdPD0wKSxhJiZOLnB1c2goRFskXTw9MCxEW0ldPD0wKSxOLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSl7VD1PLEU9ITE7YnJlYWt9QS5zZXQoTyxOKX1pZihFKWZvcih2YXIgUD1mdW5jdGlvbih0KXt2YXIgZT12LmZpbmQoKGZ1bmN0aW9uKGUpe3ZhciBpPUEuZ2V0KGUpO2lmKGkpcmV0dXJuIGkuc2xpY2UoMCx0KS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSl9KSk7aWYoZSlyZXR1cm4gVD1lLFwiYnJlYWtcIn0saj1wPzM6MTtqPjAmJlwiYnJlYWtcIiE9PVAoaik7ai0tKTtlLnBsYWNlbWVudCE9PVQmJihlLm1vZGlmaWVyc0RhdGFbbl0uX3NraXA9ITAsZS5wbGFjZW1lbnQ9VCxlLnJlc2V0PSEwKX19LHJlcXVpcmVzSWZFeGlzdHM6W1wib2Zmc2V0XCJdLGRhdGE6e19za2lwOiExfX07ZnVuY3Rpb24gb2kodCxlLGkpe3JldHVybiB2b2lkIDA9PT1pJiYoaT17eDowLHk6MH0pLHt0b3A6dC50b3AtZS5oZWlnaHQtaS55LHJpZ2h0OnQucmlnaHQtZS53aWR0aCtpLngsYm90dG9tOnQuYm90dG9tLWUuaGVpZ2h0K2kueSxsZWZ0OnQubGVmdC1lLndpZHRoLWkueH19ZnVuY3Rpb24gcmkodCl7cmV0dXJuW3p0LHF0LFJ0LFZ0XS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXT49MH0pKX1jb25zdCBhaT17bmFtZTpcImhpZGVcIixlbmFibGVkOiEwLHBoYXNlOlwibWFpblwiLHJlcXVpcmVzSWZFeGlzdHM6W1wicHJldmVudE92ZXJmbG93XCJdLGZuOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT10Lm5hbWUsbj1lLnJlY3RzLnJlZmVyZW5jZSxzPWUucmVjdHMucG9wcGVyLG89ZS5tb2RpZmllcnNEYXRhLnByZXZlbnRPdmVyZmxvdyxyPWlpKGUse2VsZW1lbnRDb250ZXh0OlwicmVmZXJlbmNlXCJ9KSxhPWlpKGUse2FsdEJvdW5kYXJ5OiEwfSksbD1vaShyLG4pLGM9b2koYSxzLG8pLGg9cmkobCksZD1yaShjKTtlLm1vZGlmaWVyc0RhdGFbaV09e3JlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0czpsLHBvcHBlckVzY2FwZU9mZnNldHM6Yyxpc1JlZmVyZW5jZUhpZGRlbjpoLGhhc1BvcHBlckVzY2FwZWQ6ZH0sZS5hdHRyaWJ1dGVzLnBvcHBlcj1PYmplY3QuYXNzaWduKHt9LGUuYXR0cmlidXRlcy5wb3BwZXIse1wiZGF0YS1wb3BwZXItcmVmZXJlbmNlLWhpZGRlblwiOmgsXCJkYXRhLXBvcHBlci1lc2NhcGVkXCI6ZH0pfX0sbGk9e25hbWU6XCJvZmZzZXRcIixlbmFibGVkOiEwLHBoYXNlOlwibWFpblwiLHJlcXVpcmVzOltcInBvcHBlck9mZnNldHNcIl0sZm46ZnVuY3Rpb24odCl7dmFyIGU9dC5zdGF0ZSxpPXQub3B0aW9ucyxuPXQubmFtZSxzPWkub2Zmc2V0LG89dm9pZCAwPT09cz9bMCwwXTpzLHI9ZWUucmVkdWNlKChmdW5jdGlvbih0LGkpe3JldHVybiB0W2ldPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbj1iZSh0KSxzPVtWdCx6dF0uaW5kZXhPZihuKT49MD8tMToxLG89XCJmdW5jdGlvblwiPT10eXBlb2YgaT9pKE9iamVjdC5hc3NpZ24oe30sZSx7cGxhY2VtZW50OnR9KSk6aSxyPW9bMF0sYT1vWzFdO3JldHVybiByPXJ8fDAsYT0oYXx8MCkqcyxbVnQscXRdLmluZGV4T2Yobik+PTA/e3g6YSx5OnJ9Ont4OnIseTphfX0oaSxlLnJlY3RzLG8pLHR9KSx7fSksYT1yW2UucGxhY2VtZW50XSxsPWEueCxjPWEueTtudWxsIT1lLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyYmKGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLngrPWwsZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMueSs9YyksZS5tb2RpZmllcnNEYXRhW25dPXJ9fSxjaT17bmFtZTpcInBvcHBlck9mZnNldHNcIixlbmFibGVkOiEwLHBoYXNlOlwicmVhZFwiLGZuOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGUsaT10Lm5hbWU7ZS5tb2RpZmllcnNEYXRhW2ldPWVpKHtyZWZlcmVuY2U6ZS5yZWN0cy5yZWZlcmVuY2UsZWxlbWVudDplLnJlY3RzLnBvcHBlcixzdHJhdGVneTpcImFic29sdXRlXCIscGxhY2VtZW50OmUucGxhY2VtZW50fSl9LGRhdGE6e319LGhpPXtuYW1lOlwicHJldmVudE92ZXJmbG93XCIsZW5hYmxlZDohMCxwaGFzZTpcIm1haW5cIixmbjpmdW5jdGlvbih0KXt2YXIgZT10LnN0YXRlLGk9dC5vcHRpb25zLG49dC5uYW1lLHM9aS5tYWluQXhpcyxvPXZvaWQgMD09PXN8fHMscj1pLmFsdEF4aXMsYT12b2lkIDAhPT1yJiZyLGw9aS5ib3VuZGFyeSxjPWkucm9vdEJvdW5kYXJ5LGg9aS5hbHRCb3VuZGFyeSxkPWkucGFkZGluZyx1PWkudGV0aGVyLGY9dm9pZCAwPT09dXx8dSxwPWkudGV0aGVyT2Zmc2V0LG09dm9pZCAwPT09cD8wOnAsZz1paShlLHtib3VuZGFyeTpsLHJvb3RCb3VuZGFyeTpjLHBhZGRpbmc6ZCxhbHRCb3VuZGFyeTpofSksXz1iZShlLnBsYWNlbWVudCksYj1GZShlLnBsYWNlbWVudCksdj0hYix5PUllKF8pLHc9XCJ4XCI9PT15P1wieVwiOlwieFwiLEE9ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMsRT1lLnJlY3RzLnJlZmVyZW5jZSxUPWUucmVjdHMucG9wcGVyLEM9XCJmdW5jdGlvblwiPT10eXBlb2YgbT9tKE9iamVjdC5hc3NpZ24oe30sZS5yZWN0cyx7cGxhY2VtZW50OmUucGxhY2VtZW50fSkpOm0sTz1cIm51bWJlclwiPT10eXBlb2YgQz97bWFpbkF4aXM6QyxhbHRBeGlzOkN9Ok9iamVjdC5hc3NpZ24oe21haW5BeGlzOjAsYWx0QXhpczowfSxDKSx4PWUubW9kaWZpZXJzRGF0YS5vZmZzZXQ/ZS5tb2RpZmllcnNEYXRhLm9mZnNldFtlLnBsYWNlbWVudF06bnVsbCxrPXt4OjAseTowfTtpZihBKXtpZihvKXt2YXIgTCxTPVwieVwiPT09eT96dDpWdCxEPVwieVwiPT09eT9SdDpxdCwkPVwieVwiPT09eT9cImhlaWdodFwiOlwid2lkdGhcIixJPUFbeV0sTj1JK2dbU10sUD1JLWdbRF0saj1mPy1UWyRdLzI6MCxNPWI9PT1YdD9FWyRdOlRbJF0sRj1iPT09WHQ/LVRbJF06LUVbJF0sSD1lLmVsZW1lbnRzLmFycm93LFc9ZiYmSD9DZShIKTp7d2lkdGg6MCxoZWlnaHQ6MH0sQj1lLm1vZGlmaWVyc0RhdGFbXCJhcnJvdyNwZXJzaXN0ZW50XCJdP2UubW9kaWZpZXJzRGF0YVtcImFycm93I3BlcnNpc3RlbnRcIl0ucGFkZGluZzp7dG9wOjAscmlnaHQ6MCxib3R0b206MCxsZWZ0OjB9LHo9QltTXSxSPUJbRF0scT1OZSgwLEVbJF0sV1skXSksVj12P0VbJF0vMi1qLXEtei1PLm1haW5BeGlzOk0tcS16LU8ubWFpbkF4aXMsSz12Py1FWyRdLzIraitxK1IrTy5tYWluQXhpczpGK3ErUitPLm1haW5BeGlzLFE9ZS5lbGVtZW50cy5hcnJvdyYmJGUoZS5lbGVtZW50cy5hcnJvdyksWD1RP1wieVwiPT09eT9RLmNsaWVudFRvcHx8MDpRLmNsaWVudExlZnR8fDA6MCxZPW51bGwhPShMPW51bGw9PXg/dm9pZCAwOnhbeV0pP0w6MCxVPUkrSy1ZLEc9TmUoZj95ZShOLEkrVi1ZLVgpOk4sSSxmP3ZlKFAsVSk6UCk7QVt5XT1HLGtbeV09Ry1JfWlmKGEpe3ZhciBKLFo9XCJ4XCI9PT15P3p0OlZ0LHR0PVwieFwiPT09eT9SdDpxdCxldD1BW3ddLGl0PVwieVwiPT09dz9cImhlaWdodFwiOlwid2lkdGhcIixudD1ldCtnW1pdLHN0PWV0LWdbdHRdLG90PS0xIT09W3p0LFZ0XS5pbmRleE9mKF8pLHJ0PW51bGwhPShKPW51bGw9PXg/dm9pZCAwOnhbd10pP0o6MCxhdD1vdD9udDpldC1FW2l0XS1UW2l0XS1ydCtPLmFsdEF4aXMsbHQ9b3Q/ZXQrRVtpdF0rVFtpdF0tcnQtTy5hbHRBeGlzOnN0LGN0PWYmJm90P2Z1bmN0aW9uKHQsZSxpKXt2YXIgbj1OZSh0LGUsaSk7cmV0dXJuIG4+aT9pOm59KGF0LGV0LGx0KTpOZShmP2F0Om50LGV0LGY/bHQ6c3QpO0Fbd109Y3Qsa1t3XT1jdC1ldH1lLm1vZGlmaWVyc0RhdGFbbl09a319LHJlcXVpcmVzSWZFeGlzdHM6W1wib2Zmc2V0XCJdfTtmdW5jdGlvbiBkaSh0LGUsaSl7dm9pZCAwPT09aSYmKGk9ITEpO3ZhciBuLHMsbz1tZShlKSxyPW1lKGUpJiZmdW5jdGlvbih0KXt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9d2UoZS53aWR0aCkvdC5vZmZzZXRXaWR0aHx8MSxuPXdlKGUuaGVpZ2h0KS90Lm9mZnNldEhlaWdodHx8MTtyZXR1cm4gMSE9PWl8fDEhPT1ufShlKSxhPUxlKGUpLGw9VGUodCxyLGkpLGM9e3Njcm9sbExlZnQ6MCxzY3JvbGxUb3A6MH0saD17eDowLHk6MH07cmV0dXJuKG98fCFvJiYhaSkmJigoXCJib2R5XCIhPT11ZShlKXx8VWUoYSkpJiYoYz0obj1lKSE9PWZlKG4pJiZtZShuKT97c2Nyb2xsTGVmdDoocz1uKS5zY3JvbGxMZWZ0LHNjcm9sbFRvcDpzLnNjcm9sbFRvcH06WGUobikpLG1lKGUpPygoaD1UZShlLCEwKSkueCs9ZS5jbGllbnRMZWZ0LGgueSs9ZS5jbGllbnRUb3ApOmEmJihoLng9WWUoYSkpKSx7eDpsLmxlZnQrYy5zY3JvbGxMZWZ0LWgueCx5OmwudG9wK2Muc2Nyb2xsVG9wLWgueSx3aWR0aDpsLndpZHRoLGhlaWdodDpsLmhlaWdodH19ZnVuY3Rpb24gdWkodCl7dmFyIGU9bmV3IE1hcCxpPW5ldyBTZXQsbj1bXTtmdW5jdGlvbiBzKHQpe2kuYWRkKHQubmFtZSksW10uY29uY2F0KHQucmVxdWlyZXN8fFtdLHQucmVxdWlyZXNJZkV4aXN0c3x8W10pLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCFpLmhhcyh0KSl7dmFyIG49ZS5nZXQodCk7biYmcyhuKX19KSksbi5wdXNoKHQpfXJldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2Uuc2V0KHQubmFtZSx0KX0pKSx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2kuaGFzKHQubmFtZSl8fHModCl9KSksbn12YXIgZmk9e3BsYWNlbWVudDpcImJvdHRvbVwiLG1vZGlmaWVyczpbXSxzdHJhdGVneTpcImFic29sdXRlXCJ9O2Z1bmN0aW9uIHBpKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksaT0wO2k8dDtpKyspZVtpXT1hcmd1bWVudHNbaV07cmV0dXJuIWUuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuISh0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl9KSl9ZnVuY3Rpb24gbWkodCl7dm9pZCAwPT09dCYmKHQ9e30pO3ZhciBlPXQsaT1lLmRlZmF1bHRNb2RpZmllcnMsbj12b2lkIDA9PT1pP1tdOmkscz1lLmRlZmF1bHRPcHRpb25zLG89dm9pZCAwPT09cz9maTpzO3JldHVybiBmdW5jdGlvbih0LGUsaSl7dm9pZCAwPT09aSYmKGk9byk7dmFyIHMscixhPXtwbGFjZW1lbnQ6XCJib3R0b21cIixvcmRlcmVkTW9kaWZpZXJzOltdLG9wdGlvbnM6T2JqZWN0LmFzc2lnbih7fSxmaSxvKSxtb2RpZmllcnNEYXRhOnt9LGVsZW1lbnRzOntyZWZlcmVuY2U6dCxwb3BwZXI6ZX0sYXR0cmlidXRlczp7fSxzdHlsZXM6e319LGw9W10sYz0hMSxoPXtzdGF0ZTphLHNldE9wdGlvbnM6ZnVuY3Rpb24oaSl7dmFyIHM9XCJmdW5jdGlvblwiPT10eXBlb2YgaT9pKGEub3B0aW9ucyk6aTtkKCksYS5vcHRpb25zPU9iamVjdC5hc3NpZ24oe30sbyxhLm9wdGlvbnMscyksYS5zY3JvbGxQYXJlbnRzPXtyZWZlcmVuY2U6cGUodCk/SmUodCk6dC5jb250ZXh0RWxlbWVudD9KZSh0LmNvbnRleHRFbGVtZW50KTpbXSxwb3BwZXI6SmUoZSl9O3ZhciByLGMsdT1mdW5jdGlvbih0KXt2YXIgZT11aSh0KTtyZXR1cm4gZGUucmVkdWNlKChmdW5jdGlvbih0LGkpe3JldHVybiB0LmNvbmNhdChlLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQucGhhc2U9PT1pfSkpKX0pLFtdKX0oKHI9W10uY29uY2F0KG4sYS5vcHRpb25zLm1vZGlmaWVycyksYz1yLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgaT10W2UubmFtZV07cmV0dXJuIHRbZS5uYW1lXT1pP09iamVjdC5hc3NpZ24oe30saSxlLHtvcHRpb25zOk9iamVjdC5hc3NpZ24oe30saS5vcHRpb25zLGUub3B0aW9ucyksZGF0YTpPYmplY3QuYXNzaWduKHt9LGkuZGF0YSxlLmRhdGEpfSk6ZSx0fSkse30pLE9iamVjdC5rZXlzKGMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGNbdF19KSkpKTtyZXR1cm4gYS5vcmRlcmVkTW9kaWZpZXJzPXUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5lbmFibGVkfSkpLGEub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10Lm5hbWUsaT10Lm9wdGlvbnMsbj12b2lkIDA9PT1pP3t9Omkscz10LmVmZmVjdDtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBzKXt2YXIgbz1zKHtzdGF0ZTphLG5hbWU6ZSxpbnN0YW5jZTpoLG9wdGlvbnM6bn0pO2wucHVzaChvfHxmdW5jdGlvbigpe30pfX0pKSxoLnVwZGF0ZSgpfSxmb3JjZVVwZGF0ZTpmdW5jdGlvbigpe2lmKCFjKXt2YXIgdD1hLmVsZW1lbnRzLGU9dC5yZWZlcmVuY2UsaT10LnBvcHBlcjtpZihwaShlLGkpKXthLnJlY3RzPXtyZWZlcmVuY2U6ZGkoZSwkZShpKSxcImZpeGVkXCI9PT1hLm9wdGlvbnMuc3RyYXRlZ3kpLHBvcHBlcjpDZShpKX0sYS5yZXNldD0hMSxhLnBsYWNlbWVudD1hLm9wdGlvbnMucGxhY2VtZW50LGEub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gYS5tb2RpZmllcnNEYXRhW3QubmFtZV09T2JqZWN0LmFzc2lnbih7fSx0LmRhdGEpfSkpO2Zvcih2YXIgbj0wO248YS5vcmRlcmVkTW9kaWZpZXJzLmxlbmd0aDtuKyspaWYoITAhPT1hLnJlc2V0KXt2YXIgcz1hLm9yZGVyZWRNb2RpZmllcnNbbl0sbz1zLmZuLHI9cy5vcHRpb25zLGw9dm9pZCAwPT09cj97fTpyLGQ9cy5uYW1lO1wiZnVuY3Rpb25cIj09dHlwZW9mIG8mJihhPW8oe3N0YXRlOmEsb3B0aW9uczpsLG5hbWU6ZCxpbnN0YW5jZTpofSl8fGEpfWVsc2UgYS5yZXNldD0hMSxuPS0xfX19LHVwZGF0ZToocz1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7aC5mb3JjZVVwZGF0ZSgpLHQoYSl9KSl9LGZ1bmN0aW9uKCl7cmV0dXJuIHJ8fChyPW5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtQcm9taXNlLnJlc29sdmUoKS50aGVuKChmdW5jdGlvbigpe3I9dm9pZCAwLHQocygpKX0pKX0pKSkscn0pLGRlc3Ryb3k6ZnVuY3Rpb24oKXtkKCksYz0hMH19O2lmKCFwaSh0LGUpKXJldHVybiBoO2Z1bmN0aW9uIGQoKXtsLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KSksbD1bXX1yZXR1cm4gaC5zZXRPcHRpb25zKGkpLnRoZW4oKGZ1bmN0aW9uKHQpeyFjJiZpLm9uRmlyc3RVcGRhdGUmJmkub25GaXJzdFVwZGF0ZSh0KX0pKSxofX12YXIgZ2k9bWkoKSxfaT1taSh7ZGVmYXVsdE1vZGlmaWVyczpbUmUsY2ksQmUsX2VdfSksYmk9bWkoe2RlZmF1bHRNb2RpZmllcnM6W1JlLGNpLEJlLF9lLGxpLHNpLGhpLE1lLGFpXX0pO2NvbnN0IHZpPU9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtfX3Byb3RvX186bnVsbCxhZnRlck1haW46YWUsYWZ0ZXJSZWFkOnNlLGFmdGVyV3JpdGU6aGUsYXBwbHlTdHlsZXM6X2UsYXJyb3c6TWUsYXV0bzpLdCxiYXNlUGxhY2VtZW50czpRdCxiZWZvcmVNYWluOm9lLGJlZm9yZVJlYWQ6aWUsYmVmb3JlV3JpdGU6bGUsYm90dG9tOlJ0LGNsaXBwaW5nUGFyZW50czpVdCxjb21wdXRlU3R5bGVzOkJlLGNyZWF0ZVBvcHBlcjpiaSxjcmVhdGVQb3BwZXJCYXNlOmdpLGNyZWF0ZVBvcHBlckxpdGU6X2ksZGV0ZWN0T3ZlcmZsb3c6aWksZW5kOll0LGV2ZW50TGlzdGVuZXJzOlJlLGZsaXA6c2ksaGlkZTphaSxsZWZ0OlZ0LG1haW46cmUsbW9kaWZpZXJQaGFzZXM6ZGUsb2Zmc2V0OmxpLHBsYWNlbWVudHM6ZWUscG9wcGVyOkp0LHBvcHBlckdlbmVyYXRvcjptaSxwb3BwZXJPZmZzZXRzOmNpLHByZXZlbnRPdmVyZmxvdzpoaSxyZWFkOm5lLHJlZmVyZW5jZTpadCxyaWdodDpxdCxzdGFydDpYdCx0b3A6enQsdmFyaWF0aW9uUGxhY2VtZW50czp0ZSx2aWV3cG9ydDpHdCx3cml0ZTpjZX0sU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSkpLHlpPVwiZHJvcGRvd25cIix3aT1cIi5icy5kcm9wZG93blwiLEFpPVwiLmRhdGEtYXBpXCIsRWk9XCJBcnJvd1VwXCIsVGk9XCJBcnJvd0Rvd25cIixDaT1gaGlkZSR7d2l9YCxPaT1gaGlkZGVuJHt3aX1gLHhpPWBzaG93JHt3aX1gLGtpPWBzaG93biR7d2l9YCxMaT1gY2xpY2ske3dpfSR7QWl9YCxTaT1ga2V5ZG93biR7d2l9JHtBaX1gLERpPWBrZXl1cCR7d2l9JHtBaX1gLCRpPVwic2hvd1wiLElpPSdbZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiXTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKScsTmk9YCR7SWl9LiR7JGl9YCxQaT1cIi5kcm9wZG93bi1tZW51XCIsamk9cCgpP1widG9wLWVuZFwiOlwidG9wLXN0YXJ0XCIsTWk9cCgpP1widG9wLXN0YXJ0XCI6XCJ0b3AtZW5kXCIsRmk9cCgpP1wiYm90dG9tLWVuZFwiOlwiYm90dG9tLXN0YXJ0XCIsSGk9cCgpP1wiYm90dG9tLXN0YXJ0XCI6XCJib3R0b20tZW5kXCIsV2k9cCgpP1wibGVmdC1zdGFydFwiOlwicmlnaHQtc3RhcnRcIixCaT1wKCk/XCJyaWdodC1zdGFydFwiOlwibGVmdC1zdGFydFwiLHppPXthdXRvQ2xvc2U6ITAsYm91bmRhcnk6XCJjbGlwcGluZ1BhcmVudHNcIixkaXNwbGF5OlwiZHluYW1pY1wiLG9mZnNldDpbMCwyXSxwb3BwZXJDb25maWc6bnVsbCxyZWZlcmVuY2U6XCJ0b2dnbGVcIn0sUmk9e2F1dG9DbG9zZTpcIihib29sZWFufHN0cmluZylcIixib3VuZGFyeTpcIihzdHJpbmd8ZWxlbWVudClcIixkaXNwbGF5Olwic3RyaW5nXCIsb2Zmc2V0OlwiKGFycmF5fHN0cmluZ3xmdW5jdGlvbilcIixwb3BwZXJDb25maWc6XCIobnVsbHxvYmplY3R8ZnVuY3Rpb24pXCIscmVmZXJlbmNlOlwiKHN0cmluZ3xlbGVtZW50fG9iamVjdClcIn07Y2xhc3MgcWkgZXh0ZW5kcyBXe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLl9wYXJlbnQ9dGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLHRoaXMuX21lbnU9ei5uZXh0KHRoaXMuX2VsZW1lbnQsUGkpWzBdfHx6LnByZXYodGhpcy5fZWxlbWVudCxQaSlbMF18fHouZmluZE9uZShQaSx0aGlzLl9wYXJlbnQpLHRoaXMuX2luTmF2YmFyPXRoaXMuX2RldGVjdE5hdmJhcigpfXN0YXRpYyBnZXQgRGVmYXVsdCgpe3JldHVybiB6aX1zdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCl7cmV0dXJuIFJpfXN0YXRpYyBnZXQgTkFNRSgpe3JldHVybiB5aX10b2dnbGUoKXtyZXR1cm4gdGhpcy5faXNTaG93bigpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfXNob3coKXtpZihsKHRoaXMuX2VsZW1lbnQpfHx0aGlzLl9pc1Nob3duKCkpcmV0dXJuO2NvbnN0IHQ9e3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH07aWYoIU4udHJpZ2dlcih0aGlzLl9lbGVtZW50LHhpLHQpLmRlZmF1bHRQcmV2ZW50ZWQpe2lmKHRoaXMuX2NyZWF0ZVBvcHBlcigpLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJiF0aGlzLl9wYXJlbnQuY2xvc2VzdChcIi5uYXZiYXItbmF2XCIpKWZvcihjb25zdCB0IG9mW10uY29uY2F0KC4uLmRvY3VtZW50LmJvZHkuY2hpbGRyZW4pKU4ub24odCxcIm1vdXNlb3ZlclwiLGgpO3RoaXMuX2VsZW1lbnQuZm9jdXMoKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwhMCksdGhpcy5fbWVudS5jbGFzc0xpc3QuYWRkKCRpKSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoJGkpLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LGtpLHQpfX1oaWRlKCl7aWYobCh0aGlzLl9lbGVtZW50KXx8IXRoaXMuX2lzU2hvd24oKSlyZXR1cm47Y29uc3QgdD17cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fTt0aGlzLl9jb21wbGV0ZUhpZGUodCl9ZGlzcG9zZSgpe3RoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLmRlc3Ryb3koKSxzdXBlci5kaXNwb3NlKCl9dXBkYXRlKCl7dGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksdGhpcy5fcG9wcGVyJiZ0aGlzLl9wb3BwZXIudXBkYXRlKCl9X2NvbXBsZXRlSGlkZSh0KXtpZighTi50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsQ2ksdCkuZGVmYXVsdFByZXZlbnRlZCl7aWYoXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudClmb3IoY29uc3QgdCBvZltdLmNvbmNhdCguLi5kb2N1bWVudC5ib2R5LmNoaWxkcmVuKSlOLm9mZih0LFwibW91c2VvdmVyXCIsaCk7dGhpcy5fcG9wcGVyJiZ0aGlzLl9wb3BwZXIuZGVzdHJveSgpLHRoaXMuX21lbnUuY2xhc3NMaXN0LnJlbW92ZSgkaSksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCRpKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIixcImZhbHNlXCIpLEYucmVtb3ZlRGF0YUF0dHJpYnV0ZSh0aGlzLl9tZW51LFwicG9wcGVyXCIpLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LE9pLHQpfX1fZ2V0Q29uZmlnKHQpe2lmKFwib2JqZWN0XCI9PXR5cGVvZih0PXN1cGVyLl9nZXRDb25maWcodCkpLnJlZmVyZW5jZSYmIW8odC5yZWZlcmVuY2UpJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0LnJlZmVyZW5jZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt5aS50b1VwcGVyQ2FzZSgpfTogT3B0aW9uIFwicmVmZXJlbmNlXCIgcHJvdmlkZWQgdHlwZSBcIm9iamVjdFwiIHdpdGhvdXQgYSByZXF1aXJlZCBcImdldEJvdW5kaW5nQ2xpZW50UmVjdFwiIG1ldGhvZC5gKTtyZXR1cm4gdH1fY3JlYXRlUG9wcGVyKCl7aWYodm9pZCAwPT09dmkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCdzIGRyb3Bkb3ducyByZXF1aXJlIFBvcHBlciAoaHR0cHM6Ly9wb3BwZXIuanMub3JnKVwiKTtsZXQgdD10aGlzLl9lbGVtZW50O1wicGFyZW50XCI9PT10aGlzLl9jb25maWcucmVmZXJlbmNlP3Q9dGhpcy5fcGFyZW50Om8odGhpcy5fY29uZmlnLnJlZmVyZW5jZSk/dD1yKHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UpOlwib2JqZWN0XCI9PXR5cGVvZiB0aGlzLl9jb25maWcucmVmZXJlbmNlJiYodD10aGlzLl9jb25maWcucmVmZXJlbmNlKTtjb25zdCBlPXRoaXMuX2dldFBvcHBlckNvbmZpZygpO3RoaXMuX3BvcHBlcj1iaSh0LHRoaXMuX21lbnUsZSl9X2lzU2hvd24oKXtyZXR1cm4gdGhpcy5fbWVudS5jbGFzc0xpc3QuY29udGFpbnMoJGkpfV9nZXRQbGFjZW1lbnQoKXtjb25zdCB0PXRoaXMuX3BhcmVudDtpZih0LmNsYXNzTGlzdC5jb250YWlucyhcImRyb3BlbmRcIikpcmV0dXJuIFdpO2lmKHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiZHJvcHN0YXJ0XCIpKXJldHVybiBCaTtpZih0LmNsYXNzTGlzdC5jb250YWlucyhcImRyb3B1cC1jZW50ZXJcIikpcmV0dXJuXCJ0b3BcIjtpZih0LmNsYXNzTGlzdC5jb250YWlucyhcImRyb3Bkb3duLWNlbnRlclwiKSlyZXR1cm5cImJvdHRvbVwiO2NvbnN0IGU9XCJlbmRcIj09PWdldENvbXB1dGVkU3R5bGUodGhpcy5fbWVudSkuZ2V0UHJvcGVydHlWYWx1ZShcIi0tYnMtcG9zaXRpb25cIikudHJpbSgpO3JldHVybiB0LmNsYXNzTGlzdC5jb250YWlucyhcImRyb3B1cFwiKT9lP01pOmppOmU/SGk6Rml9X2RldGVjdE5hdmJhcigpe3JldHVybiBudWxsIT09dGhpcy5fZWxlbWVudC5jbG9zZXN0KFwiLm5hdmJhclwiKX1fZ2V0T2Zmc2V0KCl7Y29uc3R7b2Zmc2V0OnR9PXRoaXMuX2NvbmZpZztyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD90LnNwbGl0KFwiLFwiKS5tYXAoKHQ9Pk51bWJlci5wYXJzZUludCh0LDEwKSkpOlwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZT0+dChlLHRoaXMuX2VsZW1lbnQpOnR9X2dldFBvcHBlckNvbmZpZygpe2NvbnN0IHQ9e3BsYWNlbWVudDp0aGlzLl9nZXRQbGFjZW1lbnQoKSxtb2RpZmllcnM6W3tuYW1lOlwicHJldmVudE92ZXJmbG93XCIsb3B0aW9uczp7Ym91bmRhcnk6dGhpcy5fY29uZmlnLmJvdW5kYXJ5fX0se25hbWU6XCJvZmZzZXRcIixvcHRpb25zOntvZmZzZXQ6dGhpcy5fZ2V0T2Zmc2V0KCl9fV19O3JldHVybih0aGlzLl9pbk5hdmJhcnx8XCJzdGF0aWNcIj09PXRoaXMuX2NvbmZpZy5kaXNwbGF5KSYmKEYuc2V0RGF0YUF0dHJpYnV0ZSh0aGlzLl9tZW51LFwicG9wcGVyXCIsXCJzdGF0aWNcIiksdC5tb2RpZmllcnM9W3tuYW1lOlwiYXBwbHlTdHlsZXNcIixlbmFibGVkOiExfV0pLHsuLi50LC4uLmcodGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZyxbdF0pfX1fc2VsZWN0TWVudUl0ZW0oe2tleTp0LHRhcmdldDplfSl7Y29uc3QgaT16LmZpbmQoXCIuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKVwiLHRoaXMuX21lbnUpLmZpbHRlcigodD0+YSh0KSkpO2kubGVuZ3RoJiZiKGksZSx0PT09VGksIWkuaW5jbHVkZXMoZSkpLmZvY3VzKCl9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9cWkuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtpZih2b2lkIDA9PT1lW3RdKXRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7dH1cImApO2VbdF0oKX19KSl9c3RhdGljIGNsZWFyTWVudXModCl7aWYoMj09PXQuYnV0dG9ufHxcImtleXVwXCI9PT10LnR5cGUmJlwiVGFiXCIhPT10LmtleSlyZXR1cm47Y29uc3QgZT16LmZpbmQoTmkpO2Zvcihjb25zdCBpIG9mIGUpe2NvbnN0IGU9cWkuZ2V0SW5zdGFuY2UoaSk7aWYoIWV8fCExPT09ZS5fY29uZmlnLmF1dG9DbG9zZSljb250aW51ZTtjb25zdCBuPXQuY29tcG9zZWRQYXRoKCkscz1uLmluY2x1ZGVzKGUuX21lbnUpO2lmKG4uaW5jbHVkZXMoZS5fZWxlbWVudCl8fFwiaW5zaWRlXCI9PT1lLl9jb25maWcuYXV0b0Nsb3NlJiYhc3x8XCJvdXRzaWRlXCI9PT1lLl9jb25maWcuYXV0b0Nsb3NlJiZzKWNvbnRpbnVlO2lmKGUuX21lbnUuY29udGFpbnModC50YXJnZXQpJiYoXCJrZXl1cFwiPT09dC50eXBlJiZcIlRhYlwiPT09dC5rZXl8fC9pbnB1dHxzZWxlY3R8b3B0aW9ufHRleHRhcmVhfGZvcm0vaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpKSljb250aW51ZTtjb25zdCBvPXtyZWxhdGVkVGFyZ2V0OmUuX2VsZW1lbnR9O1wiY2xpY2tcIj09PXQudHlwZSYmKG8uY2xpY2tFdmVudD10KSxlLl9jb21wbGV0ZUhpZGUobyl9fXN0YXRpYyBkYXRhQXBpS2V5ZG93bkhhbmRsZXIodCl7Y29uc3QgZT0vaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpLGk9XCJFc2NhcGVcIj09PXQua2V5LG49W0VpLFRpXS5pbmNsdWRlcyh0LmtleSk7aWYoIW4mJiFpKXJldHVybjtpZihlJiYhaSlyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHM9dGhpcy5tYXRjaGVzKElpKT90aGlzOnoucHJldih0aGlzLElpKVswXXx8ei5uZXh0KHRoaXMsSWkpWzBdfHx6LmZpbmRPbmUoSWksdC5kZWxlZ2F0ZVRhcmdldC5wYXJlbnROb2RlKSxvPXFpLmdldE9yQ3JlYXRlSW5zdGFuY2Uocyk7aWYobilyZXR1cm4gdC5zdG9wUHJvcGFnYXRpb24oKSxvLnNob3coKSx2b2lkIG8uX3NlbGVjdE1lbnVJdGVtKHQpO28uX2lzU2hvd24oKSYmKHQuc3RvcFByb3BhZ2F0aW9uKCksby5oaWRlKCkscy5mb2N1cygpKX19Ti5vbihkb2N1bWVudCxTaSxJaSxxaS5kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLE4ub24oZG9jdW1lbnQsU2ksUGkscWkuZGF0YUFwaUtleWRvd25IYW5kbGVyKSxOLm9uKGRvY3VtZW50LExpLHFpLmNsZWFyTWVudXMpLE4ub24oZG9jdW1lbnQsRGkscWkuY2xlYXJNZW51cyksTi5vbihkb2N1bWVudCxMaSxJaSwoZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHFpLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcykudG9nZ2xlKCl9KSksbShxaSk7Y29uc3QgVmk9XCJiYWNrZHJvcFwiLEtpPVwic2hvd1wiLFFpPWBtb3VzZWRvd24uYnMuJHtWaX1gLFhpPXtjbGFzc05hbWU6XCJtb2RhbC1iYWNrZHJvcFwiLGNsaWNrQ2FsbGJhY2s6bnVsbCxpc0FuaW1hdGVkOiExLGlzVmlzaWJsZTohMCxyb290RWxlbWVudDpcImJvZHlcIn0sWWk9e2NsYXNzTmFtZTpcInN0cmluZ1wiLGNsaWNrQ2FsbGJhY2s6XCIoZnVuY3Rpb258bnVsbClcIixpc0FuaW1hdGVkOlwiYm9vbGVhblwiLGlzVmlzaWJsZTpcImJvb2xlYW5cIixyb290RWxlbWVudDpcIihlbGVtZW50fHN0cmluZylcIn07Y2xhc3MgVWkgZXh0ZW5kcyBIe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyh0KSx0aGlzLl9pc0FwcGVuZGVkPSExLHRoaXMuX2VsZW1lbnQ9bnVsbH1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gWGl9c3RhdGljIGdldCBEZWZhdWx0VHlwZSgpe3JldHVybiBZaX1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm4gVml9c2hvdyh0KXtpZighdGhpcy5fY29uZmlnLmlzVmlzaWJsZSlyZXR1cm4gdm9pZCBnKHQpO3RoaXMuX2FwcGVuZCgpO2NvbnN0IGU9dGhpcy5fZ2V0RWxlbWVudCgpO3RoaXMuX2NvbmZpZy5pc0FuaW1hdGVkJiZkKGUpLGUuY2xhc3NMaXN0LmFkZChLaSksdGhpcy5fZW11bGF0ZUFuaW1hdGlvbigoKCk9PntnKHQpfSkpfWhpZGUodCl7dGhpcy5fY29uZmlnLmlzVmlzaWJsZT8odGhpcy5fZ2V0RWxlbWVudCgpLmNsYXNzTGlzdC5yZW1vdmUoS2kpLHRoaXMuX2VtdWxhdGVBbmltYXRpb24oKCgpPT57dGhpcy5kaXNwb3NlKCksZyh0KX0pKSk6Zyh0KX1kaXNwb3NlKCl7dGhpcy5faXNBcHBlbmRlZCYmKE4ub2ZmKHRoaXMuX2VsZW1lbnQsUWkpLHRoaXMuX2VsZW1lbnQucmVtb3ZlKCksdGhpcy5faXNBcHBlbmRlZD0hMSl9X2dldEVsZW1lbnQoKXtpZighdGhpcy5fZWxlbWVudCl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3QuY2xhc3NOYW1lPXRoaXMuX2NvbmZpZy5jbGFzc05hbWUsdGhpcy5fY29uZmlnLmlzQW5pbWF0ZWQmJnQuY2xhc3NMaXN0LmFkZChcImZhZGVcIiksdGhpcy5fZWxlbWVudD10fXJldHVybiB0aGlzLl9lbGVtZW50fV9jb25maWdBZnRlck1lcmdlKHQpe3JldHVybiB0LnJvb3RFbGVtZW50PXIodC5yb290RWxlbWVudCksdH1fYXBwZW5kKCl7aWYodGhpcy5faXNBcHBlbmRlZClyZXR1cm47Y29uc3QgdD10aGlzLl9nZXRFbGVtZW50KCk7dGhpcy5fY29uZmlnLnJvb3RFbGVtZW50LmFwcGVuZCh0KSxOLm9uKHQsUWksKCgpPT57Zyh0aGlzLl9jb25maWcuY2xpY2tDYWxsYmFjayl9KSksdGhpcy5faXNBcHBlbmRlZD0hMH1fZW11bGF0ZUFuaW1hdGlvbih0KXtfKHQsdGhpcy5fZ2V0RWxlbWVudCgpLHRoaXMuX2NvbmZpZy5pc0FuaW1hdGVkKX19Y29uc3QgR2k9XCIuYnMuZm9jdXN0cmFwXCIsSmk9YGZvY3VzaW4ke0dpfWAsWmk9YGtleWRvd24udGFiJHtHaX1gLHRuPVwiYmFja3dhcmRcIixlbj17YXV0b2ZvY3VzOiEwLHRyYXBFbGVtZW50Om51bGx9LG5uPXthdXRvZm9jdXM6XCJib29sZWFuXCIsdHJhcEVsZW1lbnQ6XCJlbGVtZW50XCJ9O2NsYXNzIHNuIGV4dGVuZHMgSHtjb25zdHJ1Y3Rvcih0KXtzdXBlcigpLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcodCksdGhpcy5faXNBY3RpdmU9ITEsdGhpcy5fbGFzdFRhYk5hdkRpcmVjdGlvbj1udWxsfXN0YXRpYyBnZXQgRGVmYXVsdCgpe3JldHVybiBlbn1zdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCl7cmV0dXJuIG5ufXN0YXRpYyBnZXQgTkFNRSgpe3JldHVyblwiZm9jdXN0cmFwXCJ9YWN0aXZhdGUoKXt0aGlzLl9pc0FjdGl2ZXx8KHRoaXMuX2NvbmZpZy5hdXRvZm9jdXMmJnRoaXMuX2NvbmZpZy50cmFwRWxlbWVudC5mb2N1cygpLE4ub2ZmKGRvY3VtZW50LEdpKSxOLm9uKGRvY3VtZW50LEppLCh0PT50aGlzLl9oYW5kbGVGb2N1c2luKHQpKSksTi5vbihkb2N1bWVudCxaaSwodD0+dGhpcy5faGFuZGxlS2V5ZG93bih0KSkpLHRoaXMuX2lzQWN0aXZlPSEwKX1kZWFjdGl2YXRlKCl7dGhpcy5faXNBY3RpdmUmJih0aGlzLl9pc0FjdGl2ZT0hMSxOLm9mZihkb2N1bWVudCxHaSkpfV9oYW5kbGVGb2N1c2luKHQpe2NvbnN0e3RyYXBFbGVtZW50OmV9PXRoaXMuX2NvbmZpZztpZih0LnRhcmdldD09PWRvY3VtZW50fHx0LnRhcmdldD09PWV8fGUuY29udGFpbnModC50YXJnZXQpKXJldHVybjtjb25zdCBpPXouZm9jdXNhYmxlQ2hpbGRyZW4oZSk7MD09PWkubGVuZ3RoP2UuZm9jdXMoKTp0aGlzLl9sYXN0VGFiTmF2RGlyZWN0aW9uPT09dG4/aVtpLmxlbmd0aC0xXS5mb2N1cygpOmlbMF0uZm9jdXMoKX1faGFuZGxlS2V5ZG93bih0KXtcIlRhYlwiPT09dC5rZXkmJih0aGlzLl9sYXN0VGFiTmF2RGlyZWN0aW9uPXQuc2hpZnRLZXk/dG46XCJmb3J3YXJkXCIpfX1jb25zdCBvbj1cIi5maXhlZC10b3AsIC5maXhlZC1ib3R0b20sIC5pcy1maXhlZCwgLnN0aWNreS10b3BcIixybj1cIi5zdGlja3ktdG9wXCIsYW49XCJwYWRkaW5nLXJpZ2h0XCIsbG49XCJtYXJnaW4tcmlnaHRcIjtjbGFzcyBjbntjb25zdHJ1Y3Rvcigpe3RoaXMuX2VsZW1lbnQ9ZG9jdW1lbnQuYm9keX1nZXRXaWR0aCgpe2NvbnN0IHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO3JldHVybiBNYXRoLmFicyh3aW5kb3cuaW5uZXJXaWR0aC10KX1oaWRlKCl7Y29uc3QgdD10aGlzLmdldFdpZHRoKCk7dGhpcy5fZGlzYWJsZU92ZXJGbG93KCksdGhpcy5fc2V0RWxlbWVudEF0dHJpYnV0ZXModGhpcy5fZWxlbWVudCxhbiwoZT0+ZSt0KSksdGhpcy5fc2V0RWxlbWVudEF0dHJpYnV0ZXMob24sYW4sKGU9PmUrdCkpLHRoaXMuX3NldEVsZW1lbnRBdHRyaWJ1dGVzKHJuLGxuLChlPT5lLXQpKX1yZXNldCgpe3RoaXMuX3Jlc2V0RWxlbWVudEF0dHJpYnV0ZXModGhpcy5fZWxlbWVudCxcIm92ZXJmbG93XCIpLHRoaXMuX3Jlc2V0RWxlbWVudEF0dHJpYnV0ZXModGhpcy5fZWxlbWVudCxhbiksdGhpcy5fcmVzZXRFbGVtZW50QXR0cmlidXRlcyhvbixhbiksdGhpcy5fcmVzZXRFbGVtZW50QXR0cmlidXRlcyhybixsbil9aXNPdmVyZmxvd2luZygpe3JldHVybiB0aGlzLmdldFdpZHRoKCk+MH1fZGlzYWJsZU92ZXJGbG93KCl7dGhpcy5fc2F2ZUluaXRpYWxBdHRyaWJ1dGUodGhpcy5fZWxlbWVudCxcIm92ZXJmbG93XCIpLHRoaXMuX2VsZW1lbnQuc3R5bGUub3ZlcmZsb3c9XCJoaWRkZW5cIn1fc2V0RWxlbWVudEF0dHJpYnV0ZXModCxlLGkpe2NvbnN0IG49dGhpcy5nZXRXaWR0aCgpO3RoaXMuX2FwcGx5TWFuaXB1bGF0aW9uQ2FsbGJhY2sodCwodD0+e2lmKHQhPT10aGlzLl9lbGVtZW50JiZ3aW5kb3cuaW5uZXJXaWR0aD50LmNsaWVudFdpZHRoK24pcmV0dXJuO3RoaXMuX3NhdmVJbml0aWFsQXR0cmlidXRlKHQsZSk7Y29uc3Qgcz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5nZXRQcm9wZXJ0eVZhbHVlKGUpO3Quc3R5bGUuc2V0UHJvcGVydHkoZSxgJHtpKE51bWJlci5wYXJzZUZsb2F0KHMpKX1weGApfSkpfV9zYXZlSW5pdGlhbEF0dHJpYnV0ZSh0LGUpe2NvbnN0IGk9dC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKGUpO2kmJkYuc2V0RGF0YUF0dHJpYnV0ZSh0LGUsaSl9X3Jlc2V0RWxlbWVudEF0dHJpYnV0ZXModCxlKXt0aGlzLl9hcHBseU1hbmlwdWxhdGlvbkNhbGxiYWNrKHQsKHQ9Pntjb25zdCBpPUYuZ2V0RGF0YUF0dHJpYnV0ZSh0LGUpO251bGwhPT1pPyhGLnJlbW92ZURhdGFBdHRyaWJ1dGUodCxlKSx0LnN0eWxlLnNldFByb3BlcnR5KGUsaSkpOnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoZSl9KSl9X2FwcGx5TWFuaXB1bGF0aW9uQ2FsbGJhY2sodCxlKXtpZihvKHQpKWUodCk7ZWxzZSBmb3IoY29uc3QgaSBvZiB6LmZpbmQodCx0aGlzLl9lbGVtZW50KSllKGkpfX1jb25zdCBobj1cIi5icy5tb2RhbFwiLGRuPWBoaWRlJHtobn1gLHVuPWBoaWRlUHJldmVudGVkJHtobn1gLGZuPWBoaWRkZW4ke2hufWAscG49YHNob3cke2hufWAsbW49YHNob3duJHtobn1gLGduPWByZXNpemUke2hufWAsX249YGNsaWNrLmRpc21pc3Mke2hufWAsYm49YG1vdXNlZG93bi5kaXNtaXNzJHtobn1gLHZuPWBrZXlkb3duLmRpc21pc3Mke2hufWAseW49YGNsaWNrJHtobn0uZGF0YS1hcGlgLHduPVwibW9kYWwtb3BlblwiLEFuPVwic2hvd1wiLEVuPVwibW9kYWwtc3RhdGljXCIsVG49e2JhY2tkcm9wOiEwLGZvY3VzOiEwLGtleWJvYXJkOiEwfSxDbj17YmFja2Ryb3A6XCIoYm9vbGVhbnxzdHJpbmcpXCIsZm9jdXM6XCJib29sZWFuXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCJ9O2NsYXNzIE9uIGV4dGVuZHMgV3tjb25zdHJ1Y3Rvcih0LGUpe3N1cGVyKHQsZSksdGhpcy5fZGlhbG9nPXouZmluZE9uZShcIi5tb2RhbC1kaWFsb2dcIix0aGlzLl9lbGVtZW50KSx0aGlzLl9iYWNrZHJvcD10aGlzLl9pbml0aWFsaXplQmFja0Ryb3AoKSx0aGlzLl9mb2N1c3RyYXA9dGhpcy5faW5pdGlhbGl6ZUZvY3VzVHJhcCgpLHRoaXMuX2lzU2hvd249ITEsdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX3Njcm9sbEJhcj1uZXcgY24sdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gVG59c3RhdGljIGdldCBEZWZhdWx0VHlwZSgpe3JldHVybiBDbn1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm5cIm1vZGFsXCJ9dG9nZ2xlKHQpe3JldHVybiB0aGlzLl9pc1Nob3duP3RoaXMuaGlkZSgpOnRoaXMuc2hvdyh0KX1zaG93KHQpe3RoaXMuX2lzU2hvd258fHRoaXMuX2lzVHJhbnNpdGlvbmluZ3x8Ti50cmlnZ2VyKHRoaXMuX2VsZW1lbnQscG4se3JlbGF0ZWRUYXJnZXQ6dH0pLmRlZmF1bHRQcmV2ZW50ZWR8fCh0aGlzLl9pc1Nob3duPSEwLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMCx0aGlzLl9zY3JvbGxCYXIuaGlkZSgpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCh3biksdGhpcy5fYWRqdXN0RGlhbG9nKCksdGhpcy5fYmFja2Ryb3Auc2hvdygoKCk9PnRoaXMuX3Nob3dFbGVtZW50KHQpKSkpfWhpZGUoKXt0aGlzLl9pc1Nob3duJiYhdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYoTi50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsZG4pLmRlZmF1bHRQcmV2ZW50ZWR8fCh0aGlzLl9pc1Nob3duPSExLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMCx0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShBbiksdGhpcy5fcXVldWVDYWxsYmFjaygoKCk9PnRoaXMuX2hpZGVNb2RhbCgpKSx0aGlzLl9lbGVtZW50LHRoaXMuX2lzQW5pbWF0ZWQoKSkpKX1kaXNwb3NlKCl7Ti5vZmYod2luZG93LGhuKSxOLm9mZih0aGlzLl9kaWFsb2csaG4pLHRoaXMuX2JhY2tkcm9wLmRpc3Bvc2UoKSx0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpLHN1cGVyLmRpc3Bvc2UoKX1oYW5kbGVVcGRhdGUoKXt0aGlzLl9hZGp1c3REaWFsb2coKX1faW5pdGlhbGl6ZUJhY2tEcm9wKCl7cmV0dXJuIG5ldyBVaSh7aXNWaXNpYmxlOkJvb2xlYW4odGhpcy5fY29uZmlnLmJhY2tkcm9wKSxpc0FuaW1hdGVkOnRoaXMuX2lzQW5pbWF0ZWQoKX0pfV9pbml0aWFsaXplRm9jdXNUcmFwKCl7cmV0dXJuIG5ldyBzbih7dHJhcEVsZW1lbnQ6dGhpcy5fZWxlbWVudH0pfV9zaG93RWxlbWVudCh0KXtkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHRoaXMuX2VsZW1lbnQpfHxkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHRoaXMuX2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLW1vZGFsXCIsITApLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwicm9sZVwiLFwiZGlhbG9nXCIpLHRoaXMuX2VsZW1lbnQuc2Nyb2xsVG9wPTA7Y29uc3QgZT16LmZpbmRPbmUoXCIubW9kYWwtYm9keVwiLHRoaXMuX2RpYWxvZyk7ZSYmKGUuc2Nyb2xsVG9wPTApLGQodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKEFuKSx0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e3RoaXMuX2NvbmZpZy5mb2N1cyYmdGhpcy5fZm9jdXN0cmFwLmFjdGl2YXRlKCksdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LG1uLHtyZWxhdGVkVGFyZ2V0OnR9KX0pLHRoaXMuX2RpYWxvZyx0aGlzLl9pc0FuaW1hdGVkKCkpfV9hZGRFdmVudExpc3RlbmVycygpe04ub24odGhpcy5fZWxlbWVudCx2biwodD0+e1wiRXNjYXBlXCI9PT10LmtleSYmKHRoaXMuX2NvbmZpZy5rZXlib2FyZD90aGlzLmhpZGUoKTp0aGlzLl90cmlnZ2VyQmFja2Ryb3BUcmFuc2l0aW9uKCkpfSkpLE4ub24od2luZG93LGduLCgoKT0+e3RoaXMuX2lzU2hvd24mJiF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnRoaXMuX2FkanVzdERpYWxvZygpfSkpLE4ub24odGhpcy5fZWxlbWVudCxibiwodD0+e04ub25lKHRoaXMuX2VsZW1lbnQsX24sKGU9Pnt0aGlzLl9lbGVtZW50PT09dC50YXJnZXQmJnRoaXMuX2VsZW1lbnQ9PT1lLnRhcmdldCYmKFwic3RhdGljXCIhPT10aGlzLl9jb25maWcuYmFja2Ryb3A/dGhpcy5fY29uZmlnLmJhY2tkcm9wJiZ0aGlzLmhpZGUoKTp0aGlzLl90cmlnZ2VyQmFja2Ryb3BUcmFuc2l0aW9uKCkpfSkpfSkpfV9oaWRlTW9kYWwoKXt0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk9XCJub25lXCIsdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCEwKSx0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtbW9kYWxcIiksdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJyb2xlXCIpLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9iYWNrZHJvcC5oaWRlKCgoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh3biksdGhpcy5fcmVzZXRBZGp1c3RtZW50cygpLHRoaXMuX3Njcm9sbEJhci5yZXNldCgpLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LGZuKX0pKX1faXNBbmltYXRlZCgpe3JldHVybiB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcImZhZGVcIil9X3RyaWdnZXJCYWNrZHJvcFRyYW5zaXRpb24oKXtpZihOLnRyaWdnZXIodGhpcy5fZWxlbWVudCx1bikuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47Y29uc3QgdD10aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGU9dGhpcy5fZWxlbWVudC5zdHlsZS5vdmVyZmxvd1k7XCJoaWRkZW5cIj09PWV8fHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKEVuKXx8KHR8fCh0aGlzLl9lbGVtZW50LnN0eWxlLm92ZXJmbG93WT1cImhpZGRlblwiKSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoRW4pLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEVuKSx0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e3RoaXMuX2VsZW1lbnQuc3R5bGUub3ZlcmZsb3dZPWV9KSx0aGlzLl9kaWFsb2cpfSksdGhpcy5fZGlhbG9nKSx0aGlzLl9lbGVtZW50LmZvY3VzKCkpfV9hZGp1c3REaWFsb2coKXtjb25zdCB0PXRoaXMuX2VsZW1lbnQuc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsZT10aGlzLl9zY3JvbGxCYXIuZ2V0V2lkdGgoKSxpPWU+MDtpZihpJiYhdCl7Y29uc3QgdD1wKCk/XCJwYWRkaW5nTGVmdFwiOlwicGFkZGluZ1JpZ2h0XCI7dGhpcy5fZWxlbWVudC5zdHlsZVt0XT1gJHtlfXB4YH1pZighaSYmdCl7Y29uc3QgdD1wKCk/XCJwYWRkaW5nUmlnaHRcIjpcInBhZGRpbmdMZWZ0XCI7dGhpcy5fZWxlbWVudC5zdHlsZVt0XT1gJHtlfXB4YH19X3Jlc2V0QWRqdXN0bWVudHMoKXt0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0PVwiXCIsdGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQ9XCJcIn1zdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKHQsZSl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtjb25zdCBpPU9uLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyx0KTtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7aWYodm9pZCAwPT09aVt0XSl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke3R9XCJgKTtpW3RdKGUpfX0pKX19Ti5vbihkb2N1bWVudCx5biwnW2RhdGEtYnMtdG9nZ2xlPVwibW9kYWxcIl0nLChmdW5jdGlvbih0KXtjb25zdCBlPXouZ2V0RWxlbWVudEZyb21TZWxlY3Rvcih0aGlzKTtbXCJBXCIsXCJBUkVBXCJdLmluY2x1ZGVzKHRoaXMudGFnTmFtZSkmJnQucHJldmVudERlZmF1bHQoKSxOLm9uZShlLHBuLCh0PT57dC5kZWZhdWx0UHJldmVudGVkfHxOLm9uZShlLGZuLCgoKT0+e2EodGhpcykmJnRoaXMuZm9jdXMoKX0pKX0pKTtjb25zdCBpPXouZmluZE9uZShcIi5tb2RhbC5zaG93XCIpO2kmJk9uLmdldEluc3RhbmNlKGkpLmhpZGUoKSxPbi5nZXRPckNyZWF0ZUluc3RhbmNlKGUpLnRvZ2dsZSh0aGlzKX0pKSxSKE9uKSxtKE9uKTtjb25zdCB4bj1cIi5icy5vZmZjYW52YXNcIixrbj1cIi5kYXRhLWFwaVwiLExuPWBsb2FkJHt4bn0ke2tufWAsU249XCJzaG93XCIsRG49XCJzaG93aW5nXCIsJG49XCJoaWRpbmdcIixJbj1cIi5vZmZjYW52YXMuc2hvd1wiLE5uPWBzaG93JHt4bn1gLFBuPWBzaG93biR7eG59YCxqbj1gaGlkZSR7eG59YCxNbj1gaGlkZVByZXZlbnRlZCR7eG59YCxGbj1gaGlkZGVuJHt4bn1gLEhuPWByZXNpemUke3hufWAsV249YGNsaWNrJHt4bn0ke2tufWAsQm49YGtleWRvd24uZGlzbWlzcyR7eG59YCx6bj17YmFja2Ryb3A6ITAsa2V5Ym9hcmQ6ITAsc2Nyb2xsOiExfSxSbj17YmFja2Ryb3A6XCIoYm9vbGVhbnxzdHJpbmcpXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIsc2Nyb2xsOlwiYm9vbGVhblwifTtjbGFzcyBxbiBleHRlbmRzIFd7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMuX2lzU2hvd249ITEsdGhpcy5fYmFja2Ryb3A9dGhpcy5faW5pdGlhbGl6ZUJhY2tEcm9wKCksdGhpcy5fZm9jdXN0cmFwPXRoaXMuX2luaXRpYWxpemVGb2N1c1RyYXAoKSx0aGlzLl9hZGRFdmVudExpc3RlbmVycygpfXN0YXRpYyBnZXQgRGVmYXVsdCgpe3JldHVybiB6bn1zdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCl7cmV0dXJuIFJufXN0YXRpYyBnZXQgTkFNRSgpe3JldHVyblwib2ZmY2FudmFzXCJ9dG9nZ2xlKHQpe3JldHVybiB0aGlzLl9pc1Nob3duP3RoaXMuaGlkZSgpOnRoaXMuc2hvdyh0KX1zaG93KHQpe3RoaXMuX2lzU2hvd258fE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LE5uLHtyZWxhdGVkVGFyZ2V0OnR9KS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5faXNTaG93bj0hMCx0aGlzLl9iYWNrZHJvcC5zaG93KCksdGhpcy5fY29uZmlnLnNjcm9sbHx8KG5ldyBjbikuaGlkZSgpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1tb2RhbFwiLCEwKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcInJvbGVcIixcImRpYWxvZ1wiKSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoRG4pLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5fY29uZmlnLnNjcm9sbCYmIXRoaXMuX2NvbmZpZy5iYWNrZHJvcHx8dGhpcy5fZm9jdXN0cmFwLmFjdGl2YXRlKCksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFNuKSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoRG4pLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LFBuLHtyZWxhdGVkVGFyZ2V0OnR9KX0pLHRoaXMuX2VsZW1lbnQsITApKX1oaWRlKCl7dGhpcy5faXNTaG93biYmKE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LGpuKS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5fZm9jdXN0cmFwLmRlYWN0aXZhdGUoKSx0aGlzLl9lbGVtZW50LmJsdXIoKSx0aGlzLl9pc1Nob3duPSExLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgkbiksdGhpcy5fYmFja2Ryb3AuaGlkZSgpLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFNuLCRuKSx0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtbW9kYWxcIiksdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJyb2xlXCIpLHRoaXMuX2NvbmZpZy5zY3JvbGx8fChuZXcgY24pLnJlc2V0KCksTi50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsRm4pfSksdGhpcy5fZWxlbWVudCwhMCkpKX1kaXNwb3NlKCl7dGhpcy5fYmFja2Ryb3AuZGlzcG9zZSgpLHRoaXMuX2ZvY3VzdHJhcC5kZWFjdGl2YXRlKCksc3VwZXIuZGlzcG9zZSgpfV9pbml0aWFsaXplQmFja0Ryb3AoKXtjb25zdCB0PUJvb2xlYW4odGhpcy5fY29uZmlnLmJhY2tkcm9wKTtyZXR1cm4gbmV3IFVpKHtjbGFzc05hbWU6XCJvZmZjYW52YXMtYmFja2Ryb3BcIixpc1Zpc2libGU6dCxpc0FuaW1hdGVkOiEwLHJvb3RFbGVtZW50OnRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSxjbGlja0NhbGxiYWNrOnQ/KCk9PntcInN0YXRpY1wiIT09dGhpcy5fY29uZmlnLmJhY2tkcm9wP3RoaXMuaGlkZSgpOk4udHJpZ2dlcih0aGlzLl9lbGVtZW50LE1uKX06bnVsbH0pfV9pbml0aWFsaXplRm9jdXNUcmFwKCl7cmV0dXJuIG5ldyBzbih7dHJhcEVsZW1lbnQ6dGhpcy5fZWxlbWVudH0pfV9hZGRFdmVudExpc3RlbmVycygpe04ub24odGhpcy5fZWxlbWVudCxCbiwodD0+e1wiRXNjYXBlXCI9PT10LmtleSYmKHRoaXMuX2NvbmZpZy5rZXlib2FyZD90aGlzLmhpZGUoKTpOLnRyaWdnZXIodGhpcy5fZWxlbWVudCxNbikpfSkpfXN0YXRpYyBqUXVlcnlJbnRlcmZhY2UodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtjb25zdCBlPXFuLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyx0KTtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7aWYodm9pZCAwPT09ZVt0XXx8dC5zdGFydHNXaXRoKFwiX1wiKXx8XCJjb25zdHJ1Y3RvclwiPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke3R9XCJgKTtlW3RdKHRoaXMpfX0pKX19Ti5vbihkb2N1bWVudCxXbiwnW2RhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCJdJywoZnVuY3Rpb24odCl7Y29uc3QgZT16LmdldEVsZW1lbnRGcm9tU2VsZWN0b3IodGhpcyk7aWYoW1wiQVwiLFwiQVJFQVwiXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpJiZ0LnByZXZlbnREZWZhdWx0KCksbCh0aGlzKSlyZXR1cm47Ti5vbmUoZSxGbiwoKCk9PnthKHRoaXMpJiZ0aGlzLmZvY3VzKCl9KSk7Y29uc3QgaT16LmZpbmRPbmUoSW4pO2kmJmkhPT1lJiZxbi5nZXRJbnN0YW5jZShpKS5oaWRlKCkscW4uZ2V0T3JDcmVhdGVJbnN0YW5jZShlKS50b2dnbGUodGhpcyl9KSksTi5vbih3aW5kb3csTG4sKCgpPT57Zm9yKGNvbnN0IHQgb2Ygei5maW5kKEluKSlxbi5nZXRPckNyZWF0ZUluc3RhbmNlKHQpLnNob3coKX0pKSxOLm9uKHdpbmRvdyxIbiwoKCk9Pntmb3IoY29uc3QgdCBvZiB6LmZpbmQoXCJbYXJpYS1tb2RhbF1bY2xhc3MqPXNob3ddW2NsYXNzKj1vZmZjYW52YXMtXVwiKSlcImZpeGVkXCIhPT1nZXRDb21wdXRlZFN0eWxlKHQpLnBvc2l0aW9uJiZxbi5nZXRPckNyZWF0ZUluc3RhbmNlKHQpLmhpZGUoKX0pKSxSKHFuKSxtKHFuKTtjb25zdCBWbj17XCIqXCI6W1wiY2xhc3NcIixcImRpclwiLFwiaWRcIixcImxhbmdcIixcInJvbGVcIiwvXmFyaWEtW1xcdy1dKiQvaV0sYTpbXCJ0YXJnZXRcIixcImhyZWZcIixcInRpdGxlXCIsXCJyZWxcIl0sYXJlYTpbXSxiOltdLGJyOltdLGNvbDpbXSxjb2RlOltdLGRkOltdLGRpdjpbXSxkbDpbXSxkdDpbXSxlbTpbXSxocjpbXSxoMTpbXSxoMjpbXSxoMzpbXSxoNDpbXSxoNTpbXSxoNjpbXSxpOltdLGltZzpbXCJzcmNcIixcInNyY3NldFwiLFwiYWx0XCIsXCJ0aXRsZVwiLFwid2lkdGhcIixcImhlaWdodFwiXSxsaTpbXSxvbDpbXSxwOltdLHByZTpbXSxzOltdLHNtYWxsOltdLHNwYW46W10sc3ViOltdLHN1cDpbXSxzdHJvbmc6W10sdTpbXSx1bDpbXX0sS249bmV3IFNldChbXCJiYWNrZ3JvdW5kXCIsXCJjaXRlXCIsXCJocmVmXCIsXCJpdGVtdHlwZVwiLFwibG9uZ2Rlc2NcIixcInBvc3RlclwiLFwic3JjXCIsXCJ4bGluazpocmVmXCJdKSxRbj0vXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOi8/I10qKD86Wy8/I118JCkpL2ksWG49KHQsZSk9Pntjb25zdCBpPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gZS5pbmNsdWRlcyhpKT8hS24uaGFzKGkpfHxCb29sZWFuKFFuLnRlc3QodC5ub2RlVmFsdWUpKTplLmZpbHRlcigodD0+dCBpbnN0YW5jZW9mIFJlZ0V4cCkpLnNvbWUoKHQ9PnQudGVzdChpKSkpfSxZbj17YWxsb3dMaXN0OlZuLGNvbnRlbnQ6e30sZXh0cmFDbGFzczpcIlwiLGh0bWw6ITEsc2FuaXRpemU6ITAsc2FuaXRpemVGbjpudWxsLHRlbXBsYXRlOlwiPGRpdj48L2Rpdj5cIn0sVW49e2FsbG93TGlzdDpcIm9iamVjdFwiLGNvbnRlbnQ6XCJvYmplY3RcIixleHRyYUNsYXNzOlwiKHN0cmluZ3xmdW5jdGlvbilcIixodG1sOlwiYm9vbGVhblwiLHNhbml0aXplOlwiYm9vbGVhblwiLHNhbml0aXplRm46XCIobnVsbHxmdW5jdGlvbilcIix0ZW1wbGF0ZTpcInN0cmluZ1wifSxHbj17ZW50cnk6XCIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb258bnVsbClcIixzZWxlY3RvcjpcIihzdHJpbmd8ZWxlbWVudClcIn07Y2xhc3MgSm4gZXh0ZW5kcyBIe2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyh0KX1zdGF0aWMgZ2V0IERlZmF1bHQoKXtyZXR1cm4gWW59c3RhdGljIGdldCBEZWZhdWx0VHlwZSgpe3JldHVybiBVbn1zdGF0aWMgZ2V0IE5BTUUoKXtyZXR1cm5cIlRlbXBsYXRlRmFjdG9yeVwifWdldENvbnRlbnQoKXtyZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLl9jb25maWcuY29udGVudCkubWFwKCh0PT50aGlzLl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbih0KSkpLmZpbHRlcihCb29sZWFuKX1oYXNDb250ZW50KCl7cmV0dXJuIHRoaXMuZ2V0Q29udGVudCgpLmxlbmd0aD4wfWNoYW5nZUNvbnRlbnQodCl7cmV0dXJuIHRoaXMuX2NoZWNrQ29udGVudCh0KSx0aGlzLl9jb25maWcuY29udGVudD17Li4udGhpcy5fY29uZmlnLmNvbnRlbnQsLi4udH0sdGhpc310b0h0bWwoKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5pbm5lckhUTUw9dGhpcy5fbWF5YmVTYW5pdGl6ZSh0aGlzLl9jb25maWcudGVtcGxhdGUpO2Zvcihjb25zdFtlLGldb2YgT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnLmNvbnRlbnQpKXRoaXMuX3NldENvbnRlbnQodCxpLGUpO2NvbnN0IGU9dC5jaGlsZHJlblswXSxpPXRoaXMuX3Jlc29sdmVQb3NzaWJsZUZ1bmN0aW9uKHRoaXMuX2NvbmZpZy5leHRyYUNsYXNzKTtyZXR1cm4gaSYmZS5jbGFzc0xpc3QuYWRkKC4uLmkuc3BsaXQoXCIgXCIpKSxlfV90eXBlQ2hlY2tDb25maWcodCl7c3VwZXIuX3R5cGVDaGVja0NvbmZpZyh0KSx0aGlzLl9jaGVja0NvbnRlbnQodC5jb250ZW50KX1fY2hlY2tDb250ZW50KHQpe2Zvcihjb25zdFtlLGldb2YgT2JqZWN0LmVudHJpZXModCkpc3VwZXIuX3R5cGVDaGVja0NvbmZpZyh7c2VsZWN0b3I6ZSxlbnRyeTppfSxHbil9X3NldENvbnRlbnQodCxlLGkpe2NvbnN0IG49ei5maW5kT25lKGksdCk7biYmKChlPXRoaXMuX3Jlc29sdmVQb3NzaWJsZUZ1bmN0aW9uKGUpKT9vKGUpP3RoaXMuX3B1dEVsZW1lbnRJblRlbXBsYXRlKHIoZSksbik6dGhpcy5fY29uZmlnLmh0bWw/bi5pbm5lckhUTUw9dGhpcy5fbWF5YmVTYW5pdGl6ZShlKTpuLnRleHRDb250ZW50PWU6bi5yZW1vdmUoKSl9X21heWJlU2FuaXRpemUodCl7cmV0dXJuIHRoaXMuX2NvbmZpZy5zYW5pdGl6ZT9mdW5jdGlvbih0LGUsaSl7aWYoIXQubGVuZ3RoKXJldHVybiB0O2lmKGkmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGkpcmV0dXJuIGkodCk7Y29uc3Qgbj0obmV3IHdpbmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyh0LFwidGV4dC9odG1sXCIpLHM9W10uY29uY2F0KC4uLm4uYm9keS5xdWVyeVNlbGVjdG9yQWxsKFwiKlwiKSk7Zm9yKGNvbnN0IHQgb2Ygcyl7Y29uc3QgaT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoIU9iamVjdC5rZXlzKGUpLmluY2x1ZGVzKGkpKXt0LnJlbW92ZSgpO2NvbnRpbnVlfWNvbnN0IG49W10uY29uY2F0KC4uLnQuYXR0cmlidXRlcykscz1bXS5jb25jYXQoZVtcIipcIl18fFtdLGVbaV18fFtdKTtmb3IoY29uc3QgZSBvZiBuKVhuKGUscyl8fHQucmVtb3ZlQXR0cmlidXRlKGUubm9kZU5hbWUpfXJldHVybiBuLmJvZHkuaW5uZXJIVE1MfSh0LHRoaXMuX2NvbmZpZy5hbGxvd0xpc3QsdGhpcy5fY29uZmlnLnNhbml0aXplRm4pOnR9X3Jlc29sdmVQb3NzaWJsZUZ1bmN0aW9uKHQpe3JldHVybiBnKHQsW3RoaXNdKX1fcHV0RWxlbWVudEluVGVtcGxhdGUodCxlKXtpZih0aGlzLl9jb25maWcuaHRtbClyZXR1cm4gZS5pbm5lckhUTUw9XCJcIix2b2lkIGUuYXBwZW5kKHQpO2UudGV4dENvbnRlbnQ9dC50ZXh0Q29udGVudH19Y29uc3QgWm49bmV3IFNldChbXCJzYW5pdGl6ZVwiLFwiYWxsb3dMaXN0XCIsXCJzYW5pdGl6ZUZuXCJdKSx0cz1cImZhZGVcIixlcz1cInNob3dcIixpcz1cIi5tb2RhbFwiLG5zPVwiaGlkZS5icy5tb2RhbFwiLHNzPVwiaG92ZXJcIixvcz1cImZvY3VzXCIscnM9e0FVVE86XCJhdXRvXCIsVE9QOlwidG9wXCIsUklHSFQ6cCgpP1wibGVmdFwiOlwicmlnaHRcIixCT1RUT006XCJib3R0b21cIixMRUZUOnAoKT9cInJpZ2h0XCI6XCJsZWZ0XCJ9LGFzPXthbGxvd0xpc3Q6Vm4sYW5pbWF0aW9uOiEwLGJvdW5kYXJ5OlwiY2xpcHBpbmdQYXJlbnRzXCIsY29udGFpbmVyOiExLGN1c3RvbUNsYXNzOlwiXCIsZGVsYXk6MCxmYWxsYmFja1BsYWNlbWVudHM6W1widG9wXCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJsZWZ0XCJdLGh0bWw6ITEsb2Zmc2V0OlswLDZdLHBsYWNlbWVudDpcInRvcFwiLHBvcHBlckNvbmZpZzpudWxsLHNhbml0aXplOiEwLHNhbml0aXplRm46bnVsbCxzZWxlY3RvcjohMSx0ZW1wbGF0ZTonPGRpdiBjbGFzcz1cInRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiPjxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC9kaXY+PGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj48L2Rpdj4nLHRpdGxlOlwiXCIsdHJpZ2dlcjpcImhvdmVyIGZvY3VzXCJ9LGxzPXthbGxvd0xpc3Q6XCJvYmplY3RcIixhbmltYXRpb246XCJib29sZWFuXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCIsY29udGFpbmVyOlwiKHN0cmluZ3xlbGVtZW50fGJvb2xlYW4pXCIsY3VzdG9tQ2xhc3M6XCIoc3RyaW5nfGZ1bmN0aW9uKVwiLGRlbGF5OlwiKG51bWJlcnxvYmplY3QpXCIsZmFsbGJhY2tQbGFjZW1lbnRzOlwiYXJyYXlcIixodG1sOlwiYm9vbGVhblwiLG9mZnNldDpcIihhcnJheXxzdHJpbmd8ZnVuY3Rpb24pXCIscGxhY2VtZW50OlwiKHN0cmluZ3xmdW5jdGlvbilcIixwb3BwZXJDb25maWc6XCIobnVsbHxvYmplY3R8ZnVuY3Rpb24pXCIsc2FuaXRpemU6XCJib29sZWFuXCIsc2FuaXRpemVGbjpcIihudWxsfGZ1bmN0aW9uKVwiLHNlbGVjdG9yOlwiKHN0cmluZ3xib29sZWFuKVwiLHRlbXBsYXRlOlwic3RyaW5nXCIsdGl0bGU6XCIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pXCIsdHJpZ2dlcjpcInN0cmluZ1wifTtjbGFzcyBjcyBleHRlbmRzIFd7Y29uc3RydWN0b3IodCxlKXtpZih2b2lkIDA9PT12aSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwJ3MgdG9vbHRpcHMgcmVxdWlyZSBQb3BwZXIgKGh0dHBzOi8vcG9wcGVyLmpzLm9yZylcIik7c3VwZXIodCxlKSx0aGlzLl9pc0VuYWJsZWQ9ITAsdGhpcy5fdGltZW91dD0wLHRoaXMuX2lzSG92ZXJlZD1udWxsLHRoaXMuX2FjdGl2ZVRyaWdnZXI9e30sdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5fdGVtcGxhdGVGYWN0b3J5PW51bGwsdGhpcy5fbmV3Q29udGVudD1udWxsLHRoaXMudGlwPW51bGwsdGhpcy5fc2V0TGlzdGVuZXJzKCksdGhpcy5fY29uZmlnLnNlbGVjdG9yfHx0aGlzLl9maXhUaXRsZSgpfXN0YXRpYyBnZXQgRGVmYXVsdCgpe3JldHVybiBhc31zdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCl7cmV0dXJuIGxzfXN0YXRpYyBnZXQgTkFNRSgpe3JldHVyblwidG9vbHRpcFwifWVuYWJsZSgpe3RoaXMuX2lzRW5hYmxlZD0hMH1kaXNhYmxlKCl7dGhpcy5faXNFbmFibGVkPSExfXRvZ2dsZUVuYWJsZWQoKXt0aGlzLl9pc0VuYWJsZWQ9IXRoaXMuX2lzRW5hYmxlZH10b2dnbGUoKXt0aGlzLl9pc0VuYWJsZWQmJih0aGlzLl9hY3RpdmVUcmlnZ2VyLmNsaWNrPSF0aGlzLl9hY3RpdmVUcmlnZ2VyLmNsaWNrLHRoaXMuX2lzU2hvd24oKT90aGlzLl9sZWF2ZSgpOnRoaXMuX2VudGVyKCkpfWRpc3Bvc2UoKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksTi5vZmYodGhpcy5fZWxlbWVudC5jbG9zZXN0KGlzKSxucyx0aGlzLl9oaWRlTW9kYWxIYW5kbGVyKSx0aGlzLl9lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtYnMtb3JpZ2luYWwtdGl0bGVcIikmJnRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwidGl0bGVcIix0aGlzLl9lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtYnMtb3JpZ2luYWwtdGl0bGVcIikpLHRoaXMuX2Rpc3Bvc2VQb3BwZXIoKSxzdXBlci5kaXNwb3NlKCl9c2hvdygpe2lmKFwibm9uZVwiPT09dGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5KXRocm93IG5ldyBFcnJvcihcIlBsZWFzZSB1c2Ugc2hvdyBvbiB2aXNpYmxlIGVsZW1lbnRzXCIpO2lmKCF0aGlzLl9pc1dpdGhDb250ZW50KCl8fCF0aGlzLl9pc0VuYWJsZWQpcmV0dXJuO2NvbnN0IHQ9Ti50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoXCJzaG93XCIpKSxlPShjKHRoaXMuX2VsZW1lbnQpfHx0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5jb250YWlucyh0aGlzLl9lbGVtZW50KTtpZih0LmRlZmF1bHRQcmV2ZW50ZWR8fCFlKXJldHVybjt0aGlzLl9kaXNwb3NlUG9wcGVyKCk7Y29uc3QgaT10aGlzLl9nZXRUaXBFbGVtZW50KCk7dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsaS5nZXRBdHRyaWJ1dGUoXCJpZFwiKSk7Y29uc3R7Y29udGFpbmVyOm59PXRoaXMuX2NvbmZpZztpZih0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMudGlwKXx8KG4uYXBwZW5kKGkpLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKFwiaW5zZXJ0ZWRcIikpKSx0aGlzLl9wb3BwZXI9dGhpcy5fY3JlYXRlUG9wcGVyKGkpLGkuY2xhc3NMaXN0LmFkZChlcyksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudClmb3IoY29uc3QgdCBvZltdLmNvbmNhdCguLi5kb2N1bWVudC5ib2R5LmNoaWxkcmVuKSlOLm9uKHQsXCJtb3VzZW92ZXJcIixoKTt0aGlzLl9xdWV1ZUNhbGxiYWNrKCgoKT0+e04udHJpZ2dlcih0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKFwic2hvd25cIikpLCExPT09dGhpcy5faXNIb3ZlcmVkJiZ0aGlzLl9sZWF2ZSgpLHRoaXMuX2lzSG92ZXJlZD0hMX0pLHRoaXMudGlwLHRoaXMuX2lzQW5pbWF0ZWQoKSl9aGlkZSgpe2lmKHRoaXMuX2lzU2hvd24oKSYmIU4udHJpZ2dlcih0aGlzLl9lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKFwiaGlkZVwiKSkuZGVmYXVsdFByZXZlbnRlZCl7aWYodGhpcy5fZ2V0VGlwRWxlbWVudCgpLmNsYXNzTGlzdC5yZW1vdmUoZXMpLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpZm9yKGNvbnN0IHQgb2ZbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikpTi5vZmYodCxcIm1vdXNlb3ZlclwiLGgpO3RoaXMuX2FjdGl2ZVRyaWdnZXIuY2xpY2s9ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltvc109ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltzc109ITEsdGhpcy5faXNIb3ZlcmVkPW51bGwsdGhpcy5fcXVldWVDYWxsYmFjaygoKCk9Pnt0aGlzLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCl8fCh0aGlzLl9pc0hvdmVyZWR8fHRoaXMuX2Rpc3Bvc2VQb3BwZXIoKSx0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIiksTi50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoXCJoaWRkZW5cIikpKX0pLHRoaXMudGlwLHRoaXMuX2lzQW5pbWF0ZWQoKSl9fXVwZGF0ZSgpe3RoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnVwZGF0ZSgpfV9pc1dpdGhDb250ZW50KCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fZ2V0VGl0bGUoKSl9X2dldFRpcEVsZW1lbnQoKXtyZXR1cm4gdGhpcy50aXB8fCh0aGlzLnRpcD10aGlzLl9jcmVhdGVUaXBFbGVtZW50KHRoaXMuX25ld0NvbnRlbnR8fHRoaXMuX2dldENvbnRlbnRGb3JUZW1wbGF0ZSgpKSksdGhpcy50aXB9X2NyZWF0ZVRpcEVsZW1lbnQodCl7Y29uc3QgZT10aGlzLl9nZXRUZW1wbGF0ZUZhY3RvcnkodCkudG9IdG1sKCk7aWYoIWUpcmV0dXJuIG51bGw7ZS5jbGFzc0xpc3QucmVtb3ZlKHRzLGVzKSxlLmNsYXNzTGlzdC5hZGQoYGJzLSR7dGhpcy5jb25zdHJ1Y3Rvci5OQU1FfS1hdXRvYCk7Y29uc3QgaT0odD0+e2Rve3QrPU1hdGguZmxvb3IoMWU2Kk1hdGgucmFuZG9tKCkpfXdoaWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpKTtyZXR1cm4gdH0pKHRoaXMuY29uc3RydWN0b3IuTkFNRSkudG9TdHJpbmcoKTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGUoXCJpZFwiLGkpLHRoaXMuX2lzQW5pbWF0ZWQoKSYmZS5jbGFzc0xpc3QuYWRkKHRzKSxlfXNldENvbnRlbnQodCl7dGhpcy5fbmV3Q29udGVudD10LHRoaXMuX2lzU2hvd24oKSYmKHRoaXMuX2Rpc3Bvc2VQb3BwZXIoKSx0aGlzLnNob3coKSl9X2dldFRlbXBsYXRlRmFjdG9yeSh0KXtyZXR1cm4gdGhpcy5fdGVtcGxhdGVGYWN0b3J5P3RoaXMuX3RlbXBsYXRlRmFjdG9yeS5jaGFuZ2VDb250ZW50KHQpOnRoaXMuX3RlbXBsYXRlRmFjdG9yeT1uZXcgSm4oey4uLnRoaXMuX2NvbmZpZyxjb250ZW50OnQsZXh0cmFDbGFzczp0aGlzLl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbih0aGlzLl9jb25maWcuY3VzdG9tQ2xhc3MpfSksdGhpcy5fdGVtcGxhdGVGYWN0b3J5fV9nZXRDb250ZW50Rm9yVGVtcGxhdGUoKXtyZXR1cm57XCIudG9vbHRpcC1pbm5lclwiOnRoaXMuX2dldFRpdGxlKCl9fV9nZXRUaXRsZSgpe3JldHVybiB0aGlzLl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbih0aGlzLl9jb25maWcudGl0bGUpfHx0aGlzLl9lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtYnMtb3JpZ2luYWwtdGl0bGVcIil9X2luaXRpYWxpemVPbkRlbGVnYXRlZFRhcmdldCh0KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5nZXRPckNyZWF0ZUluc3RhbmNlKHQuZGVsZWdhdGVUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSl9X2lzQW5pbWF0ZWQoKXtyZXR1cm4gdGhpcy5fY29uZmlnLmFuaW1hdGlvbnx8dGhpcy50aXAmJnRoaXMudGlwLmNsYXNzTGlzdC5jb250YWlucyh0cyl9X2lzU2hvd24oKXtyZXR1cm4gdGhpcy50aXAmJnRoaXMudGlwLmNsYXNzTGlzdC5jb250YWlucyhlcyl9X2NyZWF0ZVBvcHBlcih0KXtjb25zdCBlPWcodGhpcy5fY29uZmlnLnBsYWNlbWVudCxbdGhpcyx0LHRoaXMuX2VsZW1lbnRdKSxpPXJzW2UudG9VcHBlckNhc2UoKV07cmV0dXJuIGJpKHRoaXMuX2VsZW1lbnQsdCx0aGlzLl9nZXRQb3BwZXJDb25maWcoaSkpfV9nZXRPZmZzZXQoKXtjb25zdHtvZmZzZXQ6dH09dGhpcy5fY29uZmlnO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P3Quc3BsaXQoXCIsXCIpLm1hcCgodD0+TnVtYmVyLnBhcnNlSW50KHQsMTApKSk6XCJmdW5jdGlvblwiPT10eXBlb2YgdD9lPT50KGUsdGhpcy5fZWxlbWVudCk6dH1fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24odCl7cmV0dXJuIGcodCxbdGhpcy5fZWxlbWVudF0pfV9nZXRQb3BwZXJDb25maWcodCl7Y29uc3QgZT17cGxhY2VtZW50OnQsbW9kaWZpZXJzOlt7bmFtZTpcImZsaXBcIixvcHRpb25zOntmYWxsYmFja1BsYWNlbWVudHM6dGhpcy5fY29uZmlnLmZhbGxiYWNrUGxhY2VtZW50c319LHtuYW1lOlwib2Zmc2V0XCIsb3B0aW9uczp7b2Zmc2V0OnRoaXMuX2dldE9mZnNldCgpfX0se25hbWU6XCJwcmV2ZW50T3ZlcmZsb3dcIixvcHRpb25zOntib3VuZGFyeTp0aGlzLl9jb25maWcuYm91bmRhcnl9fSx7bmFtZTpcImFycm93XCIsb3B0aW9uczp7ZWxlbWVudDpgLiR7dGhpcy5jb25zdHJ1Y3Rvci5OQU1FfS1hcnJvd2B9fSx7bmFtZTpcInByZVNldFBsYWNlbWVudFwiLGVuYWJsZWQ6ITAscGhhc2U6XCJiZWZvcmVNYWluXCIsZm46dD0+e3RoaXMuX2dldFRpcEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoXCJkYXRhLXBvcHBlci1wbGFjZW1lbnRcIix0LnN0YXRlLnBsYWNlbWVudCl9fV19O3JldHVybnsuLi5lLC4uLmcodGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZyxbZV0pfX1fc2V0TGlzdGVuZXJzKCl7Y29uc3QgdD10aGlzLl9jb25maWcudHJpZ2dlci5zcGxpdChcIiBcIik7Zm9yKGNvbnN0IGUgb2YgdClpZihcImNsaWNrXCI9PT1lKU4ub24odGhpcy5fZWxlbWVudCx0aGlzLmNvbnN0cnVjdG9yLmV2ZW50TmFtZShcImNsaWNrXCIpLHRoaXMuX2NvbmZpZy5zZWxlY3RvciwodD0+e3RoaXMuX2luaXRpYWxpemVPbkRlbGVnYXRlZFRhcmdldCh0KS50b2dnbGUoKX0pKTtlbHNlIGlmKFwibWFudWFsXCIhPT1lKXtjb25zdCB0PWU9PT1zcz90aGlzLmNvbnN0cnVjdG9yLmV2ZW50TmFtZShcIm1vdXNlZW50ZXJcIik6dGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoXCJmb2N1c2luXCIpLGk9ZT09PXNzP3RoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKFwibW91c2VsZWF2ZVwiKTp0aGlzLmNvbnN0cnVjdG9yLmV2ZW50TmFtZShcImZvY3Vzb3V0XCIpO04ub24odGhpcy5fZWxlbWVudCx0LHRoaXMuX2NvbmZpZy5zZWxlY3RvciwodD0+e2NvbnN0IGU9dGhpcy5faW5pdGlhbGl6ZU9uRGVsZWdhdGVkVGFyZ2V0KHQpO2UuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c2luXCI9PT10LnR5cGU/b3M6c3NdPSEwLGUuX2VudGVyKCl9KSksTi5vbih0aGlzLl9lbGVtZW50LGksdGhpcy5fY29uZmlnLnNlbGVjdG9yLCh0PT57Y29uc3QgZT10aGlzLl9pbml0aWFsaXplT25EZWxlZ2F0ZWRUYXJnZXQodCk7ZS5fYWN0aXZlVHJpZ2dlcltcImZvY3Vzb3V0XCI9PT10LnR5cGU/b3M6c3NdPWUuX2VsZW1lbnQuY29udGFpbnModC5yZWxhdGVkVGFyZ2V0KSxlLl9sZWF2ZSgpfSkpfXRoaXMuX2hpZGVNb2RhbEhhbmRsZXI9KCk9Pnt0aGlzLl9lbGVtZW50JiZ0aGlzLmhpZGUoKX0sTi5vbih0aGlzLl9lbGVtZW50LmNsb3Nlc3QoaXMpLG5zLHRoaXMuX2hpZGVNb2RhbEhhbmRsZXIpfV9maXhUaXRsZSgpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKTt0JiYodGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIpfHx0aGlzLl9lbGVtZW50LnRleHRDb250ZW50LnRyaW0oKXx8dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsdCksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkYXRhLWJzLW9yaWdpbmFsLXRpdGxlXCIsdCksdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJ0aXRsZVwiKSl9X2VudGVyKCl7dGhpcy5faXNTaG93bigpfHx0aGlzLl9pc0hvdmVyZWQ/dGhpcy5faXNIb3ZlcmVkPSEwOih0aGlzLl9pc0hvdmVyZWQ9ITAsdGhpcy5fc2V0VGltZW91dCgoKCk9Pnt0aGlzLl9pc0hvdmVyZWQmJnRoaXMuc2hvdygpfSksdGhpcy5fY29uZmlnLmRlbGF5LnNob3cpKX1fbGVhdmUoKXt0aGlzLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCl8fCh0aGlzLl9pc0hvdmVyZWQ9ITEsdGhpcy5fc2V0VGltZW91dCgoKCk9Pnt0aGlzLl9pc0hvdmVyZWR8fHRoaXMuaGlkZSgpfSksdGhpcy5fY29uZmlnLmRlbGF5LmhpZGUpKX1fc2V0VGltZW91dCh0LGUpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQodCxlKX1faXNXaXRoQWN0aXZlVHJpZ2dlcigpe3JldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX2FjdGl2ZVRyaWdnZXIpLmluY2x1ZGVzKCEwKX1fZ2V0Q29uZmlnKHQpe2NvbnN0IGU9Ri5nZXREYXRhQXR0cmlidXRlcyh0aGlzLl9lbGVtZW50KTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhlKSlabi5oYXModCkmJmRlbGV0ZSBlW3RdO3JldHVybiB0PXsuLi5lLC4uLlwib2JqZWN0XCI9PXR5cGVvZiB0JiZ0P3Q6e319LHQ9dGhpcy5fbWVyZ2VDb25maWdPYmoodCksdD10aGlzLl9jb25maWdBZnRlck1lcmdlKHQpLHRoaXMuX3R5cGVDaGVja0NvbmZpZyh0KSx0fV9jb25maWdBZnRlck1lcmdlKHQpe3JldHVybiB0LmNvbnRhaW5lcj0hMT09PXQuY29udGFpbmVyP2RvY3VtZW50LmJvZHk6cih0LmNvbnRhaW5lciksXCJudW1iZXJcIj09dHlwZW9mIHQuZGVsYXkmJih0LmRlbGF5PXtzaG93OnQuZGVsYXksaGlkZTp0LmRlbGF5fSksXCJudW1iZXJcIj09dHlwZW9mIHQudGl0bGUmJih0LnRpdGxlPXQudGl0bGUudG9TdHJpbmcoKSksXCJudW1iZXJcIj09dHlwZW9mIHQuY29udGVudCYmKHQuY29udGVudD10LmNvbnRlbnQudG9TdHJpbmcoKSksdH1fZ2V0RGVsZWdhdGVDb25maWcoKXtjb25zdCB0PXt9O2Zvcihjb25zdFtlLGldb2YgT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnKSl0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRbZV0hPT1pJiYodFtlXT1pKTtyZXR1cm4gdC5zZWxlY3Rvcj0hMSx0LnRyaWdnZXI9XCJtYW51YWxcIix0fV9kaXNwb3NlUG9wcGVyKCl7dGhpcy5fcG9wcGVyJiYodGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCksdGhpcy50aXAmJih0aGlzLnRpcC5yZW1vdmUoKSx0aGlzLnRpcD1udWxsKX1zdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y29uc3QgZT1jcy5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsdCk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe2lmKHZvaWQgMD09PWVbdF0pdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHt0fVwiYCk7ZVt0XSgpfX0pKX19bShjcyk7Y29uc3QgaHM9ey4uLmNzLkRlZmF1bHQsY29udGVudDpcIlwiLG9mZnNldDpbMCw4XSxwbGFjZW1lbnQ6XCJyaWdodFwiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwicG9wb3ZlclwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cInBvcG92ZXItYXJyb3dcIj48L2Rpdj48aDMgY2xhc3M9XCJwb3BvdmVyLWhlYWRlclwiPjwvaDM+PGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjpcImNsaWNrXCJ9LGRzPXsuLi5jcy5EZWZhdWx0VHlwZSxjb250ZW50OlwiKG51bGx8c3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pXCJ9O2NsYXNzIHVzIGV4dGVuZHMgY3N7c3RhdGljIGdldCBEZWZhdWx0KCl7cmV0dXJuIGhzfXN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKXtyZXR1cm4gZHN9c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuXCJwb3BvdmVyXCJ9X2lzV2l0aENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fZ2V0VGl0bGUoKXx8dGhpcy5fZ2V0Q29udGVudCgpfV9nZXRDb250ZW50Rm9yVGVtcGxhdGUoKXtyZXR1cm57XCIucG9wb3Zlci1oZWFkZXJcIjp0aGlzLl9nZXRUaXRsZSgpLFwiLnBvcG92ZXItYm9keVwiOnRoaXMuX2dldENvbnRlbnQoKX19X2dldENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24odGhpcy5fY29uZmlnLmNvbnRlbnQpfXN0YXRpYyBqUXVlcnlJbnRlcmZhY2UodCl7cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oKXtjb25zdCBlPXVzLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcyx0KTtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7aWYodm9pZCAwPT09ZVt0XSl0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke3R9XCJgKTtlW3RdKCl9fSkpfX1tKHVzKTtjb25zdCBmcz1cIi5icy5zY3JvbGxzcHlcIixwcz1gYWN0aXZhdGUke2ZzfWAsbXM9YGNsaWNrJHtmc31gLGdzPWBsb2FkJHtmc30uZGF0YS1hcGlgLF9zPVwiYWN0aXZlXCIsYnM9XCJbaHJlZl1cIix2cz1cIi5uYXYtbGlua1wiLHlzPWAke3ZzfSwgLm5hdi1pdGVtID4gJHt2c30sIC5saXN0LWdyb3VwLWl0ZW1gLHdzPXtvZmZzZXQ6bnVsbCxyb290TWFyZ2luOlwiMHB4IDBweCAtMjUlXCIsc21vb3RoU2Nyb2xsOiExLHRhcmdldDpudWxsLHRocmVzaG9sZDpbLjEsLjUsMV19LEFzPXtvZmZzZXQ6XCIobnVtYmVyfG51bGwpXCIscm9vdE1hcmdpbjpcInN0cmluZ1wiLHNtb290aFNjcm9sbDpcImJvb2xlYW5cIix0YXJnZXQ6XCJlbGVtZW50XCIsdGhyZXNob2xkOlwiYXJyYXlcIn07Y2xhc3MgRXMgZXh0ZW5kcyBXe2NvbnN0cnVjdG9yKHQsZSl7c3VwZXIodCxlKSx0aGlzLl90YXJnZXRMaW5rcz1uZXcgTWFwLHRoaXMuX29ic2VydmFibGVTZWN0aW9ucz1uZXcgTWFwLHRoaXMuX3Jvb3RFbGVtZW50PVwidmlzaWJsZVwiPT09Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9lbGVtZW50KS5vdmVyZmxvd1k/bnVsbDp0aGlzLl9lbGVtZW50LHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHRoaXMuX29ic2VydmVyPW51bGwsdGhpcy5fcHJldmlvdXNTY3JvbGxEYXRhPXt2aXNpYmxlRW50cnlUb3A6MCxwYXJlbnRTY3JvbGxUb3A6MH0sdGhpcy5yZWZyZXNoKCl9c3RhdGljIGdldCBEZWZhdWx0KCl7cmV0dXJuIHdzfXN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKXtyZXR1cm4gQXN9c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuXCJzY3JvbGxzcHlcIn1yZWZyZXNoKCl7dGhpcy5faW5pdGlhbGl6ZVRhcmdldHNBbmRPYnNlcnZhYmxlcygpLHRoaXMuX21heWJlRW5hYmxlU21vb3RoU2Nyb2xsKCksdGhpcy5fb2JzZXJ2ZXI/dGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOnRoaXMuX29ic2VydmVyPXRoaXMuX2dldE5ld09ic2VydmVyKCk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fb2JzZXJ2YWJsZVNlY3Rpb25zLnZhbHVlcygpKXRoaXMuX29ic2VydmVyLm9ic2VydmUodCl9ZGlzcG9zZSgpe3RoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKSxzdXBlci5kaXNwb3NlKCl9X2NvbmZpZ0FmdGVyTWVyZ2UodCl7cmV0dXJuIHQudGFyZ2V0PXIodC50YXJnZXQpfHxkb2N1bWVudC5ib2R5LHQucm9vdE1hcmdpbj10Lm9mZnNldD9gJHt0Lm9mZnNldH1weCAwcHggLTMwJWA6dC5yb290TWFyZ2luLFwic3RyaW5nXCI9PXR5cGVvZiB0LnRocmVzaG9sZCYmKHQudGhyZXNob2xkPXQudGhyZXNob2xkLnNwbGl0KFwiLFwiKS5tYXAoKHQ9Pk51bWJlci5wYXJzZUZsb2F0KHQpKSkpLHR9X21heWJlRW5hYmxlU21vb3RoU2Nyb2xsKCl7dGhpcy5fY29uZmlnLnNtb290aFNjcm9sbCYmKE4ub2ZmKHRoaXMuX2NvbmZpZy50YXJnZXQsbXMpLE4ub24odGhpcy5fY29uZmlnLnRhcmdldCxtcyxicywodD0+e2NvbnN0IGU9dGhpcy5fb2JzZXJ2YWJsZVNlY3Rpb25zLmdldCh0LnRhcmdldC5oYXNoKTtpZihlKXt0LnByZXZlbnREZWZhdWx0KCk7Y29uc3QgaT10aGlzLl9yb290RWxlbWVudHx8d2luZG93LG49ZS5vZmZzZXRUb3AtdGhpcy5fZWxlbWVudC5vZmZzZXRUb3A7aWYoaS5zY3JvbGxUbylyZXR1cm4gdm9pZCBpLnNjcm9sbFRvKHt0b3A6bixiZWhhdmlvcjpcInNtb290aFwifSk7aS5zY3JvbGxUb3A9bn19KSkpfV9nZXROZXdPYnNlcnZlcigpe2NvbnN0IHQ9e3Jvb3Q6dGhpcy5fcm9vdEVsZW1lbnQsdGhyZXNob2xkOnRoaXMuX2NvbmZpZy50aHJlc2hvbGQscm9vdE1hcmdpbjp0aGlzLl9jb25maWcucm9vdE1hcmdpbn07cmV0dXJuIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigodD0+dGhpcy5fb2JzZXJ2ZXJDYWxsYmFjayh0KSksdCl9X29ic2VydmVyQ2FsbGJhY2sodCl7Y29uc3QgZT10PT50aGlzLl90YXJnZXRMaW5rcy5nZXQoYCMke3QudGFyZ2V0LmlkfWApLGk9dD0+e3RoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YS52aXNpYmxlRW50cnlUb3A9dC50YXJnZXQub2Zmc2V0VG9wLHRoaXMuX3Byb2Nlc3MoZSh0KSl9LG49KHRoaXMuX3Jvb3RFbGVtZW50fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnNjcm9sbFRvcCxzPW4+PXRoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YS5wYXJlbnRTY3JvbGxUb3A7dGhpcy5fcHJldmlvdXNTY3JvbGxEYXRhLnBhcmVudFNjcm9sbFRvcD1uO2Zvcihjb25zdCBvIG9mIHQpe2lmKCFvLmlzSW50ZXJzZWN0aW5nKXt0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9jbGVhckFjdGl2ZUNsYXNzKGUobykpO2NvbnRpbnVlfWNvbnN0IHQ9by50YXJnZXQub2Zmc2V0VG9wPj10aGlzLl9wcmV2aW91c1Njcm9sbERhdGEudmlzaWJsZUVudHJ5VG9wO2lmKHMmJnQpe2lmKGkobyksIW4pcmV0dXJufWVsc2Ugc3x8dHx8aShvKX19X2luaXRpYWxpemVUYXJnZXRzQW5kT2JzZXJ2YWJsZXMoKXt0aGlzLl90YXJnZXRMaW5rcz1uZXcgTWFwLHRoaXMuX29ic2VydmFibGVTZWN0aW9ucz1uZXcgTWFwO2NvbnN0IHQ9ei5maW5kKGJzLHRoaXMuX2NvbmZpZy50YXJnZXQpO2Zvcihjb25zdCBlIG9mIHQpe2lmKCFlLmhhc2h8fGwoZSkpY29udGludWU7Y29uc3QgdD16LmZpbmRPbmUoZGVjb2RlVVJJKGUuaGFzaCksdGhpcy5fZWxlbWVudCk7YSh0KSYmKHRoaXMuX3RhcmdldExpbmtzLnNldChkZWNvZGVVUkkoZS5oYXNoKSxlKSx0aGlzLl9vYnNlcnZhYmxlU2VjdGlvbnMuc2V0KGUuaGFzaCx0KSl9fV9wcm9jZXNzKHQpe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXQmJih0aGlzLl9jbGVhckFjdGl2ZUNsYXNzKHRoaXMuX2NvbmZpZy50YXJnZXQpLHRoaXMuX2FjdGl2ZVRhcmdldD10LHQuY2xhc3NMaXN0LmFkZChfcyksdGhpcy5fYWN0aXZhdGVQYXJlbnRzKHQpLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LHBzLHtyZWxhdGVkVGFyZ2V0OnR9KSl9X2FjdGl2YXRlUGFyZW50cyh0KXtpZih0LmNsYXNzTGlzdC5jb250YWlucyhcImRyb3Bkb3duLWl0ZW1cIikpei5maW5kT25lKFwiLmRyb3Bkb3duLXRvZ2dsZVwiLHQuY2xvc2VzdChcIi5kcm9wZG93blwiKSkuY2xhc3NMaXN0LmFkZChfcyk7ZWxzZSBmb3IoY29uc3QgZSBvZiB6LnBhcmVudHModCxcIi5uYXYsIC5saXN0LWdyb3VwXCIpKWZvcihjb25zdCB0IG9mIHoucHJldihlLHlzKSl0LmNsYXNzTGlzdC5hZGQoX3MpfV9jbGVhckFjdGl2ZUNsYXNzKHQpe3QuY2xhc3NMaXN0LnJlbW92ZShfcyk7Y29uc3QgZT16LmZpbmQoYCR7YnN9LiR7X3N9YCx0KTtmb3IoY29uc3QgdCBvZiBlKXQuY2xhc3NMaXN0LnJlbW92ZShfcyl9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9RXMuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtpZih2b2lkIDA9PT1lW3RdfHx0LnN0YXJ0c1dpdGgoXCJfXCIpfHxcImNvbnN0cnVjdG9yXCI9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7dH1cImApO2VbdF0oKX19KSl9fU4ub24od2luZG93LGdzLCgoKT0+e2Zvcihjb25zdCB0IG9mIHouZmluZCgnW2RhdGEtYnMtc3B5PVwic2Nyb2xsXCJdJykpRXMuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0KX0pKSxtKEVzKTtjb25zdCBUcz1cIi5icy50YWJcIixDcz1gaGlkZSR7VHN9YCxPcz1gaGlkZGVuJHtUc31gLHhzPWBzaG93JHtUc31gLGtzPWBzaG93biR7VHN9YCxMcz1gY2xpY2ske1RzfWAsU3M9YGtleWRvd24ke1RzfWAsRHM9YGxvYWQke1RzfWAsJHM9XCJBcnJvd0xlZnRcIixJcz1cIkFycm93UmlnaHRcIixOcz1cIkFycm93VXBcIixQcz1cIkFycm93RG93blwiLGpzPVwiSG9tZVwiLE1zPVwiRW5kXCIsRnM9XCJhY3RpdmVcIixIcz1cImZhZGVcIixXcz1cInNob3dcIixCcz1cIi5kcm9wZG93bi10b2dnbGVcIix6cz1gOm5vdCgke0JzfSlgLFJzPSdbZGF0YS1icy10b2dnbGU9XCJ0YWJcIl0sIFtkYXRhLWJzLXRvZ2dsZT1cInBpbGxcIl0sIFtkYXRhLWJzLXRvZ2dsZT1cImxpc3RcIl0nLHFzPWAubmF2LWxpbmske3pzfSwgLmxpc3QtZ3JvdXAtaXRlbSR7enN9LCBbcm9sZT1cInRhYlwiXSR7enN9LCAke1JzfWAsVnM9YC4ke0ZzfVtkYXRhLWJzLXRvZ2dsZT1cInRhYlwiXSwgLiR7RnN9W2RhdGEtYnMtdG9nZ2xlPVwicGlsbFwiXSwgLiR7RnN9W2RhdGEtYnMtdG9nZ2xlPVwibGlzdFwiXWA7Y2xhc3MgS3MgZXh0ZW5kcyBXe2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuX3BhcmVudD10aGlzLl9lbGVtZW50LmNsb3Nlc3QoJy5saXN0LWdyb3VwLCAubmF2LCBbcm9sZT1cInRhYmxpc3RcIl0nKSx0aGlzLl9wYXJlbnQmJih0aGlzLl9zZXRJbml0aWFsQXR0cmlidXRlcyh0aGlzLl9wYXJlbnQsdGhpcy5fZ2V0Q2hpbGRyZW4oKSksTi5vbih0aGlzLl9lbGVtZW50LFNzLCh0PT50aGlzLl9rZXlkb3duKHQpKSkpfXN0YXRpYyBnZXQgTkFNRSgpe3JldHVyblwidGFiXCJ9c2hvdygpe2NvbnN0IHQ9dGhpcy5fZWxlbWVudDtpZih0aGlzLl9lbGVtSXNBY3RpdmUodCkpcmV0dXJuO2NvbnN0IGU9dGhpcy5fZ2V0QWN0aXZlRWxlbSgpLGk9ZT9OLnRyaWdnZXIoZSxDcyx7cmVsYXRlZFRhcmdldDp0fSk6bnVsbDtOLnRyaWdnZXIodCx4cyx7cmVsYXRlZFRhcmdldDplfSkuZGVmYXVsdFByZXZlbnRlZHx8aSYmaS5kZWZhdWx0UHJldmVudGVkfHwodGhpcy5fZGVhY3RpdmF0ZShlLHQpLHRoaXMuX2FjdGl2YXRlKHQsZSkpfV9hY3RpdmF0ZSh0LGUpe3QmJih0LmNsYXNzTGlzdC5hZGQoRnMpLHRoaXMuX2FjdGl2YXRlKHouZ2V0RWxlbWVudEZyb21TZWxlY3Rvcih0KSksdGhpcy5fcXVldWVDYWxsYmFjaygoKCk9PntcInRhYlwiPT09dC5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpPyh0LnJlbW92ZUF0dHJpYnV0ZShcInRhYmluZGV4XCIpLHQuc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCEwKSx0aGlzLl90b2dnbGVEcm9wRG93bih0LCEwKSxOLnRyaWdnZXIodCxrcyx7cmVsYXRlZFRhcmdldDplfSkpOnQuY2xhc3NMaXN0LmFkZChXcyl9KSx0LHQuY2xhc3NMaXN0LmNvbnRhaW5zKEhzKSkpfV9kZWFjdGl2YXRlKHQsZSl7dCYmKHQuY2xhc3NMaXN0LnJlbW92ZShGcyksdC5ibHVyKCksdGhpcy5fZGVhY3RpdmF0ZSh6LmdldEVsZW1lbnRGcm9tU2VsZWN0b3IodCkpLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57XCJ0YWJcIj09PXQuZ2V0QXR0cmlidXRlKFwicm9sZVwiKT8odC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITEpLHQuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIixcIi0xXCIpLHRoaXMuX3RvZ2dsZURyb3BEb3duKHQsITEpLE4udHJpZ2dlcih0LE9zLHtyZWxhdGVkVGFyZ2V0OmV9KSk6dC5jbGFzc0xpc3QucmVtb3ZlKFdzKX0pLHQsdC5jbGFzc0xpc3QuY29udGFpbnMoSHMpKSl9X2tleWRvd24odCl7aWYoIVskcyxJcyxOcyxQcyxqcyxNc10uaW5jbHVkZXModC5rZXkpKXJldHVybjt0LnN0b3BQcm9wYWdhdGlvbigpLHQucHJldmVudERlZmF1bHQoKTtjb25zdCBlPXRoaXMuX2dldENoaWxkcmVuKCkuZmlsdGVyKCh0PT4hbCh0KSkpO2xldCBpO2lmKFtqcyxNc10uaW5jbHVkZXModC5rZXkpKWk9ZVt0LmtleT09PWpzPzA6ZS5sZW5ndGgtMV07ZWxzZXtjb25zdCBuPVtJcyxQc10uaW5jbHVkZXModC5rZXkpO2k9YihlLHQudGFyZ2V0LG4sITApfWkmJihpLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSksS3MuZ2V0T3JDcmVhdGVJbnN0YW5jZShpKS5zaG93KCkpfV9nZXRDaGlsZHJlbigpe3JldHVybiB6LmZpbmQocXMsdGhpcy5fcGFyZW50KX1fZ2V0QWN0aXZlRWxlbSgpe3JldHVybiB0aGlzLl9nZXRDaGlsZHJlbigpLmZpbmQoKHQ9PnRoaXMuX2VsZW1Jc0FjdGl2ZSh0KSkpfHxudWxsfV9zZXRJbml0aWFsQXR0cmlidXRlcyh0LGUpe3RoaXMuX3NldEF0dHJpYnV0ZUlmTm90RXhpc3RzKHQsXCJyb2xlXCIsXCJ0YWJsaXN0XCIpO2Zvcihjb25zdCB0IG9mIGUpdGhpcy5fc2V0SW5pdGlhbEF0dHJpYnV0ZXNPbkNoaWxkKHQpfV9zZXRJbml0aWFsQXR0cmlidXRlc09uQ2hpbGQodCl7dD10aGlzLl9nZXRJbm5lckVsZW1lbnQodCk7Y29uc3QgZT10aGlzLl9lbGVtSXNBY3RpdmUodCksaT10aGlzLl9nZXRPdXRlckVsZW1lbnQodCk7dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsZSksaSE9PXQmJnRoaXMuX3NldEF0dHJpYnV0ZUlmTm90RXhpc3RzKGksXCJyb2xlXCIsXCJwcmVzZW50YXRpb25cIiksZXx8dC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIiksdGhpcy5fc2V0QXR0cmlidXRlSWZOb3RFeGlzdHModCxcInJvbGVcIixcInRhYlwiKSx0aGlzLl9zZXRJbml0aWFsQXR0cmlidXRlc09uVGFyZ2V0UGFuZWwodCl9X3NldEluaXRpYWxBdHRyaWJ1dGVzT25UYXJnZXRQYW5lbCh0KXtjb25zdCBlPXouZ2V0RWxlbWVudEZyb21TZWxlY3Rvcih0KTtlJiYodGhpcy5fc2V0QXR0cmlidXRlSWZOb3RFeGlzdHMoZSxcInJvbGVcIixcInRhYnBhbmVsXCIpLHQuaWQmJnRoaXMuX3NldEF0dHJpYnV0ZUlmTm90RXhpc3RzKGUsXCJhcmlhLWxhYmVsbGVkYnlcIixgJHt0LmlkfWApKX1fdG9nZ2xlRHJvcERvd24odCxlKXtjb25zdCBpPXRoaXMuX2dldE91dGVyRWxlbWVudCh0KTtpZighaS5jbGFzc0xpc3QuY29udGFpbnMoXCJkcm9wZG93blwiKSlyZXR1cm47Y29uc3Qgbj0odCxuKT0+e2NvbnN0IHM9ei5maW5kT25lKHQsaSk7cyYmcy5jbGFzc0xpc3QudG9nZ2xlKG4sZSl9O24oQnMsRnMpLG4oXCIuZHJvcGRvd24tbWVudVwiLFdzKSxpLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIixlKX1fc2V0QXR0cmlidXRlSWZOb3RFeGlzdHModCxlLGkpe3QuaGFzQXR0cmlidXRlKGUpfHx0LnNldEF0dHJpYnV0ZShlLGkpfV9lbGVtSXNBY3RpdmUodCl7cmV0dXJuIHQuY2xhc3NMaXN0LmNvbnRhaW5zKEZzKX1fZ2V0SW5uZXJFbGVtZW50KHQpe3JldHVybiB0Lm1hdGNoZXMocXMpP3Q6ei5maW5kT25lKHFzLHQpfV9nZXRPdXRlckVsZW1lbnQodCl7cmV0dXJuIHQuY2xvc2VzdChcIi5uYXYtaXRlbSwgLmxpc3QtZ3JvdXAtaXRlbVwiKXx8dH1zdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKHQpe3JldHVybiB0aGlzLmVhY2goKGZ1bmN0aW9uKCl7Y29uc3QgZT1Lcy5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtpZih2b2lkIDA9PT1lW3RdfHx0LnN0YXJ0c1dpdGgoXCJfXCIpfHxcImNvbnN0cnVjdG9yXCI9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7dH1cImApO2VbdF0oKX19KSl9fU4ub24oZG9jdW1lbnQsTHMsUnMsKGZ1bmN0aW9uKHQpe1tcIkFcIixcIkFSRUFcIl0uaW5jbHVkZXModGhpcy50YWdOYW1lKSYmdC5wcmV2ZW50RGVmYXVsdCgpLGwodGhpcyl8fEtzLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcykuc2hvdygpfSkpLE4ub24od2luZG93LERzLCgoKT0+e2Zvcihjb25zdCB0IG9mIHouZmluZChWcykpS3MuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0KX0pKSxtKEtzKTtjb25zdCBRcz1cIi5icy50b2FzdFwiLFhzPWBtb3VzZW92ZXIke1FzfWAsWXM9YG1vdXNlb3V0JHtRc31gLFVzPWBmb2N1c2luJHtRc31gLEdzPWBmb2N1c291dCR7UXN9YCxKcz1gaGlkZSR7UXN9YCxacz1gaGlkZGVuJHtRc31gLHRvPWBzaG93JHtRc31gLGVvPWBzaG93biR7UXN9YCxpbz1cImhpZGVcIixubz1cInNob3dcIixzbz1cInNob3dpbmdcIixvbz17YW5pbWF0aW9uOlwiYm9vbGVhblwiLGF1dG9oaWRlOlwiYm9vbGVhblwiLGRlbGF5OlwibnVtYmVyXCJ9LHJvPXthbmltYXRpb246ITAsYXV0b2hpZGU6ITAsZGVsYXk6NWUzfTtjbGFzcyBhbyBleHRlbmRzIFd7Y29uc3RydWN0b3IodCxlKXtzdXBlcih0LGUpLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9oYXNNb3VzZUludGVyYWN0aW9uPSExLHRoaXMuX2hhc0tleWJvYXJkSW50ZXJhY3Rpb249ITEsdGhpcy5fc2V0TGlzdGVuZXJzKCl9c3RhdGljIGdldCBEZWZhdWx0KCl7cmV0dXJuIHJvfXN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKXtyZXR1cm4gb299c3RhdGljIGdldCBOQU1FKCl7cmV0dXJuXCJ0b2FzdFwifXNob3coKXtOLnRyaWdnZXIodGhpcy5fZWxlbWVudCx0bykuZGVmYXVsdFByZXZlbnRlZHx8KHRoaXMuX2NsZWFyVGltZW91dCgpLHRoaXMuX2NvbmZpZy5hbmltYXRpb24mJnRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChcImZhZGVcIiksdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGlvKSxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChubyxzbyksdGhpcy5fcXVldWVDYWxsYmFjaygoKCk9Pnt0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoc28pLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LGVvKSx0aGlzLl9tYXliZVNjaGVkdWxlSGlkZSgpfSksdGhpcy5fZWxlbWVudCx0aGlzLl9jb25maWcuYW5pbWF0aW9uKSl9aGlkZSgpe3RoaXMuaXNTaG93bigpJiYoTi50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsSnMpLmRlZmF1bHRQcmV2ZW50ZWR8fCh0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoc28pLHRoaXMuX3F1ZXVlQ2FsbGJhY2soKCgpPT57dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKGlvKSx0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoc28sbm8pLE4udHJpZ2dlcih0aGlzLl9lbGVtZW50LFpzKX0pLHRoaXMuX2VsZW1lbnQsdGhpcy5fY29uZmlnLmFuaW1hdGlvbikpKX1kaXNwb3NlKCl7dGhpcy5fY2xlYXJUaW1lb3V0KCksdGhpcy5pc1Nob3duKCkmJnRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShubyksc3VwZXIuZGlzcG9zZSgpfWlzU2hvd24oKXtyZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMobm8pfV9tYXliZVNjaGVkdWxlSGlkZSgpe3RoaXMuX2NvbmZpZy5hdXRvaGlkZSYmKHRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb258fHRoaXMuX2hhc0tleWJvYXJkSW50ZXJhY3Rpb258fCh0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCgpPT57dGhpcy5oaWRlKCl9KSx0aGlzLl9jb25maWcuZGVsYXkpKSl9X29uSW50ZXJhY3Rpb24odCxlKXtzd2l0Y2godC50eXBlKXtjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJtb3VzZW91dFwiOnRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb249ZTticmVhaztjYXNlXCJmb2N1c2luXCI6Y2FzZVwiZm9jdXNvdXRcIjp0aGlzLl9oYXNLZXlib2FyZEludGVyYWN0aW9uPWV9aWYoZSlyZXR1cm4gdm9pZCB0aGlzLl9jbGVhclRpbWVvdXQoKTtjb25zdCBpPXQucmVsYXRlZFRhcmdldDt0aGlzLl9lbGVtZW50PT09aXx8dGhpcy5fZWxlbWVudC5jb250YWlucyhpKXx8dGhpcy5fbWF5YmVTY2hlZHVsZUhpZGUoKX1fc2V0TGlzdGVuZXJzKCl7Ti5vbih0aGlzLl9lbGVtZW50LFhzLCh0PT50aGlzLl9vbkludGVyYWN0aW9uKHQsITApKSksTi5vbih0aGlzLl9lbGVtZW50LFlzLCh0PT50aGlzLl9vbkludGVyYWN0aW9uKHQsITEpKSksTi5vbih0aGlzLl9lbGVtZW50LFVzLCh0PT50aGlzLl9vbkludGVyYWN0aW9uKHQsITApKSksTi5vbih0aGlzLl9lbGVtZW50LEdzLCh0PT50aGlzLl9vbkludGVyYWN0aW9uKHQsITEpKSl9X2NsZWFyVGltZW91dCgpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGx9c3RhdGljIGpRdWVyeUludGVyZmFjZSh0KXtyZXR1cm4gdGhpcy5lYWNoKChmdW5jdGlvbigpe2NvbnN0IGU9YW8uZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLHQpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXtpZih2b2lkIDA9PT1lW3RdKXRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7dH1cImApO2VbdF0odGhpcyl9fSkpfX1yZXR1cm4gUihhbyksbShhbykse0FsZXJ0OlEsQnV0dG9uOlksQ2Fyb3VzZWw6eHQsQ29sbGFwc2U6QnQsRHJvcGRvd246cWksTW9kYWw6T24sT2ZmY2FudmFzOnFuLFBvcG92ZXI6dXMsU2Nyb2xsU3B5OkVzLFRhYjpLcyxUb2FzdDphbyxUb29sdGlwOmNzfX0pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvb3RzdHJhcC5idW5kbGUubWluLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js\n"));
|
28
|
-
|
29
|
-
/***/ }),
|
30
|
-
|
31
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/api/script.js":
|
32
|
-
/*!**********************************************!*\
|
33
|
-
!*** ./node_modules/next/dist/api/script.js ***!
|
34
|
-
\**********************************************/
|
35
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
36
|
-
|
37
|
-
"use strict";
|
38
|
-
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport default from dynamic */ _client_script__WEBPACK_IMPORTED_MODULE_0___default.a)\n/* harmony export */ });\n/* harmony import */ var _client_script__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/script */ \"(app-pages-browser)/./node_modules/next/dist/client/script.js\");\n/* harmony import */ var _client_script__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_script__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_script__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_script__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n\n//# sourceMappingURL=script.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL3NjcmlwdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBMkM7QUFDVjs7QUFFakMiLCJzb3VyY2VzIjpbIkM6XFxVc2Vyc1xcUGluZXN1Y2NlZWRcXERlc2t0b3BcXFdvcmtTcGFjZVxcdGVzdHdpZGdldFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxhcGlcXHNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi4vY2xpZW50L3NjcmlwdCc7XG5leHBvcnQgKiBmcm9tICcuLi9jbGllbnQvc2NyaXB0JztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NyaXB0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/script.js\n"));
|
39
|
-
|
40
|
-
/***/ }),
|
41
|
-
|
42
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js":
|
43
|
-
/*!*********************************************************************************************!*\
|
44
|
-
!*** ./node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js ***!
|
45
|
-
\*********************************************************************************************/
|
46
|
-
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
47
|
-
|
48
|
-
eval(__webpack_require__.ts("var __dirname = \"/\";\n(()=>{\"use strict\";var e={259:(e,r,t)=>{var n=t(587);var i=Object.create(null);var a=typeof document===\"undefined\";var o=Array.prototype.forEach;function debounce(e,r){var t=0;return function(){var n=this;var i=arguments;var a=function functionCall(){return e.apply(n,i)};clearTimeout(t);t=setTimeout(a,r)}}function noop(){}function getCurrentScriptUrl(e){var r=i[e];if(!r){if(document.currentScript){r=document.currentScript.src}else{var t=document.getElementsByTagName(\"script\");var a=t[t.length-1];if(a){r=a.src}}i[e]=r}return function(e){if(!r){return null}var t=r.split(/([^\\\\/]+)\\.js$/);var i=t&&t[1];if(!i){return[r.replace(\".js\",\".css\")]}if(!e){return[r.replace(\".js\",\".css\")]}return e.split(\",\").map((function(e){var t=new RegExp(\"\".concat(i,\"\\\\.js$\"),\"g\");return n(r.replace(t,\"\".concat(e.replace(/{fileName}/g,i),\".css\")))}))}}function updateCss(e,r){if(!r){if(!e.href){return}r=e.href.split(\"?\")[0]}if(!isUrlRequest(r)){return}if(e.isLoaded===false){return}if(!r||!(r.indexOf(\".css\")>-1)){return}e.visited=true;var t=e.cloneNode();t.isLoaded=false;t.addEventListener(\"load\",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.addEventListener(\"error\",(function(){if(t.isLoaded){return}t.isLoaded=true;e.parentNode.removeChild(e)}));t.href=\"\".concat(r,\"?\").concat(Date.now());if(e.nextSibling){e.parentNode.insertBefore(t,e.nextSibling)}else{e.parentNode.appendChild(t)}}function getReloadUrl(e,r){var t;e=n(e,{stripWWW:false});r.some((function(n){if(e.indexOf(r)>-1){t=n}}));return t}function reloadStyle(e){if(!e){return false}var r=document.querySelectorAll(\"link\");var t=false;o.call(r,(function(r){if(!r.href){return}var n=getReloadUrl(r.href,e);if(!isUrlRequest(n)){return}if(r.visited===true){return}if(n){updateCss(r,n);t=true}}));return t}function reloadAll(){var e=document.querySelectorAll(\"link\");o.call(e,(function(e){if(e.visited===true){return}updateCss(e)}))}function isUrlRequest(e){if(!/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.test(e)){return false}return true}e.exports=function(e,r){if(a){console.log(\"no window.document found, will not HMR CSS\");return noop}var t=getCurrentScriptUrl(e);function update(){var e=t(r.filename);var n=reloadStyle(e);if(r.locals){console.log(\"[HMR] Detected local css modules. Reload all css\");reloadAll();return}if(n){console.log(\"[HMR] css reload %s\",e.join(\" \"))}else{console.log(\"[HMR] Reload all css\");reloadAll()}}return debounce(update,50)}},587:e=>{function normalizeUrl(e){return e.reduce((function(e,r){switch(r){case\"..\":e.pop();break;case\".\":break;default:e.push(r)}return e}),[]).join(\"/\")}e.exports=function(e){e=e.trim();if(/^data:/i.test(e)){return e}var r=e.indexOf(\"//\")!==-1?e.split(\"//\")[0]+\"//\":\"\";var t=e.replace(new RegExp(r,\"i\"),\"\").split(\"/\");var n=t[0].toLowerCase().replace(/\\.$/,\"\");t[0]=\"\";var i=normalizeUrl(t);return r+n+i}}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var i=r[t]={exports:{}};var a=true;try{e[t](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(259);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vaG1yL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzIiwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLGFBQWEsMEJBQTBCLG9DQUFvQyw4QkFBOEIsdUJBQXVCLFFBQVEsa0JBQWtCLFdBQVcsZ0JBQWdCLDhCQUE4QixxQkFBcUIsZ0JBQWdCLG1CQUFtQixpQkFBaUIsZ0NBQWdDLFdBQVcsT0FBTywyQkFBMkIsNkJBQTZCLEtBQUssOENBQThDLG9CQUFvQixNQUFNLFNBQVMsT0FBTyxtQkFBbUIsT0FBTyxZQUFZLGdDQUFnQyxjQUFjLE9BQU8sZ0NBQWdDLE9BQU8sZ0NBQWdDLHFDQUFxQyw0Q0FBNEMsMkNBQTJDLFNBQVMsZ0JBQWdCLElBQUksd0JBQXdCLE9BQU8sWUFBWSxPQUFPLHVCQUF1QixxQkFBcUIsT0FBTyx1QkFBdUIsT0FBTyxnQ0FBZ0MsT0FBTyxlQUFlLG9CQUFvQixpQkFBaUIsc0NBQXNDLGVBQWUsT0FBTyxnQkFBZ0IsNEJBQTRCLEdBQUcsdUNBQXVDLGVBQWUsT0FBTyxnQkFBZ0IsNEJBQTRCLEdBQUcsMkNBQTJDLGtCQUFrQiwyQ0FBMkMsS0FBSyw2QkFBNkIsMkJBQTJCLE1BQU0sT0FBTyxlQUFlLEVBQUUsb0JBQW9CLG9CQUFvQixLQUFLLEdBQUcsU0FBUyx3QkFBd0IsT0FBTyxhQUFhLHdDQUF3QyxZQUFZLHNCQUFzQixZQUFZLE9BQU8sNkJBQTZCLHFCQUFxQixPQUFPLHFCQUFxQixPQUFPLE1BQU0sZUFBZSxRQUFRLEdBQUcsU0FBUyxxQkFBcUIsd0NBQXdDLHNCQUFzQixxQkFBcUIsT0FBTyxhQUFhLEdBQUcseUJBQXlCLHlDQUF5QyxhQUFhLFlBQVksd0JBQXdCLE1BQU0sMERBQTBELFlBQVksNkJBQTZCLGtCQUFrQixvQkFBb0IscUJBQXFCLGFBQWEsZ0VBQWdFLFlBQVksT0FBTyxNQUFNLCtDQUErQyxLQUFLLG9DQUFvQyxhQUFhLDRCQUE0QixTQUFTLHlCQUF5QiwrQkFBK0IsVUFBVSxpQkFBaUIsTUFBTSxjQUFjLGtCQUFrQixTQUFTLGdCQUFnQixzQkFBc0IsV0FBVyxzQkFBc0IsU0FBUyxvREFBb0QsaURBQWlELDJDQUEyQyxRQUFRLHNCQUFzQixnQkFBZ0IsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLG1FQUFtRSxTQUFTLEtBQUssK0JBQStCLGlCQUFpQiIsInNvdXJjZXMiOlsiQzpcXFVzZXJzXFxQaW5lc3VjY2VlZFxcRGVza3RvcFxcV29ya1NwYWNlXFx0ZXN0d2lkZ2V0XFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxcaG1yXFxob3RNb2R1bGVSZXBsYWNlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17MjU5OihlLHIsdCk9Pnt2YXIgbj10KDU4Nyk7dmFyIGk9T2JqZWN0LmNyZWF0ZShudWxsKTt2YXIgYT10eXBlb2YgZG9jdW1lbnQ9PT1cInVuZGVmaW5lZFwiO3ZhciBvPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoO2Z1bmN0aW9uIGRlYm91bmNlKGUscil7dmFyIHQ9MDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzO3ZhciBpPWFyZ3VtZW50czt2YXIgYT1mdW5jdGlvbiBmdW5jdGlvbkNhbGwoKXtyZXR1cm4gZS5hcHBseShuLGkpfTtjbGVhclRpbWVvdXQodCk7dD1zZXRUaW1lb3V0KGEscil9fWZ1bmN0aW9uIG5vb3AoKXt9ZnVuY3Rpb24gZ2V0Q3VycmVudFNjcmlwdFVybChlKXt2YXIgcj1pW2VdO2lmKCFyKXtpZihkb2N1bWVudC5jdXJyZW50U2NyaXB0KXtyPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjfWVsc2V7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7dmFyIGE9dFt0Lmxlbmd0aC0xXTtpZihhKXtyPWEuc3JjfX1pW2VdPXJ9cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKCFyKXtyZXR1cm4gbnVsbH12YXIgdD1yLnNwbGl0KC8oW15cXFxcL10rKVxcLmpzJC8pO3ZhciBpPXQmJnRbMV07aWYoIWkpe3JldHVybltyLnJlcGxhY2UoXCIuanNcIixcIi5jc3NcIildfWlmKCFlKXtyZXR1cm5bci5yZXBsYWNlKFwiLmpzXCIsXCIuY3NzXCIpXX1yZXR1cm4gZS5zcGxpdChcIixcIikubWFwKChmdW5jdGlvbihlKXt2YXIgdD1uZXcgUmVnRXhwKFwiXCIuY29uY2F0KGksXCJcXFxcLmpzJFwiKSxcImdcIik7cmV0dXJuIG4oci5yZXBsYWNlKHQsXCJcIi5jb25jYXQoZS5yZXBsYWNlKC97ZmlsZU5hbWV9L2csaSksXCIuY3NzXCIpKSl9KSl9fWZ1bmN0aW9uIHVwZGF0ZUNzcyhlLHIpe2lmKCFyKXtpZighZS5ocmVmKXtyZXR1cm59cj1lLmhyZWYuc3BsaXQoXCI/XCIpWzBdfWlmKCFpc1VybFJlcXVlc3Qocikpe3JldHVybn1pZihlLmlzTG9hZGVkPT09ZmFsc2Upe3JldHVybn1pZighcnx8IShyLmluZGV4T2YoXCIuY3NzXCIpPi0xKSl7cmV0dXJufWUudmlzaXRlZD10cnVlO3ZhciB0PWUuY2xvbmVOb2RlKCk7dC5pc0xvYWRlZD1mYWxzZTt0LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsKGZ1bmN0aW9uKCl7aWYodC5pc0xvYWRlZCl7cmV0dXJufXQuaXNMb2FkZWQ9dHJ1ZTtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KSk7dC5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwoZnVuY3Rpb24oKXtpZih0LmlzTG9hZGVkKXtyZXR1cm59dC5pc0xvYWRlZD10cnVlO2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pKTt0LmhyZWY9XCJcIi5jb25jYXQocixcIj9cIikuY29uY2F0KERhdGUubm93KCkpO2lmKGUubmV4dFNpYmxpbmcpe2UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxlLm5leHRTaWJsaW5nKX1lbHNle2UucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0KX19ZnVuY3Rpb24gZ2V0UmVsb2FkVXJsKGUscil7dmFyIHQ7ZT1uKGUse3N0cmlwV1dXOmZhbHNlfSk7ci5zb21lKChmdW5jdGlvbihuKXtpZihlLmluZGV4T2Yocik+LTEpe3Q9bn19KSk7cmV0dXJuIHR9ZnVuY3Rpb24gcmVsb2FkU3R5bGUoZSl7aWYoIWUpe3JldHVybiBmYWxzZX12YXIgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwibGlua1wiKTt2YXIgdD1mYWxzZTtvLmNhbGwociwoZnVuY3Rpb24ocil7aWYoIXIuaHJlZil7cmV0dXJufXZhciBuPWdldFJlbG9hZFVybChyLmhyZWYsZSk7aWYoIWlzVXJsUmVxdWVzdChuKSl7cmV0dXJufWlmKHIudmlzaXRlZD09PXRydWUpe3JldHVybn1pZihuKXt1cGRhdGVDc3MocixuKTt0PXRydWV9fSkpO3JldHVybiB0fWZ1bmN0aW9uIHJlbG9hZEFsbCgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJsaW5rXCIpO28uY2FsbChlLChmdW5jdGlvbihlKXtpZihlLnZpc2l0ZWQ9PT10cnVlKXtyZXR1cm59dXBkYXRlQ3NzKGUpfSkpfWZ1bmN0aW9uIGlzVXJsUmVxdWVzdChlKXtpZighL15bYS16QS1aXVthLXpBLVpcXGQrXFwtLl0qOi8udGVzdChlKSl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfWUuZXhwb3J0cz1mdW5jdGlvbihlLHIpe2lmKGEpe2NvbnNvbGUubG9nKFwibm8gd2luZG93LmRvY3VtZW50IGZvdW5kLCB3aWxsIG5vdCBITVIgQ1NTXCIpO3JldHVybiBub29wfXZhciB0PWdldEN1cnJlbnRTY3JpcHRVcmwoZSk7ZnVuY3Rpb24gdXBkYXRlKCl7dmFyIGU9dChyLmZpbGVuYW1lKTt2YXIgbj1yZWxvYWRTdHlsZShlKTtpZihyLmxvY2Fscyl7Y29uc29sZS5sb2coXCJbSE1SXSBEZXRlY3RlZCBsb2NhbCBjc3MgbW9kdWxlcy4gUmVsb2FkIGFsbCBjc3NcIik7cmVsb2FkQWxsKCk7cmV0dXJufWlmKG4pe2NvbnNvbGUubG9nKFwiW0hNUl0gY3NzIHJlbG9hZCAlc1wiLGUuam9pbihcIiBcIikpfWVsc2V7Y29uc29sZS5sb2coXCJbSE1SXSBSZWxvYWQgYWxsIGNzc1wiKTtyZWxvYWRBbGwoKX19cmV0dXJuIGRlYm91bmNlKHVwZGF0ZSw1MCl9fSw1ODc6ZT0+e2Z1bmN0aW9uIG5vcm1hbGl6ZVVybChlKXtyZXR1cm4gZS5yZWR1Y2UoKGZ1bmN0aW9uKGUscil7c3dpdGNoKHIpe2Nhc2VcIi4uXCI6ZS5wb3AoKTticmVhaztjYXNlXCIuXCI6YnJlYWs7ZGVmYXVsdDplLnB1c2gocil9cmV0dXJuIGV9KSxbXSkuam9pbihcIi9cIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2U9ZS50cmltKCk7aWYoL15kYXRhOi9pLnRlc3QoZSkpe3JldHVybiBlfXZhciByPWUuaW5kZXhPZihcIi8vXCIpIT09LTE/ZS5zcGxpdChcIi8vXCIpWzBdK1wiLy9cIjpcIlwiO3ZhciB0PWUucmVwbGFjZShuZXcgUmVnRXhwKHIsXCJpXCIpLFwiXCIpLnNwbGl0KFwiL1wiKTt2YXIgbj10WzBdLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFwuJC8sXCJcIik7dFswXT1cIlwiO3ZhciBpPW5vcm1hbGl6ZVVybCh0KTtyZXR1cm4gcituK2l9fX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyh0KXt2YXIgbj1yW3RdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGk9clt0XT17ZXhwb3J0czp7fX07dmFyIGE9dHJ1ZTt0cnl7ZVt0XShpLGkuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTthPWZhbHNlfWZpbmFsbHl7aWYoYSlkZWxldGUgclt0XX1yZXR1cm4gaS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDI1OSk7bW9kdWxlLmV4cG9ydHM9dH0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js\n"));
|
49
|
-
|
50
|
-
/***/ }),
|
51
|
-
|
52
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js":
|
53
|
-
/*!****************************************************************!*\
|
54
|
-
!*** ./node_modules/next/dist/client/request-idle-callback.js ***!
|
55
|
-
\****************************************************************/
|
56
|
-
/***/ ((module, exports, __webpack_require__) => {
|
57
|
-
|
58
|
-
"use strict";
|
59
|
-
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnQmFBLGtCQUFrQjtlQUFsQkE7O0lBaEJBQyxtQkFBbUI7ZUFBbkJBOzs7QUFBTixNQUFNQSxzQkFDVixPQUFPQyxTQUFTLGVBQ2ZBLEtBQUtELG1CQUFtQixJQUN4QkMsS0FBS0QsbUJBQW1CLENBQUNFLElBQUksQ0FBQ0MsV0FDaEMsU0FBVUMsRUFBdUI7SUFDL0IsSUFBSUMsUUFBUUMsS0FBS0MsR0FBRztJQUNwQixPQUFPTixLQUFLTyxVQUFVLENBQUM7UUFDckJKLEdBQUc7WUFDREssWUFBWTtZQUNaQyxlQUFlO2dCQUNiLE9BQU9DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHLEtBQU1OLENBQUFBLEtBQUtDLEdBQUcsS0FBS0YsS0FBQUEsQ0FBSTtZQUM1QztRQUNGO0lBQ0YsR0FBRztBQUNMO0FBRUssTUFBTU4scUJBQ1YsT0FBT0UsU0FBUyxlQUNmQSxLQUFLRixrQkFBa0IsSUFDdkJFLEtBQUtGLGtCQUFrQixDQUFDRyxJQUFJLENBQUNDLFdBQy9CLFNBQVVVLEVBQVU7SUFDbEIsT0FBT0MsYUFBYUQ7QUFDdEIiLCJzb3VyY2VzIjpbIkM6XFxVc2Vyc1xcUGluZXN1Y2NlZWRcXERlc2t0b3BcXHNyY1xcY2xpZW50XFxyZXF1ZXN0LWlkbGUtY2FsbGJhY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHJlcXVlc3RJZGxlQ2FsbGJhY2sgPVxuICAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmXG4gICAgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrICYmXG4gICAgc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrLmJpbmQod2luZG93KSkgfHxcbiAgZnVuY3Rpb24gKGNiOiBJZGxlUmVxdWVzdENhbGxiYWNrKTogbnVtYmVyIHtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpXG4gICAgcmV0dXJuIHNlbGYuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBjYih7XG4gICAgICAgIGRpZFRpbWVvdXQ6IGZhbHNlLFxuICAgICAgICB0aW1lUmVtYWluaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIDUwIC0gKERhdGUubm93KCkgLSBzdGFydCkpXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0sIDEpXG4gIH1cblxuZXhwb3J0IGNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9XG4gICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJlxuICAgIHNlbGYuY2FuY2VsSWRsZUNhbGxiYWNrLmJpbmQod2luZG93KSkgfHxcbiAgZnVuY3Rpb24gKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKVxuICB9XG4iXSwibmFtZXMiOlsiY2FuY2VsSWRsZUNhbGxiYWNrIiwicmVxdWVzdElkbGVDYWxsYmFjayIsInNlbGYiLCJiaW5kIiwid2luZG93IiwiY2IiLCJzdGFydCIsIkRhdGUiLCJub3ciLCJzZXRUaW1lb3V0IiwiZGlkVGltZW91dCIsInRpbWVSZW1haW5pbmciLCJNYXRoIiwibWF4IiwiaWQiLCJjbGVhclRpbWVvdXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\n"));
|
60
|
-
|
61
|
-
/***/ }),
|
62
|
-
|
63
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/client/script.js":
|
64
|
-
/*!*************************************************!*\
|
65
|
-
!*** ./node_modules/next/dist/client/script.js ***!
|
66
|
-
\*************************************************/
|
67
|
-
/***/ ((module, exports, __webpack_require__) => {
|
68
|
-
|
69
|
-
"use strict";
|
70
|
-
eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n handleClientScriptLoad: function() {\n return handleClientScriptLoad;\n },\n initScriptLoader: function() {\n return initScriptLoader;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ../shared/lib/head-manager-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _setattributesfromprops = __webpack_require__(/*! ./set-attributes-from-props */ \"(app-pages-browser)/./node_modules/next/dist/client/set-attributes-from-props.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst ScriptCache = new Map();\nconst LoadCache = new Set();\nconst insertStylesheets = (stylesheets)=>{\n // Case 1: Styles for afterInteractive/lazyOnload with appDir injected via handleClientScriptLoad\n //\n // Using ReactDOM.preinit to feature detect appDir and inject styles\n // Stylesheets might have already been loaded if initialized with Script component\n // Re-inject styles here to handle scripts loaded via handleClientScriptLoad\n // ReactDOM.preinit handles dedup and ensures the styles are loaded only once\n if (_reactdom.default.preinit) {\n stylesheets.forEach((stylesheet)=>{\n _reactdom.default.preinit(stylesheet, {\n as: 'style'\n });\n });\n return;\n }\n // Case 2: Styles for afterInteractive/lazyOnload with pages injected via handleClientScriptLoad\n //\n // We use this function to load styles when appdir is not detected\n // TODO: Use React float APIs to load styles once available for pages dir\n if (typeof window !== 'undefined') {\n let head = document.head;\n stylesheets.forEach((stylesheet)=>{\n let link = document.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.href = stylesheet;\n head.appendChild(link);\n });\n }\n};\nconst loadScript = (props)=>{\n const { src, id, onLoad = ()=>{}, onReady = null, dangerouslySetInnerHTML, children = '', strategy = 'afterInteractive', onError, stylesheets } = props;\n const cacheKey = id || src;\n // Script has already loaded\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n }\n // Contents of this script are already loading/loaded\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey);\n // It is possible that multiple `next/script` components all have same \"src\", but has different \"onLoad\"\n // This is to make sure the same remote script will only load once, but \"onLoad\" are executed in order\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n /** Execute after the script first loaded */ const afterLoad = ()=>{\n // Run onReady for the first time after load event\n if (onReady) {\n onReady();\n }\n // add cacheKey to LoadCache when load successfully\n LoadCache.add(cacheKey);\n };\n const el = document.createElement('script');\n const loadPromise = new Promise((resolve, reject)=>{\n el.addEventListener('load', function(e) {\n resolve();\n if (onLoad) {\n onLoad.call(this, e);\n }\n afterLoad();\n });\n el.addEventListener('error', function(e) {\n reject(e);\n });\n }).catch(function(e) {\n if (onError) {\n onError(e);\n }\n });\n if (dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n afterLoad();\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n afterLoad();\n } else if (src) {\n el.src = src;\n // do not add cacheKey into LoadCache for remote script here\n // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above)\n ScriptCache.set(src, loadPromise);\n }\n (0, _setattributesfromprops.setAttributesFromProps)(el, props);\n if (strategy === 'worker') {\n el.setAttribute('type', 'text/partytown');\n }\n el.setAttribute('data-nscript', strategy);\n // Load styles associated with this script\n if (stylesheets) {\n insertStylesheets(stylesheets);\n }\n document.body.appendChild(el);\n};\nfunction handleClientScriptLoad(props) {\n const { strategy = 'afterInteractive' } = props;\n if (strategy === 'lazyOnload') {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n } else {\n loadScript(props);\n }\n}\nfunction loadLazyScript(props) {\n if (document.readyState === 'complete') {\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n } else {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n }\n}\nfunction addBeforeInteractiveToCache() {\n const scripts = [\n ...document.querySelectorAll('[data-nscript=\"beforeInteractive\"]'),\n ...document.querySelectorAll('[data-nscript=\"beforePageRender\"]')\n ];\n scripts.forEach((script)=>{\n const cacheKey = script.id || script.getAttribute('src');\n LoadCache.add(cacheKey);\n });\n}\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n addBeforeInteractiveToCache();\n}\n/**\n * Load a third-party scripts in an optimized way.\n *\n * Read more: [Next.js Docs: `next/script`](https://nextjs.org/docs/app/api-reference/components/script)\n */ function Script(props) {\n const { id, src = '', onLoad = ()=>{}, onReady = null, strategy = 'afterInteractive', onError, stylesheets, ...restProps } = props;\n // Context is available only during SSR\n const { updateScripts, scripts, getIsSsr, appDir, nonce } = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n /**\n * - First mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache)\n * onReady is skipped, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. hasLoadScriptEffectCalled.current is false, loadScript executes\n * Once the script is loaded, the onLoad and onReady will be called by then\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n *\n * - Second mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache)\n * onReady is called, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. The script is already loaded, loadScript bails out\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n */ const hasOnReadyEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n const cacheKey = id || src;\n if (!hasOnReadyEffectCalled.current) {\n // Run onReady if script has loaded before but component is re-mounted\n if (onReady && cacheKey && LoadCache.has(cacheKey)) {\n onReady();\n }\n hasOnReadyEffectCalled.current = true;\n }\n }, [\n onReady,\n id,\n src\n ]);\n const hasLoadScriptEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n if (!hasLoadScriptEffectCalled.current) {\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props);\n }\n hasLoadScriptEffectCalled.current = true;\n }\n }, [\n props,\n strategy\n ]);\n if (strategy === 'beforeInteractive' || strategy === 'worker') {\n if (updateScripts) {\n scripts[strategy] = (scripts[strategy] || []).concat([\n {\n id,\n src,\n onLoad,\n onReady,\n onError,\n ...restProps\n }\n ]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript(props);\n }\n }\n // For the app directory, we need React Float to preload these scripts.\n if (appDir) {\n // Injecting stylesheets here handles beforeInteractive and worker scripts correctly\n // For other strategies injecting here ensures correct stylesheet order\n // ReactDOM.preinit handles loading the styles in the correct order,\n // also ensures the stylesheet is loaded only once and in a consistent manner\n //\n // Case 1: Styles for beforeInteractive/worker with appDir - handled here\n // Case 2: Styles for beforeInteractive/worker with pages dir - Not handled yet\n // Case 3: Styles for afterInteractive/lazyOnload with appDir - handled here\n // Case 4: Styles for afterInteractive/lazyOnload with pages dir - handled in insertStylesheets function\n if (stylesheets) {\n stylesheets.forEach((styleSrc)=>{\n _reactdom.default.preinit(styleSrc, {\n as: 'style'\n });\n });\n }\n // Before interactive scripts need to be loaded by Next.js' runtime instead\n // of native <script> tags, because they no longer have `defer`.\n if (strategy === 'beforeInteractive') {\n if (!src) {\n // For inlined scripts, we put the content in `children`.\n if (restProps.dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n restProps.children = restProps.dangerouslySetInnerHTML.__html;\n delete restProps.dangerouslySetInnerHTML;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: \"(self.__next_s=self.__next_s||[]).push(\" + JSON.stringify([\n 0,\n {\n ...restProps,\n id\n }\n ]) + \")\"\n }\n });\n } else {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: \"(self.__next_s=self.__next_s||[]).push(\" + JSON.stringify([\n src,\n {\n ...restProps,\n id\n }\n ]) + \")\"\n }\n });\n }\n } else if (strategy === 'afterInteractive') {\n if (src) {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n }\n }\n }\n return null;\n}\n_c = Script;\nObject.defineProperty(Script, '__nextScript', {\n value: true\n});\nconst _default = Script;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=script.js.map\nvar _c;\n$RefreshReg$(_c, \"Script\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3NjcmlwdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXlYQSxPQUFxQjtlQUFyQjs7SUE3TmdCQTtlQUFBQSxhQUFBQTs7SUFnQ0FDO2VBQUFBLE9BQUFBOzs7Ozs7OzhFQXpMK0M7aURBRTVCO3dDQUNJO21EQUNIO0FBRXBDLE1BQU1DLGNBQWMsSUFBSUMsS0FBQUEsbUJBQUFBLENBQUFBLDZHQUFBQTtBQUN4QixNQUFNQyxZQUFZLElBQUlDLEVBQUFBO0FBaUJ0QixNQUFNQyxZQUFBQSxJQUFBQSxJQUFvQixDQUFDQztJQUN6QjtJQUNBLEVBQUU7SUFDRjtJQUNBO0lBQ0EsNEVBQTRFO0lBQzVFO0lBQ0EsSUFBSUMsaUJBQVEsQ0FBQ0MsT0FBTyxFQUFFO1FBQ3BCRixVQUFBQSxFQUFZRyxLQUFBQSxDQUFBQSxDQUFPLENBQUMsQ0FBQ0MsSUFBQUEsRUFBQUE7WUFDbkJILFFBQUFBLE9BQUFBLENBQUFBLENBQVEsQ0FBQ0MsT0FBTyxDQUFDRTtnQkFBY0MsSUFBSTtnQkFBUTtZQUM3QztRQUVBO1FBQ0Y7SUFFQTtJQUNBLEVBQUU7SUFDRjtJQUNBO0lBQ0EsSUFBSSxPQUFPQyxXQUFXLGFBQWE7UUFDakMsSUFBSUMsR0FBQUEsSUFBT0MsT0FBQUEsRUFBU0QsSUFBSTtRQUN4QlAsSUFBQUEsT0FBQUEsQ0FBWUcsT0FBTyxDQUFDLENBQUNDLEdBQUFBO1lBQ25CLElBQUlLLElBQUFBLEdBQU9ELElBQUFBLENBQUFBLENBQUFBLEdBQVNFO1lBRXBCRCxJQUFBQSxDQUFLRSxJQUFJLEdBQUc7WUFDWkYsS0FBS0csR0FBRyxHQUFHO1lBQ1hILEtBQUtJLEdBQUFBLENBQUksR0FBR1Q7WUFFWkcsS0FBS08sSUFBQUEsR0FBQUEsSUFBVyxDQUFDTDtZQUNuQjtRQUNGO0lBQ0Y7QUFFQTtJQUNFLE1BQU0sRUFDSlEsR0FBRyxFQUNIQyxFQUFFLEVBQ0ZDO0lBU0YsTUFB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UUFBUSxhQUFDOzRCQUNQeEIsSUFBQUEsNENBQUFBLEtBQUFBLFNBQUFBLENBQUFBOzRCQUNBOztnQ0FBZ0JDLEdBQUFBLFNBQUFBO2dDQUFHOzRCQUNwQixDQUFFO3lCQUNMOztnQkFHTjtZQUNGO1lBQ0UsSUFBSUQsR0FBQUEsRUFBSztnQkFDUDtnQkFDQWhCLGFBQUFBO29CQUlRSSxJQUFJO29CQUNKd0UsSUFBQUEsT0FBV2pCO29CQUNYSSxXQUFBQSxVQUFBQSxTQUFBQTtvQkFDQWM7b0JBRUY7b0JBQUV6RTtvQkFBYzJELElBQUFBO29CQUFPYztvQkFBbUM7Z0JBRWxFO1lBQ0Y7UUFDRjtJQUVBO0lBQ0Y7QUFFQUM7S0EvS0k3RCxDQUFFLEVBQ0ZEO0lBOEs0Q2dFLEdBQUFBLElBQU87SUFBSyIsInNvdXJjZXMiOlsiQzpcXFVzZXJzXFxQaW5lc3VjY2VlZFxcRGVza3RvcFxcc3JjXFxjbGllbnRcXHNjcmlwdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VDb250ZXh0LCB1c2VSZWYsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFNjcmlwdEhUTUxBdHRyaWJ1dGVzIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBIZWFkTWFuYWdlckNvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL2hlYWQtbWFuYWdlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgc2V0QXR0cmlidXRlc0Zyb21Qcm9wcyB9IGZyb20gJy4vc2V0LWF0dHJpYnV0ZXMtZnJvbS1wcm9wcydcbmltcG9ydCB7IHJlcXVlc3RJZGxlQ2FsbGJhY2sgfSBmcm9tICcuL3JlcXVlc3QtaWRsZS1jYWxsYmFjaydcblxuY29uc3QgU2NyaXB0Q2FjaGUgPSBuZXcgTWFwKClcbmNvbnN0IExvYWRDYWNoZSA9IG5ldyBTZXQoKVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcmlwdFByb3BzIGV4dGVuZHMgU2NyaXB0SFRNTEF0dHJpYnV0ZXM8SFRNTFNjcmlwdEVsZW1lbnQ+IHtcbiAgc3RyYXRlZ3k/OiAnYWZ0ZXJJbnRlcmFjdGl2ZScgfCAnbGF6eU9ubG9hZCcgfCAnYmVmb3JlSW50ZXJhY3RpdmUnIHwgJ3dvcmtlcidcbiAgaWQ/OiBzdHJpbmdcbiAgb25Mb2FkPzogKGU6IGFueSkgPT4gdm9pZFxuICBvblJlYWR5PzogKCkgPT4gdm9pZCB8IG51bGxcbiAgb25FcnJvcj86IChlOiBhbnkpID0+IHZvaWRcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgc3R5bGVzaGVldHM/OiBzdHJpbmdbXVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgU2NyaXB0UHJvcHNgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCB0eXBlIFByb3BzID0gU2NyaXB0UHJvcHNcblxuY29uc3QgaW5zZXJ0U3R5bGVzaGVldHMgPSAoc3R5bGVzaGVldHM6IHN0cmluZ1tdKSA9PiB7XG4gIC8vIENhc2UgMTogU3R5bGVzIGZvciBhZnRlckludGVyYWN0aXZlL2xhenlPbmxvYWQgd2l0aCBhcHBEaXIgaW5qZWN0ZWQgdmlhIGhhbmRsZUNsaWVudFNjcmlwdExvYWRcbiAgLy9cbiAgLy8gVXNpbmcgUmVhY3RET00ucHJlaW5pdCB0byBmZWF0dXJlIGRldGVjdCBhcHBEaXIgYW5kIGluamVjdCBzdHlsZXNcbiAgLy8gU3R5bGVzaGVldHMgbWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gbG9hZGVkIGlmIGluaXRpYWxpemVkIHdpdGggU2NyaXB0IGNvbXBvbmVudFxuICAvLyBSZS1pbmplY3Qgc3R5bGVzIGhlcmUgdG8gaGFuZGxlIHNjcmlwdHMgbG9hZGVkIHZpYSBoYW5kbGVDbGllbnRTY3JpcHRMb2FkXG4gIC8vIFJlYWN0RE9NLnByZWluaXQgaGFuZGxlcyBkZWR1cCBhbmQgZW5zdXJlcyB0aGUgc3R5bGVzIGFyZSBsb2FkZWQgb25seSBvbmNlXG4gIGlmIChSZWFjdERPTS5wcmVpbml0KSB7XG4gICAgc3R5bGVzaGVldHMuZm9yRWFjaCgoc3R5bGVzaGVldDogc3RyaW5nKSA9PiB7XG4gICAgICBSZWFjdERPTS5wcmVpbml0KHN0eWxlc2hlZXQsIHsgYXM6ICdzdHlsZScgfSlcbiAgICB9KVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBDYXNlIDI6IFN0eWxlcyBmb3IgYWZ0ZXJJbnRlcmFjdGl2ZS9sYXp5T25sb2FkIHdpdGggcGFnZXMgaW5qZWN0ZWQgdmlhIGhhbmRsZUNsaWVudFNjcmlwdExvYWRcbiAgLy9cbiAgLy8gV2UgdXNlIHRoaXMgZnVuY3Rpb24gdG8gbG9hZCBzdHlsZXMgd2hlbiBhcHBkaXIgaXMgbm90IGRldGVjdGVkXG4gIC8vIFRPRE86IFVzZSBSZWFjdCBmbG9hdCBBUElzIHRvIGxvYWQgc3R5bGVzIG9uY2UgYXZhaWxhYmxlIGZvciBwYWdlcyBkaXJcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgbGV0IGhlYWQgPSBkb2N1bWVudC5oZWFkXG4gICAgc3R5bGVzaGVldHMuZm9yRWFjaCgoc3R5bGVzaGVldDogc3RyaW5nKSA9PiB7XG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKVxuXG4gICAgICBsaW5rLnR5cGUgPSAndGV4dC9jc3MnXG4gICAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0J1xuICAgICAgbGluay5ocmVmID0gc3R5bGVzaGVldFxuXG4gICAgICBoZWFkLmFwcGVuZENoaWxkKGxpbmspXG4gICAgfSlcbiAgfVxufVxuXG5jb25zdCBsb2FkU2NyaXB0ID0gKHByb3BzOiBTY3JpcHRQcm9wcyk6IHZvaWQgPT4ge1xuICBjb25zdCB7XG4gICAgc3JjLFxuICAgIGlkLFxuICAgIG9uTG9hZCA9ICgpID0+IHt9LFxuICAgIG9uUmVhZHkgPSBudWxsLFxuICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLFxuICAgIGNoaWxkcmVuID0gJycsXG4gICAgc3RyYXRlZ3kgPSAnYWZ0ZXJJbnRlcmFjdGl2ZScsXG4gICAgb25FcnJvcixcbiAgICBzdHlsZXNoZWV0cyxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgY2FjaGVLZXkgPSBpZCB8fCBzcmNcblxuICAvLyBTY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkXG4gIGlmIChjYWNoZUtleSAmJiBMb2FkQ2FjaGUuaGFzKGNhY2hlS2V5KSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLy8gQ29udGVudHMgb2YgdGhpcyBzY3JpcHQgYXJlIGFscmVhZHkgbG9hZGluZy9sb2FkZWRcbiAgaWYgKFNjcmlwdENhY2hlLmhhcyhzcmMpKSB7XG4gICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSlcbiAgICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IG11bHRpcGxlIGBuZXh0L3NjcmlwdGAgY29tcG9uZW50cyBhbGwgaGF2ZSBzYW1lIFwic3JjXCIsIGJ1dCBoYXMgZGlmZmVyZW50IFwib25Mb2FkXCJcbiAgICAvLyBUaGlzIGlzIHRvIG1ha2Ugc3VyZSB0aGUgc2FtZSByZW1vdGUgc2NyaXB0IHdpbGwgb25seSBsb2FkIG9uY2UsIGJ1dCBcIm9uTG9hZFwiIGFyZSBleGVjdXRlZCBpbiBvcmRlclxuICAgIFNjcmlwdENhY2hlLmdldChzcmMpLnRoZW4ob25Mb2FkLCBvbkVycm9yKVxuICAgIHJldHVyblxuICB9XG5cbiAgLyoqIEV4ZWN1dGUgYWZ0ZXIgdGhlIHNjcmlwdCBmaXJzdCBsb2FkZWQgKi9cbiAgY29uc3QgYWZ0ZXJMb2FkID0gKCkgPT4ge1xuICAgIC8vIFJ1biBvblJlYWR5IGZvciB0aGUgZmlyc3QgdGltZSBhZnRlciBsb2FkIGV2ZW50XG4gICAgaWYgKG9uUmVhZHkpIHtcbiAgICAgIG9uUmVhZHkoKVxuICAgIH1cbiAgICAvLyBhZGQgY2FjaGVLZXkgdG8gTG9hZENhY2hlIHdoZW4gbG9hZCBzdWNjZXNzZnVsbHlcbiAgICBMb2FkQ2FjaGUuYWRkKGNhY2hlS2V5KVxuICB9XG5cbiAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxuXG4gIGNvbnN0IGxvYWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgcmVzb2x2ZSgpXG4gICAgICBpZiAob25Mb2FkKSB7XG4gICAgICAgIG9uTG9hZC5jYWxsKHRoaXMsIGUpXG4gICAgICB9XG4gICAgICBhZnRlckxvYWQoKVxuICAgIH0pXG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbiAoZSkge1xuICAgICAgcmVqZWN0KGUpXG4gICAgfSlcbiAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAob25FcnJvcikge1xuICAgICAgb25FcnJvcihlKVxuICAgIH1cbiAgfSlcblxuICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHtcbiAgICAvLyBDYXN0aW5nIHNpbmNlIGxpYi5kb20uZC50cyBkb2Vzbid0IGhhdmUgVHJ1c3RlZEhUTUwgeWV0LlxuICAgIGVsLmlubmVySFRNTCA9IChkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwgYXMgc3RyaW5nKSB8fCAnJ1xuXG4gICAgYWZ0ZXJMb2FkKClcbiAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xuICAgIGVsLnRleHRDb250ZW50ID1cbiAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICAgICAgPyBjaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgIDogJydcblxuICAgIGFmdGVyTG9hZCgpXG4gIH0gZWxzZSBpZiAoc3JjKSB7XG4gICAgZWwuc3JjID0gc3JjXG4gICAgLy8gZG8gbm90IGFkZCBjYWNoZUtleSBpbnRvIExvYWRDYWNoZSBmb3IgcmVtb3RlIHNjcmlwdCBoZXJlXG4gICAgLy8gY2FjaGVLZXkgd2lsbCBiZSBhZGRlZCB0byBMb2FkQ2FjaGUgd2hlbiBpdCBpcyBhY3R1YWxseSBsb2FkZWQgKHNlZSBsb2FkUHJvbWlzZSBhYm92ZSlcblxuICAgIFNjcmlwdENhY2hlLnNldChzcmMsIGxvYWRQcm9taXNlKVxuICB9XG5cbiAgc2V0QXR0cmlidXRlc0Zyb21Qcm9wcyhlbCwgcHJvcHMpXG5cbiAgaWYgKHN0cmF0ZWd5ID09PSAnd29ya2VyJykge1xuICAgIGVsLnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L3BhcnR5dG93bicpXG4gIH1cblxuICBlbC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbnNjcmlwdCcsIHN0cmF0ZWd5KVxuXG4gIC8vIExvYWQgc3R5bGVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHNjcmlwdFxuICBpZiAoc3R5bGVzaGVldHMpIHtcbiAgICBpbnNlcnRTdHlsZXNoZWV0cyhzdHlsZXNoZWV0cylcbiAgfVxuXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVDbGllbnRTY3JpcHRMb2FkKHByb3BzOiBTY3JpcHRQcm9wcykge1xuICBjb25zdCB7IHN0cmF0ZWd5ID0gJ2FmdGVySW50ZXJhY3RpdmUnIH0gPSBwcm9wc1xuICBpZiAoc3RyYXRlZ3kgPT09ICdsYXp5T25sb2FkJykge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuICAgICAgcmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiBsb2FkU2NyaXB0KHByb3BzKSlcbiAgICB9KVxuICB9IGVsc2Uge1xuICAgIGxvYWRTY3JpcHQocHJvcHMpXG4gIH1cbn1cblxuZnVuY3Rpb24gbG9hZExhenlTY3JpcHQocHJvcHM6IFNjcmlwdFByb3BzKSB7XG4gIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgcmVxdWVzdElkbGVDYWxsYmFjaygoKSA9PiBsb2FkU2NyaXB0KHByb3BzKSlcbiAgfSBlbHNlIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gbG9hZFNjcmlwdChwcm9wcykpXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRCZWZvcmVJbnRlcmFjdGl2ZVRvQ2FjaGUoKSB7XG4gIGNvbnN0IHNjcmlwdHMgPSBbXG4gICAgLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbnNjcmlwdD1cImJlZm9yZUludGVyYWN0aXZlXCJdJyksXG4gICAgLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbnNjcmlwdD1cImJlZm9yZVBhZ2VSZW5kZXJcIl0nKSxcbiAgXVxuICBzY3JpcHRzLmZvckVhY2goKHNjcmlwdCkgPT4ge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gc2NyaXB0LmlkIHx8IHNjcmlwdC5nZXRBdHRyaWJ1dGUoJ3NyYycpXG4gICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSlcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTY3JpcHRMb2FkZXIoc2NyaXB0TG9hZGVySXRlbXM6IFNjcmlwdFByb3BzW10pIHtcbiAgc2NyaXB0TG9hZGVySXRlbXMuZm9yRWFjaChoYW5kbGVDbGllbnRTY3JpcHRMb2FkKVxuICBhZGRCZWZvcmVJbnRlcmFjdGl2ZVRvQ2FjaGUoKVxufVxuXG4vKipcbiAqIExvYWQgYSB0aGlyZC1wYXJ0eSBzY3JpcHRzIGluIGFuIG9wdGltaXplZCB3YXkuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgbmV4dC9zY3JpcHRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9jb21wb25lbnRzL3NjcmlwdClcbiAqL1xuZnVuY3Rpb24gU2NyaXB0KHByb3BzOiBTY3JpcHRQcm9wcyk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBzcmMgPSAnJyxcbiAgICBvbkxvYWQgPSAoKSA9PiB7fSxcbiAgICBvblJlYWR5ID0gbnVsbCxcbiAgICBzdHJhdGVneSA9ICdhZnRlckludGVyYWN0aXZlJyxcbiAgICBvbkVycm9yLFxuICAgIHN0eWxlc2hlZXRzLFxuICAgIC4uLnJlc3RQcm9wc1xuICB9ID0gcHJvcHNcblxuICAvLyBDb250ZXh0IGlzIGF2YWlsYWJsZSBvbmx5IGR1cmluZyBTU1JcbiAgY29uc3QgeyB1cGRhdGVTY3JpcHRzLCBzY3JpcHRzLCBnZXRJc1NzciwgYXBwRGlyLCBub25jZSB9ID1cbiAgICB1c2VDb250ZXh0KEhlYWRNYW5hZ2VyQ29udGV4dClcblxuICAvKipcbiAgICogLSBGaXJzdCBtb3VudDpcbiAgICogICAxLiBUaGUgdXNlRWZmZWN0IGZvciBvblJlYWR5IGV4ZWN1dGVzXG4gICAqICAgMi4gaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IGlzIGZhbHNlLCBidXQgdGhlIHNjcmlwdCBoYXNuJ3QgbG9hZGVkIHlldCAobm90IGluIExvYWRDYWNoZSlcbiAgICogICAgICBvblJlYWR5IGlzIHNraXBwZWQsIHNldCBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgdG8gdHJ1ZVxuICAgKiAgIDMuIFRoZSB1c2VFZmZlY3QgZm9yIGxvYWRTY3JpcHQgZXhlY3V0ZXNcbiAgICogICA0LiBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgZmFsc2UsIGxvYWRTY3JpcHQgZXhlY3V0ZXNcbiAgICogICAgICBPbmNlIHRoZSBzY3JpcHQgaXMgbG9hZGVkLCB0aGUgb25Mb2FkIGFuZCBvblJlYWR5IHdpbGwgYmUgY2FsbGVkIGJ5IHRoZW5cbiAgICogICBbSWYgc3RyaWN0IG1vZGUgaXMgZW5hYmxlZCAvIGlzIHdyYXBwZWQgaW4gPE9mZlNjcmVlbiAvPiBjb21wb25lbnRdXG4gICAqICAgNS4gVGhlIHVzZUVmZmVjdCBmb3Igb25SZWFkeSBleGVjdXRlcyBhZ2FpblxuICAgKiAgIDYuIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCBpcyB0cnVlLCBzbyBlbnRpcmUgZWZmZWN0IGlzIHNraXBwZWRcbiAgICogICA3LiBUaGUgdXNlRWZmZWN0IGZvciBsb2FkU2NyaXB0IGV4ZWN1dGVzIGFnYWluXG4gICAqICAgOC4gaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZC5jdXJyZW50IGlzIHRydWUsIHNvIGVudGlyZSBlZmZlY3QgaXMgc2tpcHBlZFxuICAgKlxuICAgKiAtIFNlY29uZCBtb3VudDpcbiAgICogICAxLiBUaGUgdXNlRWZmZWN0IGZvciBvblJlYWR5IGV4ZWN1dGVzXG4gICAqICAgMi4gaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IGlzIGZhbHNlLCBidXQgdGhlIHNjcmlwdCBoYXMgYWxyZWFkeSBsb2FkZWQgKGZvdW5kIGluIExvYWRDYWNoZSlcbiAgICogICAgICBvblJlYWR5IGlzIGNhbGxlZCwgc2V0IGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCB0byB0cnVlXG4gICAqICAgMy4gVGhlIHVzZUVmZmVjdCBmb3IgbG9hZFNjcmlwdCBleGVjdXRlc1xuICAgKiAgIDQuIFRoZSBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWQsIGxvYWRTY3JpcHQgYmFpbHMgb3V0XG4gICAqICAgW0lmIHN0cmljdCBtb2RlIGlzIGVuYWJsZWQgLyBpcyB3cmFwcGVkIGluIDxPZmZTY3JlZW4gLz4gY29tcG9uZW50XVxuICAgKiAgIDUuIFRoZSB1c2VFZmZlY3QgZm9yIG9uUmVhZHkgZXhlY3V0ZXMgYWdhaW5cbiAgICogICA2LiBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgdHJ1ZSwgc28gZW50aXJlIGVmZmVjdCBpcyBza2lwcGVkXG4gICAqICAgNy4gVGhlIHVzZUVmZmVjdCBmb3IgbG9hZFNjcmlwdCBleGVjdXRlcyBhZ2FpblxuICAgKiAgIDguIGhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCBpcyB0cnVlLCBzbyBlbnRpcmUgZWZmZWN0IGlzIHNraXBwZWRcbiAgICovXG4gIGNvbnN0IGhhc09uUmVhZHlFZmZlY3RDYWxsZWQgPSB1c2VSZWYoZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGlkIHx8IHNyY1xuICAgIGlmICghaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50KSB7XG4gICAgICAvLyBSdW4gb25SZWFkeSBpZiBzY3JpcHQgaGFzIGxvYWRlZCBiZWZvcmUgYnV0IGNvbXBvbmVudCBpcyByZS1tb3VudGVkXG4gICAgICBpZiAob25SZWFkeSAmJiBjYWNoZUtleSAmJiBMb2FkQ2FjaGUuaGFzKGNhY2hlS2V5KSkge1xuICAgICAgICBvblJlYWR5KClcbiAgICAgIH1cblxuICAgICAgaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50ID0gdHJ1ZVxuICAgIH1cbiAgfSwgW29uUmVhZHksIGlkLCBzcmNdKVxuXG4gIGNvbnN0IGhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQgPSB1c2VSZWYoZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCkge1xuICAgICAgaWYgKHN0cmF0ZWd5ID09PSAnYWZ0ZXJJbnRlcmFjdGl2ZScpIHtcbiAgICAgICAgbG9hZFNjcmlwdChwcm9wcylcbiAgICAgIH0gZWxzZSBpZiAoc3RyYXRlZ3kgPT09ICdsYXp5T25sb2FkJykge1xuICAgICAgICBsb2FkTGF6eVNjcmlwdChwcm9wcylcbiAgICAgIH1cblxuICAgICAgaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZC5jdXJyZW50ID0gdHJ1ZVxuICAgIH1cbiAgfSwgW3Byb3BzLCBzdHJhdGVneV0pXG5cbiAgaWYgKHN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnIHx8IHN0cmF0ZWd5ID09PSAnd29ya2VyJykge1xuICAgIGlmICh1cGRhdGVTY3JpcHRzKSB7XG4gICAgICBzY3JpcHRzW3N0cmF0ZWd5XSA9IChzY3JpcHRzW3N0cmF0ZWd5XSB8fCBbXSkuY29uY2F0KFtcbiAgICAgICAge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHNyYyxcbiAgICAgICAgICBvbkxvYWQsXG4gICAgICAgICAgb25SZWFkeSxcbiAgICAgICAgICBvbkVycm9yLFxuICAgICAgICAgIC4uLnJlc3RQcm9wcyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgICB1cGRhdGVTY3JpcHRzKHNjcmlwdHMpXG4gICAgfSBlbHNlIGlmIChnZXRJc1NzciAmJiBnZXRJc1NzcigpKSB7XG4gICAgICAvLyBTY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkIGR1cmluZyBTU1JcbiAgICAgIExvYWRDYWNoZS5hZGQoaWQgfHwgc3JjKVxuICAgIH0gZWxzZSBpZiAoZ2V0SXNTc3IgJiYgIWdldElzU3NyKCkpIHtcbiAgICAgIGxvYWRTY3JpcHQocHJvcHMpXG4gICAgfVxuICB9XG5cbiAgLy8gRm9yIHRoZSBhcHAgZGlyZWN0b3J5LCB3ZSBuZWVkIFJlYWN0IEZsb2F0IHRvIHByZWxvYWQgdGhlc2Ugc2NyaXB0cy5cbiAgaWYgKGFwcERpcikge1xuICAgIC8vIEluamVjdGluZyBzdHlsZXNoZWV0cyBoZXJlIGhhbmRsZXMgYmVmb3JlSW50ZXJhY3RpdmUgYW5kIHdvcmtlciBzY3JpcHRzIGNvcnJlY3RseVxuICAgIC8vIEZvciBvdGhlciBzdHJhdGVnaWVzIGluamVjdGluZyBoZXJlIGVuc3VyZXMgY29ycmVjdCBzdHlsZXNoZWV0IG9yZGVyXG4gICAgLy8gUmVhY3RET00ucHJlaW5pdCBoYW5kbGVzIGxvYWRpbmcgdGhlIHN0eWxlcyBpbiB0aGUgY29ycmVjdCBvcmRlcixcbiAgICAvLyBhbHNvIGVuc3VyZXMgdGhlIHN0eWxlc2hlZXQgaXMgbG9hZGVkIG9ubHkgb25jZSBhbmQgaW4gYSBjb25zaXN0ZW50IG1hbm5lclxuICAgIC8vXG4gICAgLy8gQ2FzZSAxOiBTdHlsZXMgZm9yIGJlZm9yZUludGVyYWN0aXZlL3dvcmtlciB3aXRoIGFwcERpciAtIGhhbmRsZWQgaGVyZVxuICAgIC8vIENhc2UgMjogU3R5bGVzIGZvciBiZWZvcmVJbnRlcmFjdGl2ZS93b3JrZXIgd2l0aCBwYWdlcyBkaXIgLSBOb3QgaGFuZGxlZCB5ZXRcbiAgICAvLyBDYXNlIDM6IFN0eWxlcyBmb3IgYWZ0ZXJJbnRlcmFjdGl2ZS9sYXp5T25sb2FkIHdpdGggYXBwRGlyIC0gaGFuZGxlZCBoZXJlXG4gICAgLy8gQ2FzZSA0OiBTdHlsZXMgZm9yIGFmdGVySW50ZXJhY3RpdmUvbGF6eU9ubG9hZCB3aXRoIHBhZ2VzIGRpciAtIGhhbmRsZWQgaW4gaW5zZXJ0U3R5bGVzaGVldHMgZnVuY3Rpb25cbiAgICBpZiAoc3R5bGVzaGVldHMpIHtcbiAgICAgIHN0eWxlc2hlZXRzLmZvckVhY2goKHN0eWxlU3JjKSA9PiB7XG4gICAgICAgIFJlYWN0RE9NLnByZWluaXQoc3R5bGVTcmMsIHsgYXM6ICdzdHlsZScgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gQmVmb3JlIGludGVyYWN0aXZlIHNjcmlwdHMgbmVlZCB0byBiZSBsb2FkZWQgYnkgTmV4dC5qcycgcnVudGltZSBpbnN0ZWFkXG4gICAgLy8gb2YgbmF0aXZlIDxzY3JpcHQ+IHRhZ3MsIGJlY2F1c2UgdGhleSBubyBsb25nZXIgaGF2ZSBgZGVmZXJgLlxuICAgIGlmIChzdHJhdGVneSA9PT0gJ2JlZm9yZUludGVyYWN0aXZlJykge1xuICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgLy8gRm9yIGlubGluZWQgc2NyaXB0cywgd2UgcHV0IHRoZSBjb250ZW50IGluIGBjaGlsZHJlbmAuXG4gICAgICAgIGlmIChyZXN0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHtcbiAgICAgICAgICAvLyBDYXN0aW5nIHNpbmNlIGxpYi5kb20uZC50cyBkb2Vzbid0IGhhdmUgVHJ1c3RlZEhUTUwgeWV0LlxuICAgICAgICAgIHJlc3RQcm9wcy5jaGlsZHJlbiA9IHJlc3RQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTFxuICAgICAgICAgICAgLl9faHRtbCBhcyBzdHJpbmdcbiAgICAgICAgICBkZWxldGUgcmVzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIG5vbmNlPXtub25jZX1cbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIF9faHRtbDogYChzZWxmLl9fbmV4dF9zPXNlbGYuX19uZXh0X3N8fFtdKS5wdXNoKCR7SlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgeyAuLi5yZXN0UHJvcHMsIGlkIH0sXG4gICAgICAgICAgICAgIF0pfSlgLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIFJlYWN0RE9NLnByZWxvYWQoXG4gICAgICAgICAgc3JjLFxuICAgICAgICAgIHJlc3RQcm9wcy5pbnRlZ3JpdHlcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGFzOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICBpbnRlZ3JpdHk6IHJlc3RQcm9wcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICAgICAgbm9uY2UsXG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHJlc3RQcm9wcy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7IGFzOiAnc2NyaXB0Jywgbm9uY2UsIGNyb3NzT3JpZ2luOiByZXN0UHJvcHMuY3Jvc3NPcmlnaW4gfVxuICAgICAgICApXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgX19odG1sOiBgKHNlbGYuX19uZXh0X3M9c2VsZi5fX25leHRfc3x8W10pLnB1c2goJHtKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgICAgIHsgLi4ucmVzdFByb3BzLCBpZCB9LFxuICAgICAgICAgICAgICBdKX0pYCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RyYXRlZ3kgPT09ICdhZnRlckludGVyYWN0aXZlJykge1xuICAgICAgaWYgKHNyYykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIFJlYWN0RE9NLnByZWxvYWQoXG4gICAgICAgICAgc3JjLFxuICAgICAgICAgIHJlc3RQcm9wcy5pbnRlZ3JpdHlcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGFzOiAnc2NyaXB0JyxcbiAgICAgICAgICAgICAgICBpbnRlZ3JpdHk6IHJlc3RQcm9wcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICAgICAgbm9uY2UsXG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHJlc3RQcm9wcy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7IGFzOiAnc2NyaXB0Jywgbm9uY2UsIGNyb3NzT3JpZ2luOiByZXN0UHJvcHMuY3Jvc3NPcmlnaW4gfVxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFNjcmlwdCwgJ19fbmV4dFNjcmlwdCcsIHsgdmFsdWU6IHRydWUgfSlcblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0XG4iXSwibmFtZXMiOlsiaGFuZGxlQ2xpZW50U2NyaXB0TG9hZCIsImluaXRTY3JpcHRMb2FkZXIiLCJTY3JpcHRDYWNoZSIsIk1hcCIsIkxvYWRDYWNoZSIsIlNldCIsImluc2VydFN0eWxlc2hlZXRzIiwic3R5bGVzaGVldHMiLCJSZWFjdERPTSIsInByZWluaXQiLCJmb3JFYWNoIiwic3R5bGVzaGVldCIsImFzIiwid2luZG93IiwiaGVhZCIsImRvY3VtZW50IiwibGluayIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwicmVsIiwiaHJlZiIsImFwcGVuZENoaWxkIiwibG9hZFNjcmlwdCIsInByb3BzIiwic3JjIiwiaWQiLCJvbkxvYWQiLCJvblJlYWR5IiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjaGlsZHJlbiIsInN0cmF0ZWd5Iiwib25FcnJvciIsImNhY2hlS2V5IiwiaGFzIiwiYWRkIiwiZ2V0IiwidGhlbiIsImFmdGVyTG9hZCIsImVsIiwibG9hZFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwiY2FsbCIsImNhdGNoIiwiaW5uZXJIVE1MIiwiX19odG1sIiwidGV4dENvbnRlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwic2V0Iiwic2V0QXR0cmlidXRlc0Zyb21Qcm9wcyIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwibG9hZExhenlTY3JpcHQiLCJyZWFkeVN0YXRlIiwiYWRkQmVmb3JlSW50ZXJhY3RpdmVUb0NhY2hlIiwic2NyaXB0cyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJzY3JpcHQiLCJnZXRBdHRyaWJ1dGUiLCJzY3JpcHRMb2FkZXJJdGVtcyIsIlNjcmlwdCIsInJlc3RQcm9wcyIsInVwZGF0ZVNjcmlwdHMiLCJnZXRJc1NzciIsImFwcERpciIsIm5vbmNlIiwidXNlQ29udGV4dCIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsImhhc09uUmVhZHlFZmZlY3RDYWxsZWQiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZCIsImNvbmNhdCIsInN0eWxlU3JjIiwiSlNPTiIsInN0cmluZ2lmeSIsInByZWxvYWQiLCJpbnRlZ3JpdHkiLCJjcm9zc09yaWdpbiIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/script.js\n"));
|
71
|
-
|
72
|
-
/***/ }),
|
73
|
-
|
74
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/client/set-attributes-from-props.js":
|
75
|
-
/*!********************************************************************!*\
|
76
|
-
!*** ./node_modules/next/dist/client/set-attributes-from-props.js ***!
|
77
|
-
\********************************************************************/
|
78
|
-
/***/ ((module, exports, __webpack_require__) => {
|
79
|
-
|
80
|
-
"use strict";
|
81
|
-
eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"setAttributesFromProps\", ({\n enumerable: true,\n get: function() {\n return setAttributesFromProps;\n }\n}));\nconst DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nconst ignoreProps = [\n 'onLoad',\n 'onReady',\n 'dangerouslySetInnerHTML',\n 'children',\n 'onError',\n 'strategy',\n 'stylesheets'\n];\nfunction isBooleanScriptAttribute(attr) {\n return [\n 'async',\n 'defer',\n 'noModule'\n ].includes(attr);\n}\nfunction setAttributesFromProps(el, props) {\n for (const [p, value] of Object.entries(props)){\n if (!props.hasOwnProperty(p)) continue;\n if (ignoreProps.includes(p)) continue;\n // we don't render undefined props to the DOM\n if (value === undefined) {\n continue;\n }\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n if (el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr)) {\n el[attr] = !!value;\n } else {\n el.setAttribute(attr, String(value));\n }\n // Remove falsy non-zero boolean attributes so they are correctly interpreted\n // (e.g. if we set them to false, this coerces to the string \"false\", which the browser interprets as true)\n if (value === false || el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr) && (!value || value === 'false')) {\n // Call setAttribute before, as we need to set and unset the attribute to override force async:\n // https://html.spec.whatwg.org/multipage/scripting.html#script-force-async\n el.setAttribute(attr, '');\n el.removeAttribute(attr);\n }\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=set-attributes-from-props.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3NldC1hdHRyaWJ1dGVzLWZyb20tcHJvcHMuanMiLCJtYXBwaW5ncyI6Ijs7OzswREF3QmdCQTs7O2VBQUFBOzs7QUF4QmhCLE1BQU1DLG9CQUE0QztJQUNoREMsZUFBZTtJQUNmQyxXQUFXO0lBQ1hDLFNBQVM7SUFDVEMsV0FBVztJQUNYQyxVQUFVO0FBQ1o7QUFFQSxNQUFNQyxjQUFjO0lBQ2xCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFRCxTQUFTQyx5QkFDUEMsSUFBWTtJQUVaLE9BQU87UUFBQztRQUFTO1FBQVM7S0FBVyxDQUFDQyxRQUFRLENBQUNEO0FBQ2pEO0FBRU8sU0FBU1QsdUJBQXVCVyxFQUFlLEVBQUVDLEtBQWE7SUFDbkUsS0FBSyxNQUFNLENBQUNDLEdBQUdDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDSixPQUFRO1FBQzlDLElBQUksQ0FBQ0EsTUFBTUssY0FBYyxDQUFDSixJQUFJO1FBQzlCLElBQUlOLFlBQVlHLFFBQVEsQ0FBQ0csSUFBSTtRQUU3Qiw2Q0FBNkM7UUFDN0MsSUFBSUMsVUFBVUksV0FBVztZQUN2QjtRQUNGO1FBRUEsTUFBTVQsT0FBT1IsaUJBQWlCLENBQUNZLEVBQUUsSUFBSUEsRUFBRU0sV0FBVztRQUVsRCxJQUFJUixHQUFHUyxPQUFPLEtBQUssWUFBWVoseUJBQXlCQyxPQUFPO1lBRzNERSxFQUF3QixDQUFDRixLQUFLLEdBQUcsQ0FBQyxDQUFDSztRQUN2QyxPQUFPO1lBQ0xILEdBQUdVLFlBQVksQ0FBQ1osTUFBTWEsT0FBT1I7UUFDL0I7UUFFQSw2RUFBNkU7UUFDN0UsMkdBQTJHO1FBQzNHLElBQ0VBLFVBQVUsU0FDVEgsR0FBR1MsT0FBTyxLQUFLLFlBQ2RaLHlCQUF5QkMsU0FDeEIsRUFBQ0ssU0FBU0EsVUFBVSxRQUFNLEVBQzdCO1lBQ0EsK0ZBQStGO1lBQy9GLDJFQUEyRTtZQUMzRUgsR0FBR1UsWUFBWSxDQUFDWixNQUFNO1lBQ3RCRSxHQUFHWSxlQUFlLENBQUNkO1FBQ3JCO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiQzpcXFVzZXJzXFxQaW5lc3VjY2VlZFxcRGVza3RvcFxcc3JjXFxjbGllbnRcXHNldC1hdHRyaWJ1dGVzLWZyb20tcHJvcHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRE9NQXR0cmlidXRlTmFtZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGFjY2VwdENoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgaHRtbEZvcjogJ2ZvcicsXG4gIGh0dHBFcXVpdjogJ2h0dHAtZXF1aXYnLFxuICBub01vZHVsZTogJ25vTW9kdWxlJyxcbn1cblxuY29uc3QgaWdub3JlUHJvcHMgPSBbXG4gICdvbkxvYWQnLFxuICAnb25SZWFkeScsXG4gICdkYW5nZXJvdXNseVNldElubmVySFRNTCcsXG4gICdjaGlsZHJlbicsXG4gICdvbkVycm9yJyxcbiAgJ3N0cmF0ZWd5JyxcbiAgJ3N0eWxlc2hlZXRzJyxcbl1cblxuZnVuY3Rpb24gaXNCb29sZWFuU2NyaXB0QXR0cmlidXRlKFxuICBhdHRyOiBzdHJpbmdcbik6IGF0dHIgaXMgJ2FzeW5jJyB8ICdkZWZlcicgfCAnbm9Nb2R1bGUnIHtcbiAgcmV0dXJuIFsnYXN5bmMnLCAnZGVmZXInLCAnbm9Nb2R1bGUnXS5pbmNsdWRlcyhhdHRyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXR0cmlidXRlc0Zyb21Qcm9wcyhlbDogSFRNTEVsZW1lbnQsIHByb3BzOiBvYmplY3QpIHtcbiAgZm9yIChjb25zdCBbcCwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgIGlmICghcHJvcHMuaGFzT3duUHJvcGVydHkocCkpIGNvbnRpbnVlXG4gICAgaWYgKGlnbm9yZVByb3BzLmluY2x1ZGVzKHApKSBjb250aW51ZVxuXG4gICAgLy8gd2UgZG9uJ3QgcmVuZGVyIHVuZGVmaW5lZCBwcm9wcyB0byB0aGUgRE9NXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgYXR0ciA9IERPTUF0dHJpYnV0ZU5hbWVzW3BdIHx8IHAudG9Mb3dlckNhc2UoKVxuXG4gICAgaWYgKGVsLnRhZ05hbWUgPT09ICdTQ1JJUFQnICYmIGlzQm9vbGVhblNjcmlwdEF0dHJpYnV0ZShhdHRyKSkge1xuICAgICAgLy8gQ29ycmVjdGx5IGFzc2lnbiBib29sZWFuIHNjcmlwdCBhdHRyaWJ1dGVzXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC8yMDc0OFxuICAgICAgOyhlbCBhcyBIVE1MU2NyaXB0RWxlbWVudClbYXR0cl0gPSAhIXZhbHVlXG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShhdHRyLCBTdHJpbmcodmFsdWUpKVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBmYWxzeSBub24temVybyBib29sZWFuIGF0dHJpYnV0ZXMgc28gdGhleSBhcmUgY29ycmVjdGx5IGludGVycHJldGVkXG4gICAgLy8gKGUuZy4gaWYgd2Ugc2V0IHRoZW0gdG8gZmFsc2UsIHRoaXMgY29lcmNlcyB0byB0aGUgc3RyaW5nIFwiZmFsc2VcIiwgd2hpY2ggdGhlIGJyb3dzZXIgaW50ZXJwcmV0cyBhcyB0cnVlKVxuICAgIGlmIChcbiAgICAgIHZhbHVlID09PSBmYWxzZSB8fFxuICAgICAgKGVsLnRhZ05hbWUgPT09ICdTQ1JJUFQnICYmXG4gICAgICAgIGlzQm9vbGVhblNjcmlwdEF0dHJpYnV0ZShhdHRyKSAmJlxuICAgICAgICAoIXZhbHVlIHx8IHZhbHVlID09PSAnZmFsc2UnKSlcbiAgICApIHtcbiAgICAgIC8vIENhbGwgc2V0QXR0cmlidXRlIGJlZm9yZSwgYXMgd2UgbmVlZCB0byBzZXQgYW5kIHVuc2V0IHRoZSBhdHRyaWJ1dGUgdG8gb3ZlcnJpZGUgZm9yY2UgYXN5bmM6XG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNzY3JpcHQtZm9yY2UtYXN5bmNcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShhdHRyLCAnJylcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShhdHRyKVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInNldEF0dHJpYnV0ZXNGcm9tUHJvcHMiLCJET01BdHRyaWJ1dGVOYW1lcyIsImFjY2VwdENoYXJzZXQiLCJjbGFzc05hbWUiLCJodG1sRm9yIiwiaHR0cEVxdWl2Iiwibm9Nb2R1bGUiLCJpZ25vcmVQcm9wcyIsImlzQm9vbGVhblNjcmlwdEF0dHJpYnV0ZSIsImF0dHIiLCJpbmNsdWRlcyIsImVsIiwicHJvcHMiLCJwIiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwiaGFzT3duUHJvcGVydHkiLCJ1bmRlZmluZWQiLCJ0b0xvd2VyQ2FzZSIsInRhZ05hbWUiLCJzZXRBdHRyaWJ1dGUiLCJTdHJpbmciLCJyZW1vdmVBdHRyaWJ1dGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/set-attributes-from-props.js\n"));
|
82
|
-
|
83
|
-
/***/ }),
|
84
|
-
|
85
|
-
/***/ "(app-pages-browser)/./src/app/components/Bootstrapclient.ts":
|
86
|
-
/*!***********************************************!*\
|
87
|
-
!*** ./src/app/components/Bootstrapclient.ts ***!
|
88
|
-
\***********************************************/
|
89
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
90
|
-
|
91
|
-
"use strict";
|
92
|
-
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \nfunction BootstrapClient() {\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"BootstrapClient.useEffect\": ()=>{\n __webpack_require__(/*! bootstrap/dist/js/bootstrap.bundle.min.js */ \"(app-pages-browser)/./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js\");\n }\n }[\"BootstrapClient.useEffect\"], []);\n return null;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BootstrapClient);\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvY29tcG9uZW50cy9Cb290c3RyYXBjbGllbnQudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7OzZEQUVrQztBQUVsQyxTQUFTQztJQUNQRCxnREFBU0E7cUNBQUM7WUFDUkUsbUJBQU9BLENBQUMsK0hBQTJDO1FBQ3JEO29DQUFHLEVBQUU7SUFFTCxPQUFPO0FBQ1Q7QUFFQSxpRUFBZUQsZUFBZUEsRUFBQyIsInNvdXJjZXMiOlsiQzpcXFVzZXJzXFxQaW5lc3VjY2VlZFxcRGVza3RvcFxcV29ya1NwYWNlXFx0ZXN0d2lkZ2V0XFxzcmNcXGFwcFxcY29tcG9uZW50c1xcQm9vdHN0cmFwY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXHJcblxyXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XHJcblxyXG5mdW5jdGlvbiBCb290c3RyYXBDbGllbnQoKSB7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIHJlcXVpcmUoJ2Jvb3RzdHJhcC9kaXN0L2pzL2Jvb3RzdHJhcC5idW5kbGUubWluLmpzJyk7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQm9vdHN0cmFwQ2xpZW50OyJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJCb290c3RyYXBDbGllbnQiLCJyZXF1aXJlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/components/Bootstrapclient.ts\n"));
|
93
|
-
|
94
|
-
/***/ }),
|
95
|
-
|
96
|
-
/***/ "(app-pages-browser)/./src/app/components/Datascript.tsx":
|
97
|
-
/*!*******************************************!*\
|
98
|
-
!*** ./src/app/components/Datascript.tsx ***!
|
99
|
-
\*******************************************/
|
100
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
101
|
-
|
102
|
-
"use strict";
|
103
|
-
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DataScript)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/script */ \"(app-pages-browser)/./node_modules/next/dist/api/script.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\nfunction DataScript() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_script__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n src: \"https://token-cert.dcap.com/v1/client\",\n strategy: \"beforeInteractive\",\n onLoad: ()=>{\n if ( true && window.DatacapWebToken) {\n console.log(\"DatacapWebToken\", window.DatacapWebToken);\n } else {\n console.log(\"DatacapWebToken is not loaded yet.\");\n }\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\Pinesucceed\\\\Desktop\\\\WorkSpace\\\\testwidget\\\\src\\\\app\\\\components\\\\Datascript.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this);\n}\n_c = DataScript;\nvar _c;\n$RefreshReg$(_c, \"DataScript\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvY29tcG9uZW50cy9EYXRhc2NyaXB0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRWlDO0FBU2xCLFNBQVNDO0lBQ3RCLHFCQUNJLDhEQUFDRCxtREFBTUE7UUFDTEUsS0FBSTtRQUNKQyxVQUFTO1FBQ1RDLFFBQVE7WUFDTixJQUFJLEtBQTZCLElBQUlDLE9BQU9DLGVBQWUsRUFBRTtnQkFDM0RDLFFBQVFDLEdBQUcsQ0FBQyxtQkFBbUJILE9BQU9DLGVBQWU7WUFDdkQsT0FBTztnQkFDTEMsUUFBUUMsR0FBRyxDQUFDO1lBQ2Q7UUFDRjs7Ozs7O0FBR1I7S0Fkd0JQIiwic291cmNlcyI6WyJDOlxcVXNlcnNcXFBpbmVzdWNjZWVkXFxEZXNrdG9wXFxXb3JrU3BhY2VcXHRlc3R3aWRnZXRcXHNyY1xcYXBwXFxjb21wb25lbnRzXFxEYXRhc2NyaXB0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcclxuJ3VzZSBjbGllbnQnXHJcbmltcG9ydCBTY3JpcHQgZnJvbSAnbmV4dC9zY3JpcHQnO1xyXG5cclxuLy8gQWRkIGEgZGVjbGFyYXRpb24gZm9yIHRoZSBEYXRhY2FwV2ViVG9rZW4gdG8gYXZvaWQgVHlwZVNjcmlwdCBlcnJvcnNcclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gIGludGVyZmFjZSBXaW5kb3cge1xyXG4gICAgRGF0YWNhcFdlYlRva2VuOiBhbnk7IC8vIFlvdSBjYW4gcmVwbGFjZSAnYW55JyB3aXRoIGEgbW9yZSBzcGVjaWZpYyB0eXBlIGlmIHlvdSBrbm93IHRoZSBzaGFwZSBvZiBEYXRhY2FwV2ViVG9rZW5cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERhdGFTY3JpcHQoKSB7XHJcbiAgcmV0dXJuIChcclxuICAgICAgPFNjcmlwdFxyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vdG9rZW4tY2VydC5kY2FwLmNvbS92MS9jbGllbnRcIlxyXG4gICAgICAgIHN0cmF0ZWd5PVwiYmVmb3JlSW50ZXJhY3RpdmVcIlxyXG4gICAgICAgIG9uTG9hZD17KCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5EYXRhY2FwV2ViVG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJEYXRhY2FwV2ViVG9rZW5cIiwgd2luZG93LkRhdGFjYXBXZWJUb2tlbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFjYXBXZWJUb2tlbiBpcyBub3QgbG9hZGVkIHlldC5cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfX1cclxuICAgICAgLz5cclxuICApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJTY3JpcHQiLCJEYXRhU2NyaXB0Iiwic3JjIiwic3RyYXRlZ3kiLCJvbkxvYWQiLCJ3aW5kb3ciLCJEYXRhY2FwV2ViVG9rZW4iLCJjb25zb2xlIiwibG9nIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/components/Datascript.tsx\n"));
|
104
|
-
|
105
|
-
/***/ }),
|
106
|
-
|
107
|
-
/***/ "(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/GeistMonoVF.woff\",\"variable\":\"--font-geist-mono\",\"weight\":\"100 900\"}],\"variableName\":\"geistMono\"}":
|
108
|
-
/*!***************************************************************************************************************************************************************************************************************************!*\
|
109
|
-
!*** ./node_modules/next/font/local/target.css?{"path":"src\\app\\layout.tsx","import":"","arguments":[{"src":"./fonts/GeistMonoVF.woff","variable":"--font-geist-mono","weight":"100 900"}],"variableName":"geistMono"} ***!
|
110
|
-
\***************************************************************************************************************************************************************************************************************************/
|
111
|
-
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
112
|
-
|
113
|
-
eval(__webpack_require__.ts("// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'geistMono', 'geistMono Fallback'\"},\"className\":\"__className_c3aa02\",\"variable\":\"__variable_c3aa02\"};\n if(true) {\n // 1732174116603\n var cssReload = __webpack_require__(/*! ./node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js\")(module.id, {\"publicPath\":\"/_next/\",\"esModule\":false,\"locals\":true});\n module.hot.dispose(cssReload);\n \n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2ZvbnQvbG9jYWwvdGFyZ2V0LmNzcz97XCJwYXRoXCI6XCJzcmNcXFxcYXBwXFxcXGxheW91dC50c3hcIixcImltcG9ydFwiOlwiXCIsXCJhcmd1bWVudHNcIjpbe1wic3JjXCI6XCIuL2ZvbnRzL0dlaXN0TW9ub1ZGLndvZmZcIixcInZhcmlhYmxlXCI6XCItLWZvbnQtZ2Vpc3QtbW9ub1wiLFwid2VpZ2h0XCI6XCIxMDAgOTAwXCJ9XSxcInZhcmlhYmxlTmFtZVwiOlwiZ2Vpc3RNb25vXCJ9IiwibWFwcGluZ3MiOiJBQUFBO0FBQ0Esa0JBQWtCLFNBQVMsaURBQWlEO0FBQzVFLE9BQU8sSUFBVTtBQUNqQjtBQUNBLHNCQUFzQixtQkFBTyxDQUFDLHdNQUF1SSxjQUFjLHNEQUFzRDtBQUN6TyxNQUFNLFVBQVU7QUFDaEI7QUFDQTtBQUNBIiwic291cmNlcyI6WyJDOlxcVXNlcnNcXFBpbmVzdWNjZWVkXFxEZXNrdG9wXFxXb3JrU3BhY2VcXHRlc3R3aWRnZXRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZm9udFxcbG9jYWxcXHRhcmdldC5jc3M/e1wicGF0aFwiOlwic3JjXFxhcHBcXGxheW91dC50c3hcIixcImltcG9ydFwiOlwiXCIsXCJhcmd1bWVudHNcIjpbe1wic3JjXCI6XCIuXFxmb250c1xcR2Vpc3RNb25vVkYud29mZlwiLFwidmFyaWFibGVcIjpcIi0tZm9udC1nZWlzdC1tb25vXCIsXCJ3ZWlnaHRcIjpcIjEwMCA5MDBcIn1dLFwidmFyaWFibGVOYW1lXCI6XCJnZWlzdE1vbm9cIn18YXBwLXBhZ2VzLWJyb3dzZXIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5tb2R1bGUuZXhwb3J0cyA9IHtcInN0eWxlXCI6e1wiZm9udEZhbWlseVwiOlwiJ2dlaXN0TW9ubycsICdnZWlzdE1vbm8gRmFsbGJhY2snXCJ9LFwiY2xhc3NOYW1lXCI6XCJfX2NsYXNzTmFtZV9jM2FhMDJcIixcInZhcmlhYmxlXCI6XCJfX3ZhcmlhYmxlX2MzYWEwMlwifTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNzMyMTc0MTE2NjAzXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIkM6L1VzZXJzL1BpbmVzdWNjZWVkL0Rlc2t0b3AvV29ya1NwYWNlL3Rlc3R3aWRnZXQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9obXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJwdWJsaWNQYXRoXCI6XCIvX25leHQvXCIsXCJlc01vZHVsZVwiOmZhbHNlLFwibG9jYWxzXCI6dHJ1ZX0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/GeistMonoVF.woff\",\"variable\":\"--font-geist-mono\",\"weight\":\"100 900\"}],\"variableName\":\"geistMono\"}\n"));
|
114
|
-
|
115
|
-
/***/ }),
|
116
|
-
|
117
|
-
/***/ "(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/GeistVF.woff\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"geistSans\"}":
|
118
|
-
/*!***********************************************************************************************************************************************************************************************************************!*\
|
119
|
-
!*** ./node_modules/next/font/local/target.css?{"path":"src\\app\\layout.tsx","import":"","arguments":[{"src":"./fonts/GeistVF.woff","variable":"--font-geist-sans","weight":"100 900"}],"variableName":"geistSans"} ***!
|
120
|
-
\***********************************************************************************************************************************************************************************************************************/
|
121
|
-
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
122
|
-
|
123
|
-
eval(__webpack_require__.ts("// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'geistSans', 'geistSans Fallback'\"},\"className\":\"__className_1e4310\",\"variable\":\"__variable_1e4310\"};\n if(true) {\n // 1732174116600\n var cssReload = __webpack_require__(/*! ./node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/mini-css-extract-plugin/hmr/hotModuleReplacement.js\")(module.id, {\"publicPath\":\"/_next/\",\"esModule\":false,\"locals\":true});\n module.hot.dispose(cssReload);\n \n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2ZvbnQvbG9jYWwvdGFyZ2V0LmNzcz97XCJwYXRoXCI6XCJzcmNcXFxcYXBwXFxcXGxheW91dC50c3hcIixcImltcG9ydFwiOlwiXCIsXCJhcmd1bWVudHNcIjpbe1wic3JjXCI6XCIuL2ZvbnRzL0dlaXN0VkYud29mZlwiLFwidmFyaWFibGVcIjpcIi0tZm9udC1nZWlzdC1zYW5zXCIsXCJ3ZWlnaHRcIjpcIjEwMCA5MDBcIn1dLFwidmFyaWFibGVOYW1lXCI6XCJnZWlzdFNhbnNcIn0iLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxrQkFBa0IsU0FBUyxpREFBaUQ7QUFDNUUsT0FBTyxJQUFVO0FBQ2pCO0FBQ0Esc0JBQXNCLG1CQUFPLENBQUMsd01BQXVJLGNBQWMsc0RBQXNEO0FBQ3pPLE1BQU0sVUFBVTtBQUNoQjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIkM6XFxVc2Vyc1xcUGluZXN1Y2NlZWRcXERlc2t0b3BcXFdvcmtTcGFjZVxcdGVzdHdpZGdldFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxmb250XFxsb2NhbFxcdGFyZ2V0LmNzcz97XCJwYXRoXCI6XCJzcmNcXGFwcFxcbGF5b3V0LnRzeFwiLFwiaW1wb3J0XCI6XCJcIixcImFyZ3VtZW50c1wiOlt7XCJzcmNcIjpcIi5cXGZvbnRzXFxHZWlzdFZGLndvZmZcIixcInZhcmlhYmxlXCI6XCItLWZvbnQtZ2Vpc3Qtc2Fuc1wiLFwid2VpZ2h0XCI6XCIxMDAgOTAwXCJ9XSxcInZhcmlhYmxlTmFtZVwiOlwiZ2Vpc3RTYW5zXCJ9fGFwcC1wYWdlcy1icm93c2VyIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxubW9kdWxlLmV4cG9ydHMgPSB7XCJzdHlsZVwiOntcImZvbnRGYW1pbHlcIjpcIidnZWlzdFNhbnMnLCAnZ2Vpc3RTYW5zIEZhbGxiYWNrJ1wifSxcImNsYXNzTmFtZVwiOlwiX19jbGFzc05hbWVfMWU0MzEwXCIsXCJ2YXJpYWJsZVwiOlwiX192YXJpYWJsZV8xZTQzMTBcIn07XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTczMjE3NDExNjYwMFxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCJDOi9Vc2Vycy9QaW5lc3VjY2VlZC9EZXNrdG9wL1dvcmtTcGFjZS90ZXN0d2lkZ2V0L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vaG1yL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wicHVibGljUGF0aFwiOlwiL19uZXh0L1wiLFwiZXNNb2R1bGVcIjpmYWxzZSxcImxvY2Fsc1wiOnRydWV9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgXG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":\"./fonts/GeistVF.woff\",\"variable\":\"--font-geist-sans\",\"weight\":\"100 900\"}],\"variableName\":\"geistSans\"}\n"));
|
124
|
-
|
125
|
-
/***/ }),
|
126
|
-
|
127
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js":
|
128
|
-
/*!****************************************************************************************!*\
|
129
|
-
!*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***!
|
130
|
-
\****************************************************************************************/
|
131
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
132
|
-
|
133
|
-
"use strict";
|
134
|
-
eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE$2\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function disabledLog() {}\n function disableLogs() {\n if (0 === disabledDepth) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n var props = {\n configurable: !0,\n enumerable: !0,\n value: disabledLog,\n writable: !0\n };\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n disabledDepth++;\n }\n function reenableLogs() {\n disabledDepth--;\n if (0 === disabledDepth) {\n var props = { configurable: !0, enumerable: !0, writable: !0 };\n Object.defineProperties(console, {\n log: assign({}, props, { value: prevLog }),\n info: assign({}, props, { value: prevInfo }),\n warn: assign({}, props, { value: prevWarn }),\n error: assign({}, props, { value: prevError }),\n group: assign({}, props, { value: prevGroup }),\n groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),\n groupEnd: assign({}, props, { value: prevGroupEnd })\n });\n }\n 0 > disabledDepth &&\n console.error(\n \"disabledDepth fell below zero. This is a bug in React. Please file an issue.\"\n );\n }\n function describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n }\n function describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n var frame = componentFrameCache.get(fn);\n if (void 0 !== frame) return frame;\n reentry = !0;\n frame = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n var previousDispatcher = null;\n previousDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = null;\n disableLogs();\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter =\n RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n _RunInRootFrame$Deter = namePropDescriptor = 0;\n namePropDescriptor < sampleLines.length &&\n !sampleLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n for (\n ;\n _RunInRootFrame$Deter < controlLines.length &&\n !controlLines[_RunInRootFrame$Deter].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n _RunInRootFrame$Deter++;\n if (\n namePropDescriptor === sampleLines.length ||\n _RunInRootFrame$Deter === controlLines.length\n )\n for (\n namePropDescriptor = sampleLines.length - 1,\n _RunInRootFrame$Deter = controlLines.length - 1;\n 1 <= namePropDescriptor &&\n 0 <= _RunInRootFrame$Deter &&\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter];\n\n )\n _RunInRootFrame$Deter--;\n for (\n ;\n 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;\n namePropDescriptor--, _RunInRootFrame$Deter--\n )\n if (\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter]\n ) {\n if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {\n do\n if (\n (namePropDescriptor--,\n _RunInRootFrame$Deter--,\n 0 > _RunInRootFrame$Deter ||\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter])\n ) {\n var _frame =\n \"\\n\" +\n sampleLines[namePropDescriptor].replace(\n \" at new \",\n \" at \"\n );\n fn.displayName &&\n _frame.includes(\"<anonymous>\") &&\n (_frame = _frame.replace(\"<anonymous>\", fn.displayName));\n \"function\" === typeof fn &&\n componentFrameCache.set(fn, _frame);\n return _frame;\n }\n while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);\n }\n break;\n }\n }\n } finally {\n (reentry = !1),\n (ReactSharedInternals.H = previousDispatcher),\n reenableLogs(),\n (Error.prepareStackTrace = frame);\n }\n sampleLines = (sampleLines = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(sampleLines)\n : \"\";\n \"function\" === typeof fn && componentFrameCache.set(fn, sampleLines);\n return sampleLines;\n }\n function describeUnknownElementTypeFrameInDEV(type) {\n if (null == type) return \"\";\n if (\"function\" === typeof type) {\n var prototype = type.prototype;\n return describeNativeComponentFrame(\n type,\n !(!prototype || !prototype.isReactComponent)\n );\n }\n if (\"string\" === typeof type) return describeBuiltInComponentFrame(type);\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return (type = describeNativeComponentFrame(type.render, !1)), type;\n case REACT_MEMO_TYPE:\n return describeUnknownElementTypeFrameInDEV(type.type);\n case REACT_LAZY_TYPE:\n prototype = type._payload;\n type = type._init;\n try {\n return describeUnknownElementTypeFrameInDEV(type(prototype));\n } catch (x) {}\n }\n return \"\";\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n if (\n \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE$1 ||\n void 0 !== type.getModuleId))\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren], type);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children, type);\n } else {\n children = \"\";\n if (\n void 0 === type ||\n (\"object\" === typeof type &&\n null !== type &&\n 0 === Object.keys(type).length)\n )\n children +=\n \" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\";\n null === type\n ? (isStaticChildren = \"null\")\n : isArrayImpl(type)\n ? (isStaticChildren = \"array\")\n : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE\n ? ((isStaticChildren =\n \"<\" +\n (getComponentNameFromType(type.type) || \"Unknown\") +\n \" />\"),\n (children =\n \" Did you accidentally export a JSX literal instead of a component?\"))\n : (isStaticChildren = typeof type);\n console.error(\n \"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",\n isStaticChildren,\n children\n );\n }\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(type, children, self, source, getOwner(), maybeKey);\n }\n function validateChildKeys(node, parentType) {\n if (\n \"object\" === typeof node &&\n node &&\n node.$$typeof !== REACT_CLIENT_REFERENCE\n )\n if (isArrayImpl(node))\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n isValidElement(child) && validateExplicitKey(child, parentType);\n }\n else if (isValidElement(node))\n node._store && (node._store.validated = 1);\n else if (\n (null === node || \"object\" !== typeof node\n ? (i = null)\n : ((i =\n (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||\n node[\"@@iterator\"]),\n (i = \"function\" === typeof i ? i : null)),\n \"function\" === typeof i &&\n i !== node.entries &&\n ((i = i.call(node)), i !== node))\n )\n for (; !(node = i.next()).done; )\n isValidElement(node.value) &&\n validateExplicitKey(node.value, parentType);\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function validateExplicitKey(element, parentType) {\n if (\n element._store &&\n !element._store.validated &&\n null == element.key &&\n ((element._store.validated = 1),\n (parentType = getCurrentComponentErrorInfo(parentType)),\n !ownerHasKeyUseWarning[parentType])\n ) {\n ownerHasKeyUseWarning[parentType] = !0;\n var childOwner = \"\";\n element &&\n null != element._owner &&\n element._owner !== getOwner() &&\n ((childOwner = null),\n \"number\" === typeof element._owner.tag\n ? (childOwner = getComponentNameFromType(element._owner.type))\n : \"string\" === typeof element._owner.name &&\n (childOwner = element._owner.name),\n (childOwner = \" It was passed a child from \" + childOwner + \".\"));\n var prevGetCurrentStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = function () {\n var stack = describeUnknownElementTypeFrameInDEV(element.type);\n prevGetCurrentStack && (stack += prevGetCurrentStack() || \"\");\n return stack;\n };\n console.error(\n 'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.',\n parentType,\n childOwner\n );\n ReactSharedInternals.getCurrentStack = prevGetCurrentStack;\n }\n }\n function getCurrentComponentErrorInfo(parentType) {\n var info = \"\",\n owner = getOwner();\n owner &&\n (owner = getComponentNameFromType(owner.type)) &&\n (info = \"\\n\\nCheck the render method of `\" + owner + \"`.\");\n info ||\n ((parentType = getComponentNameFromType(parentType)) &&\n (info =\n \"\\n\\nCheck the top-level render call using <\" + parentType + \">.\"));\n return info;\n }\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n assign = Object.assign,\n REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\"),\n isArrayImpl = Array.isArray,\n disabledDepth = 0,\n prevLog,\n prevInfo,\n prevWarn,\n prevError,\n prevGroup,\n prevGroupCollapsed,\n prevGroupEnd;\n disabledLog.__reactDisabledLog = !0;\n var prefix,\n suffix,\n reentry = !1;\n var componentFrameCache = new (\n \"function\" === typeof WeakMap ? WeakMap : Map\n )();\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var didWarnAboutKeySpread = {},\n ownerHasKeyUseWarning = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n return jsxDEVImpl(type, config, maybeKey, isStaticChildren, source, self);\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBLHdCQUF3QixXQUFXLGdCQUFnQjtBQUNuRCx5QkFBeUIsV0FBVyxpQkFBaUI7QUFDckQseUJBQXlCLFdBQVcsaUJBQWlCO0FBQ3JELDBCQUEwQixXQUFXLGtCQUFrQjtBQUN2RCwwQkFBMEIsV0FBVyxrQkFBa0I7QUFDdkQsbUNBQW1DLFdBQVcsMkJBQTJCO0FBQ3pFLDZCQUE2QixXQUFXLHFCQUFxQjtBQUM3RCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsK0NBQStDLDZCQUE2QjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsZ0RBQWdEO0FBQ2hFLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQSxnQ0FBZ0Msa0NBQWtDLE9BQU87QUFDekU7QUFDQSxnR0FBZ0csU0FBUyxVQUFVLHNGQUFzRixhQUFhLFVBQVUsVUFBVTtBQUMxTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixpQkFBaUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIseUJBQXlCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQU8sQ0FBQyxzR0FBMEI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLGNBQWM7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiQzpcXFVzZXJzXFxQaW5lc3VjY2VlZFxcRGVza3RvcFxcV29ya1NwYWNlXFx0ZXN0d2lkZ2V0XFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxyZWFjdFxcY2pzXFxyZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblwicHJvZHVjdGlvblwiICE9PSBwcm9jZXNzLmVudi5OT0RFX0VOViAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQyXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiRnJhZ21lbnRcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQb3J0YWxcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlByb2ZpbGVyXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdHJpY3RNb2RlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgIH1cbiAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHR5cGUudGFnICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgdHlwZS4kJHR5cGVvZilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuUHJvdmlkZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICB2YXIgaW5uZXJUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIHR5cGUgfHxcbiAgICAgICAgICAgICAgKCh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAodHlwZSA9IFwiXCIgIT09IHR5cGUgPyBcIkZvcndhcmRSZWYoXCIgKyB0eXBlICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIikpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoaW5uZXJUeXBlID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgPyBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiTWVtb1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIFwiXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICExO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMDtcbiAgICAgIH1cbiAgICAgIGlmIChKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gY29uc29sZTtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdC5lcnJvcjtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCA9XG4gICAgICAgICAgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFN5bWJvbCAmJlxuICAgICAgICAgICAgU3ltYm9sLnRvU3RyaW5nVGFnICYmXG4gICAgICAgICAgICB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddKSB8fFxuICAgICAgICAgIHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgfHxcbiAgICAgICAgICBcIk9iamVjdFwiO1xuICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QuY2FsbChcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQsXG4gICAgICAgICAgXCJUaGUgcHJvdmlkZWQga2V5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuICAgIGZ1bmN0aW9uIGRpc2FibGVMb2dzKCkge1xuICAgICAgaWYgKDAgPT09IGRpc2FibGVkRGVwdGgpIHtcbiAgICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nO1xuICAgICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7XG4gICAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgICAgIGVudW1lcmFibGU6ICEwLFxuICAgICAgICAgIHZhbHVlOiBkaXNhYmxlZExvZyxcbiAgICAgICAgICB3cml0YWJsZTogITBcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICAgIGxvZzogcHJvcHMsXG4gICAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICAgIGdyb3VwOiBwcm9wcyxcbiAgICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZGlzYWJsZWREZXB0aCsrO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gICAgICBkaXNhYmxlZERlcHRoLS07XG4gICAgICBpZiAoMCA9PT0gZGlzYWJsZWREZXB0aCkge1xuICAgICAgICB2YXIgcHJvcHMgPSB7IGNvbmZpZ3VyYWJsZTogITAsIGVudW1lcmFibGU6ICEwLCB3cml0YWJsZTogITAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkxvZyB9KSxcbiAgICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2SW5mbyB9KSxcbiAgICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2V2FybiB9KSxcbiAgICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkVycm9yIH0pLFxuICAgICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2R3JvdXAgfSksXG4gICAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZHcm91cENvbGxhcHNlZCB9KSxcbiAgICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkdyb3VwRW5kIH0pXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgMCA+IGRpc2FibGVkRGVwdGggJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcImRpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSB7XG4gICAgICBpZiAodm9pZCAwID09PSBwcmVmaXgpXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgICAgcHJlZml4ID0gKG1hdGNoICYmIG1hdGNoWzFdKSB8fCBcIlwiO1xuICAgICAgICAgIHN1ZmZpeCA9XG4gICAgICAgICAgICAtMSA8IHguc3RhY2suaW5kZXhPZihcIlxcbiAgICBhdFwiKVxuICAgICAgICAgICAgICA/IFwiICg8YW5vbnltb3VzPilcIlxuICAgICAgICAgICAgICA6IC0xIDwgeC5zdGFjay5pbmRleE9mKFwiQFwiKVxuICAgICAgICAgICAgICAgID8gXCJAdW5rbm93bjowOjBcIlxuICAgICAgICAgICAgICAgIDogXCJcIjtcbiAgICAgICAgfVxuICAgICAgcmV0dXJuIFwiXFxuXCIgKyBwcmVmaXggKyBuYW1lICsgc3VmZml4O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgICAgIGlmICghZm4gfHwgcmVlbnRyeSkgcmV0dXJuIFwiXCI7XG4gICAgICB2YXIgZnJhbWUgPSBjb21wb25lbnRGcmFtZUNhY2hlLmdldChmbik7XG4gICAgICBpZiAodm9pZCAwICE9PSBmcmFtZSkgcmV0dXJuIGZyYW1lO1xuICAgICAgcmVlbnRyeSA9ICEwO1xuICAgICAgZnJhbWUgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtcbiAgICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdm9pZCAwO1xuICAgICAgdmFyIHByZXZpb3VzRGlzcGF0Y2hlciA9IG51bGw7XG4gICAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IG51bGw7XG4gICAgICBkaXNhYmxlTG9ncygpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIFJ1bkluUm9vdEZyYW1lID0ge1xuICAgICAgICAgIERldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgICAgICAgICAgIHZhciBGYWtlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGYWtlLnByb3RvdHlwZSwgXCJwcm9wc1wiLCB7XG4gICAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIFJlZmxlY3QgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnRyb2wgPSB4O1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgICAgICAgICAgICB9IGNhdGNoICh4JDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IHgkMDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICh4JDEpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSB4JDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIChGYWtlID0gZm4oKSkgJiZcbiAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIEZha2UuY2F0Y2ggJiZcbiAgICAgICAgICAgICAgICAgIEZha2UuY2F0Y2goZnVuY3Rpb24gKCkge30pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChzYW1wbGUpIHtcbiAgICAgICAgICAgICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIFwic3RyaW5nXCIgPT09IHR5cGVvZiBzYW1wbGUuc3RhY2spXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtzYW1wbGUuc3RhY2ssIGNvbnRyb2wuc3RhY2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdC5kaXNwbGF5TmFtZSA9XG4gICAgICAgICAgXCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIjtcbiAgICAgICAgdmFyIG5hbWVQcm9wRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gICAgICAgICAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LFxuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgICk7XG4gICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvciAmJlxuICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvci5jb25maWd1cmFibGUgJiZcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgICAgICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsXG4gICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgIHsgdmFsdWU6IFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCIgfVxuICAgICAgICAgICk7XG4gICAgICAgIHZhciBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPVxuICAgICAgICAgICAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290KCksXG4gICAgICAgICAgc2FtcGxlU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMF0sXG4gICAgICAgICAgY29udHJvbFN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzFdO1xuICAgICAgICBpZiAoc2FtcGxlU3RhY2sgJiYgY29udHJvbFN0YWNrKSB7XG4gICAgICAgICAgdmFyIHNhbXBsZUxpbmVzID0gc2FtcGxlU3RhY2suc3BsaXQoXCJcXG5cIiksXG4gICAgICAgICAgICBjb250cm9sTGluZXMgPSBjb250cm9sU3RhY2suc3BsaXQoXCJcXG5cIik7XG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlciA9IG5hbWVQcm9wRGVzY3JpcHRvciA9IDA7XG4gICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IgPCBzYW1wbGVMaW5lcy5sZW5ndGggJiZcbiAgICAgICAgICAgICFzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdLmluY2x1ZGVzKFxuICAgICAgICAgICAgICBcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgKVxuICAgICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yKys7XG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlciA8IGNvbnRyb2xMaW5lcy5sZW5ndGggJiZcbiAgICAgICAgICAgICFjb250cm9sTGluZXNbX1J1bkluUm9vdEZyYW1lJERldGVyXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgXCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIClcbiAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlcisrO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvciA9PT0gc2FtcGxlTGluZXMubGVuZ3RoIHx8XG4gICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPT09IGNvbnRyb2xMaW5lcy5sZW5ndGhcbiAgICAgICAgICApXG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxLFxuICAgICAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlciA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAxIDw9IG5hbWVQcm9wRGVzY3JpcHRvciAmJlxuICAgICAgICAgICAgICAwIDw9IF9SdW5JblJvb3RGcmFtZSREZXRlciAmJlxuICAgICAgICAgICAgICBzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdICE9PVxuICAgICAgICAgICAgICAgIGNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdO1xuXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlci0tO1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICAxIDw9IG5hbWVQcm9wRGVzY3JpcHRvciAmJiAwIDw9IF9SdW5JblJvb3RGcmFtZSREZXRlcjtcbiAgICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvci0tLCBfUnVuSW5Sb290RnJhbWUkRGV0ZXItLVxuICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXSAhPT1cbiAgICAgICAgICAgICAgY29udHJvbExpbmVzW19SdW5JblJvb3RGcmFtZSREZXRlcl1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBpZiAoMSAhPT0gbmFtZVByb3BEZXNjcmlwdG9yIHx8IDEgIT09IF9SdW5JblJvb3RGcmFtZSREZXRlcikge1xuICAgICAgICAgICAgICAgIGRvXG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIChuYW1lUHJvcERlc2NyaXB0b3ItLSxcbiAgICAgICAgICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyLS0sXG4gICAgICAgICAgICAgICAgICAgIDAgPiBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbExpbmVzW19SdW5JblJvb3RGcmFtZSREZXRlcl0pXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9XG4gICAgICAgICAgICAgICAgICAgICAgXCJcXG5cIiArXG4gICAgICAgICAgICAgICAgICAgICAgc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYXQgbmV3IFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYXQgXCJcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBmbi5kaXNwbGF5TmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgIF9mcmFtZS5pbmNsdWRlcyhcIjxhbm9ueW1vdXM+XCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgKF9mcmFtZSA9IF9mcmFtZS5yZXBsYWNlKFwiPGFub255bW91cz5cIiwgZm4uZGlzcGxheU5hbWUpKTtcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgZm4gJiZcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aGlsZSAoMSA8PSBuYW1lUHJvcERlc2NyaXB0b3IgJiYgMCA8PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICAocmVlbnRyeSA9ICExKSxcbiAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZpb3VzRGlzcGF0Y2hlciksXG4gICAgICAgICAgcmVlbmFibGVMb2dzKCksXG4gICAgICAgICAgKEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gZnJhbWUpO1xuICAgICAgfVxuICAgICAgc2FtcGxlTGluZXMgPSAoc2FtcGxlTGluZXMgPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiBcIlwiKVxuICAgICAgICA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHNhbXBsZUxpbmVzKVxuICAgICAgICA6IFwiXCI7XG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBmbiAmJiBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc2FtcGxlTGluZXMpO1xuICAgICAgcmV0dXJuIHNhbXBsZUxpbmVzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSkge1xuICAgICAgaWYgKG51bGwgPT0gdHlwZSkgcmV0dXJuIFwiXCI7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSkge1xuICAgICAgICB2YXIgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgISghcHJvdG90eXBlIHx8ICFwcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZVwiKTtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKFwiU3VzcGVuc2VMaXN0XCIpO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUgPSBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyLCAhMSkpLCB0eXBlO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlLnR5cGUpO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgcHJvdG90eXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlKHByb3RvdHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE93bmVyKCkge1xuICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5BO1xuICAgICAgcmV0dXJuIG51bGwgPT09IGRpc3BhdGNoZXIgPyBudWxsIDogZGlzcGF0Y2hlci5nZXRPd25lcigpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCBcImtleVwiKS5nZXQ7XG4gICAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSByZXR1cm4gITE7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb25maWcua2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgICAgIGZ1bmN0aW9uIHdhcm5BYm91dEFjY2Vzc2luZ0tleSgpIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gfHxcbiAgICAgICAgICAoKHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gITApLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0IGluIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgdmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCBwcm9wLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9zcGVjaWFsLXByb3BzKVwiLFxuICAgICAgICAgICAgZGlzcGxheU5hbWVcbiAgICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9ICEwO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCBcImtleVwiLCB7XG4gICAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgICAgICBjb25maWd1cmFibGU6ICEwXG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmcoKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0aGlzLnR5cGUpO1xuICAgICAgZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSB8fFxuICAgICAgICAoKGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gPSAhMCksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJBY2Nlc3NpbmcgZWxlbWVudC5yZWYgd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIHJlZiBpcyBub3cgYSByZWd1bGFyIHByb3AuIEl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBKU1ggRWxlbWVudCB0eXBlIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICAgICAgKSk7XG4gICAgICBjb21wb25lbnROYW1lID0gdGhpcy5wcm9wcy5yZWY7XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb21wb25lbnROYW1lID8gY29tcG9uZW50TmFtZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKSB7XG4gICAgICBzZWxmID0gcHJvcHMucmVmO1xuICAgICAgdHlwZSA9IHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIHByb3BzOiBwcm9wcyxcbiAgICAgICAgX293bmVyOiBvd25lclxuICAgICAgfTtcbiAgICAgIG51bGwgIT09ICh2b2lkIDAgIT09IHNlbGYgPyBzZWxmIDogbnVsbClcbiAgICAgICAgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJyZWZcIiwge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICBnZXQ6IGVsZW1lbnRSZWZHZXR0ZXJXaXRoRGVwcmVjYXRpb25XYXJuaW5nXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJyZWZcIiwgeyBlbnVtZXJhYmxlOiAhMSwgdmFsdWU6IG51bGwgfSk7XG4gICAgICB0eXBlLl9zdG9yZSA9IHt9O1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUuX3N0b3JlLCBcInZhbGlkYXRlZFwiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiAwXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIl9kZWJ1Z0luZm9cIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZnJlZXplICYmIChPYmplY3QuZnJlZXplKHR5cGUucHJvcHMpLCBPYmplY3QuZnJlZXplKHR5cGUpKTtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBqc3hERVZJbXBsKFxuICAgICAgdHlwZSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIG1heWJlS2V5LFxuICAgICAgaXNTdGF0aWNDaGlsZHJlbixcbiAgICAgIHNvdXJjZSxcbiAgICAgIHNlbGZcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUgfHxcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHxcbiAgICAgICAgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9PRkZTQ1JFRU5fVFlQRSB8fFxuICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fFxuICAgICAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFIHx8XG4gICAgICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlNVTUVSX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSB8fFxuICAgICAgICAgICAgdm9pZCAwICE9PSB0eXBlLmdldE1vZHVsZUlkKSlcbiAgICAgICkge1xuICAgICAgICB2YXIgY2hpbGRyZW4gPSBjb25maWcuY2hpbGRyZW47XG4gICAgICAgIGlmICh2b2lkIDAgIT09IGNoaWxkcmVuKVxuICAgICAgICAgIGlmIChpc1N0YXRpY0NoaWxkcmVuKVxuICAgICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPSAwO1xuICAgICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPCBjaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbisrXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbltpc1N0YXRpY0NoaWxkcmVuXSwgdHlwZSk7XG4gICAgICAgICAgICAgIE9iamVjdC5mcmVlemUgJiYgT2JqZWN0LmZyZWV6ZShjaGlsZHJlbik7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuIFlvdSBhcmUgbGlrZWx5IGV4cGxpY2l0bHkgY2FsbGluZyBSZWFjdC5qc3hzIG9yIFJlYWN0LmpzeERFVi4gVXNlIHRoZSBCYWJlbCB0cmFuc2Zvcm0gaW5zdGVhZC5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIGVsc2UgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW4sIHR5cGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGRyZW4gPSBcIlwiO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdm9pZCAwID09PSB0eXBlIHx8XG4gICAgICAgICAgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgICAwID09PSBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGgpXG4gICAgICAgIClcbiAgICAgICAgICBjaGlsZHJlbiArPVxuICAgICAgICAgICAgXCIgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlwiO1xuICAgICAgICBudWxsID09PSB0eXBlXG4gICAgICAgICAgPyAoaXNTdGF0aWNDaGlsZHJlbiA9IFwibnVsbFwiKVxuICAgICAgICAgIDogaXNBcnJheUltcGwodHlwZSlcbiAgICAgICAgICAgID8gKGlzU3RhdGljQ2hpbGRyZW4gPSBcImFycmF5XCIpXG4gICAgICAgICAgICA6IHZvaWQgMCAhPT0gdHlwZSAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICAgICAgICAgPyAoKGlzU3RhdGljQ2hpbGRyZW4gPVxuICAgICAgICAgICAgICAgICAgXCI8XCIgK1xuICAgICAgICAgICAgICAgICAgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiVW5rbm93blwiKSArXG4gICAgICAgICAgICAgICAgICBcIiAvPlwiKSxcbiAgICAgICAgICAgICAgICAoY2hpbGRyZW4gPVxuICAgICAgICAgICAgICAgICAgXCIgRGlkIHlvdSBhY2NpZGVudGFsbHkgZXhwb3J0IGEgSlNYIGxpdGVyYWwgaW5zdGVhZCBvZiBhIGNvbXBvbmVudD9cIikpXG4gICAgICAgICAgICAgIDogKGlzU3RhdGljQ2hpbGRyZW4gPSB0eXBlb2YgdHlwZSk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJSZWFjdC5qc3g6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yIGJ1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgY29tcG9uZW50cykgYnV0IGdvdDogJXMuJXNcIixcbiAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIFwia2V5XCIpKSB7XG4gICAgICAgIGNoaWxkcmVuID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykuZmlsdGVyKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgcmV0dXJuIFwia2V5XCIgIT09IGs7XG4gICAgICAgIH0pO1xuICAgICAgICBpc1N0YXRpY0NoaWxkcmVuID1cbiAgICAgICAgICAwIDwga2V5cy5sZW5ndGhcbiAgICAgICAgICAgID8gXCJ7a2V5OiBzb21lS2V5LCBcIiArIGtleXMuam9pbihcIjogLi4uLCBcIikgKyBcIjogLi4ufVwiXG4gICAgICAgICAgICA6IFwie2tleTogc29tZUtleX1cIjtcbiAgICAgICAgZGlkV2FybkFib3V0S2V5U3ByZWFkW2NoaWxkcmVuICsgaXNTdGF0aWNDaGlsZHJlbl0gfHxcbiAgICAgICAgICAoKGtleXMgPVxuICAgICAgICAgICAgMCA8IGtleXMubGVuZ3RoID8gXCJ7XCIgKyBrZXlzLmpvaW4oXCI6IC4uLiwgXCIpICsgXCI6IC4uLn1cIiA6IFwie31cIiksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICdBIHByb3BzIG9iamVjdCBjb250YWluaW5nIGEgXCJrZXlcIiBwcm9wIGlzIGJlaW5nIHNwcmVhZCBpbnRvIEpTWDpcXG4gIGxldCBwcm9wcyA9ICVzO1xcbiAgPCVzIHsuLi5wcm9wc30gLz5cXG5SZWFjdCBrZXlzIG11c3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIEpTWCB3aXRob3V0IHVzaW5nIHNwcmVhZDpcXG4gIGxldCBwcm9wcyA9ICVzO1xcbiAgPCVzIGtleT17c29tZUtleX0gey4uLnByb3BzfSAvPicsXG4gICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICBrZXlzLFxuICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICApLFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY2hpbGRyZW4gKyBpc1N0YXRpY0NoaWxkcmVuXSA9ICEwKSk7XG4gICAgICB9XG4gICAgICBjaGlsZHJlbiA9IG51bGw7XG4gICAgICB2b2lkIDAgIT09IG1heWJlS2V5ICYmXG4gICAgICAgIChjaGVja0tleVN0cmluZ0NvZXJjaW9uKG1heWJlS2V5KSwgKGNoaWxkcmVuID0gXCJcIiArIG1heWJlS2V5KSk7XG4gICAgICBoYXNWYWxpZEtleShjb25maWcpICYmXG4gICAgICAgIChjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpLCAoY2hpbGRyZW4gPSBcIlwiICsgY29uZmlnLmtleSkpO1xuICAgICAgaWYgKFwia2V5XCIgaW4gY29uZmlnKSB7XG4gICAgICAgIG1heWJlS2V5ID0ge307XG4gICAgICAgIGZvciAodmFyIHByb3BOYW1lIGluIGNvbmZpZylcbiAgICAgICAgICBcImtleVwiICE9PSBwcm9wTmFtZSAmJiAobWF5YmVLZXlbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXSk7XG4gICAgICB9IGVsc2UgbWF5YmVLZXkgPSBjb25maWc7XG4gICAgICBjaGlsZHJlbiAmJlxuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihcbiAgICAgICAgICBtYXliZUtleSxcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlXG4gICAgICAgICAgICA/IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IFwiVW5rbm93blwiXG4gICAgICAgICAgICA6IHR5cGVcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwgY2hpbGRyZW4sIHNlbGYsIHNvdXJjZSwgZ2V0T3duZXIoKSwgbWF5YmVLZXkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBub2RlICYmXG4gICAgICAgIG5vZGUgJiZcbiAgICAgICAgbm9kZS4kJHR5cGVvZiAhPT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRVxuICAgICAgKVxuICAgICAgICBpZiAoaXNBcnJheUltcGwobm9kZSkpXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgY2hpbGQgPSBub2RlW2ldO1xuICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQoY2hpbGQpICYmIHZhbGlkYXRlRXhwbGljaXRLZXkoY2hpbGQsIHBhcmVudFR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpXG4gICAgICAgICAgbm9kZS5fc3RvcmUgJiYgKG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpO1xuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAobnVsbCA9PT0gbm9kZSB8fCBcIm9iamVjdFwiICE9PSB0eXBlb2Ygbm9kZVxuICAgICAgICAgICAgPyAoaSA9IG51bGwpXG4gICAgICAgICAgICA6ICgoaSA9XG4gICAgICAgICAgICAgICAgKE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBub2RlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0pIHx8XG4gICAgICAgICAgICAgICAgbm9kZVtcIkBAaXRlcmF0b3JcIl0pLFxuICAgICAgICAgICAgICAoaSA9IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGkgPyBpIDogbnVsbCkpLFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGkgJiZcbiAgICAgICAgICAgIGkgIT09IG5vZGUuZW50cmllcyAmJlxuICAgICAgICAgICAgKChpID0gaS5jYWxsKG5vZGUpKSwgaSAhPT0gbm9kZSkpXG4gICAgICAgIClcbiAgICAgICAgICBmb3IgKDsgIShub2RlID0gaS5uZXh0KCkpLmRvbmU7IClcbiAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50KG5vZGUudmFsdWUpICYmXG4gICAgICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkobm9kZS52YWx1ZSwgcGFyZW50VHlwZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG9iamVjdCAmJlxuICAgICAgICBudWxsICE9PSBvYmplY3QgJiZcbiAgICAgICAgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICAgICAgaWYgKFxuICAgICAgICBlbGVtZW50Ll9zdG9yZSAmJlxuICAgICAgICAhZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkICYmXG4gICAgICAgIG51bGwgPT0gZWxlbWVudC5rZXkgJiZcbiAgICAgICAgKChlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSAxKSxcbiAgICAgICAgKHBhcmVudFR5cGUgPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpKSxcbiAgICAgICAgIW93bmVySGFzS2V5VXNlV2FybmluZ1twYXJlbnRUeXBlXSlcbiAgICAgICkge1xuICAgICAgICBvd25lckhhc0tleVVzZVdhcm5pbmdbcGFyZW50VHlwZV0gPSAhMDtcbiAgICAgICAgdmFyIGNoaWxkT3duZXIgPSBcIlwiO1xuICAgICAgICBlbGVtZW50ICYmXG4gICAgICAgICAgbnVsbCAhPSBlbGVtZW50Ll9vd25lciAmJlxuICAgICAgICAgIGVsZW1lbnQuX293bmVyICE9PSBnZXRPd25lcigpICYmXG4gICAgICAgICAgKChjaGlsZE93bmVyID0gbnVsbCksXG4gICAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIGVsZW1lbnQuX293bmVyLnRhZ1xuICAgICAgICAgICAgPyAoY2hpbGRPd25lciA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShlbGVtZW50Ll9vd25lci50eXBlKSlcbiAgICAgICAgICAgIDogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVsZW1lbnQuX293bmVyLm5hbWUgJiZcbiAgICAgICAgICAgICAgKGNoaWxkT3duZXIgPSBlbGVtZW50Ll9vd25lci5uYW1lKSxcbiAgICAgICAgICAoY2hpbGRPd25lciA9IFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgY2hpbGRPd25lciArIFwiLlwiKSk7XG4gICAgICAgIHZhciBwcmV2R2V0Q3VycmVudFN0YWNrID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5nZXRDdXJyZW50U3RhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSk7XG4gICAgICAgICAgcHJldkdldEN1cnJlbnRTdGFjayAmJiAoc3RhY2sgKz0gcHJldkdldEN1cnJlbnRTdGFjaygpIHx8IFwiXCIpO1xuICAgICAgICAgIHJldHVybiBzdGFjaztcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRWFjaCBjaGlsZCBpbiBhIGxpc3Qgc2hvdWxkIGhhdmUgYSB1bmlxdWUgXCJrZXlcIiBwcm9wLiVzJXMgU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsXG4gICAgICAgICAgcGFyZW50VHlwZSxcbiAgICAgICAgICBjaGlsZE93bmVyXG4gICAgICAgICk7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IHByZXZHZXRDdXJyZW50U3RhY2s7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSkge1xuICAgICAgdmFyIGluZm8gPSBcIlwiLFxuICAgICAgICBvd25lciA9IGdldE93bmVyKCk7XG4gICAgICBvd25lciAmJlxuICAgICAgICAob3duZXIgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUob3duZXIudHlwZSkpICYmXG4gICAgICAgIChpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgXCIgKyBvd25lciArIFwiYC5cIik7XG4gICAgICBpbmZvIHx8XG4gICAgICAgICgocGFyZW50VHlwZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShwYXJlbnRUeXBlKSkgJiZcbiAgICAgICAgICAoaW5mbyA9XG4gICAgICAgICAgICBcIlxcblxcbkNoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNhbGwgdXNpbmcgPFwiICsgcGFyZW50VHlwZSArIFwiPi5cIikpO1xuICAgICAgcmV0dXJuIGluZm87XG4gICAgfVxuICAgIHZhciBSZWFjdCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3RcIiksXG4gICAgICBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIiksXG4gICAgICBSRUFDVF9QT1JUQUxfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksXG4gICAgICBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLFxuICAgICAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxcbiAgICAgIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik7XG4gICAgU3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpO1xuICAgIHZhciBSRUFDVF9DT05TVU1FUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpLFxuICAgICAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksXG4gICAgICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLFxuICAgICAgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksXG4gICAgICBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSxcbiAgICAgIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0Lm9mZnNjcmVlblwiKSxcbiAgICAgIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcixcbiAgICAgIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMiA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXG4gICAgICBhc3NpZ24gPSBPYmplY3QuYXNzaWduLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQxID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIiksXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBkaXNhYmxlZERlcHRoID0gMCxcbiAgICAgIHByZXZMb2csXG4gICAgICBwcmV2SW5mbyxcbiAgICAgIHByZXZXYXJuLFxuICAgICAgcHJldkVycm9yLFxuICAgICAgcHJldkdyb3VwLFxuICAgICAgcHJldkdyb3VwQ29sbGFwc2VkLFxuICAgICAgcHJldkdyb3VwRW5kO1xuICAgIGRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9ICEwO1xuICAgIHZhciBwcmVmaXgsXG4gICAgICBzdWZmaXgsXG4gICAgICByZWVudHJ5ID0gITE7XG4gICAgdmFyIGNvbXBvbmVudEZyYW1lQ2FjaGUgPSBuZXcgKFxuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgV2Vha01hcCA/IFdlYWtNYXAgOiBNYXBcbiAgICApKCk7XG4gICAgdmFyIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duO1xuICAgIHZhciBkaWRXYXJuQWJvdXRFbGVtZW50UmVmID0ge307XG4gICAgdmFyIGRpZFdhcm5BYm91dEtleVNwcmVhZCA9IHt9LFxuICAgICAgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG4gICAgZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG4gICAgZXhwb3J0cy5qc3hERVYgPSBmdW5jdGlvbiAoXG4gICAgICB0eXBlLFxuICAgICAgY29uZmlnLFxuICAgICAgbWF5YmVLZXksXG4gICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAgc291cmNlLFxuICAgICAgc2VsZlxuICAgICkge1xuICAgICAgcmV0dXJuIGpzeERFVkltcGwodHlwZSwgY29uZmlnLCBtYXliZUtleSwgaXNTdGF0aWNDaGlsZHJlbiwgc291cmNlLCBzZWxmKTtcbiAgICB9O1xuICB9KSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n"));
|
135
|
-
|
136
|
-
/***/ }),
|
137
|
-
|
138
|
-
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js":
|
139
|
-
/*!******************************************************************!*\
|
140
|
-
!*** ./node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***!
|
141
|
-
\******************************************************************/
|
142
|
-
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
143
|
-
|
144
|
-
"use strict";
|
145
|
-
eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw4TEFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIkM6XFxVc2Vyc1xcUGluZXN1Y2NlZWRcXERlc2t0b3BcXFdvcmtTcGFjZVxcdGVzdHdpZGdldFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxccmVhY3RcXGpzeC1kZXYtcnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLnByb2R1Y3Rpb24uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n"));
|
146
|
-
|
147
|
-
/***/ })
|
148
|
-
|
149
|
-
},
|
150
|
-
/******/ __webpack_require__ => { // webpackRuntimeModules
|
151
|
-
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
152
|
-
/******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-sans%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistSans%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Cnode_modules%5C%5Cnext%5C%5Cfont%5C%5Clocal%5C%5Ctarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%5C%5C%5C%5Capp%5C%5C%5C%5Clayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5C%22.%2Ffonts%2FGeistMonoVF.woff%5C%22%2C%5C%22variable%5C%22%3A%5C%22--font-geist-mono%5C%22%2C%5C%22weight%5C%22%3A%5C%22100%20900%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22geistMono%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CBootstrapclient.ts%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CPinesucceed%5C%5CDesktop%5C%5CWorkSpace%5C%5Ctestwidget%5C%5Csrc%5C%5Capp%5C%5Ccomponents%5C%5CDatascript.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!")));
|
153
|
-
/******/ var __webpack_exports__ = __webpack_require__.O();
|
154
|
-
/******/ _N_E = __webpack_exports__;
|
155
|
-
/******/ }
|
156
|
-
]);
|